HyperRogue  11.3d
game/visualization engine based on non-Euclidean geometry
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
locations.cpp File Reference

definition of connection tables, walkers, cell and heptagon structures More...

#include "hyper.h"

Classes

struct  hr::gcell
 
struct  hr::walker< T >
 
struct  hr::connection_table< T >
 
struct  hr::wstep_t
 
struct  hr::wmirror_t
 
struct  hr::rev_t
 
struct  hr::revstep_t
 
struct  hr::walker< T >
 
struct  hr::cdata
 
struct  hr::heptagon
 
struct  hr::cell
 
struct  hr::manual_celllister
 
struct  hr::celllister
 
struct  hr::cth_t
 
struct  hr::movei
 

Namespaces

 hr
 

Macros

#define NODIR   126
 
#define NOBARRIERS   127
 
#define landparam   LHU.landpar
 
#define landparam_color   LHU.landpar_color
 
#define fval   LHU.fi.fieldval
 
#define FULL_EDGE   120
 

Typedefs

typedef walker< heptagon > hr::heptspin
 
typedef walker< cell > hr::cellwalker
 

Enumerations

enum  hstate {
  hsOrigin, hsA, hsB, hsError,
  hsA0, hsA1, hsB0, hsB1,
  hsC
}
 

Functions

int hr::gmod (int i, int j)
 
template<class T >
T * hr::tailored_alloc (int degree)
 
template<class T >
void hr::tailored_delete (T *x)
 
EX int hr::hrand (int i)
 
EX cell * hr::createMov (cell *c, int d)
 
heptagon * hr::createStep (heptagon *h, int d)
 
heptspin hr::operator+ (cellwalker cw, cth_t)
 
cellwalker hr::operator+ (heptspin hs, cth_t)
 
EX cell * hr::whirlwind::jumpDestination (cell *c)
 
EX movei hr::moveimon (cell *c)
 
EX movei hr::match (cell *f, cell *t)
 

Variables

constexpr int hr::global_distance_limit = 32000
 
constexpr int hr::iteration_limit = 10000000
 
constexpr int hr::STRONGWIND = 99
 
constexpr int hr::FALL = 98
 
constexpr int hr::NO_SPACE = 97
 
constexpr int hr::TELEPORT = 96
 
constexpr int hr::JUMP = 95
 

Detailed Description

definition of connection tables, walkers, cell and heptagon structures

The standard geometry uses 'heptagons' for the underlying heptagonal tessellation, and 'cells' for the tessellation that the game is actually played on. Other geometries also use the class 'heptagon' even if they are not heptagon-based; there may be one 'heptagon' per each cell. Heptagons are not used in masterless geometries, though. This file implements the basic types and functions for navigating both graphs.