![]() |
HyperRogue
11.3d
game/visualization engine based on non-Euclidean geometry
|
Namespaces | |
reg3 | |
Classes | |
struct | always_false |
struct | animation |
struct | bandfixer |
struct | basic_textureinfo |
struct | bignum |
struct | blizzardcell |
struct | cdata |
struct | cell |
struct | celldrawer |
struct | celllister |
struct | changes_t |
struct | charstyle |
struct | charstyle_old |
struct | colortable |
struct | comma_printer |
struct | connection_table |
struct | cth_t |
struct | debugScreen |
struct | display_data |
struct | downseek_t |
struct | dqi_action |
struct | dqi_circle |
struct | dqi_line |
struct | dqi_poly |
struct | dqi_sky |
struct | dqi_string |
struct | drawqueueitem |
struct | dsaver |
struct | dynamicval |
struct | escher_floorshape |
struct | exp_parser |
struct | expansion_analyzer |
struct | fallanim |
struct | fhstream |
struct | flashdata |
struct | floorshape |
struct | fullnoun |
struct | gamedata |
struct | gcell |
struct | genderswitch_t |
struct | geometry_filter |
struct | geometry_information |
struct | geometryinfo |
struct | geometryinfo1 |
struct | glfont_t |
struct | grow_vector |
struct | help_extension |
struct | heptagon |
struct | hint |
class | hookset |
struct | horo_distance |
struct | hpcshape |
struct | hr_exception |
struct | hr_parse_exception |
struct | hr_shortest_path_exception |
struct | hrmap |
struct | hrmap_hyperbolic |
struct | hrmap_spherical |
struct | hrmap_standard |
struct | hstream |
struct | hstream_exception |
struct | hyperpoint |
A point in our continuous space Originally used for representing points in the hyperbolic plane. Currently used for all kinds of supported spaces, as well as for all vector spaces (up to 4 dimensions). We are using the normalized homogeneous coordinates, which allows us to work with most geometries in HyperRogue in a uniform way. More... | |
struct | indenter |
struct | indenter_finish |
struct | itemtype |
struct | land_validity_t |
struct | landtacinfo |
struct | landtype |
struct | logger |
struct | loopchecker |
struct | manual_celllister |
struct | matrixlist |
struct | mesher |
struct | modelinfo |
struct | monstertype |
struct | movedir |
struct | movei |
struct | msginfo |
struct | noun |
struct | orbinfo |
struct | pathdata |
struct | pcmove |
struct | plain_floorshape |
struct | qfloorinfo |
struct | radarline |
struct | radarpoint |
struct | renderbuffer |
struct | resetbuffer |
struct | rev_t |
struct | revstep_t |
struct | saver |
struct | saver< bool > |
struct | saver< char > |
struct | saver< int > |
struct | saver< ld > |
struct | saver< string > |
struct | saver< unsigned > |
struct | saverenum |
struct | score |
struct | sentence |
struct | shstream |
struct | sky_item |
struct | snowball |
struct | stalemate1 |
struct | stringpar |
struct | supersaver |
struct | texture_triangle |
struct | textureinfo |
struct | transmatrix |
A matrix acting on hr::hyperpoint Since we are using homogeneous coordinates for hr::hyperpoint, rotations and translations can be represented as matrix multiplications. Other applications of matrices in HyperRogue (in dimension up to 4) are also implemented using transmatrix. More... | |
struct | usershape |
struct | usershapelayer |
struct | videopar |
struct | walker |
struct | walltype |
struct | wmirror_t |
struct | wstep_t |
Typedefs | |
typedef Uint16 | texturepixel |
typedef flagtype | modecode_t |
typedef vector< shared_ptr< supersaver > > | saverlist |
typedef SDL_Event | eventtype |
typedef pair< transmatrix, vector< transmatrix > > | matrixitem |
typedef array< hpcshape, WINGS+1 > | hpcshape_animated |
typedef void(* | cfunction) () |
typedef double | ld |
typedef complex< ld > | cld |
typedef unsigned | color_t |
typedef hookset< void()> * | purehookset |
typedef function< void()> | reaction_t |
typedef function< bool()> | bool_reaction_t |
typedef function< int(struct cell *)> | cellfunction |
typedef float | GLfloat |
typedef array< GLfloat, 2 > | glvec2 |
typedef array< GLfloat, 3 > | glvec3 |
typedef array< GLfloat, 4 > | glvec4 |
typedef glvec4 | glvertex |
typedef unsigned long long | flagtype |
typedef unsigned | hashcode |
typedef walker< heptagon > | heptspin |
typedef walker< cell > | cellwalker |
typedef pair< string, reaction_t > | named_functionality |
typedef array< char, 1048576 > | reserve_block |
typedef vector< pair< int, string > > | subscoreboard |
Functions | |
hyperpoint | get_center (const vector< hyperpoint > &vh) |
EX ld | zc (ld z) |
vector< hyperpoint > | scaleshape (const vector< hyperpoint > &vh, ld s) |
ld | get_zlevel (hyperpoint h) |
void | disable (hpcshape &sh) |
hyperpoint | yzspin (ld alpha, hyperpoint h) |
hyperpoint | psmin (hyperpoint H) |
EX void | queueball (const transmatrix &V, ld rad, color_t col, eItem what) |
EX bool | haveLeaderboard (int id) |
EX int | get_currentscore (int id) |
EX void | set_priority_board (int id) |
EX int | get_sync_status () |
EX bool | score_loaded (int id) |
EX int | score_default (int id) |
EX void | upload_score (int id, int v) |
EX bool | wrongMode (char flags) |
EX void | achievement_gain_once (const string &s) |
EX void | achievement_log (const char *s, char flags) |
EX void | achievement_init () |
EX string | myname () |
EX void | achievement_close () |
EX void | achievement_gain (const char *s, char flags IS(0)) |
EX void | achievement_collection (eItem it) |
EX void | achievement_count (const string &s, int current, int prev) |
EX void | improve_score (int i, eItem what) |
EX void | achievement_score (int cat, int number) |
EX void | improveItemScores () |
EX void | achievement_final (bool really_final) |
EX void | check_total_victory () |
EX void | achievement_victory (bool hyper) |
EX void | achievement_pump () |
EX string | get_rich_presence_text () |
EX void | achievement_display () |
EX bool | isAscending (int i) |
int | zgmod (int a, int b) |
EX int | tkills () |
EX int | killtypes () |
EX bool | arrow_stuns (eMonster m) |
EX bool | canAttack (cell *c1, eMonster m1, cell *c2, eMonster m2, flagtype flags) |
EX bool | petrify (cell *c, eWall walltype, eMonster m) |
EX void | killIvy (cell *c, eMonster who) |
EX void | prespill (cell *c, eWall t, int rad, cell *from) |
EX void | spillfix (cell *c, eWall t, int rad) |
EX void | spill (cell *c, eWall t, int rad) |
EX void | degradeDemons () |
EX void | stunMonster (cell *c2, eMonster killer, flagtype flags) |
EX bool | attackJustStuns (cell *c2, flagtype f, eMonster attacker) |
EX void | minerEffect (cell *c) |
EX void | killMutantIvy (cell *c, eMonster who) |
EX bignum | ivy_total () |
EX void | killMonster (cell *c, eMonster who, flagtype deathflags IS(0)) |
EX void | fightmessage (eMonster victim, eMonster attacker, bool stun, flagtype flags) |
EX bool | notthateasy (eMonster m) |
EX bool | attackMonster (cell *c, flagtype flags, eMonster killer) |
EX void | pushMonster (const movei &mi) |
EX void | killFriendlyIvy () |
EX bool | monsterPushable (cell *c2) |
EX bool | should_switchplace (cell *c1, cell *c2) |
EX bool | switchplace_prevent (cell *c1, cell *c2, bool checkonly) |
EX void | handle_switchplaces (cell *c1, cell *c2, bool &switchplaces) |
EX bool | flashWouldKill (cell *c, flagtype extra) |
EX vector< cell * > | gun_targets (cell *c) |
EX void | fallMonster (cell *c, flagtype flags IS(0)) |
EX void | killHardcorePlayer (int id, flagtype flags) |
EX void | killThePlayer (eMonster m, int id, flagtype flags) |
EX void | killThePlayerAt (eMonster m, cell *c, flagtype flags) |
template<class T > | |
void | do_swords (cell *mf, cell *mt, eMonster who, const T &f) |
EX void | stabbingAttack (cell *mf, cell *mt, eMonster who, int bonuskill IS(0)) |
EX bool | checkBarriersFront (cellwalker bb, int q IS(5), bool cross IS(false)) |
EX bool | hasbardir (cell *c) |
EX void | preventbarriers (cell *c) |
EX bool | checkBarriersBack (cellwalker bb, int q IS(5), bool cross IS(false)) |
EX bool | warped_version (eLand l1, eLand l2) |
EX bool | checkBarriersNowall (cellwalker bb, int q, int dir, eLand l1 IS(laNone), eLand l2 IS(laNone)) |
EX eWall | getElementalWall (eLand l) |
EX void | setbarrier (cell *c) |
EX void | setland (cell *c, eLand l) |
EX void | extendcheck (cell *c) |
EX bool | mirrorwall (cell *c) |
EX void | extendBarrierFront (cell *c) |
EX void | extendBarrierBack (cell *c) |
EX void | extendNowall (cell *c) |
EX void | extendCR5 (cell *c) |
EX bool | isbar4 (cell *c) |
EX void | extendBarrier (cell *c) |
EX void | buildBarrierForce (cell *c, int d, eLand l) |
EX void | buildBarrier (cell *c, int d, eLand l IS(laNone)) |
EX bool | buildBarrier6 (cellwalker cw, int type) |
EX bool | buildBarrier4 (cell *c, int d, int mode, eLand ll, eLand lr) |
EX void | buildBarrierStrong (cell *c, int d, bool oldleft, eLand newland) |
EX void | buildBarrierStrong (cell *c, int d, bool oldleft) |
EX void | buildCrossroads2 (cell *c) |
EX void | extend3D (cell *c) |
EX bool | buildBarrier3D (cell *c, eLand l2, int forced_dir) |
EX bool | buildBarrierNowall (cell *c, eLand l2, int forced_dir IS(NODIR)) |
int | utfsize (char c) |
EX int | get_sightrange () |
EX int | get_sightrange_ambush () |
bool | eqs (const char *x, const char *y) |
EX int | getnext (const char *s, int &i) |
EX color_t & | qpixel (SDL_Surface *surf, int x, int y) |
void | loadfont (int siz) |
int | textwidth (int siz, const string &str) |
EX int | darkenedby (int c, int lev) |
EX color_t | darkened (color_t c) |
EX color_t | darkena3 (color_t c, int lev, int a) |
EX color_t | darkena (color_t c, int lev, int a) |
EX void | eyewidth_translate (int ed) |
void | reset_projection () |
EX bool | model_needs_depth () |
EX void | setGLProjection (color_t col IS(backcolor)) |
EX int | next_p2 (int a) |
void | sdltogl (SDL_Surface *txt, glfont_t &f, int ch) |
void | init_glfont (int size) |
int | gl_width (int size, const char *s) |
glhr::textured_vertex | charvertex (int x1, int y1, ld tx, ld ty) |
bool | gl_print (int x, int y, int shift, int size, const char *s, color_t color, int align) |
EX void | resetGL () |
EX bool | displaystr (int x, int y, int shift, int size, const char *str, color_t color, int align) |
EX bool | displaystr (int x, int y, int shift, int size, const string &s, color_t color, int align) |
EX bool | displayfrSP (int x, int y, int sh, int b, int size, const string &s, color_t color, int align, int p) |
EX bool | displayfr (int x, int y, int b, int size, const string &s, color_t color, int align) |
EX bool | displaychr (int x, int y, int shift, int size, char chr, color_t col) |
EX void | flashMessages () |
EX string | fullmsg (msginfo &m) |
void | addMessageToLog (msginfo &m, vector< msginfo > &log) |
EX void | clearMessages () |
EX void | addMessage (string s, char spamtype) |
EX color_t | colormix (color_t a, color_t b, color_t c) |
EX int | rhypot (int a, int b) |
EX ld | realradius () |
EX void | drawmessage (const string &s, int &y, color_t col) |
EX void | drawmessages () |
EX color_t | gradient (color_t c0, color_t c1, ld v0, ld v, ld v1) |
EX void | drawCircle (int x, int y, int size, color_t color, color_t fillcolor IS(0)) |
EX void | displayButton (int x, int y, const string &name, int key, int align, int rad IS(0)) |
EX void | displaymm (char c, int x, int y, int rad, int size, const string &title, int align) |
EX bool | displayButtonS (int x, int y, const string &name, color_t col, int align, int size) |
EX void | displayColorButton (int x, int y, const string &name, int key, int align, int rad, color_t color, color_t color2 IS(0)) |
ld | textscale () |
EX void | do_setfsize () |
EX void | disable_vsync () |
EX void | setvideomode () |
EX void | initgraph () |
EX void | cleargraph () |
EX int | calcfps () |
EX int | newRoundTableRadius () |
EX int | getAnthraxData (cell *c, bool b) |
EX int | roundTableRadius (cell *c) |
EX int | celldistAltRelative (cell *c) |
EX gp::loc | camelot_coords () |
EX int | euclidAlt (short x, short y) |
EX int | cylinder_alt (cell *c) |
EX int | compassDist (cell *c) |
EX cell * | findcompass (cell *c) |
EX bool | grailWasFound (cell *c) |
EX int | default_levs () |
EX int | hrandom_adjacent (int d) |
EX heptagon * | createAlternateMap (cell *c, int rad, hstate firststate, int special IS(0)) |
EX void | beCIsland (cell *c) |
EX void | generateTreasureIsland (cell *c) |
EX cell * | buildAnotherEquidistant (cell *c, int radius) |
EX void | buildAnotherEquidistant (cell *c) |
EX int | coastval (cell *c, eLand base) |
EX bool | checkInTree (cell *c, int maxv) |
EX void | buildEquidistant (cell *c) |
EX cell * | randomDown (cell *c) |
EX int | edgeDepth (cell *c) |
EX int | getHauntedDepth (cell *c) |
EX int | towerval (cell *c, const cellfunction &cf) |
EX void | setLandWeird (cell *c) |
EX void | setLandQuotient (cell *c) |
EX void | elementalXY (cell *c, int x, int y, bool make_wall) |
EX void | setLandSphere (cell *c) |
EX eLand & | get_euland (int c) |
EX void | clear_euland (eLand first) |
bool | valid_wall_at (int c) |
EX eLand | switchable (eLand nearland, eLand farland, int c) |
EX eLand | getEuclidLand (int c) |
EX void | setLandSol (cell *c) |
EX void | setLandHybrid (cell *c) |
EX void | setLandNil (cell *c) |
EX void | setLandEuclid (cell *c) |
EX eLand | get_euland3 (int x) |
EX void | set_euland3 (cell *c, int co10, int co11, int alt, int hash) |
EX bool | quickfind (eLand l) |
EX int | wallchance (cell *c, bool deepOcean) |
EX bool | horo_ok () |
EX bool | gp_wall_test () |
EX bool | deep_ocean_at (cell *c, cell *from) |
EX bool | good_for_wall (cell *c) |
EX bool | walls_not_implemented () |
EX void | buildBigStuff (cell *c, cell *from) |
EX bool | openplains (cell *c) |
EX void | buildCamelotWall (cell *c) |
EX bool | no_barriers_in_radius (cell *c, int rad) |
EX eMonster | camelot_monster () |
EX void | buildCamelot (cell *c) |
EX int | masterAlt (cell *c) |
EX int | temple_layer_size () |
EX int | horo_gen_distance () |
EX void | moreBigStuff (cell *c) |
EX void | generate_mines () |
EX void | pregen () |
EX void | set_blizzard_frame (cell *c, int frameid) |
EX blizzardcell * | getbcell (cell *c) |
EX void | drawBlizzards () |
EX void | drawArrowTraps () |
void | clearfrom (heptagon *) |
void | verifycells (heptagon *) |
EX int | dirdiff (int dd, int t) |
EX cell * | newCell (int type, heptagon *master) |
EX hrmap * | newAltMap (heptagon *o) |
EX heptagon * | hyperbolic_origin () |
EX cell * | createMov (cell *c, int d) |
EX void | eumerge (cell *c1, int s1, cell *c2, int s2, bool mirror) |
EX void | initcells () |
EX void | clearcell (cell *c) |
template<class T > | |
void | subcell (cell *c, const T &t) |
EX void | clearHexes (heptagon *at) |
void | unlink_cdata (heptagon *h) |
EX void | clear_heptagon (heptagon *at) |
EX void | verifycell (cell *c) |
EX int | compdist (int dx[]) |
EX int | celldist (cell *c) |
EX int | celldistAlt (cell *c) |
EX int | updir (heptagon *h) |
EX int | updir_alt (heptagon *h) |
EX bool | randpattern (cell *c, int rval) |
EX string | describeRPM (eLand l) |
EX int | randpatternCode (cell *c, int rval) |
EX void | clearMemoRPM () |
EX bool | randpatternMajority (cell *c, int ival, int iterations) |
EX bool | geometry_supports_cdata () |
void | affect (cdata &d, short rv, signed char signum) |
void | setHeptagonRval (heptagon *h) |
EX bool | dmeq (int a, int b) |
cdata * | getHeptagonCdata_legacy (heptagon *h) |
cdata * | getHeptagonCdata (heptagon *h) |
cdata * | getEuclidCdata (gp::loc h) |
int | ld_to_int (ld x) |
EX gp::loc | pseudocoords (cell *c) |
EX cdata * | arcmCdata (cell *c) |
EX int | getCdata (cell *c, int j) |
EX int | getBits (cell *c) |
EX cell * | heptatdir (cell *c, int d) |
EX int | heptdistance (heptagon *h1, heptagon *h2) |
EX int | heptdistance (cell *c1, cell *c2) |
EX void | compute_saved_distances (cell *c1, int max_range, int climit) |
EX void | permanent_long_distances (cell *c1) |
EX void | erase_saved_distances () |
EX int | max_saved_distance (cell *c) |
EX cell * | random_in_distance (cell *c, int d) |
EX int | bounded_celldistance (cell *c1, cell *c2) |
EX int | clueless_celldistance (cell *c1, cell *c2) |
EX int | celldistance (cell *c1, cell *c2) |
EX vector< cell * > | build_shortest_path (cell *c1, cell *c2) |
EX void | clearCellMemory () |
EX bool | isNeighbor (cell *c1, cell *c2) |
EX bool | isNeighborCM (cell *c1, cell *c2) |
EX int | neighborId (cell *ofWhat, cell *whichOne) |
EX bool | geometry_has_alt_mine_rule () |
EX vector< cell * > | adj_minefield_cells (cell *c) |
EX vector< int > | reverse_directions (cell *c, int dir) |
EX vector< int > | reverse_directions (heptagon *c, int dir) |
EX bool | standard_tiling () |
EX int | valence () |
int | coastvalEdge (cell *c) |
void | drawcell (cell *c, const transmatrix &V) |
void | eclectic_red (color_t &col) |
EX color_t | w_monochromatize (color_t x, int d) |
EX bool | pureHardcore () |
EX bool | hasSafeOrb (cell *c) |
EX bool | krakensafe (cell *c) |
EX bool | monstersnear (stalemate1 &sm) |
EX bool | monstersnear2 () |
EX bool | monstersnear (cell *c, eMonster who, cell *pushto, cell *comefrom) |
EX bool | onboat (stalemate1 &sm) |
EX bool | multimove () |
EX bool | swordConflict (const stalemate1 &sm1, const stalemate1 &sm2) |
EX void | checkmove () |
EX void | initializeCLI () |
float & | HEAT (cell *c) |
EX void | livecaves () |
bool | barrierhept (cell *c) |
template<class T , class U , class V > | |
void | addsaver (T &i, U name, V dft) |
template<class T > | |
void | addsaver (T &i, string name) |
template<class T , class U > | |
void | addsaverenum (T &i, U name, T dft) |
template<class T , class U > | |
void | addsaverenum (T &i, U name) |
void | addparam (ld &val, const string s) |
EX charstyle & | getcs (int id IS(multi::cpid)) |
EX void | hread (hstream &hs, charstyle &cs) |
EX void | hwrite (hstream &hs, const charstyle &cs) |
EX string | csnameid (int id) |
EX string | csname (charstyle &cs) |
EX int | playergender () |
EX int | princessgender () |
EX int | lang () |
EX void | addsaver (charstyle &cs, string s) |
EX void | initcs (charstyle &cs) |
EX void | savecolortable (colortable &ct, string name) |
EX void | initConfig () |
EX bool | inSpecialMode () |
EX bool | have_current_settings () |
EX bool | have_current_graph_settings () |
EX void | reset_graph_settings () |
EX void | resetModes (char leave IS('c')) |
EX void | resetConfig () |
EX void | saveConfig () |
void | readf (FILE *f, ld &x) |
EX void | parseline (const string &str) |
EX void | loadNewConfig (FILE *f) |
EX void | loadConfig () |
EX void | add_cells_drawn (char c IS('C')) |
string | solhelp () |
EX void | edit_sightrange () |
EX void | menuitem_sightrange (char c IS('c')) |
EX void | showSpecialEffects () |
EX void | showGraphConfig () |
EX void | switchFullscreen () |
EX void | switchGL () |
EX void | edit_whatever (char type, int index) |
EX void | configureOther () |
EX void | configureInterface () |
EX void | showJoyConfig () |
EX void | projectionDialog () |
EX void | explain_detail () |
EX void | add_edit_fov (char key IS('f')) |
bool | supported_ods () |
EX void | showStereo () |
EX void | config_camera_rotation () |
EX void | add_edit_wall_quality (char c) |
EX void | edit_levellines (char c) |
EX void | show3D () |
EX void | switchcolor (unsigned int &c, unsigned int *cs) |
EX void | showCustomizeChar () |
EX void | refresh_canvas () |
EX void | edit_color_table (colortable &ct, const reaction_t &r IS(reaction_t()), bool has_bit IS(false)) |
EX void | show_color_dialog () |
EX void | resetConfigMenu () |
EX void | selectLanguageScreen () |
EX void | configureMouse () |
EX void | showSettings () |
EX int | read_color_args () |
EX int | read_config_args () |
EX int | read_gamemode_args () |
EX bool | mouseout () |
EX bool | mouseout2 () |
EX movedir | vectodir (hyperpoint P) |
EX void | remission () |
EX hyperpoint | move_destination_vec (int d) |
EX void | movepckeydir (int d) |
EX void | calcMousedest () |
EX void | mousemovement () |
EX void | initJoysticks () |
EX void | closeJoysticks () |
EX void | checkjoy () |
EX void | checkpanjoy (double t) |
EX bool | doexiton (int sym, int uni) |
transmatrix | zforward_push (ld z) |
EX void | handlePanning (int sym, int uni) |
EX void | handleKeyNormal (int sym, int uni) |
EX void | fix_mouseh () |
EX void | handlekey (int sym, int uni) |
EX void | resize_screen_to (int x, int y) |
EX void | mainloopiter () |
EX void | handle_event (SDL_Event &ev) |
EX void | mainloop () |
EX bool | interpret_as_direction (int sym, int uni) |
EX int | get_direction_key (int sym, int uni) |
EX bool | gmodekeys (int sym, int uni) |
EX bool | haveMobileCompass () |
EX bool | handleCompass () |
template<class... T> | |
void | limitgen (T... args) |
EX cell * | pathTowards (cell *pf, cell *pt) |
EX void | describeCell (cell *c) |
eItem | nextOrb () |
eItem | randomTreasure () |
eItem | randomTreasure2 (int cv) |
EX void | cheatMoveTo (eLand l) |
EX bool | applyCheat (char u, cell *c IS(NULL)) |
template<class T > | |
string | dnameof2 (T x) |
template<class T > | |
string | dnameof2 (T x, int p) |
template<class T > | |
void | bitfield_editor (int val, T setter, string help="") |
EX void | push_debug_screen () |
EX void | showCheatMenu () |
EX void | viewall () |
EX void | modalDebug (cell *c) |
void | test_distances (int max) |
EX void | raiseBuggyGeneration (cell *c, const char *s) |
int | read_cheat_args () |
EX void | breakhere () |
EX unsigned char & | part (color_t &col, int i) |
EX void | glflush () |
void | add1 (const hyperpoint &H) |
bool | is_behind (const hyperpoint &H) |
hyperpoint | be_just_on_view (const hyperpoint &H1, const hyperpoint &H2) |
bool | nif_error_in (ld x1, ld y1, ld x2, ld y2) |
EX bool | two_sided_model () |
EX int | get_side (const hyperpoint &H) |
EX bool | correct_side (const hyperpoint &H) |
void | fixpoint (glvertex &hscr, hyperpoint H) |
void | addpoint (const hyperpoint &H) |
void | coords_to_poly () |
void | addpoly (const transmatrix &V, const vector< glvertex > &tab, int ofs, int cnt) |
void | aapolylineColor (SDL_Surface *s, int *x, int *y, int polyi, color_t col) |
void | polylineColor (SDL_Surface *s, int *x, int *y, int polyi, color_t col) |
EX void | filledPolygonColorI (SDL_Surface *s, int *px, int *py, int polyi, color_t col) |
void | drawTexturedTriangle (SDL_Surface *s, int *px, int *py, glvertex *tv, color_t col) |
EX ld | scale_at (const transmatrix &T) |
EX ld | linewidthat (const hyperpoint &h) |
EX void | set_width (ld w) |
ld | glhypot2 (glvertex a, glvertex b) |
void | compute_side_by_centerin (dqi_poly *p, bool &nofill) |
void | compute_side_by_area () |
ld | get_width (dqi_poly *p) |
void | debug_this () |
EX void | prettypoint (const hyperpoint &h) |
EX void | prettylinesub (const hyperpoint &h1, const hyperpoint &h2, int lev) |
EX void | prettyline (hyperpoint h1, hyperpoint h2, color_t col, int lev, int flags, PPR prio) |
EX void | prettypoly (const vector< hyperpoint > &t, color_t fillcol, color_t linecol, int lev) |
EX void | queuereset (eModel m, PPR prio) |
EX void | initquickqueue () |
EX void | sortquickqueue () |
EX void | quickqueue () |
ld | xintval (const hyperpoint &h) |
color_t | darken_color (color_t &color, bool outline) |
EX void | sort_drawqueue () |
EX void | reverse_priority (PPR p) |
EX void | reverse_side_priorities () |
EX void | draw_backside () |
EX void | reverse_transparent_walls () |
EX void | draw_main () |
EX void | drawqueue () |
template<class T , class... U> | |
T & | queuea (PPR prio, U... u) |
EX void | apply_neon (color_t &col, int &r) |
EX color_t | magentize (color_t x) |
EX color_t | monochromatize (color_t x) |
EX dqi_poly & | queuepolyat (const transmatrix &V, const hpcshape &h, color_t col, PPR prio) |
void | addfloats (vector< GLfloat > &v, hyperpoint h) |
EX dqi_poly & | queuetable (const transmatrix &V, const vector< glvertex > &f, int cnt, color_t linecol, color_t fillcol, PPR prio) |
EX dqi_poly & | queuepoly (const transmatrix &V, const hpcshape &h, color_t col) |
void | queuepolyb (const transmatrix &V, const hpcshape &h, color_t col, int b) |
EX void | curvepoint (const hyperpoint &H1) |
EX dqi_poly & | queuecurve (color_t linecol, color_t fillcol, PPR prio) |
EX dqi_action & | queueaction (PPR prio, const reaction_t &action) |
EX dqi_line & | queueline (const hyperpoint &H1, const hyperpoint &H2, color_t col, int prf IS(0), PPR prio IS(PPR::LINE)) |
EX void | queuestr (int x, int y, int shift, int size, string str, color_t col, int frame IS(0), int align IS(8)) |
EX void | queuecircle (int x, int y, int size, color_t color, PPR prio IS(PPR::CIRCLE), color_t fillcolor IS(0)) |
EX void | getcoord0 (const hyperpoint &h, int &xc, int &yc, int &sc) |
EX ld | scale_in_pixels (const transmatrix &V) |
EX bool | getcoord0_checked (const hyperpoint &h, int &xc, int &yc, int &zc) |
EX void | queuestr (const hyperpoint &h, int size, const string &chr, color_t col, int frame IS(0)) |
EX void | queuestr (const transmatrix &V, double size, const string &chr, color_t col, int frame IS(0), int align IS(8)) |
EX void | queuestrn (const transmatrix &V, double size, const string &chr, color_t col, int frame IS(0), int align IS(8)) |
EX void | queuecircle (const transmatrix &V, double size, color_t col) |
EX int | gamerange () |
EX void | onpath (cell *c, int d) |
EX void | onpath (cell *c, int d, int sp) |
EX void | clear_pathdata () |
EX void | compute_graphical_distance () |
EX void | computePathdist (eMonster param) |
EX void | bfs () |
EX void | moverefresh (bool turn IS(true)) |
EX void | settemp (cell *c) |
EX void | findWormIvy (cell *c) |
EX void | monstersTurn () |
EX gp::loc | euc2_coordinates (cell *c) |
int | subtype (cell *c) |
void | canonicize (vector< int > &t) |
template<class T , class U > | |
vector< int > | get_children_codes (cell *c, const T &distfun, const U &typefun) |
template<class T > | |
int | size_upto (vector< T > &v, int s) |
EX int | type_in (expansion_analyzer &ea, cell *c, const cellfunction &f) |
int | type_in_quick (expansion_analyzer &ea, cell *c, const cellfunction &f) |
EX bool | sizes_known () |
EX bool | trees_known () |
bool | mod_allowed () |
EX int | curr_dist (cell *c) |
EX int | type_in_reduced (expansion_analyzer &ea, cell *c, const cellfunction &f) |
EX int | parent_id (cell *c, int which, const cellfunction &cf) |
EX void | generate_around (cell *c) |
color_t | distribute_color (int id) |
EX void | viewdist_configure_dialog () |
bool | is_descendant (cell *c) |
EX void | enable_viewdists () |
bool | expansion_handleKey (int sym, int uni) |
void | compute_coefficients () |
int | expansion_readArgs () |
EX void | set_sibling_limit () |
int | celldist0 (cell *c) |
bool | in_segment (cell *left, cell *mid, cell *right) |
int | sibling_distance (cell *a, cell *b, int limit) |
EX int | hyperbolic_celldistance (cell *c1, cell *c2) |
transmatrix | getOrientation () |
void | playSound (cell *c, const string &fname, int vol) |
int | gdpop () |
bool | rawdisplaystr (int x, int y, int shift, int size, const char *str, int color, int align) |
bool | currentlyConnecting () |
bool | currentlyConnected () |
void | viewAchievements () |
void | viewLeaderboard (string id) |
void | switchGoogleConnection () |
void | shareScore (int) |
void | openURL () |
EX int | currfp_gmul (int a, int b) |
EX int | currfp_inverses (int i) |
EX int | currfp_distwall (int i) |
EX int | currfp_n () |
EX int | currfp_get_R () |
EX int | currfp_get_P () |
EX int | currfp_get_X () |
EX void | hread_fpattern (hstream &hs, fieldpattern::fpattern &fp) |
EX void | hwrite_fpattern (hstream &hs, fieldpattern::fpattern &fp) |
const flagtype & | classflag (eItem it) |
const flagtype & | classflag (eWall w) |
const flagtype & | classflag (eMonster m) |
const flagtype & | classflag (eLand l) |
MONFLAGCHECK (isAngryBird,(flag &CF_BIRD) &&!(flag &CF_FRIENDLY)) eMonster movegroup(eMonster m) | |
EX bool | boatStrandable (cell *c) |
EX bool | isFireOrMagma (cell *w) |
EX int | mirrorcolor (bool mirrored) |
EX bool | isMounted (cell *c) |
EX int | itemclass (eItem it) |
EX bool | isFriendly (eMonster m) |
EX bool | isFriendly (cell *c) |
EX bool | isFriendlyOrBug (cell *c) |
EX bool | cellUnstable (cell *c) |
EX bool | cellUnstableOrChasm (cell *c) |
EX eMonster | elementalOf (eLand l) |
EX eItem | localshardof (eLand l) |
EX int | snakelevel (cell *c) |
EX eSlimegroup | slimegroup (cell *c) |
EX bool | isFlying (eMonster m) |
EX bool | survivesChasm (eMonster m) |
EX bool | ignoresPlates (eMonster m) |
EX bool | isInactiveEnemy (cell *w, eMonster forwho) |
EX bool | isActiveEnemy (cell *w, eMonster forwho) |
EX bool | isArmedEnemy (cell *w, eMonster forwho) |
EX bool | eternalFire (cell *c) |
EX bool | haveRangedOrb () |
EX bool | isFriendlyGhost (eMonster m) |
EX bool | isGhostAether (eMonster m) |
EX bool | survivesWater (eMonster m) |
EX bool | survivesPoison (eMonster m, eWall p) |
EX bool | isPermanentFlying (eMonster m) |
EX bool | survivesFire (eMonster m) |
EX bool | survivesWall (eMonster m) |
EX bool | survivesThorns (eMonster m) |
EX bool | survivesFall (eMonster m) |
EX bool | checkOrb (eMonster m1, eItem orb) |
EX bool | checkOrb2 (eMonster m1, eItem orb) |
EX bool | ignoresSmell (eMonster m) |
EX bool | highwall (cell *c) |
EX int | chasmgraph (cell *c) |
EX bool | conegraph (cell *c) |
EX eItem | frog_power (eMonster m) |
EX bool | hornStuns (cell *c) |
EX bool | do_not_touch_this_wall (cell *c) |
EX bool | is_paired (eMonster m) |
mesher | msh (eGeometry g, int sym, ld main, ld v0, ld v1, ld bspi, ld scale) |
matrixitem | genitem (const transmatrix &m1, const transmatrix &m2, int nsym) |
bool | do_kleinize () |
EX hyperpoint | kleinize (hyperpoint h) |
void | addmatrix (matrixlist &matrices, hyperpoint o0, hyperpoint o1, hyperpoint o2, hyperpoint n0, hyperpoint n1, hyperpoint n2, int d, int osym, int nsym) |
void | generate_matrices (matrixlist &matrices, const mesher &o, const mesher &n) |
void | generate_matrices_scale (ld scale, int noft) |
template<class T > | |
void | sizeto (T &t, int n) |
EX void | set_no_floor () |
EX void | set_floor (floorshape &sh) |
EX void | set_floor (hpcshape &sh) |
EX void | set_floor (const transmatrix &spin, hpcshape &sh) |
EX int | shvid (cell *c) |
EX struct dqi_poly * | draw_shapevec (cell *c, const transmatrix &V, const vector< hpcshape > &shv, color_t col, PPR prio IS(PPR::DEFAULT)) |
EX void | draw_floorshape (cell *c, const transmatrix &V, const floorshape &fsh, color_t col, PPR prio IS(PPR::DEFAULT)) |
EX void | draw_qfi (cell *c, const transmatrix &V, color_t col, PPR prio IS(PPR::DEFAULT), vector< hpcshape > floorshape::*tab IS(&floorshape::b)) |
EX void | viewmat () |
void | draw_shape_for_texture (floorshape *sh) |
EX void | ensure_vertex_number (basic_textureinfo &bti, int qty) |
EX void | ensure_vertex_number (hpcshape &sh) |
EX void | bind_floor_texture (hpcshape &li, int id) |
EX void | make_floor_textures () |
EX void | shrand (int i) |
EX int | hrandpos () |
EX int | hrand (int i) |
template<class T , class... U> | |
T | pick (T x, U... u) |
template<class T > | |
void | hrandom_shuffle (T *x, int n) |
template<class T > | |
void | hrandom_shuffle (T &container) |
template<class U > | |
auto | hrand_elt (U &container) -> decltype(container[0]) |
template<class T , class U > | |
T | hrand_elt (U &container, T default_value) |
EX vector< int > | hrandom_permutation (int qty) |
EX ld | hrandf () |
EX int | hrandstate () |
EX bool | isChild (cell *w, cell *killed) |
EX eMonster | active_switch () |
EX int | getDistLimit () |
EX void | activateFlashFrom (cell *cf, eMonster who, flagtype flags) |
EX bool | saved_tortoise_on (cell *c) |
EX bool | normal_gravity_at (cell *c) |
EX int | countMyGolems (eMonster m) |
EX int | savePrincesses () |
EX int | countMyGolemsHP (eMonster m) |
EX void | restoreGolems (int qty, eMonster m, int hp IS(0)) |
EX bool | activateRecall () |
EX void | saveRecall (cellwalker cw2) |
EX void | activateSafety (eLand l) |
EX void | placeGolem (cell *on, cell *moveto, eMonster m) |
EX bool | multiRevival (cell *on, cell *moveto) |
EX void | checkSwitch () |
EX void | pushThumper (const movei &mi) |
EX bool | canPushThumperOn (cell *tgt, cell *thumper, cell *player) |
EX void | activateActiv (cell *c, bool msg) |
EX void | fixWormBug (cell *c) |
EX bool | isWormhead (eMonster m) |
EX cell * | worm_tohead (cell *c) |
EX cell * | wormhead (cell *c) |
EX bool | sameMonster (cell *c1, cell *c2) |
EX eMonster | haveMount () |
EX eMonster | otherpole (eMonster m) |
void | showQuotientConfig () |
void | validity_info () |
void | ge_land_selection () |
bool | forced_quotient () |
void | ge_select_filter () |
void | set_default_filter () |
void | set_or_configure_geometry (eGeometry g) |
bool | same_tiling (eGeometry g2) |
void | ge_select_tiling () |
EX string | current_proj_name () |
EX string | dim_name () |
EX void | showQuotientConfig3 () |
EX string | geometry_name () |
EX void | select_quotient_screen () |
EX void | select_quotient () |
EX string | full_geometry_name () |
EX void | showEuclideanMenu () |
EX void | runGeometryExperiments () |
eGeometry | readGeo (const string &ss) |
int | read_geom_args () |
EX bool | scale_used () |
EX transmatrix | xspinpush (ld dir, ld dist) |
EX void | check_cgi () |
void | clear_cgis () |
transmatrix & | ggmatrix (cell *c) |
EX void | fixelliptic (transmatrix &at) |
EX void | fixelliptic (hyperpoint &h) |
EX transmatrix | relative_matrix_recursive (heptagon *h2, heptagon *h1) |
EX transmatrix | master_relative (cell *c, bool get_inverse IS(false)) |
EX transmatrix | calc_relative_matrix (cell *c2, cell *c1, const hyperpoint &hint) |
template<class T , class U > | |
void | virtualRebase_cell (cell *&base, T &at, const U &check) |
template<class T , class U > | |
void | virtualRebase (cell *&base, T &at, const U &check) |
EX void | virtualRebase (cell *&base, transmatrix &at) |
EX void | virtualRebase (cell *&base, hyperpoint &h) |
EX bool | no_easy_spin () |
EX transmatrix | ddspin (cell *c, int d, ld bonus IS(0)) |
EX transmatrix | iddspin (cell *c, int d, ld bonus IS(0)) |
EX ld | cellgfxdist (cell *c, int d) |
EX transmatrix | ddspin_side (cell *c, int d, ld bonus IS(0)) |
EX transmatrix | iddspin_side (cell *c, int d, ld bonus IS(0)) |
int | neighborId (heptagon *h1, heptagon *h2) |
EX double | randd () |
EX hyperpoint | randomPointIn (int t) |
EX hyperpoint | get_corner_position (cell *c, int cid, ld cf IS(3)) |
EX hyperpoint | nearcorner (cell *c, int i) |
EX hyperpoint | farcorner (cell *c, int i, int which) |
EX hyperpoint | midcorner (cell *c, int i, ld v) |
EX hyperpoint | get_warp_corner (cell *c, int cid) |
EX void | glError (const char *GLcall, const char *file, const int line) |
EX void | texture_vertices (GLfloat *f, int qty, int stride IS(2)) |
EX void | oldvertices (GLfloat *f, int qty) |
EX bool | in_wallopt () |
EX bool | in_perspective () |
EX bool | hide_player () |
EX ld | ptick (int period, ld phase IS(0)) |
EX ld | fractick (int period, ld phase IS(0)) |
EX ld | sintick (int period, ld phase IS(0)) |
EX transmatrix | spintick (int period, ld phase IS(0)) |
EX bool | doHighlight () |
ld | spina (cell *c, int dir) |
EX int | cloakcolor (int rtr) |
int | firegradient (double p) |
EX int | firecolor (int phase IS(0), int mul IS(1)) |
EX int | watercolor (int phase) |
EX int | aircolor (int phase) |
EX int | fghostcolor (cell *c) |
EX int | weakfirecolor (int phase) |
color_t | fc (int ph, color_t col, int z) |
EX void | drawLightning () |
EX void | drawSafety () |
void | drawShield (const transmatrix &V, eItem it) |
void | drawSpeed (const transmatrix &V) |
void | drawSafety (const transmatrix &V, int ct) |
void | drawFlash (const transmatrix &V) |
EX ld | cheilevel (ld v) |
EX transmatrix | chei (const transmatrix V, int a, int b) |
void | drawLove (const transmatrix &V, int hdir) |
void | drawWinter (const transmatrix &V, ld hdir) |
void | drawLightning (const transmatrix &V) |
EX void | drawPlayerEffects (const transmatrix &V, cell *c, bool onplayer) |
void | drawStunStars (const transmatrix &V, int t) |
double | footfun (double d) |
void | animallegs (const transmatrix &V, eMonster mo, color_t col, double footphase) |
EX void | ShadowV (const transmatrix &V, const hpcshape &bp, PPR prio IS(PPR::MONSTER_SHADOW)) |
transmatrix | otherbodyparts (const transmatrix &V, color_t col, eMonster who, double footphase) |
EX bool | drawstar (cell *c) |
EX bool | drawing_usershape_on (cell *c, mapeditor::eShapegroup sg) |
EX color_t | kind_outline (eItem it) |
EX transmatrix | face_the_player (const transmatrix V) |
EX hpcshape & | orbshape (eOrbshape s) |
EX color_t | orb_auxiliary_color (eItem it) |
EX bool | drawItemType (eItem it, cell *c, const transmatrix &V, color_t icol, int pticks, bool hidden) |
void | humanoid_eyes (const transmatrix &V, color_t ecol, color_t hcol=skincolor) |
EX void | drawTerraWarrior (const transmatrix &V, int t, int hp, double footphase) |
EX void | drawPlayer (eMonster m, cell *where, const transmatrix &V, color_t col, double footphase, bool stop IS(false)) |
EX int | wingphase (int period, int phase IS(0)) |
transmatrix | wingmatrix (int period, int phase=0) |
void | drawMimic (eMonster m, cell *where, const transmatrix &V, color_t col, double footphase) |
EX bool | drawMonsterType (eMonster m, cell *where, const transmatrix &V1, color_t col, double footphase, color_t asciicol) |
bool | drawMonsterTypeDH (eMonster m, cell *where, const transmatrix &V, color_t col, bool dh, ld footphase, color_t asciicol) |
EX bool | applyAnimation (cell *c, transmatrix &V, double &footphase, int layer) |
double | chainAngle (cell *c, transmatrix &V, cell *c2, double dft, const transmatrix &Vwhere) |
bool | chainAnimation (cell *c, cell *c2, transmatrix &V, const transmatrix &Vwhere, ld &length) |
EX int | cellcolor (cell *c) |
int | taildist (cell *c) |
void | add_segment (int d, const function< void()> &s) |
void | drawWormSegments () |
EX bool | drawMonster (const transmatrix &Vparam, int ct, cell *c, color_t col, color_t asciicol) |
EX int | haveaura () |
EX void | clearaura () |
void | apply_joukowsky_aura (hyperpoint &h) |
EX void | addauraspecial (hyperpoint h, color_t col, int dir) |
EX void | addaura (hyperpoint h, color_t col, int fd) |
void | sumaura (int v) |
void | drawaura () |
bool | bugsNearby (cell *c, int dist=2) |
EX int | countMinesAround (cell *c) |
EX transmatrix | applyPatterndir (cell *c, const patterns::patterninfo &si) |
EX transmatrix | applyDowndir (cell *c, const cellfunction &cf) |
void | draw_movement_arrows (cell *c, const transmatrix &V, int df) |
EX int | celldistAltPlus (cell *c) |
bool | drawstaratvec (double dx, double dy) |
EX color_t | reptilecolor (cell *c) |
ld | wavefun (ld x) |
EX void | init_floorcolors () |
EX color_t | magma_color (int id) |
bool | noAdjacentChasms (cell *c) |
EX bool | has_nice_dual () |
EX bool | is_nice_dual (cell *c) |
EX bool | use_swapped_duals () |
EX void | floorShadow (cell *c, const transmatrix &V, color_t col) |
EX bool | use_warp_graphics () |
EX void | escherSidewall (cell *c, int sidepar, const transmatrix &V, color_t col) |
EX bool | placeSidewall (cell *c, int i, int sidepar, const transmatrix &V, color_t col) |
bool | openorsafe (cell *c) |
EX int | gridcolor (cell *c1, cell *c2) |
EX void | pushdown (cell *c, int &q, const transmatrix &V, double down, bool rezoom, bool repriority) |
EX int | shallow (cell *c) |
bool | allemptynear (cell *c) |
EX int | getfd (cell *c) |
EX int | colorhash (color_t i) |
EX bool | isWall3 (cell *c, color_t &wcol) |
EX bool | isWall3 (cell *c) |
EX bool | isSulphuric (eWall w) |
color_t | lcolor (cell *c) |
EX color_t | transcolor (cell *c, cell *c2, color_t wcol) |
EX int | get_darkval (cell *c, int d) |
EX ld | mousedist (transmatrix T) |
void | make_clipping_planes () |
EX void | gridline (const transmatrix &V1, const hyperpoint h1, const transmatrix &V2, const hyperpoint h2, color_t col, int prec) |
EX void | gridline (const transmatrix &V, const hyperpoint h1, const hyperpoint h2, color_t col, int prec) |
EX int | wall_offset (cell *c) |
EX void | queue_transparent_wall (const transmatrix &V, hpcshape &sh, color_t color) |
EX int | ceiling_category (cell *c) |
EX void | set_detail_level (const transmatrix &V) |
EX void | drawBubble (cell *c, color_t col, string s, ld size) |
EX void | drawFlash (cell *c) |
EX void | drawBigFlash (cell *c) |
EX void | drawParticleSpeed (cell *c, color_t col, int speed) |
EX void | drawParticle (cell *c, color_t col, int maxspeed IS(100)) |
EX void | drawDirectionalParticle (cell *c, int dir, color_t col, int maxspeed IS(100)) |
EX void | drawParticles (cell *c, color_t col, int qty, int maxspeed IS(100)) |
EX void | drawFireParticles (cell *c, int qty, int maxspeed IS(100)) |
EX void | fallingFloorAnimation (cell *c, eWall w IS(waNone), eMonster m IS(moNone)) |
EX void | fallingMonsterAnimation (cell *c, eMonster m, int id IS(multi::cpid)) |
EX void | queuecircleat1 (cell *c, const transmatrix &V, double rad, color_t col) |
EX void | queuecircleat (cell *c, double rad, color_t col) |
EX cell * | forwardcell () |
EX void | drawMarkers () |
void | drawFlashes () |
EX void | draw_flash (struct flashdata &f, const transmatrix &V, bool &kill) |
EX bool | allowIncreasedSight () |
EX bool | allowChangeRange () |
EX ld | wall_radar (cell *c, transmatrix T, transmatrix LPe, ld max) |
EX void | make_actual_view () |
EX transmatrix | cview () |
EX void | precise_mouseover () |
EX void | drawthemap () |
EX void | drawmovestar (double dx, double dy) |
EX void | calcparam () |
EX void | drawfullmap () |
EX void | gamescreen (int _darken) |
EX void | normalscreen () |
template<class T > | |
void | pushScreen (const T &x) |
void | popScreen () |
void | popScreenAll () |
EX cfunction | current_screen_cfunction () |
EX void | drawscreen () |
EX void | restartGraph () |
EX void | clearAnimations () |
EX int | revhint (cell *c, int hint) |
EX transmatrix | adj (const movei &m) |
EX transmatrix | iadj (const movei &m) |
EX void | animateMovement (const movei &m, int layer) |
EX void | animateAttack (const movei &m, int layer) |
EX void | indAnimateMovement (const movei &m, int layer) |
EX void | commitAnimations (int layer) |
EX void | drawBug (const cellwalker &cw, color_t col) |
EX bool | inscreenrange (cell *c) |
void | buildHelpText () |
EX string | standard_help () |
EX void | buildCredits () |
string | pushtext (stringpar p) |
string | princedesc () |
EX string | helptitle (string s, color_t col) |
string | princessReviveHelp () |
void | describeOrb (string &help, const orbinfo &oi) |
string | other_geometry () |
string | other_land () |
string | other_geometry_land () |
string | forbidden_marked () |
string | forbidden_unmarked () |
EX string | generateHelpForItem (eItem it) |
void | addMinefieldExplanation (string &s) |
EX string | generateHelpForWall (eWall w) |
void | buteol (string &s, int current, int req) |
EX string | generateHelpForMonster (eMonster m) |
void | add_reqs (eLand l, string &s) |
EX string | generateHelpForLand (eLand l) |
string | turnstring (int i) |
EX string | bygen (reaction_t h) |
void | gotoHelpFor (eLand l) |
void | gotoHelpFor (eItem i) |
void | gotoHelpFor (eWall w) |
void | gotoHelpFor (eMonster m) |
EX void | appendHelp (string s) |
EX void | describeMouseover () |
EX void | showHelp () |
EX void | gotoHelp (const string &h) |
EX void | subhelp (const string &h) |
EX hstate | transition (hstate s, int dir) |
EX heptagon * | buildHeptagon1 (heptagon *h, heptagon *parent, int d, hstate s, int pard IS(0)) |
heptagon * | buildHeptagon (heptagon *parent, int d, hstate s, int pard=0, int fixdistance=COMPUTE) |
void | addSpin (heptagon *h, int d, heptagon *from, int rot, int spin) |
heptagon * | createStep (heptagon *h, int d) |
void | backtrace (heptagon *pos) |
void | hsshow (const heptspin &t) |
EX string | its (int i) |
EX string | itsh8 (int i) |
EX string | fts (ld x, int prec IS(6)) |
EX string | index_pointer (void *v) |
string | ONOFF (bool b) |
template<class T > | |
void | hwrite_raw (hstream &hs, const T &c) |
template<class T > | |
void | hread_raw (hstream &hs, T &c) |
template<class T , typename = typename std::enable_if<std::is_integral<T>::value || std::is_enum<T>::value>::type> | |
void | hwrite (hstream &hs, const T &c) |
template<class T , typename = typename std::enable_if<std::is_integral<T>::value || std::is_enum<T>::value>::type> | |
void | hread (hstream &hs, T &c) |
void | hwrite (hstream &hs, const string &s) |
void | hread (hstream &hs, string &s) |
void | hwrite (hstream &hs, const ld &h) |
void | hread (hstream &hs, ld &h) |
template<class T , size_t X> | |
void | hwrite (hstream &hs, const array< T, X > &a) |
template<class T , size_t X> | |
void | hread (hstream &hs, array< T, X > &a) |
void | hread (hstream &hs, hyperpoint &h) |
void | hwrite (hstream &hs, hyperpoint h) |
template<class T > | |
void | hwrite (hstream &hs, const vector< T > &a) |
template<class T > | |
void | hread (hstream &hs, vector< T > &a) |
template<class T , class U > | |
void | hwrite (hstream &hs, const map< T, U > &a) |
template<class T , class U > | |
void | hread (hstream &hs, map< T, U > &a) |
template<class C , class C1 , class... CS> | |
void | hwrite (hstream &hs, const C &c, const C1 &c1, const CS &... cs) |
template<class C , class C1 , class... CS> | |
void | hread (hstream &hs, C &c, C1 &c1, CS &... cs) |
void | print (hstream &hs) |
template<class... CS> | |
string | sprint (const CS &... cs) |
template<class C , class C1 , class... CS> | |
void | print (hstream &hs, const C &c, const C1 &c1, const CS &... cs) |
template<class... CS> | |
void | println (hstream &hs, const CS &... cs) |
string | spaced (int i) |
string | spaced (color_t col) |
string | spaced (const string &s) |
string | spaced (ld x) |
template<class T > | |
string | spaced_of (T a[], int q) |
template<class T , int i> | |
string | spaced (const array< T, i > &a) |
template<class C , class C1 , class... CS> | |
string | spaced (const C &c, const C1 &c1, const CS &... cs) |
bool | scan (fhstream &hs, int &) |
bool | scan (fhstream &hs, ld &) |
bool | scan (fhstream &hs, string &) |
bool | scan (fhstream &hs, color_t &c) |
template<class C , class C1 , class... CS> | |
bool | scan (fhstream &hs, C &c, C1 &c1, CS &... cs) |
string | scanline (fhstream &hs) |
template<class T > | |
T | scan (fhstream &hs) |
template<typename... Ts, typename F > | |
void | for_each_in_tuple (std::tuple< Ts... > const &t, F f) |
void | print (hstream &hs, const string &s) |
void | print (hstream &hs, int i) |
void | print (hstream &hs, ld x) |
void | print (hstream &hs, color_t col) |
template<class T > | |
void | print (hstream &hs, const walker< T > &w) |
template<class T , size_t X> | |
void | print (hstream &hs, const array< T, X > &a) |
template<class T > | |
void | print (hstream &hs, const vector< T > &a) |
void | print (hstream &hs, const hyperpoint h) |
void | print (hstream &hs, const transmatrix T) |
template<class T , class U > | |
void | print (hstream &hs, const pair< T, U > &t) |
template<class... T> | |
void | print (hstream &hs, const tuple< T... > &t) |
void | special_log (char c) |
template<class... T> | |
void | println_log (T... t) |
template<class... T> | |
void | print_log (T... t) |
string | format (const char *fmt,...) |
void | print (hstream &hs, heptagon *h) |
void | print (hstream &hs, cell *h) |
void | print (hstream &hs, hrmap *h) |
void | print (hstream &hs, cellwalker cw) |
EX string | fts_fixed (ld x, int prec IS(6)) |
EX string | cts (char c) |
EX string | llts (long long i) |
EX string | itsh (unsigned int i) |
EX string | itsh (int i) |
EX string | itsh2 (int i) |
EX string | itsh (unsigned long long i) |
EX ld | kz (ld x) |
EX hyperpoint | kz (hyperpoint h) |
EX transmatrix | kz (transmatrix h) |
EX string | pick123 () |
EX string | pick12 () |
template<class T > | |
string | serialize (const T &data) |
template<class T > | |
T | deserialize (const string &s) |
EX string | as_cstring (string o) |
EX int | monsterclass (eMonster m) |
EX int | glyphclass (int i) |
EX int | subclass (int i) |
int & | ikmerge (int i) |
bool | ikappear (int i) |
void | updatesort () |
EX void | preparesort () |
int | glyphcorner (int i) |
bool | glyphsort (int i, int j) |
int | glyphflags (int gid) |
EX bool | graphglyph () |
bool | displayglyph (int cx, int cy, int buttonsize, char glyph, color_t color, int qty, int flags, int id) |
void | displayglyph2 (int cx, int cy, int buttonsize, int i) |
void | drawMobileArrow (int i) |
EX void | drawStats () |
EX int | hyper_main (int argc, char **argv) |
template<class T > | |
void | ignore (T &&) |
template<class T , class V , class... U> | |
bool | among (T x, V y) |
template<class T , class V , class... U> | |
bool | among (T x, V y, U... u) |
template<class T > | |
int | isize (const T &x) |
void | IMAGESAVE (SDL_Surface *s, const char *fname) |
PPR | operator+ (PPR x, int y) |
PPR | operator- (PPR x, int y) |
int | operator- (PPR x, PPR y) |
template<class T , class U > | |
int | addHook (hookset< T > *&m, int prio, const U &hook) |
template<class T , class... U> | |
void | callhooks (hookset< T > *h, U... args) |
template<class T , class V , class... U> | |
V | callhandlers (V zero, hookset< T > *h, U &... args) |
string | XLAT (string) |
template<class T , class U > | |
void | eliminate_if (vector< T > &data, U pred) |
template<class T > | |
array< T, 4 > | make_array (T a, T b, T c, T d) |
template<class T > | |
array< T, 3 > | make_array (T a, T b, T c) |
template<class T > | |
array< T, 2 > | make_array (T a, T b) |
template<class T > | |
void | texture_order (const T &f) |
bool | needConfirmationEvenIfSaved () |
constexpr transmatrix | diag (ld a, ld b, ld c, ld d) |
hyperpoint | hpxyz (ld x, ld y, ld z) |
hyperpoint | hpxyz3 (ld x, ld y, ld z, ld w) |
constexpr hyperpoint | point3 (ld x, ld y, ld z) |
constexpr hyperpoint | point31 (ld x, ld y, ld z) |
constexpr hyperpoint | point2 (ld x, ld y) |
EX ld | squar (ld x) |
EX int | sig (int z) |
EX int | curvature () |
EX ld | sin_auto (ld x) |
EX ld | asin_auto (ld x) |
EX ld | acos_auto (ld x) |
EX ld | volume_auto (ld r) |
EX ld | asin_clamp (ld x) |
EX ld | asin_auto_clamp (ld x) |
EX ld | acos_auto_clamp (ld x) |
EX ld | cos_auto (ld x) |
EX ld | tan_auto (ld x) |
EX ld | atan_auto (ld x) |
EX ld | atan2_auto (ld y, ld x) |
EX ld | edge_of_triangle_with_angles (ld alpha, ld beta, ld gamma) |
EX hyperpoint | hpxy (ld x, ld y) |
EX hyperpoint | hpxy3 (ld x, ld y, ld z) |
EX bool | zero_d (int d, hyperpoint h) |
EX ld | intval (const hyperpoint &h1, const hyperpoint &h2) |
EX ld | quickdist (const hyperpoint &h1, const hyperpoint &h2) |
EX ld | sqhypot_d (int d, const hyperpoint &h) |
EX ld | hypot_d (int d, const hyperpoint &h) |
EX ld | zlevel (const hyperpoint &h) |
EX ld | hypot_auto (ld x, ld y) |
EX hyperpoint | normalize (hyperpoint H) |
EX hyperpoint | normalize_flat (hyperpoint h) |
EX hyperpoint | mid (const hyperpoint &H1, const hyperpoint &H2) |
EX hyperpoint | midz (const hyperpoint &H1, const hyperpoint &H2) |
EX transmatrix | cspin (int a, int b, ld alpha) |
EX transmatrix | spin (ld alpha) |
EX transmatrix | random_spin () |
EX transmatrix | eupush (ld x, ld y) |
EX transmatrix | eupush (hyperpoint h) |
EX transmatrix | eupush3 (ld x, ld y, ld z) |
EX transmatrix | euscalezoom (hyperpoint h) |
EX transmatrix | euaffine (hyperpoint h) |
EX transmatrix | cpush (int cid, ld alpha) |
EX transmatrix | xpush (ld alpha) |
EX bool | eqmatrix (transmatrix A, transmatrix B, ld eps IS(.01)) |
EX hyperpoint | orthogonal_move (const hyperpoint &h, ld z) |
EX transmatrix | ypush (ld alpha) |
EX transmatrix | zpush (ld z) |
EX transmatrix | matrix3 (ld a, ld b, ld c, ld d, ld e, ld f, ld g, ld h, ld i) |
EX transmatrix | matrix4 (ld a, ld b, ld c, ld d, ld e, ld f, ld g, ld h, ld i, ld j, ld k, ld l, ld m, ld n, ld o, ld p) |
EX void | swapmatrix (transmatrix &T) |
EX void | swapmatrix (hyperpoint &h) |
EX transmatrix | parabolic1 (ld u) |
EX transmatrix | parabolic13 (ld u, ld v) |
EX hyperpoint | parabolic10 (hyperpoint h) |
EX hyperpoint | deparabolic10 (const hyperpoint h) |
EX transmatrix | spintoc (const hyperpoint &H, int t, int f) |
EX transmatrix | rspintoc (const hyperpoint &H, int t, int f) |
EX transmatrix | spintox (const hyperpoint &H) |
EX transmatrix | rspintox (const hyperpoint &H) |
EX transmatrix | pushxto0 (const hyperpoint &H) |
EX void | set_column (transmatrix &T, int i, const hyperpoint &H) |
EX transmatrix | build_matrix (hyperpoint h1, hyperpoint h2, hyperpoint h3, hyperpoint h4) |
EX transmatrix | rpushxto0 (const hyperpoint &H) |
EX transmatrix | ggpushxto0 (const hyperpoint &H, ld co) |
EX transmatrix | gpushxto0 (const hyperpoint &H) |
EX transmatrix | rgpushxto0 (const hyperpoint &H) |
EX void | fixmatrix (transmatrix &T) |
Fix the numerical inaccuracies in the isometry T The nature of hyperbolic geometry makes the computations numerically unstable. The numerical errors tend to accumulate, eventually destroying the projection. This function fixes this problem by replacing T with a 'correct' isometry. | |
EX ld | det (const transmatrix &T) |
void | inverse_error (const transmatrix &T) |
EX transmatrix | inverse (const transmatrix &T) |
EX pair< ld, hyperpoint > | product_decompose (hyperpoint h) |
EX ld | hdist0 (const hyperpoint &mh) |
EX ld | circlelength (ld r) |
EX ld | hdist (const hyperpoint &h1, const hyperpoint &h2) |
EX hyperpoint | mscale (const hyperpoint &t, double fac) |
EX transmatrix | mscale (const transmatrix &t, double fac) |
EX transmatrix | xyscale (const transmatrix &t, double fac) |
EX transmatrix | xyzscale (const transmatrix &t, double fac, double facz) |
EX transmatrix | mzscale (const transmatrix &t, double fac) |
EX hyperpoint | mid3 (hyperpoint h1, hyperpoint h2, hyperpoint h3) |
EX hyperpoint | mid_at (hyperpoint h1, hyperpoint h2, ld v) |
EX hyperpoint | mid_at_actual (hyperpoint h, ld v) |
EX hyperpoint | orthogonal_of_C0 (hyperpoint h0, hyperpoint h1, hyperpoint h2) |
EX hyperpoint | zshift (hyperpoint x, ld z) |
EX hyperpoint | hpxd (ld d, ld x, ld y, ld z) |
EX ld | signum (ld x) |
EX bool | asign (ld y1, ld y2) |
EX ld | xcross (ld x1, ld y1, ld x2, ld y2) |
EX transmatrix | parallel_transport (const transmatrix Position, const transmatrix &ori, const hyperpoint direction, int precision IS(100)) |
EX void | apply_parallel_transport (transmatrix &Position, const transmatrix orientation, const hyperpoint direction) |
EX void | rotate_object (transmatrix &Position, transmatrix &orientation, transmatrix R) |
EX transmatrix | spin_towards (const transmatrix Position, transmatrix &ori, const hyperpoint goal, int dir, int back) |
EX ld | ortho_error (transmatrix T) |
EX transmatrix | transpose (transmatrix T) |
hyperpoint | cpush0 (int c, ld x) |
hyperpoint | xspinpush0 (ld alpha, ld x) |
hyperpoint | xpush0 (ld x) |
hyperpoint | ypush0 (ld x) |
hyperpoint | zpush0 (ld x) |
hyperpoint | tC0 (const transmatrix &T) |
EX hyperpoint | ctangent (int c, ld x) |
EX hyperpoint | xtangent (ld x) |
EX hyperpoint | ztangent (ld z) |
EX hyperpoint | tangent_length (hyperpoint dir, ld length) |
EX hyperpoint | direct_exp (hyperpoint v, int steps) |
EX hyperpoint | inverse_exp (const hyperpoint h, iePrecision p, bool just_direction IS(true)) |
EX ld | geo_dist (const hyperpoint h1, const hyperpoint h2, iePrecision p) |
EX hyperpoint | lp_iapply (const hyperpoint h) |
EX hyperpoint | lp_apply (const hyperpoint h) |
EX hyperpoint | smalltangent () |
EX void | cyclefix (ld &a, ld b) |
EX ld | raddif (ld a, ld b) |
EX int | bucketer (ld x) |
EX int | bucketer (hyperpoint h) |
void | initweb () |
void | emscripten_get_commandline () |
void | loadCompressedChar (int &otwidth, int &otheight, int *tpix) |
std::string | get_value (std::string name) |
string | get_value (string name) |
EX void | open_url (string s) |
void | toggleanim (bool v) |
void | showDemo () |
EM_BOOL | fsc_callback (int eventType, const EmscriptenFullscreenChangeEvent *fullscreenChangeEvent, void *userData) |
bool | sphereflipped () |
void | ghcheck (hyperpoint &ret, const hyperpoint &H) |
EX void | camrotate (ld &hx, ld &hy) |
EX bool | non_spatial_model () |
EX hyperpoint | perspective_to_space (hyperpoint h, ld alpha IS(vid.alpha), eGeometryClass gc IS(ginf[geometry].cclass)) |
EX hyperpoint | space_to_perspective (hyperpoint z, ld alpha IS(vid.alpha)) |
EX hyperpoint | gethyper (ld x, ld y) |
void | ballmodel (hyperpoint &ret, double alpha, double d, double zl) |
void | apply_depth (hyperpoint &f, ld z) |
bool | hypot_zlev (ld zlev, ld &d, ld &df, ld &zf) |
ld | find_zlev (hyperpoint &H) |
ld | get_tz (hyperpoint H) |
EX ld | atan2 (hyperpoint h) |
pair< ld, ld > | move_z_to_y (hyperpoint &H) |
void | move_y_to_z (hyperpoint &H, pair< ld, ld > coef) |
template<class T > | |
void | makeband (hyperpoint H, hyperpoint &ret, const T &f) |
void | band_conformal (ld &x, ld &y) |
void | make_twopoint (ld &x, ld &y) |
hyperpoint | mobius (hyperpoint h, ld angle, ld scale=1) |
hyperpoint | compute_hybrid (hyperpoint H, int rootid) |
EX ld | signed_sqrt (ld x) |
EX void | applymodel (hyperpoint H, hyperpoint &ret) |
EX bool | outofmap (hyperpoint h) |
EX hyperpoint | mirrorif (const hyperpoint &V, bool b) |
EX transmatrix | mirrorif (const transmatrix &V, bool b) |
EX int | away (const transmatrix &V2) |
EX double | zgrad0 (double l1, double l2, int nom, int den) |
EX bool | behindsphere (const hyperpoint &h) |
ld | to01 (ld a0, ld a1, ld x) |
EX ld | spherity (const hyperpoint &h) |
EX bool | behindsphere (const transmatrix &V) |
EX ld | spherity (const transmatrix &V) |
EX bool | confusingGeometry () |
EX ld | master_to_c7_angle () |
EX transmatrix | actualV (const heptspin &hs, const transmatrix &V) |
EX bool | point_behind (hyperpoint h) |
void | raise_error () |
EX bool | invalid_matrix (const transmatrix T) |
EX bool | invalid_point (const hyperpoint h) |
EX bool | in_smart_range (const transmatrix &T) |
EX bool | drawcell_subs (cell *c, transmatrix V) |
EX void | spinEdge (ld aspd) |
EX void | centerpc (ld aspd) |
EX void | optimizeview () |
void | addball (ld a, ld b, ld c) |
void | ballgeometry () |
EX void | resetview () |
EX void | panning (hyperpoint hf, hyperpoint ht) |
EX void | fullcenter () |
transmatrix | screenpos (ld x, ld y) |
EX eModel | flat_model () |
EX transmatrix | atscreenpos (ld x, ld y, ld size) |
void | circle_around_center (ld radius, color_t linecol, color_t fillcol, PPR prio) |
EX void | draw_model_elements () |
void | queuestraight (hyperpoint X, int style, color_t lc, color_t fc, PPR p) |
EX void | draw_boundary (int w) |
EX void | fix_the_band (transmatrix &T) |
EX bool | do_draw (cell *c) |
bool | limited_generation (cell *c) |
EX bool | do_draw (cell *c, const transmatrix &T) |
EX int | cone_side (const hyperpoint H) |
EX transmatrix & | get_view_orientation () |
EX void | rotate_view (transmatrix T) |
EX transmatrix | get_shift_view_of (const hyperpoint H, const transmatrix V) |
EX void | shift_view (hyperpoint H) |
void | multiply_view (transmatrix T) |
EX void | shift_view_to (hyperpoint H) |
EX void | shift_view_towards (hyperpoint H, ld l) |
EX void | initAll () |
EX void | finishAll () |
EX bool | cannotPickupItem (cell *c, bool telekinesis) |
EX bool | canPickupItemWithMagnetism (cell *c, cell *from) |
EX bool | doPickupItemsWithMagnetism (cell *c) |
EX void | pickupMovedItems (cell *c) |
EX bool | collectItem (cell *c2, bool telekinesis IS(false)) |
EX void | glance_message () |
EX void | dropGreenStone (cell *c) |
EX void | moveItem1 (cell *from, cell *to, bool activateYendor) |
EX void | moveItem (cell *from, cell *to, bool activateYendor) |
EX bool | itemHidden (cell *c) |
EX eItem | localTreasureType () |
EX void | countLocalTreasure () |
EX int | gold (int no IS(0)) |
EX int | maxgold () |
EX void | updateHi (eItem it, int v) |
EX void | gainItem (eItem it) |
EX string | itemcounter (int qty) |
EX void | gainShard (cell *c2, const char *msg) |
EX void | placeItems (int qty, eItem it) |
EX bool | cantGetGrimoire (cell *c2, bool verbose IS(true)) |
EX void | gainLife () |
EX void | collectMessage (cell *c2, eItem which) |
EX bool | itemHiddenFromSight (cell *c) |
EX void | doOvergenerate () |
EX bool | notDippingFor (eItem i) |
EX bool | notDippingForExtra (eItem i, eItem x) |
void | buildRedWall (cell *c, int gemchance) |
bool | blizzard_no_escape1 (cell *c, manual_celllister &cl) |
bool | blizzard_no_escape (cell *c) |
bool | out_ruin (cell *c) |
EX eMonster | genRuinMonster (cell *c) |
void | gen_brownian (cell *c) |
EX void | createArrowTrapAt (cell *c, eLand land) |
EX eMonster | emerald_monster () |
EX void | build_pool (cell *c, bool with_boat) |
EX void | place_elemental_wall (cell *c) |
EX int | hrand_monster (int x) |
EX bool | is_zebra_trapdoor (cell *c) |
EX void | gen_eclectic_monster (cell *c) |
EX void | giantLandSwitch (cell *c, int d, cell *from) |
EX void | repairLandgen (cell *c) |
EX void | setland_randomwalk (cell *c) |
EX void | setdist (cell *c, int d, cell *from) |
EX bool | in_full_game () |
EX bool | nodisplay (eMonster m) |
EX int | isNative (eLand l, eMonster m) |
EX eItem | treasureType (eLand l) |
EX eItem | treasureTypeUnlock (eLand l, eItem u) |
EX eLand | landof (eItem it) |
EX int | landMultiplier (eLand l) |
EX bool | isCrossroads (eLand l) |
EX bool | bearsCamelot (eLand l) |
EX bool | inmirror (const cellwalker &cw) |
EX eLand | oppositeElement (eLand l, eLand l2) |
EX bool | landUnlockedRPM (eLand n) |
EX int | variant_unlock_value () |
EX bool | landUnlocked (eLand l) |
EX bool | required_for_hyperstones (eItem ttype) |
EX void | countHyperstoneQuest (int &i1, int &i2) |
EX bool | hyperstonesUnlocked () |
EX int | isRandland (eLand l) |
EX bool | incompatible1 (eLand l1, eLand l2) |
EX eLand | randomElementalLand () |
EX int | elementalKills () |
EX eLand | randomElementalLandWeighted () |
EX bool | incompatible (eLand nw, eLand old) |
EX bool | rlyehComplete () |
bool | lchance (eLand l) |
EX eLand | pickLandRPM (eLand old) |
EX eLand | pickluck (eLand l1, eLand l2) |
EX eLand | getNewSealand (eLand old) |
EX bool | createOnSea (eLand old) |
EX eLand | getNewLand (eLand old) |
template<class T > | |
void | generateLandList (T t) |
EX eLand | getLandForList (cell *c) |
EX bool | isLandIngame (eLand l) |
EX land_validity_t & | land_validity (eLand l) |
const EX string | dnameof (eMonster m) |
const EX string | dnameof (eLand l) |
const EX string | dnameof (eWall w) |
const EX string | dnameof (eItem i) |
void | rep (string &pattern, string what, string to) |
void | reponce (string &pattern, string what, string to) |
hashcode | langhash (const string &s) |
template<class T > | |
const T * | findInHashTableS (string s, const T *table, int size) |
string | choose3 (int g, string a, string b, string c) |
string | choose4 (int g, string a, string b, string c, string d) |
void | basicrep (string &x) |
void | parrep (string &x, string w, stringpar p) |
void | postrep (string &s) |
EX string | XLAT (string x, stringpar p1) |
EX string | XLAT (string x, stringpar p1, stringpar p2) |
EX string | XLAT (string x, stringpar p1, stringpar p2, stringpar p3) |
EX string | XLAT (string x, stringpar p1, stringpar p2, stringpar p3, stringpar p4) |
EX string | XLAT (string x, stringpar p1, stringpar p2, stringpar p3, stringpar p4, stringpar p5) |
EX string | XLATN (string x) |
EX string | XLAT1 (string x) |
EX string | XLATT1 (stringpar p) |
EX bool | shapename_available (int id) |
EX string | shapename (int id) |
int | gmod (int i, int j) |
template<class T > | |
T * | tailored_alloc (int degree) |
template<class T > | |
void | tailored_delete (T *x) |
heptspin | operator+ (cellwalker cw, cth_t) |
cellwalker | operator+ (heptspin hs, cth_t) |
EX movei | moveimon (cell *c) |
EX movei | match (cell *f, cell *t) |
int | read_editor_args () |
EX void | initcell (cell *c) |
EX bool | doesnotFall (cell *c) |
EX bool | doesFall (cell *c) |
EX bool | doesFallSound (cell *c) |
EX void | destroyBoats (cell *c, cell *c2, bool strandedToo) |
EX bool | bird_disruption (cell *c) |
EX bool | in_gravity_zone (cell *c) |
EX int | gravity_zone_diff (cell *c) |
EX bool | isJWall (cell *c) |
EX eGravity | get_static_gravity (cell *c) |
EX eGravity | get_move_gravity (cell *c, cell *c2) |
EX bool | isWarped (cell *c) |
EX bool | nonAdjacent (cell *c, cell *c2) |
EX bool | nonAdjacentPlayer (cell *c, cell *c2) |
EX bool | thruVine (cell *c, cell *c2) |
EX void | useup (cell *c) |
EX bool | earthFloor (cell *c) |
EX bool | earthWall (cell *c) |
EX bool | snakepile (cell *c, eMonster m) |
EX bool | makeflame (cell *c, int timeout, bool checkonly) |
EX void | explosion (cell *c, int power, int central) |
EX void | explodeMine (cell *c) |
EX void | explodeBarrel (cell *c) |
EX bool | mayExplodeMine (cell *c, eMonster who) |
EX void | flameHalfvine (cell *c, int val) |
EX bool | destroyHalfvine (cell *c, eWall newwall IS(waNone), int tval IS(6)) |
EX int | gravityLevel (cell *c) |
EX int | gravityLevelDiff (cell *c, cell *d) |
EX bool | canUnstable (eWall w, flagtype flags) |
EX bool | cellEdgeUnstable (cell *c, flagtype flags IS(0)) |
EX void | calcTidalPhase () |
EX int | tidespeed () |
EX int | lavatide (cell *c, int t) |
EX void | checkTide (cell *c) |
EX bool | makeEmpty (cell *c) |
EX void | toggleGates (cell *c, eWall type, int rad) |
EX void | toggleGates (cell *ct, eWall type) |
EX void | destroyTrapsOn (cell *c) |
EX void | destroyTrapsAround (cell *c) |
EX void | destroyWeakBranch (cell *cf, cell *ct, eMonster who) |
EX bool | isCentralTrap (cell *c) |
EX array< cell *, 5 > | traplimits (cell *c) |
EX void | activateArrowTrap (cell *c) |
template<class T > | |
movei | determinePush (cellwalker who, int subdir, const T &valid) |
EX void | explodeAround (cell *c) |
EX bool | earthMove (const movei &mi) |
EX bool | cellDangerous (cell *c) |
int | PREC (ld x) |
EX void | showOverview () |
EX void | showMainMenu () |
EX void | editScale () |
EX void | showGraphQuickKeys () |
EX void | enable_cheat () |
EX void | switchHardcore () |
EX void | showCreative () |
EX void | show_chaos () |
EX void | showChangeMode () |
EX bool | showHalloween () |
void | announce_random () |
void | announce_nothing () |
void | announce_seasonal () |
EX void | showStartMenu () |
named_functionality | named_dialog (string x, reaction_t dialog) |
EX named_functionality | get_o_key () |
EX string | gettimestamp (msginfo &m) |
EX void | showMessageLog () |
int | read_menu_args () |
bool | mdAzimuthalEqui () |
bool | mdBandAny () |
bool | mdPseudocylindrical () |
EX int | buildIvy (cell *c, int children, int minleaf) |
EX void | chasmify (cell *c) |
EX void | chasmifyEarth (cell *c) |
EX void | chasmifyElemental (cell *c) |
EX eMonster | crossroadsMonster () |
EX eMonster | wanderingCrossroadsMonster () |
EX int | palaceHP () |
EX int | hardness_empty () |
EX bool | redtrolls (cell *c) |
EX eMonster | pickTroll (cell *c) |
EX void | dieTroll (cell *c, eMonster m) |
EX int | reptilemax () |
bool | wchance (int a, int of, int reduction=0) |
void | wanderingZebra (cell *start) |
EX int | getGhostTimer () |
EX int | getGhostcount () |
int | getSeepcount () |
EX bool | canReachPlayer (cell *cf, eMonster m) |
EX bool | haveOrbPower () |
EX bool | haveKraken () |
EX eItem | wanderingTreasure (cell *c) |
EX void | wandering () |
EX void | generateSnake (cell *c, int i, int snakecolor) |
EX void | addButterfly (cell *c) |
EX void | makeTrollFootprints (cell *c) |
EX bool | hasPrincessWeapon (eMonster m) |
EX void | sageheat (cell *c, double v) |
EX void | moveEffect (const movei &mi, eMonster m) |
EX void | moveMonster (const movei &mi) |
EX bool | cannotGo (eMonster m, cell *c) |
EX bool | wantsToStay (eMonster m) |
EX bool | batsAfraid (cell *c) |
EX int | angledist (int t, int d1, int d2) |
EX int | angledistButterfly (int t, int d1, int d2) |
EX int | angledist (cell *c, int d1, int d2) |
EX bool | anglestraight (cell *c, int d1, int d2) |
EX int | bulldist (cell *c) |
EX int | bulldistance (cell *c, cell *d) |
EX int | landheattype (cell *c) |
EX int | moveval (cell *c1, cell *c2, int d, flagtype mf) |
EX int | stayval (cell *c, flagtype mf) |
EX int | totalbulldistance (cell *c, int k) |
EX void | determinizeBull (cell *c, vector< int > &posdir) |
EX int | determinizeBullPush (cellwalker bull) |
EX int | pickMoveDirection (cell *c, flagtype mf) |
EX int | pickDownDirection (cell *c, flagtype mf) |
EX void | beastAttack (cell *c, bool player, bool targetdir) |
EX cell * | moveNormal (cell *c, flagtype mf) |
EX void | mountmove (const movei &mi, bool fp) |
EX void | moveWorm (cell *c) |
EX void | ivynext (cell *c) |
EX void | removeIvy (cell *c) |
EX void | moveivy () |
EX bool | isTargetOrAdjacent (cell *c) |
EX void | groupmove2 (const movei &mi, eMonster movtype, flagtype mf) |
EX void | groupmove (eMonster movtype, flagtype mf) |
EX void | moveHexSnake (const movei &mi, bool mounted) |
EX void | snakeAttack (cell *c, bool mounted) |
EX bool | goodmount (cell *c, bool mounted) |
EX int | inpair (cell *c, int colorpair) |
EX int | snake_pair (cell *c) |
EX void | hexvisit (cell *c, cell *from, int d, bool mounted, int colorpair) |
EX void | movehex (bool mounted, int colorpair) |
EX void | movehex_rest (bool mounted) |
EX void | movemutant () |
EX void | clearshadow () |
EX void | moveshadow () |
EX void | moveghosts () |
EX int | stayvalue (eMonster m, cell *c) |
EX int | movevalue (eMonster m, cell *c, cell *c2, flagtype flags) |
EX void | movegolems (flagtype flags) |
EX void | moveButterflies () |
EX void | specialMoves () |
EX void | moveworms () |
EX void | refreshFriend (cell *c) |
EX void | consMove (cell *c, eMonster param) |
EX void | moveNormals (eMonster param) |
EX void | movehex_all () |
EX void | movemonsters () |
EX bool | nogoSlow (cell *to, cell *from) |
EX void | beastcrash (cell *c, cell *beast) |
EX void | stayEffect (cell *c) |
EX int | realstuntime (cell *c) |
void | gamedata_all (gamedata &gd) |
reaction_t | mayboth (reaction_t what) |
EX bool | in_s2xe () |
EX bool | in_h2xe () |
EX bool | in_e2xe () |
EX eItem | nativeOrbType (eLand l) |
const orbinfo & | getNativityOrbInfo (eItem orb) |
EX eOrbLandRelation | getOLR (eItem it, eLand l) |
EX int | orbsUnlocked () |
EX ld | orbprizefun (int tr) |
EX ld | orbcrossfun (int tr) |
EX bool | buildPrizeMirror (cell *c, int freq) |
EX eLand | getPrizeLand (cell *c IS(cwt.at)) |
EX void | placePrizeOrb (cell *c) |
EX int | treasureForLocal () |
EX bool | extra_safety_for_memory (cell *c) |
EX void | placeLocalOrbs (cell *c) |
EX void | placeLocalSpecial (cell *c, int outof, int loc IS(1), int priz IS(1)) |
EX void | placeCrossroadOrbs (cell *c) |
EX void | placeOceanOrbs (cell *c) |
EX bool | markOrb (eItem it) |
EX bool | markEmpathy (eItem it) |
EX bool | markEmpathy2 (eItem it) |
EX bool | markOrb2 (eItem it) |
EX int | fixpower (int qty) |
EX void | useupOrb (eItem it, int qty) |
EX void | drainOrb (eItem it, int target IS(0)) |
EX void | empathyMove (const movei &mi) |
EX int | intensify (int val) |
EX bool | reduceOrbPower (eItem it, int cap) |
EX void | reduceOrbPowerAlways (eItem it) |
EX void | reduceOrbPowers () |
EX void | flashAlchemist (cell *c) |
EX void | flashCell (cell *c, eMonster killer, flagtype flags) |
EX bool | distanceBound (cell *c1, cell *c2, int d) |
EX void | checkFreedom (cell *cf) |
EX void | activateFlash () |
EX bool | reflectingBarrierAt (cell *c) |
EX bool | reflectingBarrierAt (cellwalker &c, int d) |
EX void | killAdjacentSharks (cell *c) |
EX void | castLightningBolt (cellwalker lig) |
EX void | castLightningBoltFrom (cell *c) |
EX void | activateLightning () |
EX bool | haveRangedTarget () |
void | checkmoveO () |
int | teleportAction () |
EX void | teleportTo (cell *dest) |
EX bool | jumpTo (orbAction a, cell *dest, eItem byWhat, int bonuskill IS(0), eMonster dashmon IS(moNone)) |
void | growIvyTo (const movei &mi) |
pair< int, bool > | spacedrain (cell *c) |
void | telekinesis (cell *dest) |
EX eMonster | summonedAt (cell *dest) |
void | summonAt (cell *dest) |
bool | tempWallPossibleAt (cell *dest) |
void | tempWallAt (cell *dest) |
void | psi_attack (cell *dest) |
bool | gun_attack (orbAction a, cell *dest) |
EX void | checkStunKill (cell *dest) |
void | stun_attack (cell *dest) |
void | poly_attack (cell *dest) |
void | placeIllusion (cell *c) |
void | blowoff (const movei &mi) |
void | useOrbOfDragon (cell *c) |
EX bool | monstersnearO (orbAction a, cell *c, eMonster who, cell *pushto, cell *comefrom) |
EX bool | isCheck (orbAction a) |
EX bool | isWeakCheck (orbAction a) |
EX movei | blowoff_destination (cell *c, int &di) |
EX int | check_jump (cell *cf, cell *ct, flagtype flags, cell *&jumpthru) |
EX int | check_phase (cell *cf, cell *ct, flagtype flags, cell *&jumpthru) |
EX cell * | common_neighbor (cell *cf, cell *ct) |
EX void | apply_impact (cell *c) |
EX int | check_vault (cell *cf, cell *ct, flagtype flags, cell *&jumpthru) |
EX eItem | targetRangedOrb (cell *c, orbAction a) |
EX int | orbcharges (eItem it) |
EX bool | isShmupLifeOrb (eItem it) |
EX void | makelava (cell *c, int i) |
EX void | orboflava (int i) |
EX bool | againstCurrent (cell *w, cell *from) |
EX bool | boatGoesThrough (cell *c) |
EX void | become_water (cell *c) |
EX void | placeWater (cell *c, cell *c2) |
EX int | incline (cell *cfrom, cell *cto) |
EX bool | checkflags (flagtype flags, flagtype x) |
EX bool | strictlyAgainstGravity (cell *w, cell *from, bool revdir, flagtype flags) |
EX bool | anti_alchemy (cell *w, cell *from) |
EX bool | passable (cell *w, cell *from, flagtype flags) |
EX int | airdist (cell *c) |
EX ld | calcAirdir (cell *c) |
EX bool | againstWind (cell *cto, cell *cfrom) |
EX bool | ghostmove (eMonster m, cell *to, cell *from) |
bool | slimepassable (cell *w, cell *c) |
bool | sharkpassable (cell *w, cell *c) |
EX bool | canPushStatueOn (cell *c) |
EX void | moveBoat (const movei &mi) |
EX void | moveBoatIfUsingOne (const movei &mi) |
bool | againstMagnet (cell *c1, cell *c2, eMonster m) |
EX bool | againstPair (cell *c1, cell *c2, eMonster m) |
EX bool | notNearItem (cell *c) |
EX bool | isNeighbor1 (cell *f, cell *w) |
EX bool | passable_for (eMonster m, cell *w, cell *from, flagtype extra) |
EX eMonster | movegroup (eMonster m) |
EX bool | logical_adjacent (cell *c1, eMonster m1, cell *c2) |
EX void | buildAirmap () |
EX int | rosedist (cell *c) |
EX bool | againstRose (cell *cfrom, cell *cto) |
EX bool | withRose (cell *cfrom, cell *cto) |
EX void | buildRosemap () |
EX bool | scentResistant () |
EX int | ctof (cell *c) |
EX int | ctof012 (cell *c) |
int | gp_threecolor () |
int | eupattern (cell *c) |
int | eupattern4 (cell *c) |
EX bool | ishept (cell *c) |
EX bool | ishex1 (cell *c) |
bool | ishex2 (cell *c) |
int | chessvalue (cell *c) |
EX int | emeraldval (heptagon *h) |
EX int | emeraldval (cell *c) |
unsigned | bitmajority (unsigned a, unsigned b, unsigned c) |
int | eufifty (cell *c) |
int | fiftyval (cell *c) |
EX int | cdist50 (cell *c) |
int | land50 (cell *c) |
EX bool | polara50 (cell *c) |
EX bool | polarb50 (cell *c) |
EX int | fiftyval049 (heptagon *h) |
EX int | fiftyval049 (cell *c) |
EX int | fiftyval200 (cell *c) |
int | dir_bitrunc457 (cell *c) |
int | val46 (cell *c) |
EX int | zebra40 (cell *c) |
EX int | zebra3 (cell *c) |
EX int | getHemisphere (heptagon *h, int which) |
EX int | getHemisphere (cell *c, int which) |
EX bool | geosupport_chessboard () |
EX int | geosupport_threecolor () |
EX int | geosupport_football () |
EX int | pattern_threecolor (cell *c) |
EX bool | pseudohept (cell *c) |
EX bool | kraken_pseudohept (cell *c) |
EX bool | warptype (cell *c) |
color_t | random_landscape (cell *c, int mul, int div, int step, color_t base) |
EX bool | is_master (cell *c) |
int | read_pattern_args () |
EX int | emerald_heptagon (int parent, int dir) |
EX int | emerald_hexagon (int a, int b, int c) |
EX int | firstfiftyval (int d) |
EX int | nextfiftyval (int par, int gpar, int d) |
EX int | land50 (int x) |
EX bool | polara50 (int x) |
EX bool | polarb50 (int x) |
EX int | cdist50 (int x) |
EX int | zebra_heptagon (int parent, int dir) |
EX int | fifty_38 (int f, int d) |
EX void | fail_survivalist () |
EX cell *& | singlepos () |
EX bool | singleused () |
EX void | createNoise (int t) |
EX bool | checkNeedMove (bool checkonly, bool attacking) |
EX bool | movepcto (int d, int subdir IS(1), bool checkonly IS(false)) |
EX void | copy_metadata (cell *x, const gcell *y) |
bool | switch_lhu_in (eLand l) |
void | apply_chaos () |
EX bool | chaos_forbidden (cell *c) |
bool | movepcto (const movedir &md) |
EX bool | warningprotection (const string &s) |
EX bool | warningprotection_hit (eMonster m) |
EX bool | playerInWater () |
EX int | numplayers () |
EX cell * | playerpos (int i) |
EX bool | allPlayersInBoats () |
EX int | whichPlayerOn (cell *c) |
EX bool | isPlayerOn (cell *c) |
EX bool | isPlayerInBoatOn (cell *c, int i) |
EX bool | playerInBoat (int i) |
EX bool | isPlayerInBoatOn (cell *c) |
EX bool | playerInPower () |
EX void | playerMoveEffects (cell *c1, cell *c2) |
EX void | afterplayermoved () |
EX void | produceGhost (cell *c, eMonster victim, eMonster who) |
EX bool | swordAttack (cell *mt, eMonster who, cell *c, int bb) |
EX void | swordAttackStatic (int bb) |
EX void | swordAttackStatic () |
EX void | spread_plague (cell *mf, cell *mt, int dir, eMonster who) |
EX void | sideAttackAt (cell *mf, int dir, cell *mt, eMonster who, eItem orb, cell *pf) |
EX void | sideAttack (cell *mf, int dir, eMonster who, int bonus, eItem orb) |
EX void | sideAttack (cell *mf, int dir, eMonster who, int bonuskill) |
EX eMonster | do_we_stab_a_friend (cell *mf, cell *mt, eMonster who) |
EX void | wouldkill (const char *msg) |
EX bool | havePushConflict (cell *pushto, bool checkonly) |
EX void | movecost (cell *from, cell *to, int phase) |
ld | gsca () |
ld | grot () |
template<class... T> | |
ld | gsca (bool geometry, ld factor, T... t) |
template<class... T> | |
ld | grot (bool geometry, ld factor, T... t) |
vector< ld > | equal_weights (20, 1) |
hyperpoint | ray_kleinize (hyperpoint h, int id, ld pz) |
vector< hyperpoint > | make4 (hyperpoint a, hyperpoint b, hyperpoint c) |
vector< hyperpoint > | make5 (hyperpoint a, hyperpoint b, hyperpoint c) |
EX bool | quitsaves () |
EX bool | needConfirmation () |
EX int | getgametime () |
EX string | getgametime_s (int timespent IS(getgametime())) |
string | timeline () |
EX void | noaction () |
string | contstr () |
eLand | nextHyperstone () |
EX void | showMission () |
EX void | handleKeyQuit (int sym, int uni) |
EX int | counthints () |
EX void | showMissionScreen () |
pair< bool, hyperpoint > | makeradar (hyperpoint h) |
EX void | addradar (const transmatrix &V, char ch, color_t col, color_t outline) |
EX void | addradar (const hyperpoint h1, const hyperpoint h2, color_t col) |
EX void | draw_radar (bool cornermode) |
EX void | destroycellcontents (cell *c) |
void | degrade (cell *c) |
void | slow_delete_cell (cell *c) |
void | delete_heptagon (heptagon *h2) |
void | recursive_delete (heptagon *h, int i) |
bool | unsafeLand (cell *c) |
EX void | save_memory () |
EX bool | is_cell_removed (cell *c) |
EX void | set_if_removed (cell *&c, cell *val) |
void | reserve_handler () |
EX void | apply_memory_reserve () |
EX void | memory_for_lib () |
EX void | show_memory_menu () |
EX bool | protect_memory () |
EX bool | memory_issues () |
glhr::glmatrix | model_orientation_gl () |
shared_ptr< glhr::GLprogram > | write_shader (flagtype shader_flags) |
EX void | add_if (string &shader, const string &seek, const string &function) |
EX void | add_fixed_functions (string &shader) |
EX flagtype | get_shader_flags () |
EX void | glapplymatrix (const transmatrix &V) |
ld | sqdist (hyperpoint a, hyperpoint b) |
EX int | get_skybrightness (int mul IS(1)) |
EX void | prepare_sky () |
color_t | skycolor (cell *c) |
EX eLand | getCurrentLandForMusic () |
EX void | playSeenSound (cell *c) |
int | read_sound_args () |
EX void | playSound (cell *c, const string &fname, int vol IS(100)) |
EX void | resetmusic () |
EX int | spherecells () |
EX heptagon * | getDodecahedron (int i) |
EX hrmap * | new_spherical_map () |
EX bool | verless (string v, string cmp) |
bool | do_use_special_land () |
EX void | welcomeMessage () |
EX void | initgame () |
void | applyBox (int &t) |
void | applyBoxBignum (bignum &tb) |
EX void | applyBoxNum (int &i, string name IS("")) |
void | applyBoxBool (bool &b, string name="") |
void | applyBoxSave (int i, string name="") |
int | applyBoxLoad (string name="") |
void | applyBoxI (eItem it, bool f=false) |
void | addinv (eItem it) |
void | applyBoxOrb (eItem it) |
void | list_invorb () |
void | applyBoxM (eMonster m, bool f=false) |
EX void | applyBoxes () |
EX void | saveBox () |
void | loadBox () |
void | loadBoxHigh () |
EX void | remove_emergency_save () |
EX void | saveStats (bool emergency IS(false)) |
EX void | loadsave () |
EX void | stop_game () |
eModel | default_model () |
EX void | set_geometry (eGeometry target) |
EX void | set_variation (eVariation target) |
void | stop_tour () |
EX void | switch_game_mode (char switchWhat) |
EX void | start_game () |
EX void | restart_game (char switchWhat IS(rg::nothing)) |
EX void | stop_game_and_switch_mode (char switchWhat IS(rg::nothing)) |
EX void | clearMemory () |
EX void | initShape (int sg, int id) |
EX long double | sqr (long double x) |
EX ld | round_nearest (ld x) |
EX ld | round_nearest (ld x, ld multiple_of) |
EX int | gcd (int i, int j) |
EX int | szgmod (int a, int b) |
EX int | gdiv (int i, int j) |
EX ld | frac (ld x) |
EX ld | lerp (ld a0, ld a1, ld x) |
EX ld | ilerp (ld a0, ld a1, ld x) |
EX string | simplify (const string &s) |
EX bool | appears (const string &haystack, const string &needle) |
EX ld | parseld (const string &s) |
EX string | parser_help () |
EX bignum | hrand (bignum b) |
EX void | operator++ (bignum &b, int) |
EX void | operator-- (bignum &b, int) |
EX string | short_form (bignum b) |
EX string | compress_string (string s) |
EX string | decompress_string (string s) |
EX int | hiitemsMax (eItem it) |
EX modecode_t | modecode () |
void | displayScore (subscoreboard &s, int x) |
int | read_mode_args () |
Variables | |
ld | eyepos |
hyperpoint | shcenter |
EX hyperpoint | front_leg |
EX hyperpoint | rear_leg |
EX transmatrix | front_leg_move |
EX transmatrix | rear_leg_move |
EX transmatrix | front_leg_move_inverse |
EX transmatrix | rear_leg_move_inverse |
EX ld | leg_length |
renderbuffer * | floor_textures |
EX bool | offlineMode = false |
const EX char * | leadernames [NUMLEADER] |
string | achievementMessage [3] |
int | achievementTimer |
EX vector< string > | achievementsReceived |
EX set< string > | got_achievements |
int | specific_improved = 0 |
int | specific_what = 0 |
int | next_stat_tick |
EX bool | hadtotalvictory |
EX array< int, motypes > | kills |
int * | killtable [] |
int | lastdouble = -3 |
bool | gotit = false |
bool | built = false |
EX int | fontscale = 100 |
EX display_data | default_display |
EX display_data * | current_display = &default_display |
EX unsigned | backcolor = 0 |
EX unsigned | bordcolor = 0 |
EX unsigned | forecolor = 0xFFFFFF |
TTF_Font * | font [256] |
EX SDL_Surface * | s |
EX SDL_Surface * | s_screen |
EX color_t | qpixel_pixel_outside |
EX string | fontpath = ISWEB ? "sans-serif" : HYPERPATH "DejaVuSans-Bold.ttf" |
bool | fading = false |
ld | fadeout = 1 |
tuple< int, eModel, display_data *, int > | last_projection |
EX bool | new_projection_needed |
EX ld | lband_shift |
glfont_t * | glfont [256] |
int | curx = 0 |
int | cury = 0 |
int | theight = 0 |
texturepixel | fontdata [FONTTEXTURESIZE][FONTTEXTURESIZE] |
vector< glhr::textured_vertex > | tver |
EX purehookset | hooks_resetGL |
EX vector< msginfo > | msgs |
EX vector< msginfo > | gamelog |
EX char | mousekey = 'n' |
EX char | newmousekey |
EX bool | setfsize = true |
EX bool | vsync_off |
EX bool | noGUI = false |
const int | NOCOMPASS = 1000000 |
EX bool | generatingEquidistant = false |
int | loopval = 0 |
vector< eLand > | euland |
map< int, eLand > | euland3 |
map< int, eLand > | euland3_hash |
EX vector< eLand > | currentlands |
auto | ccm_bigstuff |
EX map< cell *, blizzardcell > | blizzardcells |
EX vector< blizzardcell * > | bcells |
int | blizzard_N |
EX vector< cell * > | arrowtraps |
auto | ccm_blizzard |
EX int | cellcount = 0 |
EX hrmap * | currentmap |
EX vector< hrmap * > | allmaps |
EX hookset< hrmap *()> * | hooks_newmap |
EX heptagon | deletion_marker |
char | rpm_memoize [3][256][RANDITER+1] |
cdata | orig_cdata |
map< pair< cell *, cell * >, int > | saved_distances |
EX set< cell * > | keep_distances_from |
set< cell * > | dists_computed |
int | perma_distances |
auto | cellhooks = addHook(clearmemory, 500, clearCellMemory) |
EX int | mine_adjacency_rule = 0 |
EX map< cell *, vector< cell * > > | adj_memo |
EX downseek_t | downseek |
EX bool | hardcore = false |
EX int | hardcoreAt |
EX bool | canmove = true |
EX eMonster | who_kills_me |
EX int | lastkills |
EX vector< bool > | legalmoves |
const char * | wormdes |
const char * | cocytushelp |
const char * | tentdes |
const char * | gameboardhelp |
const char * | ivydes |
const char * | slimehelp |
const char * | gdemonhelp |
const char * | ldemonhelp |
const char * | trollhelp |
const EX char * | trollhelp2 |
const char * | trollhelpX |
const char * | camelothelp |
const char * | templehelp |
const char * | barrierhelp |
const char * | cavehelp |
const char * | vinehelp |
const char * | hvinehelp |
const char * | deadcavehelp |
const char * | foresthelp |
const char * | hivehelp |
const char * | redrockhelp |
const char * | caribbeanhelp |
const char * | cislandhelp |
const char * | redsnakedes |
const char * | minedesc |
const char * | palacedesc |
const char * | gatedesc |
const char * | princessdesc |
const char * | elemdesc |
const char * | wildwestdesc |
const char * | elecdesc |
const char * | overdesc |
const char * | cleardesc |
const char * | winddesc |
const char * | warningdesc |
const char * | hauntdesc |
const char * | bulldashdesc |
const char * | prairiedesc |
const char * | cadesc |
const char * | huntingdesc |
const char * | terradesc |
const char * | terraldesc |
const char * | arrowtrapdesc |
const char * | lavadesc |
const char * | blizzarddesc |
const char * | crystaldesc |
const char * | NODESC = "No description yet." |
const char * | NODESCYET = "No description yet." |
const char * | GENDERSWITCH = NODESC |
const EX char * | rosedesc |
const EX char * | warpdesc |
const char * | warplanddesc |
const char * | roselanddesc |
const char * | dragondesc |
const char * | tortoisedesc |
const char * | krakendesc |
const char * | halloweendesc |
const char * | reptiledesc |
const char * | naturedesc |
const char * | mirroreddesc |
const char * | tamebomberdesc |
const char * | gargdesc |
const char * | lakeDesc = "Hell has these lakes everywhere... They are shaped like evil stars, and filled with burning sulphur." |
const char * | thumpdesc = "A device that attracts sandworms and other enemies. You need to activate it." |
const char * | twdesc = "This structure will disappear after some time." |
const char * | jellydesc |
const char * | ruindesc |
const char * | rock_description |
EX monstertype | minf [motypes] |
EX genderswitch_t | genderswitch [NUM_GS] |
EX itemtype | iinf [ittypes] |
EX walltype | winf [walltypes] |
color_t | floorcolors [landtypes] |
const EX landtype | linf [landtypes] |
EX vector< landtacinfo > | land_tac |
EX vector< eLand > | randlands |
eGeometry | geometry |
eVariation | variation |
EX geometryinfo1 | giEuclid2 = { gcEuclid, 2, 2, 3, {1,1, 0,0 } } |
EX geometryinfo1 | giHyperb2 = { gcHyperbolic, 2, 2, 3, {1,1,-1,0 } } |
EX geometryinfo1 | giSphere2 = { gcSphere, 2, 2, 3, {1,1,+1,0 } } |
EX geometryinfo1 | giEuclid3 = { gcEuclid, 3, 3, 4, {1,1, 1,0 } } |
EX geometryinfo1 | giHyperb3 = { gcHyperbolic, 3, 3, 4, {1,1, 1,-1} } |
EX geometryinfo1 | giSphere3 = { gcSphere, 3, 3, 4, {1,1, 1,+1} } |
EX geometryinfo1 | giSolNIH = { gcSolNIH, 3, 3, 4, {1,1, 1,0 } } |
EX geometryinfo1 | giNil = { gcNil, 3, 3, 4, {1,1, 1,0 } } |
EX geometryinfo1 | giProduct = { gcSL2, 3, 3, 4, {1,1, 1,0 } } |
EX geometryinfo1 | giSL2 = { gcSL2, 3, 3, 4, {1,1,-1,-1} } |
EX vector< geometryinfo > | ginf |
EX vector< modelinfo > | mdinf |
const eLand | NOWALLSEP = laNone |
const eLand | NOWALLSEP_USED = laWhirlpool |
const EX char * | scorefile = "hyperrogue.log" |
EX purehookset | hooks_config |
EX hookset< int()> * | hooks_args |
bool | gardener = false |
bool | lifebrought = false |
auto | ccm |
int | windcodes18920 [] = {164,182,171,158,148,155,163,174,188,205,193,160,167,160,140,128,146,153,159,161,167,180,190,186,202,229,234,24,120,146,165,177,179,169,146,125,113,93,131,157,147,155,158,161,162,157,157,162,173,187,204,198,176,163,242,249,234,238,1,30,77,120,140,153,165,173,173,204,200,184,165,150,130,119,104,86,70,71,54,208,168,141,133,167,169,158,161,161,166,171,165,142,144,153,159,166,175,186,203,225,221,216,191,168,149,114,70,26,10,241,220,229,244,251,7,19,50,85,110,129,143,148,145,173,180,178,174,166,144,54,248,215,182,170,166,153,134,116,118,122,114,96,77,57,47,69,78,62,18,228,189,164,148,126,110,81,250,217,169,151,156,163,168,156,154,170,183,192,182,149,118,120,138,152,158,156,158,164,169,171,181,202,217,234,252,241,243,235,206,182,169,159,149,125,97,77,53,40,28,24,4,237,218,192,204,220,244,246,248,250,1,4,12,31,56,98,120,127,129,134,148,156,161,139,105,153,209,205,187,177,180,177,174,167,152,117,81,44,4,232,201,160,162,161,168,174,165,153,139,115,94,103,120,129,127,125,118,94,66,50,40,28,10,50,78,89,97,81,76,54,16,230,195,174,162,157,151,139,122,98,81,58,27,249,245,2,7,89,127,132,146,158,162,174,191,230,64,124,150,173,193,209,224,211,203,174,146,119,87,90,93,118,139,159,167,164,157,149,150,155,165,172,169,159,161,172,195,214,219,221,206,26,19,252,253,11,9,253,225,206,187,170,168,166,155,149,141,124,101,83,81,68,55,48,45,38,29,29,43,24,254,232,219,199,171,159,174,187,208,249,17,219,241,250,248,241,244,248,1,1,3,17,30,37,63,128,134,147,141,135,125,124,134,150,157,161,173,186,161,114,79,52,50,236,241,243,236,163,169,168,181,186,184,184,178,171,172,170,149,131,108,91,73,64,41,10,233,216,202,112,119,144,154,152,161,177,186,182,176,166,152,145,133,106,85,67,76,85,112,135,142,129,124,134,132,139,125,89,71,42,32,26,32,45,227,220,243,26,71,91,97,112,127,106,89,83,88,88,65,30,255,229,201,174,171,164,157,154,161,153,146,142,139,137,93,78,75,67,57,36,3,232,233,241,255,26,30,48,73,93,105,116,121,132,147,161,169,157,151,180,201,219,232,6,32,94,129,142,159,177,190,207,220,241,252,237,226,223,212,193,170,144,119,95,72,56,60,62,70,96,124,136,149,170,177,183,178,171,154,149,144,141,144,150,157,168,175,184,178,167,146,139,143,148,180,196,208,228,229,232,231,209,170,117,73,52,48,251,241,251,6,26,41,37,26,242,232,217,212,191,169,155,160,167,174,177,161,147,145,144,150,147,130,100,75,65,83,79,79,75,40,45,49,48,49,46,45,35,18,19,41,83,56,19,255,239,220,221,219,208,184,155,138,133,145,160,167,179,185,226,14,46,119,196,237,243,251,8,1,243,232,231,234,235,249,9,5,248,245,247,7,18,21,21,21,29,33,223,187,158,154,168,167,153,142,128,115,118,114,116,133,167,159,162,162,170,184,194,216,208,209,109,92,65,45,19,13,255,241,247,253,255,14,26,82,139,164,157,144,167,183,193,192,188,192,197,189,179,173,167,169,173,184,191,172,151,138,123,108,98,87,81,75,78,70,51,29,248,222,213,198,230,39,67,83,91,123,146,157,156,140,140,151,176,195,198,187,185,185,182,175,159,145,144,146,150,141,96,68,57,51,50,54,54,63,99,129,153,157,160,140,124,114,89,153,144,133,140,158,162,146,59,58,72,60,18,3,6,6,16,22,45,75,123,170,197,219,228,245,50,102,98,102,98,100,110,149,166,132,108,84,80,82,87,90,102,120,108,92,254,11,248,236,226,205,171,147,159,161,163,163,153,145,141,154,185,165,146,146,144,142,143,150,174,224,57,69,68,66,63,68,69,64,49,42,15,226,206,217,228,232,231,245,27,49,47,43,37,50,71,90,102,100,103,106,117,113,117,126,136,148,165,177,199,246,63,107,124,217,215,225,230,225,221,238,2,15,13,1,171,134,132,135,147,165,179,185,191,202,212,227,244,9,18,24,1,248,240,242,233,221,220,209,192,178,161,143,125,108,96,79,64,53,37,29,34,38,51,53,68,86,116,140,130,136,154,173,189,190,194,193,191,191,189,164,139,145,149,144,141,140,129,128,143,154,145,159,174,173,173,186,203,193,183,177,158,129,126,120,121,116,113,165,195,207,214,207,201,20,239,229,239,251,248,225,198,178,149,133,93,76,72,73,101,137,214,221,227,242,253,1,14,31,51,79,73,78,114,201,238,243,210,212,220,226,209,189,167,147,142,145,156,166,173,173,194,199,171,152,142,137,138,134,134,154,165,166,152,141,118,88,64,35,15,101,91,76,72,78,103,163,251,11,33,45,52,56,42,20,87,58,42,49,57,23,244,2,14,8,221,138,125,95,86,40,255,4,246,224,206,203,213,221,224,220,204,185,165,146,124,108,115,117,127,127,138,148,161,165,163,152,165,201,243,35,54,79,118,160,201,238,20,248,228,253,10,24,25,255,234,231,221,224,221,223,224,223,233,254,16,28,21,7,236,227,232,236,241,254,15,26,22,18,13,10,9,19,19,12,254,254,228,205,183,163,150,161,188,194,194,173,160,147,131,118,105,99,114,119,108,97,93,54,215,185,161,156,163,167,162,158,164,176,197,196,209,229,246,238,238,0,23,54,135,85,38,49,35,13,249,251,243,244,233,224,253,0,254,1,2,10,25,34,59,92,114,146,167,181,171,126,109,136,177,193,199,207,201,196,188,183,193,206,210,204,194,183,165,172,169,158,161,169,159,171,190,209,214,199,174,153,140,143,143,120,114,115,102,83,84,83,75,72,79,90,87,90,81,73,49,254,228,215,209,208,202,180,148,66,58,49,52,66,60,63,66,94,122,144,155,168,166,169,208,49,109,129,126,172,199,215,215,212,193,183,183,184,187,188,195,196,181,166,152,141,131,135,142,143,152,185,246,69,117,77,26,31,37,51,45,43,40,38,28,31,35,73,105,127,150,169,177,177,179,172,153,132,114,112,106,89,47,244,180,142,120,125,138,155,172,179,191,196,247,30,39,34,56,97,88,29,250,235,220,235,245,252,2,7,5,15,37,61,78,99,125,135,165,198,212,216,219,220,221,217,221,150,130,111,112,113,102,97,101,104,90,114,213,202,216,168,126,122,119,84,52,69,73,78,88,91,85,80,100,125,149,147,135,142,165,198,4,41,13,235,241,239,232,217,189,156,128,101,150,154,154,155,160,174,164,156,147,139,126,129,137,146,230,228,212,133,137,141,144,145,143,141,140,142,149,157,171,208,242,16,58,67,64,63,68,62,51,52,77,80,78,79,65,51,46,58,50,245,184,186,177,197,204,220,233,234,237,219,195,201,47,50,54,71,69,64,54,24,29,39,55,72,87,99,106,119,107,97,96,95,93,114,132,146,66,94,114,126,131,135,139,151,175,180,166,197,248,15,25,35,63,86,80,44,3,222,224,238,247,238,227,221,211,202,216,239,9,18,22,24,6,247,217,178,148,131,125,131,130,131,139,156,174,187,185,184,193,201,205,205,212,221,233,249,8,18,37,58,86,4,7,6,1,236,248,9,0,239,217,216,226,233,221,217,208,193,180,170,159,153,135,125,110,103,96,82,74,69,57,52,50,42,25,15,255,5,11,33,40,44,45,45,50,56,71,108,144,168,161,90,117,125,139,157,178,193,205,205,206,209,201,196,191,197,203,212,213,182,151,119,110,130,150,159,146,137,134,142,146,142,126,100,113,146,166,170,149,128,121,187,178,176,177,169,169,188,210,232,211,197,195,189,185,178,152,117,95,108,115,110,109,102,89,96,83,71,243,207,203,210,226,231,233,216,173,116,69,51,2,213,220,234,0,25,14,7,245,232,213,195,190,164,113,136,133,49,67,75,77,78,75,89,124,135,149,174,197,202,212,216,230,242,252,252,245,4,18,24,31,50,81,119,108,97,97,103,124,154,174,204,2,25,75,167,189,210,223,229,240,242,227,209,188,169,135,115,145,134,129,130,143,157,161,180,187,166,162,242,230,228,195,166,150,143,139,131,130,135,131,124,120,110,139,168,180,191,176,164,161,155,138,132,114,77,55,28,1,250,221,188,151,115,93,77,65,64,57,63,92,131,165,199,214,238,254,16,42,56,39,52,72,72,56,22,244,187,130,79,44,20,31,52,64,82,99,196,220,237,249,0,34,43,219,213,195,160,144,134,118,100,101,124,212,227,3,24,10,250,230,205,194,192,185,199,215,226,228,228,230,237,221,205,192,159,161,163,142,115,85,92,96,99,106,118,121,120,114,121,128,132,153,166,168,163,155,143,129,128,141,181,208,233,17,62,74,69,60,80,123,146,179,204,199,233,30,57,78,169,196,237,9,14,15,18,35,45,57,42,216,227,235,223,210,207,218,223,213,211,216,217,219,215,213,217,242,6,22,35,43,43,34,22,248,218,210,203,214,224,238,237,230,241,4,21,31,44,27,22,20,14,14,3,251,253,7,14,21,27,4,246,237,6,39,9,243,222,210,200,193,177,156,122,144,165,187,219,223,224,216,191,175,171,159,149,141,127,117,111,108,80,71,111,124,133,124,106,89,78,84,74,52,14,228,201,169,155,142,147,163,169,170,175,168,154,148,158,157,141,216,214,197,189,200,216,234,251,19,13,251,248,254,18,23,17,4,218,181,177,1,7,14,46,65,36,255,241,234,234,236,232,228,232,229,219,219,213,185,83,21,254,246,255,9,0,4,6,18,36,36,37,43,80,107,110,115,126,177,182,193,199,195,202,27,71,79,100,111,145,211,208,210,206,213,222,214,207,203,196,188,181,171,180,209,222,219,220,217,217,207,201,194,166,122,170,179,172,163,145,144,150,171,184,112,145,170,191,213,238,234,228,225,222,197,173,150,131,126,130,160,167,166,73,100,117,135,133,107,73,64,76,85,88,86,77,64,63,75,86,100,106,97,96,102,103,100,106,93,100,2,230,222,208,209,212,194,202,202,206,206,179,147,121,97,79,71,46,33,31,53,66,66,46,37,39,42,60,73,89,123,160,159,148,163,191,179,170,166,179,209,244,26,79,119,134,123,102,82,252,216,219,229,234,233,245,206,192,184,175,177,179,175,185,191,188,179,192,224,217,197,183,170,163,159,145,141,132,120,116,135,147,145,139,134,131,178,244,28,43,30,202,177,168,244,252,251,0,12,57,63,50,34,36,49,38,26,29,24,18,1,2,2,21,51,84,116,132,144,158,167,180,184,201,198,191,186,187,185,166,148,131,113,98,105,107,114,116,104,73,37,5,223,192,163,133,111,87,101,118,134,155,164,169,189,190,201,210,196,231,21,23,32,36,30,26,15,7,228,152,153,187,3,11,23,201,209,199,186,204,219,235,249,251,248,253,1,252,249,254,2,23,56,66,69,77,87,95,108,115,109,127,162,199,230,223,217,217,215,218,226,219,211,205,204,209,198,187,165,138,112,107,119,128,126,108,98,91,90,98,117,147,68,59,72,47,15,239,227,233,247,10,101,112,120,125,132,139,120,20,4,52,71,63,65,75,84,95,100,98,85,65,56,85,116,138,150,174,177,178,162,159,148,150,154,141,154,2,30,80,111,199,218,236,251,249,248,243,238,230,230,208,179,151,118,77,33,253,176,162,153,147,149,152,148,127,195,195,175,161,155,153,144,136,125,100,103,120,145,142,104,63,5,242,245,1,47,96,125,140,137,136,142,149,150,143,145,145,135,137,137,138,148,154,153,145,151,189,220,235,1,255,238,64,78,71,62,58,56,54,70,79,70,35,28,16,60,106,95,89,86,91,97,78,70,49,34,33,57,76,79,86,79,145,146,158,164,145,151,188,187,191,210,227,241,243,236,236,246,252,164,142,161,165,139,105,71,54,44,56,100,97,84,73,79,105,10,243,5,21,34,44,57,69,77,88,101,102,108,120,135,139,122,104,86,89,95,91,84,75,84,123,143,162,182,223,17,62,94,116,123,130,133,132,127,128,134,138,141,143,235,209,185,146,111,23,15,17,28,35,29,11,11,35,48,65,76,85,64,32,24,36,214,205,211,254,5,21,6,236,226,225,225,218,207,195,183,189,209,232,2,26,26,26,27,38,44,24,255,244,236,228,204,175,152,137,131,117,111,126,136,136,124,116,120,134,146,165,179,188,202,195,186,181,179,184,198,207,211,209,201,200,205,218,222,222,226,254,16,18,12,13,30,51,73,108,142,179,236,5,5,10,26,48,213,208,239,8,33,36,6,239,9,198,196,209,226,239,250,244,228,217,222,227,210,195,185,178,175,172,162,162,169,148,119,123,114,99,97,105,105,97,81,69,70,75,67,55,48,47,43,54,55,33,20,20,10,249,233,233,235,234,13,51,47,34,35,40,42,47,40,38,41,33,44,55,77,104,155,179,191,196,243,41,87,107,116,117,125,139,151,168,186,192,202,209,224,211,214,219,221,218,211,202,198,198,188,182,204,211,217,233,238,245,213,185,160,141,92,80,83,107,130,164,174,178,159,143,134,126,125,133,145,156,153,150,149,161,73,57,75,87,184,184,199,226,146,153,146,122,85,19,214,187,171,170,179,182,186,178,165,145,155,198,209,245,14,254,230,214,179,191,220,186,179,192,197,200,178,153,102,72,60,83,102,114,123,93,101,109,101,77,61,82,92,90,68,53,23,251,228,207,199,197,206,222,239,249,1,5,246,6,177,157,135,98,70,61,70,86,170,180,194,225,224,224,243,34,68,40,23,16,13,2,243,238,227,203,190,194,202,209,246,66,63,98,153,173,213,7,39,70,89,75,73,88,85,73,67,49,131,146,143,146,144,142,160,177,182,187,195,199,205,205,211,221,229,239,1,10,2,235,220,243,4,13,19,21,22,22,39,65,81,124,174,146,130,114,110,99,97,110,114,125,146,163,161,163,191,34,47,45,62,88,123,159,172,191,218,227,233,228,236,252,255,1,249,230,216,202,187,175,188,141,72,14,179,155,138,116,113,111,122,131,142,175,157,131,175,195,201,215,186,152,127,73,20,5,1,2,239,217,189,155,136,134,140,145,145,130,119,120,120,134,139,133,124,118,114,104,82,77,114,152,184,196,205,225,223,150,160,163,169,182,174,134,128,137,141,160,79,67,61,47,23,247,233,236,227,209,200,199,187,170,144,111,98,86,75,60,53,61,53,30,38,49,65,84,118,146,131,218,224,211,219,226,236,250,7,10,11,89,92,31,1,218,137,104,97,72,78,67,242,252,250,221,190,163,152,110,76,51,13,242,1,23,44,80,70,77,91,103,133,189,209,210,221,230,235,236,237,252,55,95,143,186,205,216,220,219,191,164,143,138,142,136,116,94,88,90,115,140,171,197,194,246,28,46,44,34,14,248,241,212,182,188,190,184,191,178,160,178,194,208,221,232,238,233,227,223,230,242,5,248,212,203,215,235,151,127,131,203,182,147,138,142,53,30,70,102,94,83,79,84,104,116,126,124,122,118,110,101,107,114,119,108,111,147,161,170,175,176,174,162,153,143,135,126,116,107,96,106,105,158,200,192,197,217,1,37,66,97,106,116,68,41,37,24,119,137,140,147,157,205,230,212,190,156,64,56,57,73,86,105,119,144,174,222,255,19,27,26,26,12,7,15,26,56,62,66,78,87,126,169,205,229,245,251,231,213,203,194,191,207,226,237,222,202,198,197,207,216,215,215,219,221,210,200,190,197,229,254,9,13,24,38,48,47,49,53,61,58,55,37,4,233,212,193,192,185,185,196,205,213,231,251,249,240,226,213,224,232,247,17,34,27,54,85,56,32,19,21,26,16,7,12,20,25,245,230,233,250,2,9,13,16,19,35,61,21,236,235,222,207,233,41,80,89,48,12,247,230,219,215,207,203,209,213,179,189,194,95,71,116,144,151,162,178,212,247,2,0,255,232,238,217,188,175,177,184,171,154,138,153,152,140,124,112,103,106,123,130,100,44,31,2,105,133,132,136,147,148,133,116,93,80,65,54,80,85,78,72,63,35,19,4,235,215,176,151,144,132,117,126,136,158,173,174,174,165,170,186,186,165,140,135,134,150,163,168,133,105,58,251,221,214,204,182,171,186,203,212,222,236,247,252,15,49,52,46,7,248,248,247,3,25,40,40,40,16,251,228,213,201,183,173,184,227,238,0,7,7,234,129,99,59,35,23,194,217,221,227,233,228,226,225,220,218,215,226,230,227,218,206,208,216,227,226,193,143,106,44,3,242,245,237,233,243,31,24,253,246,253,7,250,2,27,47,53,45,39,49,21,26,116,116,126,118,117,109,87,30,203,202,205,204,211,208,209,210,200,202,234,10,30,53,63,78,82,82,91,112,122,50,22,239,217,223,214,209,219,231,241,226,219,216,212,206,201,199,190,180,185,173,153,154,151,201,250,225,225,230,225,218,221,229,230,215,209,212,208,205,204,231,65,81,87,3,206,183,170,171,165,138,123,127,124,131,171,191,218,13,66,108,136,159,173,183,197,215,236,7,17,241,214,228,239,248,244,219,195,180,163,150,132,110,106,104,109,140,188,195,198,220,243,3,62,102,110,125,152,166,170,207,17,44,39,46,64,74,82,95,95,93,90,86,67,44,49,49,67,79,82,91,110,120,121,107,97,96,101,112,113,118,116,121,129,122,110,114,149,180,221,214,209,202,188,191,202,226,253,179,170,194,204,202,194,199,235,236,14,91,126,130,119,84,84,88,88,91,64,30,16,3,9,34,60,73,84,84,56,30,25,11,13,12,26,49,62,68,61,63,87,97,186,200,184,162,111,136,183,223,226,198,181,172,159,156,160,185,214,226,231,246,6,47,88,117,145,154,134,113,107,98,66,33,8,236,221,221,229,232,243,1,243,251,18,36,122,170,186,181,176,164,165,175,179,177,163,164,191,202,200,191,180,166,157,117,28,3,220,209,196,189,179,170,155,153,176,153,132,137,151,138,129,123,118,103,76,114,155,155,150,151,160,123,117,121,115,23,57,70,84,33,230,209,194,191,190,205,225,245,247,241,220,222,212,176,100,81,75,67,58,46,23,6,38,75,67,45,23,5,19,25,16,13,19,21,197,223,234,237,248,15,29,61,83,101,134,140,148,146,151,165,169,176,192,191,182,194,223,229,213,197,186,183,188,197,199,203,182,163,156,148,133,110,93,80,82,96,100,97,112,128,143,131,119,99,80,53,32,15,251,245,217,195,177,151,133,125,106,75,52,64,93,113,121,127,145,172,180,152,151,185,213,205,194,214,226,236,209,181,154,58,44,34,28,23,38,44,39,23,16,19,18,6,249,229,213,197,178,181,186,208,226,245,0,14,55,119,165,181,185,180,178,141,175,199,193,204,245,250,2,4,249,239,237,0,6,254,242,239,240,245,246,249,246,251,243,71,80,67,62,68,73,80,86,90,89,97,118,111,98,87,94,97,126,159,201,246,9,252,230,211,213,227,216,208,209,221,243,238,218,203,198,192,194,197,204,208,210,210,206,195,187,218,61,95,89,91,120,138,145,140,146,122,98,95,98,91,80,76,76,89,112,139,167,197,239,25,37,59,63,61,48,38,15,253,237,233,236,236,248,24,70,107,113,103,109,117,126,132,135,142,156,165,191,219,237,221,211,125,90,79,45,42,57,72,83,83,83,101,113,113,113,98,91,72,46,32,20,55,81,107,138,150,149,167,180,187,205,208,195,163,130,143,156,145,123,105,109,127,89,50,33,255,167,134,146,166,198,213,227,246,1,10,4,0,252,252,251,248,236,228,235,7,230,203,183,164,151,140,113,60,25,4,251,236,212,181,165,156,152,147,134,139,147,157,153,139,127,90,30,228,208,187,169,156,154,155,152,164,155,139,135,131,129,118,66,62,83,96,124,158,184,225,55,79,80,56,221,241,247,242,245,0,13,31,64,96,111,133,153,152,140,131,126,138,147,156,158,161,144,135,142,155,156,139,115,132,138,135,130,130,144,153,154,165,187,112,124,127,134,170,213,234,239,245,3,27,23,243,193,146,106,99,82,70,68,60,48,56,56,49,22,66,89,95,98,120,24,241,223,142,131,124,114,104,88,84,93,100,106,131,95,65,76,86,66,39,21,5,0,55,77,80,82,101,106,108,96,106,121,132,130,128,135,163,153,116,107,67,223,190,169,171,177,197,211,222,234,252,3,251,236,233,232,236,246,12,43,74,102,109,122,139,161,186,169,147,128,99,69,49,43,37,20,224,136,122,116,125,111,88,52,69,111,132,161,188,212,210,229,252,13,32,33,35,40,45,59,77,75,75,85,106,116,106,99,99,110,123,131,145,158,158,141,125,107,86,68,71,81,96,101,94,80,70,62,66,66,34,203,160,166,184,182,184,194,210,234,255,31,57,78,102,136,127,127,133,133,137,144,137,126,130,143,142,117,121,113,72,44,0,221,202,169,133,110,82,54,23,13,20,30,27,19,54,56,63,237,240,240,7,22,32,39,52,62,67,88,107,93,72,41,15,15,41,64,123,185,202,180,114,34,26,19,21,56,49,14,234,209,214,216,225,233,228,223,214,208,199,185,176,168,171,165,180,200,229,0,19,36,46,41,35,24,25,36,53,61,69,50,35,9,243,237,233,239,242,243,225,201,187,159,144,130,126,132,123,104,94,89,114,125,140,152,147,126,136,97,92,105,126,140,134,136,158,178,185,187,199,212,221,213,199,182,176,176,181,175,171,180,204,220,222,220,215,217,207,192,189,190,199,211,225,235,225,213,211,210,228,21,8,6,0,2,23,36,51,76,107,140,151,164,164,169,197,251,10,20,9,252,251,30,60,80,91,119,152,181,227,251,11,34,62,48,62,95,196,219,251,42,108,163,178,193,203,218,230,241,1,9,6,1,233,217,206,207,213,251,251,229,208,189,184,182,182,173,171,177,190,159,151,162,178,192,178,159,120,77,109,136,122,106,86,81,85,107,121,117,115,104,81,62,53,62,60,80,85,78,66,49,45,44,43,37,28,35,75,69,71,65,247,18,32,23,10,254,237,226,218,219,215,214,203,193,236,27,69,92,73,51,18,12,42,39,32,39,52,56,49,37,27,28,37,31,13,16,30,38,56,66,59,21,204,203,199,198,215,246,27,66,103,116,117,114,112,110,113,115,126,139,144,157,179,196,197,194,202,212,207,225,245,253,222,198,218,233,234,236,226,222,219,220,210,197,191,202,210,191,167,143,187,227,217,219,218,225,246,2,10,20,9,241,210,188,159,139,154,170,253,47,52,59,56,84,102,111,119,210,200,195,196,190,176,154,134,131,124,115,115,116,128,128,132,145,161,175,168,158,147,153,164,184,200,234,17,34,43,50,36,7,227,195,192,209,242,24,65,120,145,160,164,148,128,98,72,35,240,203,190,181,174,156,152,162,196,186,186,197,195,184,184,204,111,100,55,231,213,193,173,3,35,51,37,15,230,241,10,174,149,151,100,151,174,193,206,209,218,225,204,182,182,160,57,56,38,37,24,50,76,92,100,104,138,168,11,57,83,104,122,117,95,56,35,24,57,81,97,106,106,82,58,41,29,17,6,250,242,233,211,191,200,197,187,193,211,224,238,251,251,9,21,38,31,248,1,18,48,105,150,160,147,122,98,79,62,52,47,66,76,82,98,126,158,173,172,153,56,248,224,217,209,214,240,84,88,117,101,18,29,29,13,11,24,19,254,236,237,246,246,245,214,180,178,191,196,199,207,217,237,4,26,39,35,34,55,65,239,204,196,194,226,9,17,9,51,100,113,99,71,44,80,122,104,96,71,67,67,47,5,209,166,152,153,153,154,151,149,141,128,127,143,176,191,178,176,172,182,210,187,192,198,198,197,202,208,216,221,221,231,234,226,209,192,195,221,249,14,15,16,21,22,20,18,19,20,9,11,25,67,74,77,63,227,215,201,183,159,132,121,118,125,123,85,81,86,105,118,103,105,118,146,165,175,166,155,146,131,131,97,67,59,72,71,64,65,73,87,107,124,141,160,167,167,187,235,240,233,245,251,223,221,230,249,10,9,10,4,8,13,16,249,231,216,210,203,197,180,164,155,247,240,45,34,23,249,214,182,171,161,144,117,99,96,90,83,107,125,128,130,125,124,225,243,76,84,84,179,201,206,206,223,247,243,216,181,138,114,97,80,41,2,11,22,24,28,26,3,241,232,218,203,172,143,125,105,115,122,141,152,153,155,155,136,111,105,114,104,96,118,135,145,148,138,129,118,113,118,117,108,104,94,63,41,38,79,125,155,182,200,204,216,214,221,240,13,70,124,143,152,156,159,169,173,217,222,226,125,104,114,115,130,145,143,157,210,2,53,73,65,63,60,53,29,246,213,215,215,226,230,228,221,200,188,188,198,203,208,189,170,181,158,120,95,100,101,81,68,65,47,39,37,54,70,67,41,244,3,28,47,53,51,50,70,110,146,173,156,56,44,9,240,245,232,202,185,240,211,215,233,246,3,5,18,132,129,193,220,213,210,183,139,128,137,190,33,73,81,91,107,155,205,242,3,14,8,241,217,193,158,161,174,189,138,84,74,61,32,246,227,202,220,235,3,6,224,134,100,77,71,74,86,97,101,108,110,102,15,224,212,204,196,206,223,234,231,226,222,226,224,230,221,216,137,109,136,147,168,186,194,205,216,223,228,246,245,216,189,171,149,129,132,133,141,152,152,153,135,110,81,70,70,69,81,104,130,141,157,196,194,183,165,148,57,41,64,69,49,55,59,51,33,242,237,249,11,230,183,160,144,214,204,175,171,164,242,186,153,132,136,155,174,199,206,211,222,231,235,240,254,251,229,233,217,214,224,234,244,4,31,37,49,209,186,183,218,234,244,24,75,118,110,92,45,4,224,198,160,127,119,125,154,178,215,245,238,3,107,129,121,103,89,85,58,54,57,90,117,111,116,128,141,131,127,125,122,120,113,97,87,95,98,94,110,134,111,76,78,53,147,164,162,168,174,174,175,186,189,188,173,154,155,150,140,133,148,116,114,128,116,94,76,76,81,87,85,81,74,247,229,190,175,170,186,202,226,12,31,45,63,90,122,135,151,174,171,246,194,155,145,138,140,148,149,143,125,35,251,4,249,211,201,200,170,135,99,69,59,58,68,74,77,91,111,124,111,110,108,133,153,198,235,0,21,26,30,39,37,40,45,27,255,253,250,255,2,14,34,85,92,76,67,75,88,93,100,110,131,153,182,209,226,237,254,19,20,246,219,203,205,206,192,178,180,173,185,199,222,248,2,242,214,198,188,181,181,189,195,209,225,221,210,209,211,216,226,237,221,209,195,180,159,164,174,206,233,254,15,16,8,8,12,32,44,55,58,56,51,46,49,55,64,73,75,78,85,68,51,20,253,239,222,212,195,172,171,174,165,167,173,188,190,190,194,203,220,239,3,18,13,4,242,229,209,194,200,211,220,228,232,246,33,45,53,42,20,245,149,120,85,56,34,15,3,14,24,23,9,10,8,11,24,45,81,170,194,200,206,239,6,2,3,3,12,17,14,14,13,4,26,55,82,100,108,200,219,224,221,208,197,179,175,133,64,80,111,122,129,117,21,13,15,240,233,224,221,219,220,214,206,197,198,210,244,56,140,150,194,237,239,249,36,39,32,59,155,155,146,146,149,160,161,188,219,243,17,22,38,31,35,49,225,237,255,3,248,221,203,188,178,163,142,119,113,192,172,157,146,132,119,114,106,94,76,84,138,148,161,148,122,117,201,248,250,224,189,167,146,155,150,141,133,140,158,164,173,160,144,119,103,84,70,59,50,46,22,31,120,109,88,72,80,87,99,56,37,23,14,26,12,248,228,229,222,136,140,138,141,133,126,111,92,100,111,117,135,155,175,185,182,183,185,171,152,153,162,182,201,204,212,195,146,122,119,116,113,131,143,153,164,99,110,87,74,45,238,209,201,225,219,196,163,153,147,167,179,195,206,209,215,221,225,248,254,252,238,254,30,57,82,85,97,101,4,248,236,242,0,247,235,241,1,35,50,53,56,62,82,39,0,7,249,214,210,210,210,200,185,176,165,149,110,13,235,212,217,34,8,1,10,28,2,228,186,143,118,79,38,17,26,44,88,140,185,205,205,216,224,233,242,233,220,221,218,218,218,217,209,203,199,211,221,231,235,228,222,216,205,189,197,196,206,221,238,246,251,224,169,132,133,128,104,255,250,232,222,239,249,244,222,218,198,148,79,85,124,199,234,238,234,240,255,21,25,206,227,239,14,42,58,66,67,56,48,27,31,64,134,136,144,135,126,120,122,122,103,77,46,2,230,201,196,208,221,231,219,215,221,223,215,204,207,221,238,171,184,194,234,2,12,11,9,32,42,56,72,87,84,71,53,67,79,92,104,117,96,49,55,59,31,234,194,209,255,236,216,199,201,220,239,251,6,1,238,221,218,222,221,220,212,203,202,200,201,206,200,191,177,159,227,189,156,141,136,138,133,122,119,42,38,45,145,206,232,242,250,220,214,213,216,227,245,247,247,223,211,209,211,222,222,214,206,202,207,220,220,1,48,44,115,88,57,29,239,205,183,169,160,166,178,186,189,100,106,110,112,115,106,98,76,170,190,194,207,217,241,28,53,64,83,108,134,161,171,170,175,184,182,187,225,230,239,1,28,34,56,74,169,200,220,227,242,5,19,11,8,243,185,170,157,156,154,137,117,94,79,83,83,91,91,100,98,194,222,217,220,214,227,245,241,242,235,228,219,129,108,105,109,115,136,168,184,195,193,211,233,246,1,11,16,8,22,33,54,66,68,70,76,92,108,105,101,98,91,88,94,100,89,39,14,32,39,36,36,55,82,86,85,78,80,100,118,129,141,136,136,123,109,93,91,94,96,104,113,126,123,121,145,144,147,128,100,32,192,154,152,200,242,223,200,199,200,198,186,171,169,171,153,233,230,250,40,99,144,141,155,186,205,213,209,199,184,167,117,20,9,1,13,23,51,79,96,116,133,148,193,37,58,73,86,93,101,97,99,118,102,45,11,253,240,226,237,247,16,27,41,71,91,70,90,124,104,68,42,17,9,17,245,246,237,250,7,50,51,53,66,79,88,54,20,49,71,82,87,81,36,244,218,67,65,89,99,161,223,251,10,2,221,190,177,178,178,165,145,137,135,145,162,186,216,245,233,225,221,226,233,235,252,24,61,98,125,147,170,174,182,158,142,117,128,139,48,35,21,22,21,250,228,220,215,215,228,244,241,205,233,16,56,237,245,249,12,35,40,53,77,106,134,162,186,202,172,164,186,238,78,133,163,183,184,181,183,176,157,130,106,200,190,205,225,219,207,187,181,175,165,152,151,136,105,82,60,69,226,202,208,217,205,195,194,185,176,171,159,144,127,72,228,206,171,137,108,110,146,179,168,147,131,127,122,120,127,126,109,79,36,11,190,177,164,160,153,148,151,162,180,205,37,83,104,119,128,40,62,80,93,115,122,124,202,210,214,213,199,188,192,200,196,195,198,204,210,244,255,248,242,245,228,181,194,198,187,177,153,143,128,102,87,80,73,70,65,58,57,42,15,254,222,205,115,93,90,85,58,34,16,255,233,242,25,36,28,8,0,2,6,25,48,97,146,183,207,222,231,224,226,222,245,31,26,13,19,97,82,72,117,159,153,152,157,161,153,146,143,157,178,178,172,169,182,206,215,209,168,173,184,213,245,254,14,245,218,195,180,178,181,180,185,191,206,211,211,218,224,202,172,149,151,157,160,149,135,122,95,82,72,72,61,69,90,99,103,94,78,94,113,131,154,170,161,144,128,115,113,105,92,60,34,22,31,34,8,255,211,195,197,191,181,164,136,117,138,131,108,81,51,35,15,38,113,114,117,116,124,135,146,193,210,226,63,108,117,175,192,204,222,190,164,251,245,250,10,7,229,199,177,151,104,61,45,48,59,34,29,10,55,62,55,50,33,14,3,253,13,25,25,19,4,243,228,211,209,207,210,204,193,189,190,187,198,212,221,224,232,250,246,247,250,21,55,97,137,154,166,168,169,172,166,167,183,182,100,90,79,240,255,248,253,9,18,12,2,253,233,217,208,236,16,22,20,7,250,233,224,227,232,246,243,235,239,251,239,229,248,246,232,204,163,115,103,82,51,59,68,71,75,84,88,93,94,88,89,76,57,137,141,109,87,81,76,74,76,93,120,140,166,173,7,30,25,42,30,21,251,226,195,186,222,2,243,222,197,197,214,240,9,10,9,229,221,200,184,188,188,183,181,184,190,201,203,203,207,219,216,210,208,201,204,215,245,93,87,81,68,70,66,97,132,154,165,155,145,152,167,170,145,108,75,78,89,104,112,96,84,78,59,57,54,71,81,93,113,134,191,209,230,255,12,18,20,41,67,72,65,75,69,55,49,47,35,21,254,238,230,232,235,243,237,220,229,235,2,34,68,108,124,124,129,89,75,94,107,114,125,135,138,134,128,140,147,144,166,179,187,182,187,226,220,203,190,161,132,106,104,116,63,5,16,14,33,54,78,84,91,91,81,63,75,116,126,132,126,129,135,108,96,100,104,84,59,37,11,250,235,254,29,59,85,96,126,162,166,164,145,133,158,188,193,170,150,241,240,240,218,131,108,102,115,159,178,158,130,99,87,86,83,69,83,173,153,67,70,77,57,244,208,178,162,151,148,156,162,182,201,208,215,212,216,250,255,250,16,27,18,10,6,1,253,249,1,6,7,0,245,206,163,69,45,3,232,215,205,180,168,150,147,156,152,155,194,14,14,250,249,245,245,237,236,233,229,214,195,177,162,155,149,146,154,157,139,114,120,134,142,155,167,168,164,145,134,137,134,81,43,6,231,217,221,202,183,174,160,149,160,165,148,135,210,177,150,131,127,129,128,129,131,131,136,142,222,11,19,50,68,86,93,92,183,192,209,219,236,0,24,69,104,86,89,133,173,202,225,251,6,242,234,237,245,254,24,37,54,87,115,105,100,120,146,178,170,161,145,135,126,119,108,127,165,165,170,181,175,148,129,128,123,149,179,168,164,162,170,88,140,143,146,139,120,119,122,119,141,156,166,152,152,165,192,230,16,62,97,120,114,119,211,231,236,249,248,249,241,241,254,19,46,72,53,222,208,170,154,136,130,120,113,98,78,61,61,71,75,76,31,19,90,67,53,57,68,29,226,222,146,115,110,94,100,121,149,174,201,218,193,177,154,135,126,132,133,124,117,101,83,70,69,92,107,106,99,120,149,170,181,19,51,72,88,102,108,89,64,31,6,250,234,231,150,102,95,88,61,45,132,130,126,115,132,111,89,90,103,117,123,126,134,138,104,182,186,195,104,91,95,89,86,72,20,228,202,171,149,146,153,159,175,191,221,227,228,240,6,18,27,12,3,239,221,226,231,228,226,231,234,241,8,44,68,83,99,105,95,102,121,159,196,175,163,148,142,125,110,82,57,35,33,39,43,44,26,245,203,170,142,128,113,118,132,150,142,128,131,40,19,26,247,153,155,196,187,194,191,191,184,201,209,229,250,255,38,55,49,5,22,39,44,36,37,50,78,100,83,72,70,68,74,71,105,139,105,100,91,88,86,113,131,138,134,124,157,167,182,179,176,157,145,141,136,74,62,48,51,53,75,100,110,116,108,100,86,71,64,55,49,59,63,73,66,232,185,144,154,195,205,194,188,185,175,179,188,206,218,227,238,3,14,36,64,73,78,88,125,174,171,98,119,132,139,139,127,134,150,164,153,122,117,124,143,169,222,63,96,111,124,144,73,74,79,84,48,21,245,229,218,189,158,133,112,100,87,74,53,33,15,9,4,9,19,35,50,65,225,185,108,75,62,73,95,144,189,213,213,213,243,26,24,30,30,39,52,59,53,41,81,109,130,124,119,111,76,44,17,245,31,60,55,52,78,118,166,201,218,222,127,101,82,66,44,33,31,31,22,248,156,100,87,56,17,218,195,181,194,203,204,213,225,240,248,239,233,209,204,215,207,192,180,167,159,156,167,166,156,145,149,166,179,207,230,250,15,20,30,41,54,62,59,53,47,28,12,17,19,29,46,62,78,86,92,81,69,60,48,18,250,237,231,227,236,244,250,254,254,2,228,213,204,197,183,138,127,122,113,115,113,131,93,76,67,48,74,117,113,116,138,160,172,171,191,107,99,132,252,45,67,105,122,136,156,159,135,113,117,151,174,191,192,191,183,181,194,224,235,238,223,207,186,172,173,166,167,174,189,194,169,156,154,159,187,215,227,244,240,236,223,216,218,224,229,220,202,179,174,175,176,186,196,206,212,214,215,255,5,238,220,202,195,200,202,202,204,255,254,2,2,249,238,229,19,37,28,33,49,63,80,105,139,163,174,178,176,167,170,158,157,160,189,33,41,30,32,37,27,4,235,226,45,75,103,92,89,103,105,106,103,132,151,217,242,248,2,3,26,61,90,103,62,104,163,195,202,204,223,244,12,36,90,116,136,159,173,181,188,193,205,213,237,0,20,19,18,13,19,20,20,249,223,213,206,198,193,194,175,138,51,32,6,193,175,179,178,180,183,191,183,164,176,188,208,236,77,122,138,157,184,196,205,212,204,194,183,130,88,56,30,17,181,150,132,121,111,91,65,75,71,51,132,135,128,128,134,123,113,97,75,52,35,35,57,64,37,14,93,97,88,89,87,76,53,35,40,41,41,42,44,44,36,24,0,170,115,84,73,72,95,148,191,233,40,47,57,41,19,14,4,1,249,211,213,212,209,208,209,206,195,179,173,149,166,247,3,48,83,116,130,113,87,66,229,166,75,52,42,25,6,246,83,68,62,68,60,53,50,28,13,6,23,36,46,40,5,252,250,246,6,20,29,40,59,77,69,52,27,214,197,208,207,198,187,194,212,222,250,24,49,67,90,127,133,138,128,121,111,109,109,108,106,107,106,108,111,127,144,145,137,137,149,172,196,210,209,207,190,198,204,211,242,208,178,215,251,3,1,148,174,199,222,243,0,248,249,250,237,223,221,231,219,221,232,224,203,190,190,208,222,231,213,194,166,133,96,91,16,2,229,220,220,226,234,255,12,19,23,41,43,26,21,12,242,205,196,198,178,144,120,103,200,221,252,22,38,44,44,38,26,39,66,91,109,111,100,76,40,1,226,221,211,212,207,193,201,198,178,153,132,117,127,134,123,113,108,107,104,100,114,129,135,122,117,126,135,152,165,191,177,164,146,130,147,156,161,177,199,205,205,211,232,244,13,40,35,25,14,9,3,223,203,182,180,203,234,9,27,51,45,34,118,143,168,183,179,170,157,148,121,101,83,77,53,254,232,210,179,183,182,181,168,138,131,123,76,237,214,197,184,178,184,211,217,202,183,178,170,207,11,32,56,76,58,29,12,244,222,207,198,168,126,81,44,67,74,85,62,57,59,96,182,199,232,21,72,104,134,136,133,138,128,138,153,176,202,210,214,217,223,232,240,0,235,214,193,185,200,215,249,24,27,36,28,22,15,10,5,255,7,52,84,94,98,97,93,180,183,206,10,43,49,61,84,104,122,143,137,137,120,98,32,1,246,235,9,35,107,115,121,121,128,107,81,63,56,39,17,20,19,16,7,254,250,248,245,222,186,150,184,220,209,198,186,177,172,172,206,215,224,236,255,12,3,250,252,13,80,123,207,227,248,8,23,25,135,153,166,176,164,156,138,116,97,77,66,60,57,47,27,18,57,82,85,69,75,87,97,109,135,155,169,180,178,170,153,28,230,213,215,216,210,192,194,127,112,115,131,154,162,202,233,13,52,48,23,2,254,253,18,42,41,40,14,242,240,249,252,2,8,5,3,170,148,157,166,185,197,198,195,194,200,207,218,232,246,250,14,19,40,11,253,74,67,26,244,229,227,210,180,166,183,236,26,34,29,8,236,216,130,123,125,139,128,120,97,74,35,247,242,168,163,73,33,74,82,67,51,26,249,220,195,188,170,140,137,169,159,162,166,156,145,153,158,147,134,114,110,118,123,131,216,188,168,167,169,163,155,170,19,56,148,179,193,196,196,194,192,190,195,198,202,205,211,217,221,218,204,220,240,245,224,201,196,184,173,172,170,193,227,251,14,34,25,18,14,16,27,27,24,23,18,15,14,18,24,22,11,235,197,111,87,71,70,84,89,76,25,247,230,211,206,216,203,183,136,124,121,118,116,120,133,149,171,11,50,61,59,71,101,121,60,88,91,96,104,135,162,172,186,195,177,164,159,148,139,125,113,105,96,81,77,72,66,60,68,66,62,64,72,78,89,105,118,125,132,145,162,173,173,154,141,154,156,77,19,236,2,18,34,238,192,200,207,222,16,23,19,4,1,4,10,20,40,49,11,245,237,224,209,209,212,211,212,210,193,180,162,125,109,80,42,18,8,255,242,219,185,167,174,176,177,166,154,130,101,89,83,92,87,77,58,118,144,134,124,135,143,119,103,64,37,64,88,64,38,6,223,216,211,215,213,254,17,15,5,248,224,196,155,121,106,89,92,94,94,83,245,227,18,34,43,46,52,47,49,25,8,247,233,235,239,235,230,220,187,131,128,86,77,94,98,103,124,149,159,164,160,158,154,163,174,156,121,86,121,131,101,70,70,94,122,143,148,137,133,127,116,99,104,116,132,128,95,107,111,86,51,25,255,2,255,32,54,111,138,142,189,210,212,203,208,221,235,5,36,63,104,136,139,143,152,154,152,150,148,169,182,165,136,56,18,2,255,1,38,73,80,95,105,175,147,133,126,183,247,252,6,20,81,53,52,75,64,56,67,57,39,252,202,182,189,196,202,215,216,224,234,230,177,168,174,178,190,199,208,221,233,217,184,144,85,238,203,179,121,89,69,78,110,119,122,100,71,65,74,29,17,20,22,32,42,60,86,91,89,118,197,205,222,229,1,30,57,63,53,54,32,12,34,55,88,118,146,182,205,202,29,56,47,22,253,232,217,42,13,238,196,151,84,20,223,177,183,195,220,234,220,26,4,254,11,30,145,160,157,167,171,181,188,191,208,217,218,222,134,122,130,123,125,178,208,233,46,99,94,87,85,83,113,137,151,173,198,9,21,33,26,24,7,229,221,225,8,106,139,155,165,180,197,233,240,54,63,73,78,72,69,56,19,214,206,195,222,254,11,6,242,217,191,167,132,95,82,71,67,63,68,82,95,107,98,100,109,112,111,106,95,69,29,246,224,216,210,204,191,179,183,239,233,219,211,214,219,216,210,223,225,220,179,183,106,109,121,170,174,168,169,179,195,192,188,195,203,216,230,229,216,249,220,203,189,181,157,130,113,114,122,129,127,132,148,162,159,159,155,140,124,81,70,61,45,50,53,59,64,69,91,118,144,148,141,177,168,165,162,138,87,36,40,66,98,98,117,41,38,80,87,122,195,215,226,236,243,5,41,67,153,172,173,150,126,88,48,171,155,157,156,130,72,38,32,110,137,125,106,111,147,158,185,217,216,210,202,204,225,239,237,238,230,234,246,11,25,15,187,202,207,213,223,230,236,240,253,18,40,54,62,81,150,174,11,250,241,225,250,35,73,107,131,123,107,91,77,61,34,238,221,193,168,135,105,93,87,65,153,162,178,184,195,219,229,183,157,151,137,139,118,97,83,79,83,119,221,19,30,38,46,134,147,123,111,127,144,159,157,142,129,127,128,127,124,120,75,71,81,102,101,88,66,77,110,132,162,192,37,56,67,52,22,253,222,186,173,166,166,169,172,180,179,176,171,166,179,199,208,201,199,149,159,156,136,123,113,128,181,193,21,74,126,151,143,124,88,61,41,54,64,83,57,64,78,80,77,78,68,38,252,237,145,153,149,155,158,175,204,205,199,212,61,52,38,32,50,60,69,85,126,143,140,153,177,200,205,202,220,236,241,192,178,160,145,137,134,135,143,158,159,148,150,148,126,86,43,11,254,8,30,28,42,127,180,212,231,155,130,101,72,64,68,54,49,51,65,80,77,66,70,89,108,126,137,146,135,95,90,91,73,98,121,126,143,178,226,247,4,32,27,32,28,38,56,45,36,46,59,58,60,17,232,234,240,239,245,246,240,236,250,5,22,23,9,62,53,69,82,91,97,102,104,100,103,113,118,130,145,164,178,196,216,233,232,25,51,52,48,16,247,224,200,185,199,171,164,170,172,164,156,165,176,194,208,242,23,15,17,21,14,219,202,190,190,194,161,156,163,182,192,241,221,203,199,201,203,210,210,213,228,249,9,238,219,214,212,201,187,177,158,138,150,177,188,213,238,0,25,36,25,251,250,20,42,53,60,69,65,61,60,49,38,41,46,54,60,68,77,83,77,84,92,102,106,99,82,74,4,247,237,226,216,216,219,208,195,174,150,152,151,162,167,156,143,177,187,197,193,177,179,180,187,196,210,219,227,243,15,23,35,38,33,235,238,236,213,180,171,189,193,199,230,222,222,211,121,71,61,64,63,63,244,207,180,152,135,113,95,72,50,41,25,10,248,241,252,21,46,26,16,22,9,1,251,9,13,15,43,76,115,147,177,178,169,168,172,195,200,25,30,8,3,4,6,255,250,11,7,22,17,253,231,250,22,51,105,119,122,144,200,218,217,218,220,221,218,206,186,178,171,166,161,138,106,82,144,155,146,151,152,177,206,243,12,30,61,166,217,231,229,218,216,216,219,225,229,220,217,213,207,183,187,196,228,37,67,94,111,131,136,120,33,27,13,1,228,195,243,29,43,24,253,2,235,203,175,162,149,140,137,134,141,154,138,163,198,227,244,10,31,41,39,47,65,60,52,55,59,91,140,185,222,251,17,16,14,18,26,64,222,213,202,188,180,176,158,138,124,105,93,69,26,231,199,180,170,162,150,138,127,117,108,110,111,110,94,71,45,32,239,164,172,184,183,163,131,107,103,143,182,215,236,245,236,227,181,150,153,150,151,161,174,168,167,155,140,119,123,145,195,186,176,166,135,107,108,106,95,75,68,59,49,40,41,47,41,22,243,232,192,161,150,131,81,62,57,69,84,95,110,131,147,231,17,23,60,47,27,251,225,216,220,242,6,127,143,142,138,129,122,116,105,88,62,76,84,92,95,106,119,131,152,172,184,186,195,199,185,164,149,130,131,136,153,175,196,214,211,214,229,233,63,107,111,112,106,102,96,91,112,145,141,147,155,151,114,140,132,90,83,89,83,80,156,192,198,202,186,209,199,121,130,126,114,140,156,163,173,192,204,209,208,203,209,214,215,227,21,15,11,9,241,205,221,240,17,42,54,141,133,146,177,223,249,234,217,224,237,4,37,7,232,218,222,224,75,59,52,60,71,65,89,125,138,217,228,253,11,26,205,203,218,228,195,176,178,182,164,146,136,128,114,74,37,251,94,33,8,254,248,245,28,68,53,27,255,230,206,174,153,33,5,249,2,18,37,55,67,93,118,159,181,196,203,190,196,222,225,216,226,252,223,211,207,214,209,211,213,220,184,181,198,215,217,225,238,242,246,234,225,222,220,218,212,189,160,176,188,193,185,187,205,221,234,246,252,6,10,26,8,250,215,108,84,160,186,211,225,227,218,205,191,220,240,0,196,216,218,202,182,157,115,95,88,118,131,144,162,187,206,229,220,225,228,240,0,32,63,114,165,200,203,205,221,253,32,57,60,62,69,83,83,80,63,55,60,61,236,0,4,230,164,137,144,153,164,151,131,134,124,115,120,122,132,144,126,99,72,52,27,254,226,222,207,191,178,183,204,249,254,237,220,215,218,225,235,240,233,213,198,185,201,222,241,23,85,146,172,180,169,140,47,16,15,12,16,19,23,37,62,68,69,86,107,98,94,78,49,12,37,59,73,86,82,83,95,122,144,185,8,28,54,71,78,150,169,183,181,104,54,12,241,224,182,174,182,204,220,236,252,5,17,22,207,211,214,224,229,228,228,228,200,203,195,195,204,213,214,210,204,192,180,160,120,65,20,230,194,157,123,139,138,125,123,127,127,114,101,43,82,118,152,186,221,242,253,5,19,38,142,192,209,218,211,204,210,219,19,1,230,207,203,206,205,203,219,217,204,196,194,202,211,226,238,50,16,208,150,119,70,64,59,60,14,232,219,201,180,163,155,153,162,182,199,216,244,20,61,84,89,100,112,106,96,106,115,104,245,208,200,200,205,211,211,210,215,223,7,44,56,60,57,65,85,129,157,182,185,181,163,160,172,192,7,246,234,231,230,248,19,43,48,45,94,125,154,177,201,217,226,226,222,225,237,21,30,40,35,24,21,18,7,183,166,154,151,161,166,171,146,121,110,113,86,57,44,59,69,74,77,82,81,87,87,76,57,21,239,235,220,223,237,252,17,2,243,238,224,223,209,172,129,109,99,103,101,99,100,106,113,140,167,188,211,210,209,206,248,250,252,255,250,0,3,244,242,251,8,16,35,49,64,78,68,63,59,67,68,77,94,112,107,102,94,84,78,86,95,106,113,113,127,207,238,236,9,31,35,33,29,27,26,25,73,117,98,85,87,103,80,53,64,137,149,158,153,147,146,142,136,132,122,77,76,83,96,95,89,91,97,103,111,123,143,143,123,119,152,146,156,165,167,154,137,139,42,8,246,242,152,138,138,127,114,32,19,246,216,187,176,184,189,204,202,189,179,172,151,106,56,7,236,234,240,14,50,83,119,134,138,121,116,131,188,205,216,217,224,220,216,206,197,185,164,144,23,9,18,30,22,11,27,53,73,81,80,82,99,115,137,150,165,182,203,243,37,58,58,71,92,103,94,84,125,133,70,94,127,145,146,251,232,223,210,202,206,219,225,245,11,56,102,115,160,251,11,179,173,151,118,78,62,52,30,3,245,245,10,229,226,212,217,230,226,194,96,69,48,39,54,59,60,94,124,217,221,245,80,73,86,96,96,76,41,19,238,47,48,67,72,251,244,247,8,30,58,196,170,170,176,185,192,180,173,161,136,113,112,113,125,138,150,148,160,7,22,216,210,215,217,219,213,217,58,81,106,126,147,155,172,185,195,200,202,204,181,155,141,145,166,177,218,10,26,16,6,15,33,46,203,215,78,148,164,209,235,39,71,108,156,206,240,50,41,43,52,56,58,84,106,104,113,131,160,188,206,229,165,212,247,29,65,185,196,194,192,185,181,192,192,184,174,155,120,27,13,102,163,199,246,231,223,198,176,166,154,137,138,159,87,89,87,93,189,189,193,190,212,251,219,196,190,195,176,166,177,175,162,149,145,10,240,158,91,87,70,188,185,159,137,119,117,108,122,136,138,136,127,103,13,246,219,221,206,180,169,166,165,163,157,150,143,142,153,167,174,182,200,227,251,24,51,67,83,101,126,137,51,64,81,88,102,137,158,144,138,126,136,165,196,213,206,217,225,221,205,183,196,208,197,199,200,193,189,206,35,21,11,245,248,8,55,135,141,167,179,189,186,159,139,134,145,119,95,82,74,73,74,75,69,67,65,59,64,252,6,229,204,181,155,131,105,82,93,110,110,26,20,250,234,219,108,69,50,248,238,242,246,253,83,108,130,158,170,179,198,227,215,208,199,73,45,23,255,236,188,141,104,76,57,37,29,206,187,160,153,161,165,140,165,183,168,158,160,172,200,224,226,235,246,47,132,139,152,4,9,11,32,56,34,249,220,207,173,192,179,173,179,187,187,185,218,224,226,239,253,175,178,152,120,136,140,156,161,154,142,133,57,49,70,91,55,25,41,58,83,99,101,106,112,71,93,118,132,150,173,183,199,183,185,173,152,129,109,103,119,121,111,84,53,24,13,12,12,25,33,35,45,125,175,177,207,214,203,174,163,120,104,88,105,193,160,134,122,107,37,18,0,234,243,18,108,113,106,115,121,131,136,127,111,27,237,229,230,10,57,78,84,65,31,205,199,197,190,223,133,100,69,37,8,255,1,39,48,249,215,198,186,177,169,152,120,79,44,33,26,16,61,83,112,210,240,228,149,99,76,64,68,61,41,28,19,0,245,233,231,41,34,31,22,28,27,209,194,196,195,194,212,218,221,210,196,191,192,195,199,188,180,185,209,216,221,233,228,226,222,228,20,14,228,227,234,231,88,127,159,167,172,175,166,163,161,162,146,148,154,173,190,74,51,33,7,249,241,243,242,245,13,29,38,33,14,254,255,8,12,245,222,176,203,241,24,55,49,41,7,255,243,216,220,241,9,0,234,216,220,229,250,12,10,191,205,243,9,1,243,228,208,189,186,174,148,127,113,101,44,59,72,73,68,68,71,80,94,88,90,97,105,104,83,85,97,105,81,43,15,228,184,180,149,89,78,64,69,69,71,72,64,74,95,110,134,154,168,169,145,100,59,76,61,53,39,14,253,239,205,172,172,154,136,55,39,253,1,243,175,169,214,241,1,18,31,29,43,101,202,230,243,225,200,174,181,186,185,178,176,185,197,209,208,205,199,198,222,219,216,207,204,203,203,201,217,216,83,67,50,53,50,39,45,70,102,145,193,197,175,160,141,134,149,185,193,72,38,53,62,74,87,110,71,84,116,44,36,40,33,52,72,85,80,77,85,118,137,204,208,221,238,249,7,12,8,6,4,96,90,47,52,59,49,41,49,12,240,249,226,217,215,34,0,229,191,197,235,227,217,234,3,36,70,104,138,160,184,3,39,52,111,109,116,126,138,148,141,137,132,109,109,135,130,125,170,193,195,189,176,163,229,213,194,181,166,109,76,103,131,228,224,232,250,252,248,5,24,41,70,85,100,105,105,91,73,40,145,148,132,153,73,87,110,127,111,66,58,50,226,209,198,221,242,10,34,104,94,79,100,195,188,186,166,146,125,109,211,210,220,190,158,133,96,72,48,20,12,8,242,99,85,243,207,185,169,143,56,52,126,81,69,33,245,204,254,84,121,122,158,220,214,212,194,173,150,147,148,155,166,160,156,169,197,214,222,223,211,33,14,218,0,41,42,46,32,26,9,250,238,241,6,18,18,24,15,3,252,247,160,127,92,80,228,208,211,167,182,151,121,143,155,177,215,236,248,0,249,230,242,236,226,239,243,234,215,201,187,180,169,152,157,153,142,141,144,139,146,151,167,170,183,126,133,143,151,171,179,0,38,36,20,239,247,229,184,173,175,168,159,166,182,189,154,126,94,50,136,118,117,122,122,121,122,127,126,131,132,133,144,169,202,236,245,49,67,83,106,75,69,62,19,233,224,238,246,129,156,129,42,70,85,113,145,161,176,203,214,224,31,5,231,219,221,234,243,241,22,23,27,24,82,112,133,149,120,104,126,134,179,224,193,180,172,171,156,136,122,84,107,177,171,195,192,212,157,122,106,120,134,128,104,72,225,195,182,172,165,206,247,149,153,160,156,152,126,94,98,114,65,145,150,161,176,195,163,138,138,141,156,246,253,21,49,114,110,103,95,77,33,243,239,241,248,1,7,221,237,247,10,23,28,153,195,224,198,162,135,143,136,139,132,121,121,119,109,88,67,52,71,81,83,85,99,109,192,224,54,63,201,202,202,194,166,131,128,117,77,97,162,204,193,172,175,172,166,153,128,115,117,125,137,146,150,126,114,102,93,72,55,40,113,127,119,141,161,172,190,195,222,1,33,53,63,74,87,104,110,114,138,119,94,77,51,24,3,234,233,210,130,105,105,108,114,73,34,25,3,226,185,158,155,140,111,106,185,167,135,67,81,94,112,122,119,122,121,116,121,170,228,232,207,214,241,16,51,87,96,88,101,89,47,251,211,206,195,151,142,135,132,152,160,173,192,230,229,217,222,241,6,24,31,44,51,31,12,8,13,251,208,224,238,234,226,221,228,231,229,83,79,62,72,85,126,159,190,175,171,159,151,155,149,136,135,131,67,56,39,12,17,17,31,48,62,217,188,173,134,139,157,176,168,165,149,172,213,250,253,8,15,11,250,203,249,228,196,185,191,195,181,242,215,144,221,226,55,55,42,27,17,126,130,101,74,66,65,62,59,66,72,70,58,32,196,104,107,95,82,65,148,139,146,151,158,148,103,71,230,188,174,205,193,190,184,170,145,157,165,59,43,30,33,33,98,118,122,125,113,106,102,92,77,65,56,54,51,37,58,56,64,80,104,146,106,126,213,193,190,176,162,165,170,169,189,213,204,214,13,10,3,12,86,86,79,68,99,152,190,220,226,11,57,140,138,146,146,152,146,97,111,129,151,173,190,175,117,113,176,203,8,40,69,120,132,147,178,240,94,106,233,243,240,236,213,192,171,150,129,86,69,86,87,73,59,40,30,20,255,0,253,254,37,51,116,148,176,184,168,151,145,52,92,120,157,185,198,201,192,192,187,204,230,12,24,30,26,57,70,63,250,152,116,130,177,159,113,65,52,33,19,247,85,84,35,47,65,103,173,199,216,218,226,242,17,54,93,104,85,60,11,201,178,106,68,224,194,189,172,164,150,172,183,193,213,230,245,5,7,251,243,237,191,205,238,229,200,185,187,139,143,159,176,176,161,146,140,129,129,122,137,189,217,29,31,34,39,52,68,72,72,67,75,63,9,13,33,50,56,62,80,98,104,115,112,92,83,81,76,69,39,8,247,233,228,235,226,243,250,248,248,9,14,232,238,215,215,202,200,206,210,181,76,101,109,102,96,121,5,16,253,180,131,92,98,100,119,142,167,190,190,169,193,212,67,100,0,16,4,99,119,121,127,186,150,113,79,78,175,194,205,192,183,170,165,229,233,233,6,9,248,234,213,189,169,158,159,165,180,199,208,225,212,125,196,226,231,231,6,0,254,238,220,209,212,218,218,238,235,227,209,182,160,163,160,162,207,212,208,180,125,43,39,233,219,208,183,173,204,198,247,248,251,2,7,1,247,236,221,216,199,186,102,4,5,30,48,58,60,65,131,161,165,201,188,158,128,203,163,143,129,135,103,66,60,45,40,41,21,200,94,120,152,142,60,76,119,110,88,68,66,94,112,99,67,248,255,1,10,255,65,90,105,118,135,92,181,204,197,193,195,202,13,215,123,115,118,129,142,151,167,178,177,181,198,213,212,251,18,44,37,27,21,20,14,12,27,35,40,47,30,202,206,203,197,186,168,148,131,33,173,173,177,178,188,205,203,158,182,186,192,200,214,238,31,73,112,122,139,152,169,214,229,198,195,220,47,201,174,145,131,135,132,118,111,67,28,47,63,86,145,245,146,149,136,128,131,141,152,12,41,1,252,226,94,81,83,91,108,19,18,30,41,42,38,36,38,45,45,47,53,44,25,224,198,155,115,65,54,72,107,132,158,172,187,202,136,93,45,6,248,14,1,1,254,212,219,214,200,197,212,207,192,176,153,137,114,107,61,12,236,250,82,76,151,165,146,141,121,101,188,76,48,28,239,162,131,107,68,49,72,59,62,70,52,20,253,28,34,54,214,246,2,244,235,227,225,14,23,22,28,28,39,58,85,107,98,61,55,38,178,217,194,188,175,179,192,219,249,16,40,50,76,103,134,130,114,101,106,107,106,106,112,104,102,95,103,110,103,92,106,137,151,140,123,118,172,215,216,222,252,174,169,206,25,32,124,149,166,5,27,15,12,9,1,171,185,197,205,19,6,255,255,245,226,209,206,218,234,245,248,249,206,190,189,210,244,227,222,208,162,147,121,90,54,64,68,60,41,19,248,210,238,245,25,82,63,62,45,26,19,26,32,36,18,197,221,205,173,133,99,75,41,205,226,254,22,30,31,38,13,254,11,26,48,75,96,107,119,127,129,100,55,36,234,229,228,215,196,179,181,223,221,219,155,90,159,114,107,102,104,108,103,98,86,86,96,112,132,104,98,109,120,127,138,159,212,200,184,171,150,127,101,105,164,177,192,216,218,218,212,205,199,198,229,74,60,60,225,218,207,182,161,163,159,181,202,226,2,26,38,54,72,245,203,176,202,216,195,184,181,183,112,94,83,74,79,220,232,237,152,165,176,183,180,142,114,114,114,117,100,66,26,233,220,183,162,193,232,241,246,228,173,37,31,41,36,65,69,45,30,13,8,10,20,255,200,212,195,160,130,107,98,74,49,86,54,83,100,104,131,164,240,42,76,111,112,143,127,151,113,132,150,170,193,217,222,217,216,222,216,220,229,249,6,22,27,11,245,178,173,189,19,29,17,7,22,23,23,242,242,249,3,255,205,113,85,103,90,206,201,186,173,85,55,42,46,66,89,105,121,141,162,165,154,145,128,127,127,215,198,194,225,19,131,128,128,137,149,144,129,64,74,46,13,248,255,12,17,22,19,13,249,252,249,244,195,144,105,87,255,237,229,223,215,199,182,177,178,177,208,200,231,223,218,29,22,5,249,224,242,253,8,19,31,36,141,156,173,182,192,193,178,168,167,132,114,109,101,80,62,59,249,235,3,100,86,96,107,87,101,121,160,170,175,182,191,190,183,172,163,251,197,185,179,207,213,220,128,133,146,174,218,214,223,196,108,252,243,241,234,233,0,32,58,62,58,64,62,38,5,250,0,252,251,13,4,16,47,91,129,125,129,142,151,168,202,192,187,188,216,219,227,247,7,249,242,0,38,79,61,222,225,193,153,108,221,241,243,59,37,39,53,241,241,221,212,125,126,133,142,117,103,94,239,203,206,194,186,192,200,230,238,73,214,193,167,193,94,38,210,191,163,150,162,179,152,154,145,139,123,99,90,91,104,118,127,122,230,202,150,152,130,118,78,62,94,161,181,188,187,183,188,191,192,198,203,204,206,211,216,225,207,176,179,220,245,6,11,242,210,174,166,143,253,13,27,16,9,39,31,26,27,29,23,16,12,32,33,33,50,61,68,119,127,33,17,1,247,237,238,8,98,117,124,120,115,113,107,112,221,9,44,53,48,81,114,43,76,94,88,77,80,80,94,123,156,179,218,156,145,135,123,97,76,70,71,74,74,75,72,66,50,52,59,56,60,56,60,70,78,73,122,132,151,124,118,128,147,153,137,117,55,235,11,38,51,63,62,67,150,166,173,182,187,204,215,26,28,11,8,10,38,69,76,89,243,244,245,236,216,198,199,202,207,219,216,207,175,8,11,7,2,255,144,188,185,176,172,154,139,128,78,65,70,66,76,90,94,87,73,141,178,171,140,100,121,148,152,166,96,92,5,25,111,125,78,45,33,19,22,16,248,233,219,210,215,226,58,40,30,28,40,34,253,2,15,4,242,212,162,133,117,102,95,82,70,101,120,157,194,29,66,61,66,77,61,41,25,10,249,237,223,217,228,238,248,215,133,150,241,35,80,90,107,122,141,182,174,173,172,168,165,165,153,141,155,167,180,201,190,175,49,135,153,155,141,48,29,42,47,69,83,101,126,149,145,123,134,135,132,95,64,84,96,112,135,151,147,138,131,109,86,72,22,6,245,223,223,224,216,234,16,7,217,120,204,190,202,217,231,160,137,155,153,147,138,124,135,162,191,213,187,140,74,56,51,35,23,11,244,64,96,221,200,115,118,106,90,85,19,18,11,10,16,7,253,71,34,17,223,122,88,60,44,51,166,157,224,224,206,211,218,230,249,242,156,157,158,164,171,176,184,195,199,206,240,210,175,139,110,192,49,38,53,140,141,136,142,141,127,98,72,107,109,3,13,26,34,32,174,200,199,198,199,206,229,1,24,84,38,241,233,251,57,75,98,77,81,76,207,181,137,90,60,27,3,225,62,35,242,158,184,198,240,18,150,165,182,177,176,179,163,153,169,159,173,202,212,219,224,229,39,99,105,115,131,137,215,212,137,129,90,101,94,55,151,177,191,32,28,67,45,32,28,34,42,52,221,212,54,158,151,158,175,186,184,187,231,36,61,67,75,186,184,213,242,16,27,26,13,252,204,206,197,75,72,66,64,54,63,73,83,93,114,79,92,97,93,81,213,212,211,208,205,207,176,169,166,170,246,247,213,198,194,202,203,192,203,243,233,222,217,221,28,83,97,81,68,172,209,207,209,182,170,184,200,219,204,183,201,214,233,247,245,239,219,192,174,205,204,197,189,194,200,178,156,131,103,93,108,104,108,123,136,132,117,120,124,132,168,175,167,163,163,153,40,60,72,75,60,41,48,59,62,55,53,52,74,174,156,148,139,37,248,5,19,55,126,116,122,161,215,12,28,101,106,117,144,153,161,184,208,239,237,240,249,24,64,148,180,192,182,166,125,117,95,67,73,131,154,140,66,47,38,44,50,76,102,79,87,89,142,166,196,231,251,238,227,214,196,232,244,13,248,228,250,232,241,254,14,38,57,61,150,174,215,211,194,199,213,234,235,235,234,241,134,119,126,100,220,186,212,226,15,31,74,126,116,99,85,72,47,27,233,212,188,171,148,125,111,86,70,53,12,218,174,176,187,194,188,185,181,183,203,227,241,178,176,172,168,146,127,147,172,141,70,73,108,161,13,8,24,37,33,5,220,185,177,149,107,133,147,161,178,175,170,156,130,131,132,131,123,118,62,68,56,57,101,122,114,114,99,73,130,145,30,6,251,211,202,185,171,167,168,171,169,172,173,162,208,231,240,181,201,208,154,173,100,208,225,255,29,165,163,151,141,106,68,46,24,44,21,60,82,87,81,71,67,75,86,20,30,128,144,130,144,157,218,174,174,158,44,59,62,53,149,158,160,148,138,126,205,230,217,207,212,222,243,246,222,239,187,148,132,170,179,163,166,143,247,236,0,38,57,48,158,206,253,77,87,41,54,77,101,92,108,120,126,155,162,156,151,159,52,82,108,108,108,121,133,144,248,235,32,43,36,49,74,81,63,38,16,45,224,226,227,230,217,219,232,243,248,8,20,35,29,9,21,40,58,67,78,91,97,91,95,161,166,175,186,204,218,229,248,244,48,74,88,84,77,53,33,12,248,227,208,187,175,159,161,153,151,155,161,173,184,164,73,40,29,26,18,3,32,78,109,186,206,12,246,207,188,194,218,21,46,37,2,226,207,206,215,222,216,206,194,180,177,109,131,172,203,174,182,208,233,246,38,60,60,34,234,217,253,52,63,64,63,76,82,77,68,61,46,37,25,28,35,43,40,48,59,60,62,66,86,73,73,84,115,82,250,207,204,221,234,204,181,154,132,133,138,131,191,198,211,213,171,175,206,208,214,221,220,220,40,35,24,31,51,49,58,255,235,187,141,142,137,185,191,191,189,188,227,213,210,212,137,97,74,65,68,76,64,59,78,206,193,172,158,144,130,125,115,101,83,62,42,35,45,37,21,227,79,247,0,28,1,100,129,159,179,185,173,159,144,132,207,191,168,120,70,51,20,241,37,42,28,255,229,202,232,34,54,131,129,122,111,29,243,227,222,165,162,159,146,91,75,177,179,165,157,157,158,160,178,201,208,245,165,194,216,229,237,242,237,225,217,218,219,217,213,170,185,70,66,80,129,237,39,133,150,167,12,36,244,237,221,195,157,151,139,123,169,200,42,45,55,56,54,54,60,66,61,60,157,169,16,72,237,219,216,175,176,189,154,130,123,119,108,90,81,51,13,237,220,216,201,130,124,119,99,107,115,117,48,247,215,185,188,196,206,220,197,171,150,127,98,72,247,232,226,239,1,87,132,137,146,166,175,98,127,222,203,199,187,153,82,101,111,57,65,63,42,33,34,42,55,220,200,250,30,44,104,106,118,132,147,149,173,191,214,246,78,99,89,68,53,21,195,209,230,246,10,147,157,150,144,143,135,128,120,114,117,66,36,28,48,68,88,104,113,115,117,120,140,160,171,192,209,208,214,207,200,167,161,151,136,109,102,110,115,131,146,165,178,191,215,242,219,203,243,109,115,108,107,109,81,68,78,92,134,175,178,149,86,100,98,184,190,200,206,200,219,27,87,118,118,113,100,163,155,151,157,161,211,206,195,192,202,209,218,136,55,53,39,172,190,49,41,162,153,153,211,8,197,210,210,218,223,196,250,203,207,200,209,215,209,101,46,54,76,65,94,127,156,156,216,163,168,170,172,183,198,193,129,133,125,97,74,123,206,245,243,245,254,243,208,123,98,77,68,52,27,4,240,228,220,211,191,235,237,228,235,239,0,15,28,65,122,152,216,202,175,160,146,231,242,235,212,198,49,216,205,209,199,193,196,201,204,206,218,163,165,178,191,212,231,223,209,242,228,123,124,181,207,197,170,166,208,225,234,243,17,29,5,255,26,61,70,48,187,191,221,202,224,241,133,164,1,237,223,206,189,135,146,149,150,150,155,172,189,196,62,85,101,196,186,174,56,66,97,87,66,54,137,233,250,208,149,169,104,101,122,152,37,25,5,214,202,205,149,155,157,218,245,255,255,183,232,235,249,23,68,117,149,159,139,112,22,2,3,14,75,93,80,69,110,132,126,110,104,108,213,91,103,85,67,187,204,213,242,5,40,54,69,83,84,152,160,174,178,177,161,130,97,228,233,250,3,12,24,34,31,29,191,201,204,202,215,227,233,235,232,234,235,237,207,186,219,217,216,203,190,170,117,66,54,45,27,4,231,196,160,114,27,55,87,109,131,252,72,134,162,173,195,211,222,239,38,134,178,195,211,217,45,30,9,238,206,184,193,198,204,197,186,202,212,197,195,186,196,202,205,206,219,7,39,19,248,209,161,130,170,207,36,57,71,93,68,224,218,145,142,165,16,254,39,56,84,84,102,123,93,72,232,214,202,212,218,213,203,198,204,219,53,61,63,66,58,47,45,47,202,207,207,197,173,151,145,144,154,165,186,10,252,239,228,241,9,44,58,60,61,54,153,164,176,191,221,227,230,230,236,227,216,218,217,203,152,62,19,25,29,94,116,152,20,19,17,30,66,69,76,77,73,75,254,217,225,241,0,16,40,5,234,228,217,209,194,154,111,97,92,97,174,127,25,235,215,208,254,252,249,253,12,6,240,222,241,4,24,40,58,68,70,57,59,70,97,117,105,68,66,75,88,217,239,14,55,42,33,29,242,171,158,123,70,73,90,153,161,152,146,147,144,138,140,158,56,77,100,84,89,162,134,133,180,181,181,222,4,6,247,246,73,111,130,152,130,126,235,204,171,173,170,173,193,178,146,58,71,46,30,13,243,225,223,222,152,147,129,104,98,86,79,223,228,220,223,152,142,248,35,52,41,247,5,16,74,66,64,145,152,159,190,217,103,121,133,181,227,30,66,84,120,154,157,160,162,240,220,205,197,189,195,207,210,223,241,10,146,115,108,157,211,225,4,14,11,230,187,216,30,61,57,13,244,236,219,220,224,251,18,221,222,213,189,192,192,207,215,226,226,203,152,105,79,57,43,32,63,27,227,121,149,112,99,81,97,113,112,112,102,15,69,76,252,252,11,39,170,140,146,174,176,166,175,178,175,155,130,99,113,126,151,156,153,130,41,32,43,203,208,193,201,74,86,95,163,166,192,196,199,172,150,139,125,140,171,164,192,232,18,6,2,250,243,188,109,116,114,116,100,206,103,104,116,147,182,32,40,52,58,59,59,40,117,119,108,94,95,105,111,134,159,185,205,209,219,233,248,9,30,201,201,184,218,197,205,182,168,161,26,26,45,170,15,248,240,241,222,180,162,160,102,51,83,177,198,169,254,179,188,190,156,185,168,150,247,97,86,197,206,209,180,157,141,122,147,150,143,141,245,168,162,156,146,174,192,26,41,57,112,145,149,61,91,190,174,118,208,238,231,231,192,201,171,74,52,39,29,5,34,110,113,132,189,126,115,113,122,78,71,67,77,82,64,225,0,52,147,138,127,84,46,70,83,101,130,139,51,38,253,230,227,217,213,236,225,223,229,232,245,253,53,82,107,116,170,162,176,206,44,25,8,246,204,154,124,101,94,22,9,145,118,164,171,155,216,233,241,247,14,50,87,105,123,125,136,25,29,11,11,24,50,70,99,26,237,204,203,183,216,218,170,172,184,194,201,162,224,229,227,222,227,236,12,148,196,116,126,128,166,172,226,43,93,143,238,2,30,44,104,109,58,89,111,166,187,237,204,180,204,209,189,133,114,91,86,81,106,136,76,247,251,254,6,10,10,253,36,59,175,184,161,129,32,239,225,213,35,80,83,71,66,67,28,246,228,138,128,131,129,123,207,220,253,128,101,72,4,248,233,217,79,83,74,60,56,42,37,82,85,66,49,47,251,255,3,94,198,186,177,42,228,140,107,113,193,187,169,165,141,109,70,32,13,42,38,47,33,19,9,24,67,188,173,177,202,221,211,192,178,179,164,170,250,223,220,203,75,50,56,108,139,183,174,161,157,158,156,127,125,180,240,235,226,41,60,57,39,234,236,14,24,33,28,3,233,246,32,86,72,61,202,206,224,237,5,41,31,91,135,169,178,219,1,20,243,231,209,186,115,65,81,83,61,63,63,93,81,85,134,90,50,129,114,208,191,183,51,61,62,64,69,78,76,63,52,55,83,88,81,113,179,182,168,142,101,105,90,78,77,63,30,12,5,180,145,144,162,166,86,129,220,242,255,10,29,145,123,118,0,254,254,10,25,52,47,34,41,74,115,160,15,0,229,182,175,192,197,205,222,219,185,213,204,196,184,185,205,81,65,41,28,44,46,43,68,84,117,193,188,136,133,119,114,195,205,212,255,17,61,96,28,30,57,44,90,138,142,149,199,211,231,2,14,14,18,12,115,44,54,62,76,68,184,250,6,15,90,28,251,244,203,13,251,222,196,208,225,242,16,35,56,83,106,230,6,17,95,105,153,137,131,134,80,74,81,39,74,206,194,188,146,137,247,225,179,171,18,208,209,247,237,7,27,62,82,117,103,92,163,243,38,109,124,148,163,204,28,53,188,206,223,209,144,130,111,248,214,66,73,77,6,251,3,207,164,165,248,216,156,203,206,142,145,163,177,183,168,231,232,237,40,184,168,75,61,65,248,220,26,38,40,16,253,253,254,250,250,165,149,136,121,110,110,181,202,119,147,144,161,182,231,231,252,248,1,250,228,210,186,182,164,136,166,126,161,178,181,167,133,140,207,223,232,251,18,47,41,27,72,21,3,0,5,90,147,171,171,167,167,175,187,209,121,120,103,85,67,115,100,98,123,122,121,111,122,131,135,138,165,51,65,65,241,32,59,80,14,225,224,196,29,54,64,96,156,158,156,179,228,218,215,192,194,205,223,237,246,254,14,11,248,173,133,123,136,164,185,178,117,108,27,19,245,214,190,177,174,177,183,173,150,59,67,77,147,132,100,66,193,190,179,174,165,156,165,173,170,167,168,108,64,51,216,161,178,202,134,254,241,249,48,104,110,100,85,70,70,7,228,4,25,28,28,165,186,164,118,99,158,139,132,119,98,80,95,86,78,100,113,146,54,190,200,203,188,162,138,131,158,148,171,169,168,201,116,120,128,150,157,164,109,102,44,24,179,162,176,196,99,118,123,118,96,81,164,100,86,69,44,102,105,116,118,25,245,234,188,186,83,112,125,126,114,97,96,222,241,251,223,207,213,248,250,167,111,106,253,224,182,133,135,127,126,151,156,189,239,242,220,204,206,221,241,9,32,41,53,62,66,59,2,235,226,227,229,229,46,15,133,149,171,188,167,167,189,173,157,152,25,252,9,253,167,163,166,179,182,200,20,16,25,233,190,224,201,180,202,213,192,181,36,193,209,210,59,51,41,155,64,57,52,53,62,84,69,75,71,42,21,246,113,107,95,159,148,178,126,66,229,207,184,237,213,192,152,171,185,193,50,45,20,23,116,104,105,84,53,26,51,65,123,139,12,117,172,159,145,152,156,162,158,49,57,34,148,3,160,154,38,78,104,208,196,124,133,142,152,119,250,193,176,48,7,94,76,61,16,8,254,248,61,138,145,159,175,168,74,98,181,173,173,169,176,179,0,16,24,31,37,21,197,146,222,219,199,219,46,58,25,9,245,29,31,46,17,228,227,221,215,33,102,177,181,188,186,186,148,140,121,119,153,170,181,201,210,235,251,7,29,25,20,248,247,240,11,6,213,173,174,184,121,149,154,168,193,196,151,119,119,111,206,29,35,38,78,85,72,8,10,65,85,98,118,130,104,88,81,87,86,244,233,230,223,218,251,27,12,253,26,42,62,137,174,150,228,207,189,170,211,222,224,37,69,86,79,76,70,104,112,137,111,146,201,214,218,253,237,203,129,127,185,53,34,213,196,188,174,140,232,202,154,57,30,28,146,213,216,228,250,5,14,254,236,206,198,227,215,249,210,183,141,153,211,143,97,73,64,69,247,11,1,249,203,198,188,174,34,62,210,175,146,127,116,97,83,55,62,69,39,36,162,186,200,60,139,123,55,23,32,100,108,99,139,149,75,29,239,228,185,255,198,120,114,123,179,187,183,179,199,215,219,13,29,26,62,48,36,30,15,30,18,3,247,14,43,71,201,200,150,142,132,165,167,199,216,215,222,137,172,204,194,185,63,157,147,182,220,195,170,125,78,116,156,195,230,153,144,146,160,249,241,229,69,77,5,51,31,26,32,52,47,47,47,52,64,57,31,224,192,163,21,44,163,167,164,169,134,217,16,9,4,1,207,220,203,184,224,142,118,102,176,157,151,78,106,159,153,149,134,127,138,86,72,41,228,222,12,21,65,89,121,80,222,251,15,29,79,95,107,106,106,94,110,126,100,144,131,111,218,235,15,26,57,40,14,234,44,22,179,187,186,185,12,0,184,247,242,248,2,95,190,226,236,250,123,83,54,77,242,234,66,67,5,8,18,38,46,53,55,186,157,63,250,210,186,157,31,18,25,43,37,31,22,238,242,248,9,21,90,49,4,244,228,169,240,247,102,80,83,81,95,124,84,89,102,113,127,237,231,163,149,129,104,77,66,74,180,187,199,220,245,238,231,199,192,97,98,143,158,183,202,41,50,60,220,251,188,192,86,58,71,140,144,155,196,121,107,86,88,96,110,223,42,20,4,30,37,71,4,253,59,52,196,159,100,14,104,89,105,135,65,190,206,209,223,236,25,32,25,12,252,226,236,255,15,6,253,110,84,210,169,59,31,30,177,146,156,157,200,113,156,147,138,136,167,102,108,249,239,229,34,28,1,0,245,165,108,97,76,58,35,255,235,230,233,230,182,181,252,234,36,44,26,244,249,25,32,125,135,158,176,191,174,80,60,91,109,177,191,179,169,168,171,158,155,206,212,135,135,159,191,221,235,216,19,52,81,68,63,73,88,83,63,57,25,9,0,252,251,7,127,107,107,147,154,179,182,221,216,228,254,24,34,8,248,252,234,249,94,213,13,24,32,156,202,116,129,128,137,148,167,184,205,226,173,138,108,41,247,222,214,190,166,142,130,143,177,65,95,78,45,5,192,194,187,200,205,117,41,248,5,15,26,40,30,27,34,42,47,55,46,48,147,8,11,114,129,140,235,68,62,49,74,155,74,99,112,102,64,70,185,195,157,150,142,138,68,63,63,70,81,76,68,80,73,30,52,48,52,68,81,96,72,143,119,102,95,161,158,217,244,16,42,68,164,22,22,66,108,114,252,252,251,229,221,222,8,2,15,127,188,173,32,54,61,51,52,100,101,98,143,180,210,78,43,164,158,163,174,115,163,164,16,39,245,233,220,83,40,66,81,212,16,108,143,160,171,64,59,14,240,246,129,142,170,226,171,116,145,157,179,213,167,166,176,13,24,163,121,141,147,159,2,40,82,95,157,165,163,127,118,105,98,186,231,233,229,194,58,108,208,183,198,153,153,176,203,229,0,81,73,65,248,204,104,39,24,5,250,241,11,242,75,54,33,150,10,233,202,180,1,20,9,140,156,180,170,174,192,198,196,199,156,127,120,115,45,27,157,150,145,148,134,86,121,112,254,8,21,38,218,192,182,216,25,224,71,83,125,113,116,128,148,114,127,157,182,205,189,213,86,109,97,150,142,101,134,137,150,172,190,201,193,181,176,161,23,99,75,182,174,46,6,74,66,59,62,49,94,65,42,96,145,159,157,161,167,0,18,2,164,174,176,189,189,183,214,216,2,11,91,233,181,191,190,6,188,196,179,158,134,95,87,92,113,169,25,42,53,71,63,39,236,1,152,128,104,99,137,134,177,149,140,2,40,72,104,39,130,176,200,239,2,236,247,254,252,14,44,65,202,170,178,191,208,234,233,194,191,137,40,20,96,77,61,51,202,51,30,249,148,200,212,204,197,193,166,189,139,118,162,92,30,245,192,68,92,140,154,181,179,172,133,132,141,120,115,64,80,93,53,6,125,248,216,165,176,171,165,164,252,159,191,227,244,14,175,172,163,161,156,126,90,62,19,66,66,128,141,62,67,161,148,207,73,205,241,28,68,132,42,29,115,90,138,94,122,137,129,240,205,62,69,78,100,7,243,221,223,225,222,202,209,218,235,230,210,22,5,44,11,12,31,48,104,109,93,166,179,176,221,237,44,60,90,105,128,196,148,160,146,22,25,34,42,116,141,168,196,231,70,207,227,236,226,201,197,185,72,91,152,248,239,98,86,216,80,85,96,89,97,31,17,30,187,172,121,198,199,202,220,60,47,248,57,19,196,121,100,70,69,96,163,123,125,130,128,23,36,233,240,109,159,173,166,158,226,46,19,193,126,91,50,142,77,161,160,162,161,75,62,204,159,161,162,204,219,219,187,170,120,209,219,250,230,221,223,224,225,154,173,76,64,41,139,105,38,192,75,47,53,165,159,145,218,127,38,5,227,122,130,252,226,207,214,8,30,133,118,103,175,82,84,75,56,218,190,188,235,131,121,123,106,89,47,191,201,121,14,90,107,218,226,27,130,87,78,72,84,7,119,55,51,184,183,191,49,131,113,145,149,143,195,163,159,211,204,172,190,197,191,183,193,214,44,46,42,7,92,133,165,164,177,190,152,106,87,88,154,152,137,77,30,238,228,223,227,220,226,25,159,203,185,105,138,182,181,189,198,196,204,144,157,164,165,168,243,138,145,232,233,235,244,197,228,238,107,74,44,31,7,244,223,207,143,155,63,50,62,138,175,186,130,130,113,243,166,253,131,92,75,146,111,125,110,117,212,220,205,203,227,4,68,65,93,148,144,172,131,116,3,2,8,41,40,180,194,200,222,198,185,13,29,62,224,172,100,132,182,232,3,56,174,188,203,60,4,173,196,182,205,191,189,188,193,255,31,196,197,229,188,62,20,216,79,56,163,246,250,245,239,57,79,253,3,0,62,57,244,219,211,208,209,120,123,85,63,202,201,4,153,247,19,30,8,128,53,58,198,154,143,138,85,95,111,80,90,94,207,164,155,143,123,84,242,129,58,37,10,154,186,172,170,217,199,182,181,203,198,30,234,252,194,168,171,175,187,224,184,153,129,44,98,110,239,241,119,151,173,80,79,196,140,139,123,101,107,138,166,196,224,127,121,86,82,105,143,176,199,148,126,79,90,132,222,242,12,203,165,23,21,243,247,195,122,146,162,194,186,179,99,88,226,234,240,221,197,142,152,34,54,190,229,197,109,83,60,54,52,209,153,142,158,241,240,69,82,170,89,88,210,218,228,215,210,235,252,51,74,254,243,107,8,162,250,14,50,120,121,121,58,9,82,193,202,204,217,225,24,249,248,125,117,146,109,211,75,54,56,34,250,2,2,6,121,111,20,55,52,36,20,114,146,161,210,179,166,185,0,36,42,46,120,142,160,170,243,65,66,146,63,48,22,71,109,91,189,194,111,113,253,11,1,249,80,71,29,168,165,120,83,10,246,165,147,147,185,195,211,232,68,18,30,61,22,248,207,31,89,92,29,217,26,8,222,14,44,72,12,38,118,132,146,163,182,157,226,193,1,122,81,217,26,38,4,232,3,251,173,123,130,153,160,217,202,204,20,107,69,60,6,114,100,89,78,44,207,176,101,230,103,251,73,236,220,56,13,35,152,172,72,206,209,110,106,112,144,82,94,10,23,197,228,201,199,180,138,202,31,49,65,139,151,190,25,24,35,60,219,200,180,167,51,46,39,49,54,24,155,16,193,37,31,41,30,2,65,112,140,124,137,139,134,52,246,159,160,71,162,158,245,39,230,228,254,32,23,108,159,165,174,6,55,164,21,8,218,88,202,45,127,198,190,117,28,48,113,89,53,166,155,52,158,25,195,39,35,20,2,229,185,147,10,13,50,78,11,217,120,120,90,159,150,18,99,220,185,173,252,245,14,65,70,22,40,73,187,21,194,136,224,37,28,90,12,19,22,24,168,147,39,237,244,32,131,62,71,91,183,44,20,13,195,162,135,12,123,118,91,232,167,119,32,58,53,127,130,117,153,12,53,37,77,97,175,180,77,89,47,127,39,108,20,236,228,16,165,173,89,126,167,95,150,61,50,26,6,249,230,225,141,49,41,134,145,163,167,250,254,122,136,212,182,186,69,58,157,159,168,185,190,217,169,70,78,34,61,104,39,229,177,51,251,149,181,114,107,133,218,228,177,7,176,175,223,151,139,104,117,222,10,199,218,133,160,251,205,112,116,43,151,163,166,70,42,219,223,83,48,121,195,252,177,125,192,189,239,31,209,158,77,134,46,52,198,205,198,158,21,43,230,178,114,29,192,243,228,8,191,52,41,74,205,2,27,170,189,148,22,74,128,188,} |
int | windcodes5676 [] = {152,138,172,172,141,158,157,124,119,130,125,143,190,206,205,187,171,175,136,86,111,80,0,210,177,155,125,96,80,66,162,135,121,119,150,136,86,91,93,193,201,212,203,213,227,230,243,228,210,186,138,68,242,217,216,172,145,199,31,43,57,82,110,119,95,49,31,4,13,17,254,198,173,161,182,204,108,133,122,87,88,103,64,47,44,29,26,255,235,192,133,122,156,154,84,67,68,129,169,191,181,182,140,91,49,51,62,52,76,79,52,19,241,207,175,208,225,235,225,202,207,193,192,235,236,236,224,242,250,237,252,23,13,250,231,230,217,194,193,209,173,105,76,52,39,11,246,236,233,245,240,1,246,206,177,151,91,98,170,212,207,238,5,22,29,34,43,44,45,57,74,80,85,142,153,157,129,126,110,52,13,27,44,41,2,241,248,5,11,18,34,58,59,37,16,216,191,168,172,169,165,167,137,127,231,222,228,251,24,47,81,113,147,163,142,122,82,38,59,80,81,109,154,156,55,33,36,19,42,43,30,16,12,15,24,33,20,13,2,3,6,5,252,231,191,139,91,90,82,103,158,195,205,223,229,57,90,55,42,16,20,30,37,72,128,161,184,207,200,213,220,204,198,206,212,213,185,153,132,103,75,49,23,21,23,24,50,63,53,40,25,25,45,77,92,96,75,69,54,25,23,23,21,2,243,236,220,180,133,134,162,212,241,238,247,236,246,252,250,249,234,196,169,203,221,220,206,162,168,161,106,11,247,241,246,253,242,213,17,235,193,193,240,1,13,22,0,241,228,215,238,10,29,53,31,53,47,12,9,254,234,232,235,249,234,235,228,218,205,167,182,199,208,174,255,247,237,151,184,16,74,73,59,38,23,46,76,10,31,24,252,232,240,253,252,5,222,199,228,9,13,253,241,242,3,42,27,1,12,21,242,213,177,159,186,191,167,112,58,28,47,46,67,119,196,222,238,231,219,195,195,191,16,249,250,3,12,15,18,22,34,31,24,26,41,44,39,45,44,36,23,45,54,44,43,50,88,115,38,53,38,64,105,158,192,191,194,161,189,186,161,152,91,158,144,155,162,111,71,28,1,230,234,7,28,21,28,46,88,76,42,1,224,238,227,233,224,235,251,8,4,2,4,9,26,22,1,20,54,58,57,83,97,120,83,38,31,32,36,109,195,200,202,208,216,130,148,166,191,168,169,180,169,158,161,168,182,197,158,125,131,93,52,34,17,17,250,231,231,243,230,218,235,47,30,16,25,30,21,41,55,96,104,102,113,133,180,196,216,185,142,113,145,150,108,105,63,34,253,250,13,46,63,73,111,85,74,54,77,103,159,197,219,133,191,216,243,16,26,14,15,21,28,38,205,244,32,48,58,44,44,52,40,22,247,254,5,251,8,19,16,255,4,25,35,43,51,34,1,12,20,15,9,255,247,1,17,16,25,4,10,18,14,12,45,17,245,239,228,220,174,150,124,94,87,41,51,68,80,52,45,80,89,104,87,249,196,205,223,224,237,246,240,228,218,211,3,32,62,154,137,79,47,22,24,24,25,6,237,229,234,7,19,32,30,26,12,19,36,85,117,158,175,180,173,157,244,221,220,234,222,204,196,209,233,239,242,232,220,223,196,183,208,206,231,234,224,203,221,237,233,221,209,179,160,138,137,142,132,118,91,76,78,71,56,31,19,9,2,11,14,17,11,3,0,249,19,35,37,80,79,65,53,51,39,26,22,19,12,5,13,16,19,22,45,66,113,102,103,113,135,104,73,60,63,82,65,74,90,50,21,19,1,3,18,24,17,19,35,38,48,249,240,252,244,224,246,253,244,247,223,206,179,138,92,118,139,89,120,126,162,214,243,252,3,3,2,253,236,210,45,25,194,226,255,3,2,254,1,8,5,5,5,14,245,240,248,234,148,161,120,121,180,224,219,230,236,233,225,229,217,233,211,103,110,143,171,157,184,146,102,86,46,16,6,236,250,241,230,238,250,255,253,6,13,5,252,244,229,161,106,53,29,15,246,204,175,173,144,146,247,250,9,2,243,24,30,31,40,52,21,4,246,242,237,237,238,237,191,158,202,239,232,3,14,19,28,38,52,98,152,244,249,43,63,94,100,93,39,21,6,253,2,23,36,50,207,225,213,233,245,226,221,233,14,3,236,198,228,1,251,228,226,220,205,222,228,226,188,129,89,185,167,171,213,211,218,245,36,137,131,85,48,11,241,250,11,14,34,63,87,133,177,193,217,235,8,54,101,90,76,62,57,67,59,41,13,1,6,23,29,41,80,134,168,223,11,31,31,41,38,27,23,16,236,201,194,222,233,237,0,10,4,249,251,14,40,31,7,236,167,136,172,171,15,28,40,44,36,14,5,14,253,234,234,242,244,239,230,0,34,74,88,69,69,16,245,253,248,222,55,61,91,4,5,252,239,217,213,200,150,131,139,145,160,185,209,220,228,210,202,170,131,108,11,246,242,14,27,26,25,28,34,45,60,64,90,151,246,229,236,255,247,253,2,243,235,229,244,10,177,173,195,198,185,202,187,135,103,81,31,246,232,245,241,250,246,251,10,17,16,6,15,21,10,10,19,18,23,29,59,46,31,19,14,20,24,22,10,24,62,57,58,45,28,27,42,58,48,43,53,38,47,38,10,249,15,17,36,68,69,47,29,31,47,12,17,31,48,52,62,121,140,174,210,254,22,47,56,29,2,234,53,39,48,80,88,121,162,179,203,214,223,214,212,229,254,215,158,112,161,208,228,222,218,184,171,158,174,217,242,51,32,156,130,127,156,189,199,210,194,157,105,77,94,64,37,18,14,6,230,217,207,203,224,224,201,230,11,18,38,55,33,18,3,9,16,34,19,218,145,145,120,90,85,66,51,39,20,238,209,173,180,253,245,219,218,237,238,231,232,197,184,236,254,248,240,252,14,30,13,254,4,255,246,254,8,253,4,233,7,36,53,36,33,30,9,12,33,65,85,80,71,52,39,47,61,77,121,112,92,153,144,154,148,115,63,8,20,25,25,19,41,34,30,15,207,101,75,170,169,188,209,201,201,177,207,217,216,199,214,229,254,28,56,102,137,163,167,149,205,163,130,145,159,191,203,188,171,194,164,148,165,128,141,179,189,150,165,170,184,226,234,221,193,227,60,88,134,165,150,143,102,59,43,29,20,17,22,28,23,21,23,27,45,39,20,224,225,237,227,225,243,255,253,252,231,188,180,214,211,218,229,153,124,78,33,17,13,3,3,25,31,46,33,7,251,3,22,30,31,24,40,71,122,79,15,177,111,86,100,117,105,169,207,199,206,220,237,251,247,231,221,177,178,98,98,60,73,134,182,173,182,176,144,64,60,113,149,97,47,36,38,24,254,218,225,242,241,229,221,166,76,39,25,45,69,109,156,187,87,77,86,89,91,31,17,33,67,62,65,67,106,136,204,213,210,207,216,11,17,36,72,101,15,233,224,231,243,250,251,252,25,28,23,11,1,11,4,253,16,21,11,4,13,29,53,69,109,171,198,237,229,18,55,52,68,37,48,111,68,45,41,33,30,45,63,77,67,59,27,26,39,94,189,218,234,238,6,10,244,246,25,24,20,41,34,6,255,248,246,234,229,12,34,36,29,36,56,38,38,47,74,72,56,39,39,190,224,254,12,12,20,36,24,7,11,22,47,220,205,50,30,7,207,201,20,26,32,28,13,236,67,19,2,243,254,3,13,19,16,29,30,31,8,253,1,29,79,113,71,72,225,234,252,2,254,234,220,237,0,3,226,209,181,132,133,155,150,98,84,57,76,129,169,10,25,6,16,17,33,49,72,101,101,65,40,30,22,10,16,52,95,93,84,78,80,104,138,124,79,46,25,251,211,171,183,224,207,207,230,255,243,229,238,242,251,0,244,232,228,233,226,219,224,187,169,159,254,2,3,15,22,61,47,247,190,169,183,189,161,105,67,52,63,40,19,247,4,14,9,255,30,30,20,36,32,21,236,243,238,215,198,188,197,189,239,245,254,12,5,34,30,46,33,23,27,33,25,18,7,246,244,241,4,12,16,47,87,108,120,105,115,159,201,212,218,171,99,10,214,113,65,22,27,6,232,201,202,213,3,252,238,238,244,230,220,186,175,181,190,182,223,229,231,5,247,1,5,9,242,233,237,249,225,201,235,0,236,215,182,170,164,148,196,229,239,202,177,218,244,249,3,6,228,182,166,188,245,247,247,251,248,251,234,225,241,238,1,189,197,180,167,175,162,144,133,124,117,129,147,145,169,134,123,154,123,123,124,80,61,77,53,58,78,97,90,58,63,74,50,43,36,9,7,4,9,5,0,242,241,0,5,14,15,10,12,21,22,20,8,242,241,22,248,245,235,219,203,19,8,21,32,39,46,63,253,88,68,96,94,61,49,40,66,49,28,73,61,23,21,21,25,12,18,15,12,25,22,14,0,254,242,233,3,43,25,16,10,7,10,5,2,15,25,38,42,35,62,91,160,170,126,109,93,95,107,118,112,147,122,86,68,56,49,47,59,53,48,46,75,123,102,54,27,45,79,116,122,127,90,52,36,8,229,18,43,18,4,1,231,238,254,1,29,46,26,16,12,17,10,10,5,32,74,39,20,35,69,113,99,201,230,223,230,241,13,14,10,239,211,192,207,223,4,27,22,240,243,248,8,23,18,226,217,220,227,214,201,200,178,151,77,66,80,104,144,200,241,45,40,52,93,116,119,123,94,103,140,180,216,235,249,3,248,12,20,12,11,10,2,12,4,10,26,10,15,4,243,237,223,191,162,110,76,90,66,57,100,157,173,184,222,245,25,7,5,9,11,12,2,252,244,0,240,252,26,27,8,4,5,11,17,10,4,248,17,50,40,3,234,230,232,1,231,250,47,107,125,169,211,116,104,86,86,75,89,125,193,228,1,253,227,211,219,225,248,241,245,246,238,251,239,193,208,253,246,2,185,204,243,253,0,245,251,21,39,83,94,68,74,126,154,109,9,205,153,209,203,181,164,125,85,76,88,97,95,71,23,9,10,11,21,26,251,193,200,247,255,11,255,242,225,219,222,222,236,243,246,2,8,18,251,246,1,255,9,14,14,22,26,18,21,5,243,250,4,255,254,251,217,121,132,111,99,87,70,33,28,15,33,43,36,10,0,255,233,188,155,138,144,220,206,146,125,88,87,94,191,253,231,230,27,37,17,8,0,251,198,142,56,37,44,46,21,31,34,47,36,33,58,92,84,44,15,10,0,7,1,242,230,237,229,246,226,233,237,252,224,239,247,253,20,8,209,152,139,119,102,141,195,0,173,213,248,23,24,18,10,13,21,23,24,36,43,44,43,25,40,80,113,102,132,144,175,215,245,250,242,216,206,130,57,62,104,113,96,130,150,133,132,129,72,31,254,11,18,15,7,8,241,228,246,246,16,37,25,39,65,65,77,82,140,160,172,193,228,243,160,173,224,238,244,9,9,250,223,208,203,203,215,223,244,14,36,34,17,3,5,241,201,160,142,186,225,3,27,20,10,28,1,222,234,227,224,231,205,182,180,210,230,244,250,254,241,214,203,169,130,90,72,41,27,0,233,204,177,133,120,74,244,218,197,206,247,254,10,29,44,93,149,171,233,46,70,87,85,69,46,39,29,1,232,215,220,242,37,25,37,55,63,61,65,87,103,148,179,195,207,195,164,205,220,211,202,241,238,242,13,25,51,105,137,97,80,85,77,73,73,44,39,40,61,63,85,87,70,47,39,31,46,83,169,222,22,27,26,22,31,51,87,126,143,174,177,207,227,246,10,29,37,53,41,31,19,21,55,46,43,24,14,24,37,39,47,24,3,245,226,196,152,142,162,186,210,221,224,231,204,234,3,13,10,8,26,27,1,251,2,236,254,10,16,35,56,82,55,35,26,106,69,88,151,169,151,146,140,88,48,23,30,69,61,51,40,49,85,74,59,28,16,254,242,11,40,32,17,3,251,234,206,217,196,7,247,239,245,249,242,246,211,191,214,3,9,19,43,94,79,79,101,122,102,47,18,252,224,188,235,7,9,1,251,230,195,182,123,73,72,92,124,153,12,11,7,4,253,249,252,247,229,190,190,224,226,221,228,201,174,75,91,103,97,173,127,133,123,148,174,202,174,189,237,251,237,244,253,241,228,212,220,213,219,7,90,120,116,124,112,107,246,235,221,237,190,222,254,21,32,26,14,33,20,20,21,24,35,41,53,45,42,43,25,184,143,76,56,244,235,218,231,2,18,21,12,246,20,11,252,253,218,230,195,223,246,252,8,32,99,130,158,193,158,136,229,225,209,208,199,176,203,161,95,87,92,120,55,44,24,8,231,188,134,43,8,245,236,232,241,5,248,230,237,251,12,16,29,29,21,27,23,3,252,0,17,47,31,18,10,249,4,248,22,10,236,59,74,97,75,44,47,41,18,6,12,8,6,17,27,31,29,19,8,22,44,234,5,45,94,104,62,59,54,55,91,63,7,13,20,18,20,23,48,51,76,51,30,31,27,52,83,59,52,23,14,48,38,17,250,205,234,29,100,86,68,59,41,32,20,11,8,82,103,11,247,243,244,247,6,17,27,47,50,35,30,24,43,77,139,173,167,150,162,204,190,207,237,254,252,253,36,47,75,90,67,28,13,188,130,32,12,18,9,106,90,61,65,90,92,99,141,186,165,155,196,230,224,215,253,217,209,206,201,231,255,10,40,47,19,245,207,172,177,77,60,89,181,190,224,248,255,249,244,238,240,151,175,183,220,65,135,187,209,253,255,240,23,26,45,39,10,120,146,117,227,177,218,226,230,209,207,217,197,139,115,76,58,101,111,70,34,29,27,19,4,6,20,14,12,234,197,187,202,182,161,200,237,227,207,178,160,176,36,13,7,24,46,38,55,78,95,56,26,3,8,22,49,57,254,226,160,162,174,163,180,145,171,124,66,54,124,84,70,55,44,40,46,249,215,229,231,146,127,147,181,190,151,88,27,4,234,249,231,223,224,224,243,254,241,132,133,57,17,6,15,13,2,247,249,226,208,4,40,45,55,17,1,217,246,12,1,2,245,237,230,245,6,1,243,243,246,45,138,176,228,251,21,92,48,44,31,46,28,6,21,15,24,40,84,115,118,68,116,108,83,61,55,47,38,61,64,46,54,72,62,83,140,127,123,54,6,203,155,133,128,165,182,206,178,134,101,101,96,16,22,36,32,11,247,67,66,39,44,24,31,30,30,15,252,223,171,59,44,170,179,174,163,187,218,253,206,215,220,207,185,132,112,18,222,224,241,184,171,195,207,226,216,212,10,16,28,25,27,51,75,116,128,147,192,170,192,184,150,104,126,92,87,132,117,146,222,204,177,159,168,219,237,232,91,236,217,160,109,66,95,156,186,208,212,226,43,97,164,155,157,118,25,245,1,250,235,223,216,253,7,20,49,70,83,93,109,222,106,74,26,19,23,22,5,5,12,242,252,46,45,35,17,33,22,37,22,46,70,67,62,68,87,180,211,227,229,217,255,197,213,219,3,253,248,8,240,196,131,133,154,236,226,174,175,208,233,218,188,144,147,58,36,5,3,16,26,7,4,237,221,5,49,43,19,62,59,69,19,0,236,230,248,246,26,33,22,0,13,19,140,122,117,69,24,255,235,206,128,94,77,63,69,66,79,107,69,68,3,233,241,228,199,217,223,208,239,251,7,3,9,15,9,247,244,0,9,247,186,157,101,121,28,24,24,24,98,138,186,223,219,197,182,172,217,183,166,217,145,216,134,169,199,201,162,91,61,26,25,23,31,41,34,31,11,0,212,205,216,218,223,247,253,251,218,216,200,143,121,129,84,54,23,13,249,37,35,39,35,134,158,229,255,53,76,63,132,155,170,245,255,10,1,250,71,76,55,43,49,55,45,82,126,132,95,89,227,244,250,223,218,203,190,40,22,19,18,33,38,41,108,116,75,24,255,251,246,233,14,241,250,247,3,29,54,51,18,13,37,28,3,241,251,16,252,234,10,41,25,17,29,19,223,10,26,252,254,66,84,59,100,113,242,220,203,205,222,52,57,90,73,98,109,60,30,8,135,140,155,48,21,21,51,244,9,18,21,42,52,70,98,101,66,90,68,33,10,4,15,25,26,25,55,205,233,228,215,226,14,252,221,235,26,25,16,254,34,89,245,240,255,236,233,194,222,247,24,33,47,44,37,44,37,21,8,34,76,62,39,95,67,74,88,74,35,19,57,88,120,144,173,212,238,9,18,27,63,38,32,9,6,15,29,30,45,150,187,177,172,138,118,48,58,55,158,174,156,92,32,17,24,48,24,29,35,31,22,252,170,138,3,11,245,2,30,8,0,13,39,44,43,43,53,40,235,246,251,244,21,49,101,130,177,113,70,96,135,148,159,0,9,12,15,14,5,247,239,239,241,3,36,24,29,107,109,152,183,191,178,108,56,93,47,28,32,40,40,83,142,224,6,28,32,13,239,255,255,253,12,8,12,26,28,52,146,135,143,85,50,18,246,0,2,244,19,36,74,127,109,103,90,81,68,72,85,166,132,81,39,47,45,35,33,31,225,221,205,183,167,129,11,113,183,208,222,7,240,223,227,252,227,11,10,3,238,249,11,242,137,190,159,12,0,247,239,254,254,195,92,42,204,211,206,219,215,199,156,127,30,22,250,162,124,219,34,27,11,10,242,205,229,42,46,42,5,22,52,52,49,56,47,253,234,204,183,148,183,178,126,141,85,9,251,242,247,243,12,12,32,62,77,53,30,20,40,41,36,25,19,15,21,19,251,9,208,240,221,2,3,3,30,63,85,107,114,113,134,112,66,70,113,141,171,215,210,248,214,103,78,75,58,19,38,4,250,232,197,156,180,57,46,22,0,248,251,229,244,248,242,230,239,241,213,163,152,145,155,203,206,193,0,158,235,1,7,7,12,22,245,244,0,254,162,156,188,223,254,11,251,243,239,227,229,213,136,168,120,96,109,165,217,222,244,187,154,118,138,200,203,249,32,24,17,19,21,5,251,5,3,252,2,6,9,1,206,240,12,255,243,250,106,178,208,160,147,195,170,166,162,142,133,114,154,116,138,189,152,119,94,193,179,127,107,168,130,32,31,30,28,37,38,37,48,108,126,100,117,70,33,29,47,40,54,41,32,252,2,245,5,234,225,208,237,6,2,14,11,22,19,10,255,17,22,30,212,207,228,61,160,219,252,251,201,201,170,241,249,10,114,60,47,91,130,85,49,39,36,112,76,30,22,0,36,3,4,254,33,23,12,254,251,14,43,22,44,17,253,252,243,243,7,1,200,189,211,9,45,86,73,10,252,8,16,7,0,17,15,15,18,24,41,41,41,30,11,245,92,72,73,158,125,106,91,127,118,58,117,109,98,122,149,118,92,86,72,45,58,72,86,52,40,62,58,26,102,151,182,147,77,14,2,11,27,3,161,128,156,178,130,33,53,54,63,23,169,97,72,70,230,236,255,3,254,40,48,92,5,254,1,19,13,11,255,253,6,233,20,92,119,61,14,252,2,71,121,137,201,228,242,214,227,2,45,24,26,9,254,218,217,207,183,100,63,44,59,100,201,243,238,237,244,253,62,94,196,209,192,44,183,210,210,192,109,17,21,16,117,98,107,145,66,82,63,162,243,8,2,241,19,11,20,7,9,16,18,11,26,253,10,4,247,229,244,238,234,158,78,65,98,79,69,40,47,184,172,183,142,112,231,3,255,12,8,4,255,243,227,226,251,14,200,224,53,36,249,12,7,45,7,9,225,230,252,45,60,81,90,65,228,238,252,45,146,232,246,2,38,72,108,65,77,58,56,68,63,83,234,246,4,17,26,226,213,195,213,221,254,222,224,23,47,71,163,243,89,141,103,31,20,13,6,12,10,255,242,85,106,117,67,136,176,204,143,82,137,68,54,54,99,122,102,13,243,236,240,17,16,39,99,18,250,242,7,34,30,205,204,219,213,222,230,244,12,24,23,5,219,16,253,247,244,13,10,23,49,34,225,228,232,17,23,105,149,147,126,108,87,176,1,31,21,12,17,245,51,1,253,241,235,18,89,139,143,126,250,226,177,246,128,81,44,26,19,12,253,216,152,39,68,61,65,35,8,51,30,24,34,8,129,41,26,253,19,14,18,249,221,211,230,3,243,239,225,227,251,161,180,254,248,255,254,7,222,227,172,122,98,136,101,99,155,223,8,27,12,247,248,37,23,13,30,43,38,67,56,8,37,73,62,70,114,145,120,129,153,209,254,2,248,251,82,207,161,75,57,189,188,146,168,139,96,60,255,11,25,22,10,3,1,224,198,59,38,12,28,46,67,128,90,60,117,227,68,130,179,214,247,250,0,18,13,216,8,248,21,30,17,9,74,1,211,201,159,189,146,219,249,237,195,207,99,58,40,1,237,255,251,243,178,147,120,94,98,21,206,6,19,239,242,21,130,173,227,20,47,64,131,125,31,32,56,53,40,42,195,31,1,31,61,78,78,66,67,94,117,186,203,187,14,231,215,209,225,218,209,236,10,24,40,81,143,84,87,54,76,60,73,68,20,25,92,82,106,117,36,26,16,31,56,206,33,33,95,95,125,157,218,236,10,10,19,22,59,44,33,20,7,37,65,26,13,251,4,45,47,47,52,255,192,160,129,118,145,194,184,194,223,154,208,228,23,14,253,240,208,122,29,230,25,7,4,19,15,40,65,175,198,161,135,113,111,57,52,47,98,68,33,38,29,119,127,112,245,234,217,243,17,44,241,207,222,39,3,10,4,223,244,253,0,244,230,251,186,169,184,7,18,7,67,116,136,20,17,14,172,124,135,249,9,13,5,242,238,70,42,53,94,19,17,11,2,0,1,8,6,18,254,143,145,2,239,192,202,170,104,76,215,130,22,231,242,249,1,14,219,5,32,29,27,15,33,63,201,179,252,203,200,17,16,29,15,17,44,239,36,169,217,147,4,33,142,100,105,124,102,8,189,95,117,147,20,43,50,36,14,172,136,162,153,90,22,225,223,34,237,221,209,218,21,56,39,25,12,27,43,250,253,204,111,53,9,255,234,246,35,228,183,27,23,35,52,249,21,38,24,7,248,12,40,79,121,135,70,73,65,153,241,5,20,3,21,25,5,0,26,28,130,124,76,43,46,33,15,39,40,46,6,253,3,193,247,223,241,216,250,252,231,67,44,19,24,18,50,177,33,8,106,164,250,8,6,233,239,47,26,27,128,12,241,13,251,240,135,120,81,24,70,103,86,109,100,144,193,246,179,192,203,182,153,18,9,9,18,35,76,47,225,241,40,0,13,15,254,178,188,199,230,226,229,235,90,12,18,33,26,7,12,19,234,205,189,171,189,244,215,168,241,245,16,47,138,81,90,104,3,12,232,172,199,170,147,79,111,219,52,70,72,50,61,81,240,205,206,2,106,178,168,207,92,58,21,8,13,18,31,15,189,155,46,71,64,14,33,77,6,19,239,224,239,255,138,177,119,247,152,17,29,150,58,42,59,41,74,58,37,35,26,246,157,3,216,227,246,88,136,59,55,107,97,71,20,61,33,29,234,207,26,160,177,172,139,49,51,132,234,89,108,33,202,201,9,26,14,9,35,124,118,24,225,236,244,36,55,52,140,47,13,13,229,248,255,250,13,36,26,17,236,200,250,56,3,2,31,60,21,73,72,82,164,254,238,199,34,29,90,102,66,81,238,248,177,161,60,15,248,238,247,24,161,200,52,211,12,31,80,57,154,248,10,6,32,21,3,235,229,31,132,9,9,98,102,248,150,160,73,6,201,224,41,63,67,15,52,27,197,200,201,142,36,21,57,76,82,71,2,249,18,229,51,128,119,4,254,251,19,29,13,42,236,16,236,66,15,178,247,211,91,115,111,77,57,10,134,236,34,40,220,230,1,63,97,206,2,214,235,213,251,4,46,44,50,49,30,23,221,0,14,63,97,181,21,82,113,134,144,255,6,8,24,23,20,18,209,169,80,98,116,180,170,153,70,45,14,15,22,31,41,5,244,54,47,45,52,254,253,241,24,142,27,117,137,151,11,39,17,9,14,177,200,200,43,33,20,37,24,11,23,35,244,13,46,9,14,241,244,8,32,51,46,234,16,23,30,96,17,60,127,30,16,48,45,54,63,65,190,180,152,207,229,219,233,222,136,237,249,8,116,181,185,36,28,17,40,74,81,10,235,163,217,43,49,32,17,4,250,37,11,26,242,8,244,39,103,132,143,150,136,236,54,31,219,186,114,105,69,34,7,251,6,213,204,185,225,165,200,216,11,8,18,248,92,181,9,16,243,231,248,154,185,123,74,242,11,8,237,141,161,121,221,172,143,13,24,23,2,30,31,55,77,31,253,17,10,167,207,140,38,242,224,243,246,15,193,120,161,17,19,121,84,218,2,6,225,125,41,13,23,7,229,23,1,213,245,244,212,233,216,133,113,64,39,46,221,38,81,66,62,253,16,192,226,2,51,52,95,29,214,185,86,221,42,89,5,38,46,68,37,44,43,59,248,237,222,171,63,59,52,35,4,1,224,216,168,25,33,34,29,32,221,40,38,75,220,26,74,181,105,32,7,245,247,142,59,110,198,49,162,56,23,51,17,17,194,151,224,21,180,168,69,62,109,176,222,64,93,121,73,177,118,255,253,48,61,56,9,185,41,9,254,196,43,42,136,33,41,33,216,194,169,29,14,0,32,32,30,65,128,120,144,101,39,241,127,15,64,240,248,124,40,119,226,2,118,173,100,41,39,166,15,21,37,9,60,24,239,166,139,7,235,142,88,39,} |
saverlist | savers |
EX ld | bounded_mine_percentage = 0.1 |
EX int | bounded_mine_quantity |
EX int | bounded_mine_max |
const EX char * | conffile = "hyperrogue.ini" |
EX array< ld, gGUARD > | sightranges |
EX videopar | vid |
EX int | default_language |
EX bool | autojoy = true |
unsigned int | skincolors [] = { 7, 0xD0D0D0FF, 0xEFD0C9FF, 0xC77A58FF, 0xA58869FF, 0x602010FF, 0xFFDCB1FF, 0xEDE4C8FF } |
unsigned int | haircolors [] = { 8, 0x686868FF, 0x8C684AFF, 0xF2E1AEFF, 0xB55239FF, 0xFFFFFFFF, 0x804000FF, 0x502810FF, 0x301800FF } |
unsigned int | dresscolors [] = { 6, 0xC00000FF, 0x00C000FF, 0x0000C0FF, 0xC0C000FF, 0xC0C0C0FF, 0x202020FF } |
unsigned int | dresscolors2 [] = { 7, 0x8080FFC0, 0x80FF80C0, 0xFF8080C0, 0xFFFF80C0, 0xFF80FFC0, 0x80FFFFC0, 0xFFFFFF80 } |
unsigned int | swordcolors [] = { 6, 0xC0C0C0FF, 0xFFFFFFFF, 0xFFC0C0FF, 0xC0C0FFFF, 0x808080FF, 0x202020FF } |
unsigned int | eyecolors [] = { 4, 0x00C000FF, 0x0000C0FF, 0xC00000FF, 0xC0C000FF, 0x804010FF, 0x00C000FF } |
EX purehookset | hooks_configfile |
map< string, shared_ptr< supersaver > > | allconfigs |
double | cc_footphase |
int | lmousex |
int | lmousey |
auto | ah_config = addHook(hooks_args, 0, read_config_args) + addHook(hooks_args, 0, read_gamemode_args) + addHook(hooks_args, 0, read_color_args) |
EX unordered_map< string, ld & > | params |
EX int | frames |
EX bool | outoffocus = false |
EX int | mousex |
EX int | mousey |
EX hyperpoint | mouseh |
EX hyperpoint | mouseoh |
EX bool | leftclick |
EX bool | rightclick |
EX bool | targetclick |
EX bool | hiliteclick |
EX bool | anyshiftclick |
EX bool | wheelclick |
EX bool | forcetarget |
EX bool | lshiftclick |
EX bool | lctrlclick |
EX bool | numlock_on |
EX bool | gtouched |
EX bool | holdmouse |
EX int | getcstat |
EX int | lgetcstat |
EX ld | getcshift |
EX bool | inslider |
EX function< void(int sym, int uni)> | keyhandler = [] (int sym, int uni) {} |
EX function< bool(SDL_Event &ev)> | joyhandler = [] (SDL_Event &ev) {return false;} |
EX bool | mousing = true |
EX bool | mousepressed = false |
EX bool | mousemoved = false |
EX bool | actonrelease = false |
EX bool | mousepan |
EX bool | oldmousepan |
EX ld | mouseaim_x |
EX ld | mouseaim_y |
EX ld | mouseaim_sensitivity = 0.01 |
EX int | timetowait |
EX int | joyx |
EX int | joyy |
EX int | panjoyx |
EX int | panjoyy |
EX movedir | joydir |
EX movedir | mousedest |
EX ld | shiftmul = 1 |
EX cell * | mouseover |
EX cell * | mouseover2 |
EX cell * | lmouseover |
EX ld | modist |
EX ld | modist2 |
EX int | lastt |
EX SDL_Joystick * | sticks [8] |
EX int | numsticks |
int | joytime |
EX bool | joy_ignore_next = false |
EX bool | quitmainloop = false |
EX bool | didsomething |
EX bool | smooth_scrolling = false |
EX purehookset | hooks_fixticks |
EX bool | need_mouseh = false |
int | cframelimit = 1000 |
int | lastframe |
EX int | steplimit = 0 |
EX int | cstep |
EX bool | buggyGeneration = false |
EX vector< cell * > | buggycells |
bool | errorReported = false |
EX eLand | cheatdest |
EX vector< pair< cellwalker, int > > | drawbugs |
bool | debugmode = false |
int | bitfield_v |
auto | ah_cheat = addHook(hooks_args, 0, read_cheat_args) |
EX bool | ldebug = false |
const EX char * | COLORBAR = "###" |
bool | fatborder |
EX color_t | poly_outline |
EX vector< unique_ptr< drawqueueitem > > | ptds |
EX color_t | text_color |
EX int | text_shift |
EX GLuint | text_texture |
EX int | texts_merged |
EX int | shapes_merged |
SDL_Surface * | aux |
EX vector< glvertex > | glcoords |
EX int | spherespecial |
EX int | spherephase |
int | polyi |
EX int | polyx [POLYMAX] |
EX int | polyxr [POLYMAX] |
EX int | polyy [POLYMAX] |
int | poly_flags |
bool | last_infront |
bool | knowgood |
hyperpoint | goodpoint |
vector< pair< int, hyperpoint > > | tofix |
hyperpoint | Hlast |
EX int | global_projection |
int | min_slr |
int | max_slr = 0 |
bool | in_twopoint = false |
glvertex | junk = glhr::makevertex(0,0,1) |
vector< glvertex > | prettylinepoints |
vector< glvertex > | curvedata |
int | curvestart = 0 |
bool | keep_curvedata = false |
EX ld | backbrightness = .25 |
purehookset | hook_drawqueue |
constexpr int | PMAX = int(PPR::MAX) |
int | qp [PMAX] |
int | qp0 [PMAX] |
EX int | neon_mode = 0 |
EX flagtype | havewhat |
EX flagtype | hadwhat |
EX vector< cell * > | worms |
EX vector< cell * > | ivies |
EX vector< cell * > | ghosts |
EX vector< cell * > | golems |
EX vector< cell * > | hexsnakes |
vector< pair< cell *, eMonster > > | tempmonsters |
EX vector< int > | reachedfrom |
EX int | first7 |
EX vector< cell * > | dcal |
EX vector< cell * > | pathq |
EX int | statuecount |
EX int | wetslime |
EX vector< cell * > | pathqm |
EX set< int > | snaketypes |
EX int | gamerange_bonus = 0 |
EX cell * | pd_from |
EX int | pd_range |
EX int | pathlock = 0 |
ld | growth |
string | dfnames [3] = { "player", "start", "land" } |
eDistanceFrom | distance_from = dfPlayer |
string | ncnames [4] = { "NO", "distance", "type", "debug" } |
eNumberCoding | number_coding = ncDistance |
int | position |
EX bool | viewdists = false |
EX bool | use_color_codes = true |
EX bool | use_analyzer = true |
EX bool | show_distance_lists = true |
int | first_distance = 0 |
int | scrolltime = 0 |
bool | scrolling_distances = false |
EX map< int, color_t > | expcolors |
const int | scrollspeed = 100 |
bool | not_only_descendants = false |
int | expansion_hook = addHook(hooks_handleKey, 0, expansion_handleKey) |
auto | ea_hook = addHook(hooks_args, 100, expansion_readArgs) |
EX expansion_analyzer | expansion |
EX int | sibling_limit = 0 |
transmatrix | Orient = Id |
int | lasttick = 0 |
int | gdpos = 0 |
char | action |
qfloorinfo | qfi |
EX vector< basic_textureinfo > | floor_texture_vertices |
EX vector< glvertex > | floor_texture_map |
matrixlist | hex_matrices |
matrixlist | hept_matrices |
int | nsym0 |
EX bool | floorshape_debug |
auto | floor_hook |
const int | FLOORTEXTURESIZE = 4096 |
EX std::mt19937 | hrngen |
EX int | lastsafety |
EX bool | usedSafety = false |
EX eLand | safetyland |
EX int | safetyseed |
EX bool | childbug = false |
EX vector< cell * > | crush_now |
EX vector< cell * > | crush_next |
EX cellwalker | recallCell |
EX display_data | recallDisplay |
EX eMonster | passive_switch = moSwitch2 |
int | eupage = 0 |
int | euperpage = 21 |
string | euchelp |
EX string | bitruncnames [5] = {" (b)", " (n)", " (g)", " (i)", " (d)"} |
EX bool | showquotients |
string | validclasses [4] = {" (X)", " (½)", "", " (!)"} |
EX geometry_filter * | current_filter |
EX geometry_filter | gf_hyperbolic = {"hyperbolic", [] { return (arcm::in() || arb::in() || hyperbolic) && !forced_quotient(); }} |
EX geometry_filter | gf_spherical = {"spherical", [] { return (arcm::in() || arb::in() || sphere) && !forced_quotient(); }} |
EX geometry_filter | gf_euclidean = {"Euclidean", [] { return (arcm::in() || arb::in() || euclid) && !forced_quotient(); }} |
EX geometry_filter | gf_other = {"non-isotropic", [] { return prod || nonisotropic; }} |
EX geometry_filter | gf_regular_2d |
EX geometry_filter | gf_regular_3d |
EX geometry_filter | gf_quotient |
vector< geometry_filter * > | available_filters = { &gf_hyperbolic, &gf_spherical, &gf_euclidean, &gf_other, &gf_regular_2d, &gf_regular_3d, &gf_quotient } |
auto | ah_geom = addHook(hooks_args, 0, read_geom_args) |
int | usershape_changes |
vector< hpcshape > | shPlainWall3D |
vector< hpcshape > | shWireframe3D |
vector< hpcshape > | shWall3D |
vector< hpcshape > | shMiniWall3D |
vector< ld > | equal_weights |
EX purehookset | hooks_swapdim |
EX geometry_information * | cgip |
EX map< string, geometry_information > | cgis |
EX int | last_texture_step |
int | ntimestamp |
auto | ah_clear_geo = addHook(hooks_clear_cache, 0, clear_cgis) |
EX bool | approx_nearcorner = false |
EX vector< glhr::textured_vertex > | text_vertices |
EX int | last_firelimit |
EX int | firelimit |
EX int | inmirrorcount = 0 |
EX bool | wallopt |
EX bool | spatial_graphics |
EX bool | wmspatial |
EX bool | wmescher |
EX bool | wmplain |
EX bool | wmblack |
EX bool | wmascii |
EX bool | wmascii3 |
EX bool | mmspatial |
EX bool | mmhigh |
EX bool | mmmon |
EX bool | mmitem |
EX int | detaillevel = 0 |
EX bool | first_cell_to_draw = true |
EX hookset< bool(int sym, int uni)> * | hooks_handleKey |
EX hookset< bool(cell *c, const transmatrix &V)> * | hooks_drawcell |
EX purehookset | hooks_frame |
EX purehookset | hooks_markers |
EX ld | animation_factor = 1 |
EX int | animation_lcm = 0 |
int | colorbar |
EX bool | inHighQual |
EX bool | auraNOGL |
int | axestate |
EX int | ticks |
EX int | frameid |
EX bool | camelotcheat |
EX bool | nomap |
EX eItem | orbToTarget |
EX eMonster | monsterToSummon |
EX int | sightrange_bonus = 0 |
EX string | mouseovers |
EX int | darken = 0 |
map< cell *, fallanim > | fallanims |
int | dlit |
EX int | lightat |
EX int | safetyat |
EX bool | ivoryz |
EX bool | noshadow |
color_t | skincolor = 0xD0C080FF |
EX transmatrix | playerV |
int | last_wormsegment = -1 |
vector< vector< function< void()> > > | wormsegments |
EX bool | dont_face_pc = false |
array< array< int, 4 >, AURA+1 > | aurac |
int | haveaura_cached |
vector< pair< int, int > > | auraspecials |
int | auramemo |
vector< glhr::colored_vertex > | auravertices |
EX colortable | minecolors |
EX colortable | distcolors |
const char * | minetexts [8] |
EX colortable | nestcolors = { 0x800000, 0x008000, 0x000080, 0x404040, 0x700070, 0x007070, 0x707000, 0x606060 } |
EX color_t | stdgridcolor = 0x202020FF |
EX bool | bright |
EX bool | just_gmatrix |
vector< hyperpoint > | clipping_planes |
EX int | noclipped |
EX ld | precise_width = .5 |
int | grid_depth = 0 |
EX bool | fat_edges = false |
vector< flashdata > | flashes |
always_false | static_bubbles |
EX purehookset | hooks_drawmap |
EX transmatrix | actual_view_transform |
EX transmatrix | Viewbase |
EX bool | no_wall_rendering |
EX bool | dronemode |
purehookset | hooks_calcparam |
EX int | corner_centering |
EX bool | permaside |
function< void()> | wrap_drawfullmap = drawfullmap |
bool | force_sphere_outline = false |
EX bool | nohelp |
EX vector< function< void()> > | screens = { normalscreen } |
EX int | cmode |
auto | graphcm |
EX array< map< cell *, animation >, ANIMLAYERS > | animations |
vector< pair< cell *, animation > > | animstack |
auto | hooksw = addHook(hooks_swapdim, 100, [] { clearAnimations(); gmatrix.clear(); gmatrix0.clear(); current_display->all_drawn_copies.clear(); }) |
EX string | help |
EX function< void()> | help_delegate |
EX vector< help_extension > | help_extensions |
vector< string > | extra_keys |
string | hyperstone_optional = "Completing the quest in this land is not necessary for the Hyperstone Quest." |
string | power_help |
EX bool | instat |
reaction_t | helpgenerator |
unsigned char | lastval |
int | windtotal |
EX hookset< void(cell *)> * | hooks_mouseover |
EX hookset< bool()> * | hooks_default_help |
int | heptacount = 0 |
int | recsteps |
EX hookset< void(heptagon *, int)> * | hooks_createStep |
EX FILE * | debugfile |
EX int | debugflags = DF_INIT | DF_ERROR | DF_WARN | DF_MSG | DF_TIME | DF_LOG |
EX string | s0 |
map< void *, int > | pointer_indices |
logger | hlog |
EX purehookset | hooks_stats |
EX eGlyphsortorder | glyphsortorder |
int | zero = 0 |
const int | glyphs = ittypes + motypes |
int | gfirsttime [glyphs] |
int | glasttime [glyphs] |
int | gcopy [glyphs] |
int | ikland [glyphs] |
int | glyphorder [glyphs] |
int | glyphphase [glyphs] |
int | glyph_lastticks |
int | glyphsortkey = 0 |
EX bool | nohud |
EX bool | nomenukey |
EX hookset< bool()> * | hooks_prestats |
EX bool | nofps = false |
EX color_t | crosshair_color = 0xFFFFFFC0 |
EX ld | crosshair_size = 0 |
EX bool | long_kills |
EX hookset< bool(int argc, char **argv)> * | hooks_main |
int | andmode |
bool | longclick |
bool | useRangedOrb |
int | emeraldtable [100][7] |
constexpr hyperpoint | Hypc = hyperpoint(0, 0, 0, 0) |
constexpr transmatrix | Id = diag(1,1,1,1) |
constexpr transmatrix | Zero = diag(0,0,0,0) |
constexpr transmatrix | Mirror = diag(1,-1,1,1) |
constexpr transmatrix | MirrorY = diag(1,-1,1,1) |
constexpr transmatrix | MirrorX = diag(-1,1,1,1) |
constexpr transmatrix | MirrorZ = diag(1,1,-1,1) |
constexpr transmatrix | pispin = diag(-1,-1,1,1) |
constexpr transmatrix | centralsym = diag(-1,-1,-1,-1) |
constexpr hyperpoint | C02 = hyperpoint(0,0,1,0) |
constexpr hyperpoint | C03 = hyperpoint(0,0,0,1) |
constexpr hyperpoint | Cx12 = hyperpoint(1,0,1.41421356237,0) |
constexpr hyperpoint | Cx13 = hyperpoint(1,0,0,1.41421356237) |
const char * | wheresounds |
bool | demoanim |
int | bak_xres |
int | bak_yres |
ld | ghx |
ld | ghy |
ld | ghgx |
ld | ghgy |
hyperpoint | ghpm = C0 |
int | twopoint_sphere_flips |
bool | twopoint_do_flips |
EX transmatrix | sphereflip |
EX bool | playerfound |
vector< tuple< heptspin, hstate, transmatrix, ld > > | drawn_cells |
bool | in_multi = false |
EX int | cells_drawn |
EX int | cells_generated |
EX color_t | periodcolor = 0x00FF0080 |
EX color_t | ringcolor = darkena(0xFF, 0, 0xFF) |
EX color_t | modelcolor = 0 |
EX ld | band_shift = 0 |
EX ld | extra_generation_distance = 99 |
EX bool | fixseed = false |
EX int | startseed = 0 |
EX eLand | firstland0 |
EX int | currentLocalTreasure |
EX array< int, ittypes > | items |
EX map< modecode_t, array< int, ittypes > > | hiitems |
EX int | explore [10] |
EX int | exploreland [10][landtypes] |
EX int | landcount [landtypes] |
EX bool | safety = false |
EX eLand | lastland |
EX int | lastexplore |
EX bool | randomPatternsMode = false |
EX int | randompattern [landtypes] |
EX int | genrange_bonus = 0 |
EX bool | chaosUnlocked = false |
EX bool | chaosAchieved = false |
EX bool | reptilecheat = false |
EX eLand | firstland = laIce |
EX eLand | specialland = laIce |
EX int | chaosmode = 0 |
EX hookset< eLand(eLand)> * | hooks_nextland |
EX vector< eLand > | land_over |
EX vector< eLand > | landlist |
EX int | old_daily_id = 1000000 |
const int | landscapes_when = 177 |
const EX int | frog_when = 205 |
set< string > | warnshown |
constexpr int | global_distance_limit = 32000 |
constexpr int | iteration_limit = 10000000 |
constexpr int | STRONGWIND = 99 |
constexpr int | FALL = 98 |
constexpr int | NO_SPACE = 97 |
constexpr int | TELEPORT = 96 |
constexpr int | JUMP = 95 |
EX string | levelfile = "hyperrogue.lev" |
const EX char * | loadlevel = NULL |
EX string | picfile = "hyperrogue.pic" |
auto | ah_editor = addHook(hooks_args, 0, read_editor_args) |
EX eGravity | gravity_state |
EX eGravity | last_gravity_state |
int | tidalphase |
EX int | tidalsize |
EX int | tide [200] |
EX bool | recalcTide |
int | numgates = 0 |
EX ld | whatever [16] |
EX int | whateveri [16] |
EX bool | showstartmenu |
int | daily_mode |
EX hookset< named_functionality()> * | hooks_o_key |
EX int | messagelogpos |
EX int | timeformat |
EX int | stampbase |
auto | ah_menu = addHook(hooks_args, 0, read_menu_args) |
EX int | avengers |
EX int | mirrorspirits |
EX int | wandering_jiangshi |
EX int | jiangshi_on_screen |
EX bool | timerghost = true |
EX bool | gen_wandering = true |
EX int | turncount |
EX int | mutantphase |
EX int | sagephase = 0 |
EX vector< cell * > | targets |
grow_vector< vector< cell * > > | movesofgood |
EX vector< pair< cell *, int > > | butterflies |
bool | sagefresh = true |
vector< int > | global_posdir |
EX bool | quantum |
vector< cell * > | gendfs |
int | targetcount |
vector< cell * > | hexdfs |
EX vector< array< cell *, MAXPLAYER > > | shpos |
EX int | cshpos = 0 |
EX cell * | lastmountpos [MAXPLAYER] |
EX hookset< void(gamedata *)> * | hooks_gamedata |
EX vector< orbinfo > | orbinfos |
EX string | olrDescriptions [] |
cellwalker | cwt |
EX bool | orbused [ittypes] |
EX bool | lastorbused [ittypes] |
EX vector< pair< cell *, int > > | airmap |
EX int | rosewave |
EX int | rosephase |
EX map< cell *, int > | rosemap |
int | elhextable [28][3] |
EX map< char, colortable > | colortables |
auto | ah_pattern = addHook(hooks_args, 0, read_pattern_args) + addHook(clearmemory, 100, [] { patterns::computed_nearer_map.clear(); patterns::computed_furthest_map.clear(); }) |
int | fiftytable [480][7] |
int | zebratable [12][7] |
EX int | zebratable6 [28][3] |
EX bool | keepLightning = false |
EX bool | seenSevenMines = false |
EX bool | hauntedWarning |
EX bool | survivalist |
EX bool | invismove = false |
EX bool | invisfish = false |
EX bool | flipplayer = true |
EX bool | playermoved = true |
EX int | cheater = 0 |
EX bool | landvisited [landtypes] |
EX int | noiseuntil |
eLastmovetype | lastmovetype |
eLastmovetype | nextmovetype |
eForcemovetype | forcedmovetype |
EX cell * | lastmove |
EX cell * | global_pushto |
EX changes_t | changes |
EX int | plague_kills |
bool | got_crossroads |
EX vector< long double > | polydata |
EX function< void()> | cancel = noaction |
EX hint | hints [] |
EX int | hinttoshow |
EX vector< radarpoint > | radarpoints |
EX vector< radarline > | radarlines |
EX transmatrix | radar_transform |
EX int | current_rbuffer = -1 |
EX bool | rug_failure = false |
EX bool | memory_saving_mode = true |
EX bool | show_memory_warning = true |
EX bool | ignored_memory_warning |
EX heptagon * | last_cleared |
EX vector< cell * > | removed_cells |
EX purehookset | hooks_removecells |
EX int | reserve_count = 0 |
EX int | reserve_limit = 128 |
const int | max_reserve = 4096 |
array< reserve_block *, max_reserve > | reserve |
std::new_handler | default_handler |
EX purehookset | hooks_clear_cache |
bool | hide_hud = true |
EX ld | levellines |
EX bool | disable_texture |
constexpr flagtype | GF_TEXTURE = 1 |
constexpr flagtype | GF_VARCOLOR = 2 |
constexpr flagtype | GF_LIGHTFOG = 4 |
constexpr flagtype | GF_LEVELS = 8 |
constexpr flagtype | GF_which = 15 |
constexpr flagtype | SF_PERS3 = 256 |
constexpr flagtype | SF_BAND = 512 |
constexpr flagtype | SF_USE_ALPHA = 1024 |
constexpr flagtype | SF_DIRECT = 2048 |
constexpr flagtype | SF_PIXELS = 4096 |
constexpr flagtype | SF_HALFPLANE = 8192 |
constexpr flagtype | SF_ORIENT = 16384 |
constexpr flagtype | SF_BOX = 32768 |
constexpr flagtype | SF_ZFOG = 65536 |
constexpr flagtype | SF_ODSBOX = (1<<17) |
constexpr int | aPosition = 0 |
constexpr int | aColor = 3 |
constexpr int | aTexture = 8 |
constexpr int | INVERSE_EXP_BINDING = 2 |
EX map< string, shared_ptr< glhr::GLprogram > > | compiled_programs |
EX map< unsigned, shared_ptr< glhr::GLprogram > > | matched_programs |
EX ld | camera_level |
EX struct dqi_sky * | sky |
const EX char * | musicfile = "" |
EX bool | audio |
EX string | musiclicense |
EX string | musfname [landtypes] |
EX int | musicvolume = 60 |
EX int | effvolume = 60 |
EX vector< int > | siblings |
EX bool | game_active |
EX bool | cblind |
EX bool | autocheat |
EX eWall | canvas_default_wall = waNone |
EX int | truelotus |
EX int | gamecount |
EX int | asteroids_generated |
EX int | asteroid_orbs_generated |
EX time_t | timerstart |
EX time_t | savetime |
EX bool | timerstopped |
EX int | savecount |
EX bool | showoff = false |
EX bool | doCross = false |
EX bool | gamegen_failure |
EX eLand | top_land |
EX hookset< bool()> * | hooks_welcome_message |
int | trailer_cash0 = 5 |
int | trailer_cash1 = 15 |
bool | trailer_safety = true |
EX hookset< void()> * | hooks_initgame |
bool | havesave = true |
EX int | savebox [MAXBOX] |
EX int | boxid |
EX bool | saving |
EX bool | loading |
EX bool | loadingHi |
EX string | boxname [MAXBOX] |
EX bool | fakebox [MAXBOX] |
EX bool | monsbox [MAXBOX] |
vector< eItem > | invorb |
long long | saveposition = -1 |
EX purehookset | on_geometry_change |
EX purehookset | clearmemory |
EX purehookset | final_cleanup |
auto | cgm |
EX array< map< int, usershape * >, mapeditor::USERSHAPEGROUPS > | usershapes |
EX basic_textureinfo | user_triangles_texture |
EX purehookset | hooks_tests |
int | modecodetable [42][6] |
auto | ah = addHook(hooks_args, 0, read_mode_args) |
the main namespace of HyperRogue
typedef walker<heptagon> hr::heptspin |
abbreviations
hyperpoint hr::psmin | ( | hyperpoint | H | ) |
res[0] and res[1] place H on the plane, while res[2] is the altitude
EX bool hr::wrongMode | ( | char | flags | ) |
Returns true if the given achievement cannot be obtained in the current mode.
flags | Mode requested by the achievement. |
void hr::achievement_gain | ( | const char * | s, |
char flags | IS0 | ||
) |
gain the given achievement.
s | name of the achievement, e.g., DIAMOND1 |
flags | one of the constants from namespace rg. The achievement is only awarded if special modes are matched exactly. |
EX void hr::achievement_count | ( | const string & | s, |
int | current, | ||
int | prev | ||
) |
This function awards 'counting' achievements, such as kill 10 monsters at the same time.
s | name of the group of achievements, e.g. GOLEM. |
current | our score, e.g., the the achievement GOLEM2 will be awared with current >= 5. |
prev | previous value of the score. |
EX void hr::achievement_final | ( | bool | really_final | ) |
gain the final achievements.
really | false: the user is simply looking at the score; true: the game really ended. |
EX void hr::achievement_victory | ( | bool | hyper | ) |
gain the victory achievements.
hyper | true for the Hyperstone victory, and false for the Orb of Yendor victory. |
void hr::achievement_pump | ( | ) |
call the achievement callbacks
EX void hr::achievement_display | ( | ) |
display the last achievement gained.
EX bool hr::hasbardir | ( | cell * | c | ) |
return true if the cell c is not allowed to generate barriers because of other large things already existing nearby.
EX bool hr::warped_version | ( | eLand | l1, |
eLand | l2 | ||
) |
warp coasts use a different algorithm for nowall barriers when has_nice_dual() is on. Check whether we should use this different algorithm when the lands are l1 and l2
EX bool hr::horo_ok | ( | ) |
should we generate the horocycles in the current geometry?
EX int hr::temple_layer_size | ( | ) |
the distance between two layers of Temple of Cthulhu
very similar to createMove in heptagon.cpp
EX void hr::initcells | ( | ) |
create a map in the current geometry
EX int hr::updir | ( | heptagon * | h | ) |
direction upwards in the tree
EX int hr::updir_alt | ( | heptagon * | h | ) |
direction upwards in the alt-tree
EX void hr::showCheatMenu | ( | ) |
show the cheat menu
EX void hr::viewall | ( | ) |
view all the monsters and items
EX void hr::modalDebug | ( | cell * | c | ) |
launch a debugging screen, and continue normal working only after this screen is closed
EX void hr::bfs | ( | ) |
calculate cpdist, 'have' flags, and do general fixings
An algorithm for computing distance between two cells. This algorithm runs correctly in O(d) assuming that:
EX eItem hr::frog_power | ( | eMonster | m | ) |
Determine the power of a frog monster. Also used to determine whether monster is a frog.
EX bool hr::do_not_touch_this_wall | ( | cell * | c | ) |
changing this wall for whatever reason may cause the game to crash
EX void hr::ensure_vertex_number | ( | basic_textureinfo & | bti, |
int | qty | ||
) |
copy the texture vertices so that there are at least qty of them
EX void hr::ensure_vertex_number | ( | hpcshape & | sh | ) |
ensure_vertex_number for a hpcshape
EX void hr::shrand | ( | int | i | ) |
initialize hrngen
EX int hr::hrandpos | ( | ) |
generate a large number with hrngen
int hr::hrand | ( | int | i | ) |
A random integer from [0..i), generated from hrngen. We are using our own implementations rather than ones from <random>, to make sure that they return the same values on different compilers.
EX ld hr::hrandf | ( | ) |
Use hrngen to generate a floating point number between 0 and 1.
EX int hr::hrandstate | ( | ) |
Returns an integer corresponding to the current state of hrngen.
bool hr::same_tiling | ( | eGeometry | g2 | ) |
is g2 the same tiling as the current geometry (geometry)?
EX transmatrix hr::relative_matrix_recursive | ( | heptagon * | h2, |
heptagon * | h1 | ||
) |
find relative_matrix via recursing the tree structure
EX int hr::haveaura | ( | ) |
0 = no aura, 1 = standard aura, 2 = Joukowsky aura
EX hstate hr::transition | ( | hstate | s, |
int | dir | ||
) |
the automaton is used to generate each heptagon in an unique way. See http://roguetemple.com/z/dev.php for more help. From the origin we can go further in any direction, and from other heptagons we can go in directions 3 and 4 (0 is back to origin, so 3 and 4 go forward), and sometimes in direction 5
void hr::ignore | ( | T && | ) |
placate GCC's overzealous -Wunused-result
bool hr::among | ( | T | x, |
V | y | ||
) |
Is the value of first parameter equal to one of the remaining parameters?
EX string hr::XLAT | ( | string | x | ) |
translate the string @x
|
constexpr |
returns a diagonal matrix
EX ld hr::edge_of_triangle_with_angles | ( | ld | alpha, |
ld | beta, | ||
ld | gamma | ||
) |
This function returns the length of the edge opposite the angle alpha in a triangle with angles alpha, beta, gamma. This is called the cosine rule, and of course works only in non-Euclidean geometry.
EX ld hr::intval | ( | const hyperpoint & | h1, |
const hyperpoint & | h2 | ||
) |
this function returns approximate square of distance between two points (in the spherical analogy, this would be the distance in the 3D space, through the interior, not on the surface) also used to verify whether a point h1 is on the hyperbolic plane by using Hypc for h2
EX ld hr::sqhypot_d | ( | int | d, |
const hyperpoint & | h | ||
) |
square Euclidean hypotenuse in the first d dimensions
EX ld hr::hypot_d | ( | int | d, |
const hyperpoint & | h | ||
) |
Euclidean hypotenuse in the first d dimensions
EX hyperpoint hr::normalize | ( | hyperpoint | H | ) |
normalize the homogeneous coordinates
EX hyperpoint hr::normalize_flat | ( | hyperpoint | h | ) |
normalize, and in product geometry, also flatten
EX hyperpoint hr::mid | ( | const hyperpoint & | H1, |
const hyperpoint & | H2 | ||
) |
get the center of the line segment from H1 to H2
EX hyperpoint hr::midz | ( | const hyperpoint & | H1, |
const hyperpoint & | H2 | ||
) |
like mid, but take 3D into account
EX transmatrix hr::cspin | ( | int | a, |
int | b, | ||
ld | alpha | ||
) |
rotate by alpha degrees in the coordinates a, b
EX transmatrix hr::spin | ( | ld | alpha | ) |
rotate by alpha degrees in the XY plane
EX transmatrix hr::rspintoc | ( | const hyperpoint & | H, |
int | t, | ||
int | f | ||
) |
an Euclidean rotation in the axes (t,f) which rotates the point H to the positive 't' axis
EX transmatrix hr::spintox | ( | const hyperpoint & | H | ) |
an isometry which takes the point H to the positive X axis
EX transmatrix hr::rspintox | ( | const hyperpoint & | H | ) |
inverse of hr::spintox
EX transmatrix hr::pushxto0 | ( | const hyperpoint & | H | ) |
for H on the X axis, this matrix pushes H to C0
EX void hr::set_column | ( | transmatrix & | T, |
int | i, | ||
const hyperpoint & | H | ||
) |
set the i-th column of T to H
EX transmatrix hr::build_matrix | ( | hyperpoint | h1, |
hyperpoint | h2, | ||
hyperpoint | h3, | ||
hyperpoint | h4 | ||
) |
build a matrix using the given vectors as columns
EX transmatrix hr::rpushxto0 | ( | const hyperpoint & | H | ) |
for H on the X axis, this matrix pushes C0 to H
EX transmatrix hr::gpushxto0 | ( | const hyperpoint & | H | ) |
a translation matrix which takes H to 0
EX transmatrix hr::rgpushxto0 | ( | const hyperpoint & | H | ) |
a translation matrix which takes 0 to H
EX ld hr::det | ( | const transmatrix & | T | ) |
determinant
void hr::inverse_error | ( | const transmatrix & | T | ) |
warning about incorrect inverse
EX transmatrix hr::inverse | ( | const transmatrix & | T | ) |
inverse
EX ld hr::hdist0 | ( | const hyperpoint & | mh | ) |
distance from mh and 0
EX ld hr::circlelength | ( | ld | r | ) |
length of a circle of radius r
EX hyperpoint hr::orthogonal_of_C0 | ( | hyperpoint | h0, |
hyperpoint | h1, | ||
hyperpoint | h2 | ||
) |
in 3D, an orthogonal projection of C0 on the given triangle
|
inline |
T * C0, optimized
EX hyperpoint hr::ctangent | ( | int | c, |
ld | x | ||
) |
tangent vector in the given direction
EX hyperpoint hr::xtangent | ( | ld | x | ) |
tangent vector in direction X
EX hyperpoint hr::ztangent | ( | ld | z | ) |
tangent vector in direction Y
EX hyperpoint hr::tangent_length | ( | hyperpoint | dir, |
ld | length | ||
) |
change the length of the targent vector
EX hyperpoint hr::direct_exp | ( | hyperpoint | v, |
int | steps | ||
) |
exponential function: follow the geodesic given by v
EX hyperpoint hr::inverse_exp | ( | const hyperpoint | h, |
iePrecision | p, | ||
bool just_direction | IStrue | ||
) |
inverse exponential function
EX eModel hr::flat_model | ( | ) |
In 3D, we use the standard translation matrices to place stuff on the screen. In 2D, this does not work (as HyperRogue reduces matrices to 3x3) so we use the native disk projection
EX transmatrix& hr::get_view_orientation | ( | ) |
get the current orientation of the view
EX void hr::rotate_view | ( | transmatrix | T | ) |
rotate the view using the given rotation matrix
EX transmatrix hr::get_shift_view_of | ( | const hyperpoint | H, |
const transmatrix | V | ||
) |
shift the view according to the given tangent vector
EX void hr::shift_view | ( | hyperpoint | H | ) |
shift the view according to the given tangent vector
EX int hr::isNative | ( | eLand | l, |
eMonster | m | ||
) |
returns: 2 = treasure increaser, 1 = just appears, 0 = does not appear
EX int hr::gmod | ( | int | i, |
int | j | ||
) |
Connection tables are used by heptagon and cell structures. They basically describe the structure of the graph on the given manifold. We assume that the class T has a field c of type connection_table<T>, as its last field. Edges are listed in the clockwise order (for 2D tilings, for 3D tilings the order is more arbitrary). For each edge we remember which other T we are connected to, as well as the index of this edge in the other T, and whether it is mirrored (for graphs on non-orientable manifolds). To conserve memory, these classes need to be allocated with tailored_alloc and freed with tailored_free.
T* hr::tailored_alloc | ( | int | degree | ) |
Allocate a class T with a connection_table, but with only degree
connections. Also set yet unknown connections to NULL.
Generating the hyperbolic world consumes lots of RAM, so we really need to be careful on low memory devices.
void hr::tailored_delete | ( | T * | x | ) |
Counterpart to tailored_alloc().
EX void hr::chasmify | ( | cell * | c | ) |
the 'chasmify' functions create a simulation of the path the monster came by
EX eMonster hr::crossroadsMonster | ( | ) |
generate a monster appropriate for the Crossroads
EX void hr::wandering | ( | ) |
generate the wandering monsters
EX void hr::moveEffect | ( | const movei & | mi, |
eMonster | m | ||
) |
effect of moving monster m from cf to ct this is called from moveMonster, or separately from moveIvy/moveWorm, or when a dead bird falls (then m == moDeadBird)
for the monster at c1, evaluation of the move to c2
mf | what moves are allowed |
EX int hr::stayvalue | ( | eMonster | m, |
cell * | c | ||
) |
for an ally m at c, evaluate staying in place
for an ally m at c, evaluate moving to c2
EX void hr::moveButterflies | ( | ) |
note: butterflies don't use moveNormal for two reasons: 1) to make sure that they move AFTER bulls 2) to make sure that they move offscreen
bool hr::switch_lhu_in | ( | eLand | l | ) |
Auxiliary function for hr::apply_chaos(). Returns whether the cell attribute LHU should be switched.
void hr::apply_chaos | ( | ) |
Apply the Orb of Chaos. We assume that the player moves from cwt.peek, in in the direction given by cwt.spin.
EX vector<string> hr::achievementsReceived |
achievements received this game
EX array<int, motypes> hr::kills |
how many instances of each monster type has been killed
EX unsigned hr::backcolor = 0 |
Color of the background.
auto hr::ccm_bigstuff |
auto hr::ccm_blizzard |
EX bool hr::hardcore = false |
are we in the hardcore mode
EX int hr::hardcoreAt |
when did we switch to the hardcore mode
EX bool hr::canmove = true |
can we still move?
const char* hr::wormdes |
const char* hr::cocytushelp |
const char* hr::tentdes |
const char* hr::gameboardhelp |
const char* hr::ivydes |
const char* hr::slimehelp |
const char* hr::gdemonhelp |
const char* hr::ldemonhelp |
const char* hr::trollhelp |
const EX char* hr::trollhelp2 |
const char* hr::trollhelpX |
const char* hr::camelothelp |
const char* hr::templehelp |
const char* hr::barrierhelp |
const char* hr::cavehelp |
const char* hr::vinehelp |
const char* hr::hvinehelp |
const char* hr::deadcavehelp |
const char* hr::foresthelp |
const char* hr::hivehelp |
const char* hr::redrockhelp |
const char* hr::caribbeanhelp |
const char* hr::cislandhelp |
const char* hr::redsnakedes |
const char* hr::minedesc |
const char* hr::palacedesc |
const char* hr::gatedesc |
const char* hr::princessdesc |
const char* hr::elemdesc |
const char* hr::wildwestdesc |
const char* hr::elecdesc |
const char* hr::overdesc |
const char* hr::cleardesc |
const char* hr::winddesc |
const char* hr::warningdesc |
const char* hr::hauntdesc |
const char* hr::bulldashdesc |
const char* hr::prairiedesc |
const char* hr::cadesc |
const char* hr::huntingdesc |
const char* hr::terradesc |
const char* hr::terraldesc |
const char* hr::arrowtrapdesc |
const char* hr::lavadesc |
const char* hr::blizzarddesc |
const char* hr::crystaldesc |
const EX char* hr::rosedesc |
const EX char* hr::warpdesc |
const char* hr::warplanddesc |
const char* hr::roselanddesc |
const char* hr::dragondesc |
const char* hr::tortoisedesc |
const char* hr::krakendesc |
const char* hr::halloweendesc |
const char* hr::reptiledesc |
const char* hr::naturedesc |
const char* hr::mirroreddesc |
const char* hr::tamebomberdesc |
const char* hr::gargdesc |
const char* hr::jellydesc |
const char* hr::ruindesc |
const char* hr::rock_description |
EX monstertype hr::minf[motypes] |
EX genderswitch_t hr::genderswitch[NUM_GS] |
EX itemtype hr::iinf[ittypes] |
EX walltype hr::winf[walltypes] |
const EX landtype hr::linf[landtypes] |
EX vector<eLand> hr::randlands |
EX vector<geometryinfo> hr::ginf |
list of available geometries
EX vector<modelinfo> hr::mdinf |
list of available models (i.e., projections)
EX vector<cell*> hr::worms |
monsters of specific types to move
vector<pair<cell*, eMonster> > hr::tempmonsters |
temporary changes during bfs
EX vector<int> hr::reachedfrom |
additional direction information for BFS algorithms. It remembers from where we have got to this location the opposite cell will be added to the queue first, which helps the AI.
EX int hr::first7 |
The position of the first cell in dcal in distance 7. New wandering monsters can be generated in dcal[first7..].
vector< cell * > hr::dcal |
the list of all nearby cells, according to cpdist
EX vector<cell*> hr::pathq |
the list of all nearby cells, according to current pathdist
EX int hr::statuecount |
the number of big statues – they increase monster generation
EX int hr::wetslime |
the number of slimes in Wetland – they create ghosts
EX vector<cell*> hr::pathqm |
list of monsters to move (pathq restriced to monsters)
EX set<int> hr::snaketypes |
which hex snakes are there
auto hr::floor_hook |
EX std::mt19937 hr::hrngen |
the main random number generator for the game.
All the random calls related to the game mechanics (land generation, AI...) should use hrngen.
Random calls not related to the game mechanics (graphical effects) should not use hrngen.
This ensures that the game should unfold exactly the same if given the same seed and the same input.
string hr::euchelp |
EX geometry_filter hr::gf_regular_2d |
EX geometry_filter hr::gf_regular_3d |
EX geometry_filter hr::gf_quotient |
EX bool hr::wallopt |
wall optimization: do not draw things beyond walls
EX colortable hr::minecolors |
EX colortable hr::distcolors |
const char* hr::minetexts[8] |
auto hr::graphcm |
string hr::power_help |
|
constexpr |
identity matrix
|
constexpr |
zero matrix
|
constexpr |
mirror image
|
constexpr |
mirror image: flip in the Y coordinate
|
constexpr |
mirror image: flip in the X coordinate
|
constexpr |
mirror image: flip in the Z coordinate
|
constexpr |
rotate by PI in the XY plane
|
constexpr |
central symmetry matrix
EX array<int, ittypes> hr::items |
for treasures, the number collected; for orbs, the number of charges
EX vector<eLand> hr::land_over |
|
constexpr |
Limit on the 'distance' value in heptagon. This value is signed (negative distances are used in horocycle implementation. Distance is currently a short, and we need a bit of breathing room. It would not be a technical problem to use a larger type, but 32000 is close to what fits in the memory of a normal computer. Farlands appear close to this limit.
|
constexpr |
This value is used in iterative algorithms to prevent infinite loops created by incorrect data (e.g., circular dragon). It should be larger than global_distance_limit
|
constexpr |
a structure for representing movements mostly for 'proper' moves where s->move(d) == t, but also sometimes for other moves
EX vector<cell*> hr::targets |
list of cells that the monsters are targetting (PCs, allies, Thumpers, etc.)
grow_vector<vector<cell*> > hr::movesofgood |
monsters to move, ordered by the number of possible good moves
EX string hr::olrDescriptions[] |
EX cellwalker hr::cwt |
Cellwalker describing the single player. Also used temporarily in shmup and multiplayer modes.
EX map<cell*, int> hr::rosemap |
current state of the rose scent rosemap[c] &3 can be: 0 - wave not reached 1 - wave expanding 2 - wave phase 1 3 - wave phase 2
int hr::elhextable[28][3] |
EX map<char, colortable> hr::colortables |
int hr::zebratable[12][7] |
EX int hr::zebratable6[28][3] |
EX bool hr::hauntedWarning |
have we been warned about the Haunted Woods?
EX bool hr::survivalist |
is the Survivalist achievement still valid? have we received it?
EX bool hr::invismove = false |
last move was invisible
EX bool hr::invisfish = false |
last move was invisible due to Orb of Fish (thus Fish still see you)
EX bool hr::flipplayer = true |
if false, make the PC look in direction cwt.spin (after attack); otherwise, make them look the other direction (after move)
EX bool hr::playermoved = true |
should we center the screen on the PC?
EX int hr::cheater = 0 |
did the player cheat? how many times?
EX bool hr::landvisited[landtypes] |
lands visited – unblock some modes
EX changes_t hr::changes |
The only instance of hr::changes_t