HyperRogue  11.3d
game/visualization engine based on non-Euclidean geometry
File List
Here is a list of all documented files with brief descriptions:
 3d-models.cppThis file contains the routines to convert HyperRogue's old vector graphics into 3D models
 arbitrile.cppArbitrary tilings
 archimedean.cppArchimedean tilings
 asonov.cppArnold's cat map
 barriers.cppThis file implements routines related to barriers (Great Walls and similar)
 basegraph.cppThis file implements the basic graphical routines
 bigstuff.cppLarge map structures, such as (horo)cycles and equidistants
 binary-tiling.cppBinary tilings in 2D and 3D
 blizzard.cppSpecial graphical effects, such as the Blizzard and arrow traps
 cell.cppGeneral cells and maps
 checkmove.cppCheck the validity of move (checkmate rule)
 classes.cppItems, monsters, walls, lands, descriptions, etc
 commandline.cppCommandline options support
 complex.cppThis file implements the gameplay/generation for the more complex lands and mechanics
 complex2.cppContinuation of complex.cpp
 config.cppConfiguration – initial settings, saving/loading ini files, menus, etc
 content.cppX-macros for items, monsters, walls, and lands
 control.cppRoutines related to controlling the game
 crystal.cppMulti-dimensional (aka crystal) geometries
 debug.cppDebugging and cheating
 dialogs.cppImplementation of various generic dialogs and elements of dialog windows
 dpgen.cppDual geometry puzzle generator
 drawing.cppRendering shapes (dqi_draw), queue of shapes to render (ptds), etc
 environment.cppGame environment: routines related to the game that affect all the map. Monsters to move are detected here, but their moves are implemented in monstermove.cpp
 euclid.cppEuclidean geometry, including 2D, 3D, and quotient spaces
 expansion.cppExponential growth of hyperbolic geometries
 fieldpattern.cppField Quotient geometry
 flags.cppImplementation of various simple flags for lands, items, monsters, and walls
 floorshapes.cppAdjusting the floor shapes to various geometries
 game.cppBasic game routines
 geom-exp.cppThe 'experiments with geometry' menu
 geometry.cppCalculation of basic, and less basic, constants in each geometry
 geometry2.cppMatrices to transform between coordinates of various cells, coordinates of cell corners, etc
 glhr.cppLow-level OpenGL routines
 goldberg.cppGoldberg-Coxeter construction
 graph.cppDrawing cells, monsters, items, etc
 help.cppBuilding and displaying help text
 heptagon.cppImplementation of Heptagons
 history.cppImplementation of the history mode, including the long band and long spiral
 hprint.cppRoutines related to displaying various things, and writing them to console and files. Nicer than the standard C++ streams
 hud.cppHeads-Up display: items collected, monsters killed, radar, etc
 hyper.cppHyper_main function
 hyper.hThe main header file of HyperRogue
 hyperpoint.cppBasic computations in non-Euclidean geometry
 hypgraph.cppMapping hyperpoints to the screen, and related functions
 init.cppInitialization, and stuff related to mobiles
 inventory.cppOrb Strategy Mode
 irregular.cppIrregular (Voronoi) tilings
 kite.cppKite-and-dart tiling, both in R^2 and H^3
 landgen.cppGenerating various lands
 landlock.cppUnlocking lands, which lands could be found beyond the wall, validity of various lands depending on the settings
 language.cppLocalization support
 locations.cppDefinition of connection tables, walkers, cell and heptagon structures
 mapeffects.cppRoutines handling the map effects
 menus.cppGeneric menus (start menu, main menu, Overview, etc.)
 models.cppModels of hyperbolic geometry: their properties, projection menu
 monstergen.cppMonster generation
 monstermove.cppMonster movement
 multi.cppMultiplayer features, also input configuration
 netgen.cppPaper model generator
 nofont.cppBuilt-in font (used e.g. in the web version)
 nonisotropic.cppNonisotropic spaces (Solv and Nil)
 orbgen.cppOrb generation: which orbs in which lands, functions generating prize/local orbs, etc
 orbs.cppImplementation of various Orb effects, and their properties such as default and maximum charges
 pattern2.cppVarious functions computing the standings of individual cells with respect to various patterns
 patterns.cppTables that the complex patterns (Emerald, Palace, Field Pattern) are based on
 pcmove.cppPC movements
 polygons.cppShapes used for the vector graphics, mostly hand-drawn (the vector data is here), some procedurally generated
 quit.cppMission screen, and routines related to it
 quotient.cppQuotient spaces
 racing.cppRacing mode
 raycaster.cppA raycaster to draw walls
 reg3.cppRegular honeycombs
 renderbuffer.cppDrawing screens to buffers
 rug.cppHypersian Rug mode
 scores.cppLocal highscore lists
 screenshot.cppScreenshots, SVG format, animations, start animations
 shaders.cppShaders
 shmup.cppShoot'em up mode
 sound.cppSound effects and music
 sphere.cppSpherical spaces
 surface.cppSurfaces of constant negative curvature
 sysconfig.hSet compiler flags, and include all the required system headers
 system.cppChanging game modes, starting, closing, loading and saving games
 textures.cppTexture mode, also the basic definitions of textures, used in 3D mode
 tour.cppTutorial and presentation system
 usershapes.cppUser-defined shapes
 util.cppBasic utility functions: maths, parsing expressions
 yendor.cppYendor Quest/Challenge, Pure Tactics Mode, Peace Mode