mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-25 01:20:37 +00:00
moved all the HyperRogue stuff except RogueViz to namespace 'hr' -- useful when using hr as a library
This commit is contained in:
parent
c2e3ed54f0
commit
4c619e60dd
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- achievements
|
// Hyperbolic Rogue -- achievements
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
#define NUMLEADER 78
|
#define NUMLEADER 78
|
||||||
|
|
||||||
bool offlineMode = false;
|
bool offlineMode = false;
|
||||||
@ -782,3 +784,5 @@ int score_default(int i) {
|
|||||||
int get_sync_status() { return 0; }
|
int get_sync_status() { return 0; }
|
||||||
void set_priority_board(int) { }
|
void set_priority_board(int) { }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
// This file implements routines related to barriers (Great Walls and similar).
|
// This file implements routines related to barriers (Great Walls and similar).
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool checkBarriersFront(cellwalker bb, int q, bool cross) {
|
bool checkBarriersFront(cellwalker bb, int q, bool cross) {
|
||||||
|
|
||||||
if(!ctof(bb.c))
|
if(!ctof(bb.c))
|
||||||
@ -765,3 +767,4 @@ bool buildBarrierNowall(cell *c, eLand l2, int forced_dir) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- basic graphics
|
// Hyperbolic Rogue -- basic graphics
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
unsigned backcolor = 0;
|
unsigned backcolor = 0;
|
||||||
unsigned bordcolor = 0;
|
unsigned bordcolor = 0;
|
||||||
unsigned forecolor = 0xFFFFFF;
|
unsigned forecolor = 0xFFFFFF;
|
||||||
@ -1256,3 +1258,4 @@ int calcfps() {
|
|||||||
return (1000 * CFPS) / ret;
|
return (1000 * CFPS) / ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
// horocycles
|
// horocycles
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
int newRoundTableRadius() {
|
int newRoundTableRadius() {
|
||||||
return 28 + 2 * items[itHolyGrail];
|
return 28 + 2 * items[itHolyGrail];
|
||||||
}
|
}
|
||||||
@ -1351,3 +1353,5 @@ void moreBigStuff(cell *c) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- special graphical effects, such as the Blizzard
|
// Hyperbolic Rogue -- special graphical effects, such as the Blizzard
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
double randd() { return (rand() + .5) / (RAND_MAX + 1.); }
|
double randd() { return (rand() + .5) / (RAND_MAX + 1.); }
|
||||||
|
|
||||||
double cellgfxdist(cell *c, int i) {
|
double cellgfxdist(cell *c, int i) {
|
||||||
@ -261,3 +263,5 @@ auto ccm_blizzard = addHook(clearmemory, 0, [] () {
|
|||||||
addHook(hooks_removecells, 0, [] () {
|
addHook(hooks_removecells, 0, [] () {
|
||||||
eliminate_if(arrowtraps, is_cell_removed);
|
eliminate_if(arrowtraps, is_cell_removed);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
3
cell.cpp
3
cell.cpp
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
// cells the game is played on
|
// cells the game is played on
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
int fix6(int a) { return (a+MODFIXER)%S6; }
|
int fix6(int a) { return (a+MODFIXER)%S6; }
|
||||||
int fix7(int a) { return (a+MODFIXER)%S7; }
|
int fix7(int a) { return (a+MODFIXER)%S7; }
|
||||||
|
|
||||||
@ -1478,3 +1480,4 @@ void clearCellMemory() {
|
|||||||
|
|
||||||
auto cellhooks = addHook(clearmemory, 500, clearCellMemory);
|
auto cellhooks = addHook(clearmemory, 500, clearCellMemory);
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- items, monsters, walls, lands, descriptions, etc.
|
// Hyperbolic Rogue -- items, monsters, walls, lands, descriptions, etc.
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
// --- help ---
|
// --- help ---
|
||||||
|
|
||||||
const char *wormdes =
|
const char *wormdes =
|
||||||
@ -1674,3 +1676,4 @@ geometryinfo ginf[gGUARD] = {
|
|||||||
{"cube/elliptic", "e3x4", 4, 3, qELLIP, gcSphere, 0x10600, {{SEE_ALL, SEE_ALL}}},
|
{"cube/elliptic", "e3x4", 4, 3, qELLIP, gcSphere, 0x10600, {{SEE_ALL, SEE_ALL}}},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
namespace hr {
|
||||||
|
|
||||||
static const int motypes = 162;
|
static const int motypes = 162;
|
||||||
|
|
||||||
struct monstertype {
|
struct monstertype {
|
||||||
@ -206,7 +208,7 @@ struct geometryinfo {
|
|||||||
int quotientstyle;
|
int quotientstyle;
|
||||||
eGeometryClass cclass;
|
eGeometryClass cclass;
|
||||||
int xcode;
|
int xcode;
|
||||||
array<int,2> distlimit; // bitrunc, non-bitrunc
|
std::array<int,2> distlimit; // bitrunc, non-bitrunc
|
||||||
};
|
};
|
||||||
|
|
||||||
static const int qZEBRA = 1;
|
static const int qZEBRA = 1;
|
||||||
@ -232,3 +234,5 @@ enum cpatterntype {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct landtacinfo { eLand l; int tries, multiplier; };
|
struct landtacinfo { eLand l; int tries, multiplier; };
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- commandline options
|
// Hyperbolic Rogue -- commandline options
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
#if CAP_COMMANDLINE
|
#if CAP_COMMANDLINE
|
||||||
const char *scorefile = "hyperrogue.log";
|
const char *scorefile = "hyperrogue.log";
|
||||||
const char *conffile = "hyperrogue.ini";
|
const char *conffile = "hyperrogue.ini";
|
||||||
@ -628,3 +630,5 @@ namespace arg {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -11,9 +11,14 @@
|
|||||||
#define IN_CU(x) (CU == x)
|
#define IN_CU(x) (CU == x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "sysconfig.h"
|
||||||
#include "classes.h"
|
#include "classes.h"
|
||||||
#include "hyper.h"
|
#include "hyper.h"
|
||||||
|
|
||||||
|
#if CAP_ROGUEVIZ
|
||||||
|
#include "rogueviz.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#define CU_INIT IN_CU(0)
|
#define CU_INIT IN_CU(0)
|
||||||
#define CU_HYPER IN_CU(0)
|
#define CU_HYPER IN_CU(0)
|
||||||
|
|
||||||
@ -97,7 +102,7 @@ bool inv::activating;
|
|||||||
#if CAP_DAILY
|
#if CAP_DAILY
|
||||||
#include "private/daily.cpp"
|
#include "private/daily.cpp"
|
||||||
#else
|
#else
|
||||||
namespace daily { bool on; }
|
namespace hr::daily { bool on; }
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
namespace whirlwind {
|
namespace whirlwind {
|
||||||
|
|
||||||
int fzebra3(cell *c) {
|
int fzebra3(cell *c) {
|
||||||
@ -3674,3 +3676,5 @@ namespace dungeon {
|
|||||||
if(d == 7 && c->land == laDungeon) buildPlates(c);
|
if(d == 7 && c->land == laDungeon) buildPlates(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2017-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2017-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
videopar vid;
|
videopar vid;
|
||||||
|
|
||||||
#define DEFAULT_WALLMODE (ISMOBILE ? 3 : 5)
|
#define DEFAULT_WALLMODE (ISMOBILE ? 3 : 5)
|
||||||
@ -1354,3 +1356,4 @@ void selectLanguageScreen() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include <complex>
|
#include <complex>
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
#if ISMOBWEB
|
#if ISMOBWEB
|
||||||
typedef double precise;
|
typedef double precise;
|
||||||
#else
|
#else
|
||||||
@ -885,3 +887,5 @@ namespace conformal {
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- control
|
// Hyperbolic Rogue -- control
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
int frames;
|
int frames;
|
||||||
bool outoffocus = false;
|
bool outoffocus = false;
|
||||||
|
|
||||||
@ -885,3 +887,5 @@ bool handleCompass() {
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- debugging routines
|
// Hyperbolic Rogue -- debugging routines
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
int steplimit = 0;
|
int steplimit = 0;
|
||||||
int cstep;
|
int cstep;
|
||||||
|
|
||||||
@ -436,3 +438,5 @@ void raiseBuggyGeneration(cell *c, const char *s) {
|
|||||||
else
|
else
|
||||||
c->item = itBuggy;
|
c->item = itBuggy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
const char* COLORBAR = "###";
|
const char* COLORBAR = "###";
|
||||||
|
|
||||||
namespace dialog {
|
namespace dialog {
|
||||||
@ -1039,3 +1041,5 @@ namespace dialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -5,17 +5,20 @@
|
|||||||
#define MOBPAR_FORMAL int
|
#define MOBPAR_FORMAL int
|
||||||
#define MOBPAR_ACTUAL 0
|
#define MOBPAR_ACTUAL 0
|
||||||
#define MIX_MAX_VOLUME 128
|
#define MIX_MAX_VOLUME 128
|
||||||
|
|
||||||
const char *scorefile = "fakemobile_score.txt";
|
|
||||||
const char *conffile = "fakemobile_config.txt";
|
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
std::string levelfile = "fakemobile_level.txt";
|
|
||||||
std::string picfile = "fakemobile_pic.txt";
|
namespace hr {
|
||||||
|
const char *scorefile = "fakemobile_score.txt";
|
||||||
|
const char *conffile = "fakemobile_config.txt";
|
||||||
|
|
||||||
|
std::string levelfile = "fakemobile_level.txt";
|
||||||
|
std::string picfile = "fakemobile_pic.txt";
|
||||||
|
}
|
||||||
|
|
||||||
#include <SDL/SDL.h>
|
#include <SDL/SDL.h>
|
||||||
|
|
||||||
#include "init.cpp"
|
#include "init.cpp"
|
||||||
|
using namespace hr;
|
||||||
|
|
||||||
#include <SDL/SDL_ttf.h>
|
#include <SDL/SDL_ttf.h>
|
||||||
#include <SDL/SDL_gfxPrimitives.h>
|
#include <SDL/SDL_gfxPrimitives.h>
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- implementation of the quotient geometries based on fields
|
// Hyperbolic Rogue -- implementation of the quotient geometries based on fields
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
namespace fieldpattern {
|
namespace fieldpattern {
|
||||||
|
|
||||||
extern int subpathid;
|
extern int subpathid;
|
||||||
@ -783,3 +785,4 @@ int currfp_gmul(int a, int b) { return currfp.gmul(a,b); }
|
|||||||
int currfp_inverses(int i) { return currfp.inverses[i]; }
|
int currfp_inverses(int i) { return currfp.inverses[i]; }
|
||||||
int currfp_distwall(int i) { return currfp.distwall[i]; }
|
int currfp_distwall(int i) { return currfp.distwall[i]; }
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool isIcyLand(eLand l) {
|
bool isIcyLand(eLand l) {
|
||||||
return l == laIce || l == laCocytus || l == laBlizzard;
|
return l == laIce || l == laCocytus || l == laBlizzard;
|
||||||
}
|
}
|
||||||
@ -758,3 +760,4 @@ bool isTechnicalLand(eLand l) {
|
|||||||
l == laMirrorWall2 || l == laMercuryRiver || l == laMemory;
|
l == laMirrorWall2 || l == laMercuryRiver || l == laMemory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
namespace hr {
|
||||||
|
|
||||||
vector<plain_floorshape*> all_plain_floorshapes;
|
vector<plain_floorshape*> all_plain_floorshapes;
|
||||||
vector<escher_floorshape*> all_escher_floorshapes;
|
vector<escher_floorshape*> all_escher_floorshapes;
|
||||||
|
|
||||||
@ -587,3 +589,4 @@ if(0) {
|
|||||||
} */
|
} */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
5
game.cpp
5
game.cpp
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
int lastsafety;
|
int lastsafety;
|
||||||
int mutantphase;
|
int mutantphase;
|
||||||
int turncount;
|
int turncount;
|
||||||
@ -142,8 +144,6 @@ cellwalker cwt; // single player character position
|
|||||||
inline cell*& singlepos() { return cwt.c; }
|
inline cell*& singlepos() { return cwt.c; }
|
||||||
inline bool singleused() { return !(shmup::on || multi::players > 1); }
|
inline bool singleused() { return !(shmup::on || multi::players > 1); }
|
||||||
|
|
||||||
#include <random>
|
|
||||||
|
|
||||||
mt19937 r;
|
mt19937 r;
|
||||||
|
|
||||||
void shrand(int i) {
|
void shrand(int i) {
|
||||||
@ -8053,3 +8053,4 @@ bool warningprotection() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
// -- geometry menu --
|
// -- geometry menu --
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
int eupage = 0;
|
int eupage = 0;
|
||||||
int euperpage = 21;
|
int euperpage = 21;
|
||||||
|
|
||||||
@ -453,3 +455,4 @@ void runGeometryExperiments() {
|
|||||||
pushScreen(showEuclideanMenu);
|
pushScreen(showEuclideanMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool debug_geometry = false;
|
bool debug_geometry = false;
|
||||||
|
|
||||||
ld tessf, crossf, hexf, hcrossf, hexhexdist, hexvdist, hepvdist, rhexf;
|
ld tessf, crossf, hexf, hcrossf, hexhexdist, hexvdist, hepvdist, rhexf;
|
||||||
@ -340,3 +342,4 @@ void initgeo() {
|
|||||||
// printf("%Lf\n", (ld) hdist0(xpush(-1)*ypush(0.01)*xpush(1)*C0));
|
// printf("%Lf\n", (ld) hdist0(xpush(-1)*ypush(0.01)*xpush(1)*C0));
|
||||||
precalc();
|
precalc();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
namespace gp {
|
namespace hr::gp {
|
||||||
bool on;
|
bool on;
|
||||||
loc param(1, 0);
|
loc param(1, 0);
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
// basic graphics:
|
// basic graphics:
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
int inmirrorcount = 0;
|
int inmirrorcount = 0;
|
||||||
|
|
||||||
bool wmspatial, wmescher, wmplain, wmblack, wmascii;
|
bool wmspatial, wmescher, wmplain, wmblack, wmascii;
|
||||||
@ -5825,3 +5827,4 @@ bool inscreenrange(cell *c) {
|
|||||||
return heptdistance(viewcenter(), c) <= 8;
|
return heptdistance(viewcenter(), c) <= 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
3
help.cpp
3
help.cpp
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- help routines
|
// Hyperbolic Rogue -- help routines
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
string help;
|
string help;
|
||||||
|
|
||||||
function<void()> help_delegate;
|
function<void()> help_delegate;
|
||||||
@ -1015,3 +1017,4 @@ void gotoHelpFor(eLand l) {
|
|||||||
}});
|
}});
|
||||||
else listbeasts();
|
else listbeasts();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
// heptagon here refers to underlying heptagonal tesselation
|
// heptagon here refers to underlying heptagonal tesselation
|
||||||
// (which you can see by changing the conditions in graph.cpp)
|
// (which you can see by changing the conditions in graph.cpp)
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
#define MIRR(x) x.mirrored
|
#define MIRR(x) x.mirrored
|
||||||
|
|
||||||
int heptacount = 0;
|
int heptacount = 0;
|
||||||
@ -275,3 +277,4 @@ void hsshow(const heptspin& t) {
|
|||||||
// create h->move[d] if not created yet
|
// create h->move[d] if not created yet
|
||||||
heptagon *createStep(heptagon *h, int d);
|
heptagon *createStep(heptagon *h, int d);
|
||||||
|
|
||||||
|
}
|
||||||
|
3
hud.cpp
3
hud.cpp
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- heads-up display
|
// Hyperbolic Rogue -- heads-up display
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
purehookset hooks_stats;
|
purehookset hooks_stats;
|
||||||
|
|
||||||
int monsterclass(eMonster m) {
|
int monsterclass(eMonster m) {
|
||||||
@ -567,3 +569,4 @@ XLAT(
|
|||||||
callhooks(hooks_stats);
|
callhooks(hooks_stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -40,10 +40,11 @@ void moreStack() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
hookset<bool(int argc, char** argv)> *hooks_main;
|
hr::hookset<bool(int argc, char** argv)> *hr::hooks_main;
|
||||||
|
|
||||||
#ifndef NOMAIN
|
#ifndef NOMAIN
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
using namespace hr;
|
||||||
#if ISWEB
|
#if ISWEB
|
||||||
emscripten_get_commandline();
|
emscripten_get_commandline();
|
||||||
#else
|
#else
|
||||||
|
106
hyper.h
106
hyper.h
@ -1,6 +1,71 @@
|
|||||||
// This is the main header file of HyperRogue. Mostly everything is dumped here.
|
// This is the main header file of HyperRogue. Mostly everything is dumped here.
|
||||||
// It is quite chaotic.
|
// It is quite chaotic.
|
||||||
|
|
||||||
|
// version numbers
|
||||||
|
#define VER "10.4a"
|
||||||
|
#define VERNUM 10401
|
||||||
|
#define VERNUM_HEX 0xA0B1
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
// genus (in grammar)
|
||||||
|
#define GEN_M 0
|
||||||
|
#define GEN_F 1
|
||||||
|
#define GEN_N 2
|
||||||
|
#define GEN_O 3
|
||||||
|
|
||||||
|
void addMessage(string s, char spamtype = 0);
|
||||||
|
|
||||||
|
// geometry-dependent constants
|
||||||
|
|
||||||
|
#define ALPHA (M_PI*2/S7)
|
||||||
|
#define S7 ginf[geometry].sides
|
||||||
|
#define S3 ginf[geometry].vertex
|
||||||
|
#define hyperbolic_37 (S7 == 7 && S3 == 3)
|
||||||
|
#define hyperbolic_not37 ((S7 > 7 || S3 > 3) && hyperbolic)
|
||||||
|
#define weirdhyperbolic ((S7 > 7 || S3 > 3 || gp::on) && hyperbolic)
|
||||||
|
#define stdhyperbolic (S7 == 7 && S3 == 3 && !gp::on)
|
||||||
|
|
||||||
|
#define cgclass (ginf[geometry].cclass)
|
||||||
|
#define euclid (cgclass == gcEuclid)
|
||||||
|
#define sphere (cgclass == gcSphere)
|
||||||
|
#define hyperbolic (cgclass == gcHyperbolic)
|
||||||
|
#define elliptic (ginf[geometry].quotientstyle & qELLIP)
|
||||||
|
#define quotient (ginf[geometry].quotientstyle & (qZEBRA | qFIELD))
|
||||||
|
#define torus (ginf[geometry].quotientstyle & qTORUS)
|
||||||
|
#define doall (ginf[geometry].quotientstyle)
|
||||||
|
#define smallbounded (sphere || (quotient & qZEBRA) || torus)
|
||||||
|
#define bounded (sphere || quotient || torus)
|
||||||
|
|
||||||
|
#define a4 (S3 == 4)
|
||||||
|
#define a45 (S3 == 4 && S7 == 5)
|
||||||
|
#define a46 (S3 == 4 && S7 == 6)
|
||||||
|
#define a47 (S3 == 4 && S7 == 7)
|
||||||
|
#define a457 (S3 == 4 && S7 != 6)
|
||||||
|
#define a467 (S3 == 4 && S7 >= 6)
|
||||||
|
#define a38 (S7 == 8)
|
||||||
|
#define sphere4 (sphere && S7 == 4)
|
||||||
|
#define stdeuc (geometry == gNormal || geometry == gEuclid || geometry == gEuclidSquare)
|
||||||
|
#define smallsphere (S7 < 5)
|
||||||
|
#define bigsphere (S7 == 5)
|
||||||
|
#define ap4 (a4 && nonbitrunc)
|
||||||
|
#define euclid4 (euclid && a4)
|
||||||
|
#define euclid6 (euclid && !a4)
|
||||||
|
|
||||||
|
#define S6 (S3*2)
|
||||||
|
#define S42 (S7*S6)
|
||||||
|
#define S12 (S6*2)
|
||||||
|
#define S14 (S7*2)
|
||||||
|
#define S21 (S7*S3)
|
||||||
|
#define S28 (S7*4)
|
||||||
|
#define S36 (S6*6)
|
||||||
|
#define S84 (S7*S6*2)
|
||||||
|
#define MAX_EDGE 8
|
||||||
|
#define MAX_S3 4
|
||||||
|
#define MAX_S84 240
|
||||||
|
|
||||||
#define NUMWITCH 7
|
#define NUMWITCH 7
|
||||||
|
|
||||||
// achievements
|
// achievements
|
||||||
@ -1598,25 +1663,6 @@ enum eGlyphsortorder {
|
|||||||
|
|
||||||
extern eGlyphsortorder glyphsortorder;
|
extern eGlyphsortorder glyphsortorder;
|
||||||
|
|
||||||
#if CAP_ROGUEVIZ
|
|
||||||
namespace rogueviz {
|
|
||||||
extern bool on;
|
|
||||||
string describe(shmup::monster *m);
|
|
||||||
void describe(cell *c);
|
|
||||||
void activate(shmup::monster *m);
|
|
||||||
void drawVertex(const transmatrix &V, cell *c, shmup::monster *m);
|
|
||||||
bool virt(shmup::monster *m);
|
|
||||||
void turn(int delta);
|
|
||||||
void drawExtra();
|
|
||||||
void fixparam();
|
|
||||||
int readArgs();
|
|
||||||
void close();
|
|
||||||
void mark(cell *c);
|
|
||||||
void showMenu();
|
|
||||||
string makehelp();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void explodeMine(cell *c);
|
void explodeMine(cell *c);
|
||||||
bool mayExplodeMine(cell *c, eMonster who);
|
bool mayExplodeMine(cell *c, eMonster who);
|
||||||
|
|
||||||
@ -1781,16 +1827,6 @@ namespace tour {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace rogueviz {
|
|
||||||
extern bool rog3;
|
|
||||||
extern bool rvwarp;
|
|
||||||
#if CAP_TOUR
|
|
||||||
namespace rvtour {
|
|
||||||
extern tour::slide rvslides[];
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
extern bool doCross;
|
extern bool doCross;
|
||||||
void optimizeview();
|
void optimizeview();
|
||||||
|
|
||||||
@ -3390,10 +3426,7 @@ void set_priority_board(int id);
|
|||||||
int get_sync_status();
|
int get_sync_status();
|
||||||
bool score_loaded(int id);
|
bool score_loaded(int id);
|
||||||
int score_default(int id);
|
int score_default(int id);
|
||||||
#if CAP_SDL
|
|
||||||
union SDL_Event;
|
|
||||||
void handle_event(SDL_Event& ev);
|
void handle_event(SDL_Event& ev);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef XPRINTF
|
#ifndef XPRINTF
|
||||||
template<class...T> void Xprintf(const char *fmt, T... t) { printf(fmt, t...); }
|
template<class...T> void Xprintf(const char *fmt, T... t) { printf(fmt, t...); }
|
||||||
@ -3458,3 +3491,12 @@ extern plain_floorshape
|
|||||||
shBigTriangle, shTriheptaFloor, shBigHepta;
|
shBigTriangle, shTriheptaFloor, shBigHepta;
|
||||||
|
|
||||||
extern escher_floorshape shDragonFloor, shPowerFloor, shRedRockFloor[3];
|
extern escher_floorshape shDragonFloor, shPowerFloor, shRedRockFloor[3];
|
||||||
|
|
||||||
|
#if ISMOBILE
|
||||||
|
bool buttonclicked;
|
||||||
|
void gdpush(int t);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern int fontscale;
|
||||||
|
|
||||||
|
}
|
@ -2,6 +2,8 @@
|
|||||||
// This file contains hyperbolic points and matrices.
|
// This file contains hyperbolic points and matrices.
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
eGeometry geometry, targetgeometry;
|
eGeometry geometry, targetgeometry;
|
||||||
|
|
||||||
// for the pure heptagonal grid
|
// for the pure heptagonal grid
|
||||||
@ -597,3 +599,4 @@ transmatrix rotmatrix(double rotation, int c0, int c1) {
|
|||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
16
hyperweb.cpp
16
hyperweb.cpp
@ -19,21 +19,23 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FAKEWEB
|
#ifdef FAKEWEB
|
||||||
void mainloopiter();
|
namespace hr { void mainloopiter(); }
|
||||||
template<class A, class B, class C> void emscripten_set_main_loop(A a, B b, C c) { while(true) mainloopiter(); }
|
template<class A, class B, class C> void emscripten_set_main_loop(A a, B b, C c) { while(true) mainloopiter(); }
|
||||||
#else
|
#else
|
||||||
#include <emscripten.h>
|
#include <emscripten.h>
|
||||||
#include <emscripten/html5.h>
|
#include <emscripten/html5.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void initweb();
|
namespace hr {
|
||||||
void emscripten_get_commandline();
|
void initweb();
|
||||||
|
void emscripten_get_commandline();
|
||||||
|
|
||||||
void loadCompressedChar(int &otwidth, int &otheight, int *tpix);
|
void loadCompressedChar(int &otwidth, int &otheight, int *tpix);
|
||||||
|
|
||||||
const char *wheresounds;
|
const char *wheresounds;
|
||||||
|
}
|
||||||
|
|
||||||
#include "hyper.cpp"
|
namespace hr {
|
||||||
|
|
||||||
// -- demo --
|
// -- demo --
|
||||||
|
|
||||||
@ -192,4 +194,6 @@ void emscripten_get_commandline() {
|
|||||||
free(str);
|
free(str);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "hyper.cpp"
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- hyperbolic graphics
|
// Hyperbolic Rogue -- hyperbolic graphics
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
ld ghx, ghy, ghgx, ghgy;
|
ld ghx, ghy, ghgx, ghgy;
|
||||||
hyperpoint ghpm = C0;
|
hyperpoint ghpm = C0;
|
||||||
|
|
||||||
@ -850,3 +852,4 @@ transmatrix atscreenpos(ld x, ld y, ld size) {
|
|||||||
return V;
|
return V;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
440
init.cpp
440
init.cpp
@ -1,445 +1,10 @@
|
|||||||
// Hyperbolic Rogue -- initialization, and stuff related to mobiles
|
// Hyperbolic Rogue -- initialization, and stuff related to mobiles
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
#ifdef MAC
|
|
||||||
#define ISMAC 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef LINUX
|
|
||||||
#define ISLINUX 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WINDOWS
|
|
||||||
#define ISWINDOWS 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ISSTEAM
|
|
||||||
#define NOLICENSE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define VER "10.4a"
|
|
||||||
#define VERNUM 10401
|
|
||||||
|
|
||||||
#ifndef CAP_SHADER
|
|
||||||
#define CAP_SHADER CAP_GL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define VERNUM_HEX 0xA0B1
|
|
||||||
|
|
||||||
#define GEN_M 0
|
|
||||||
#define GEN_F 1
|
|
||||||
#define GEN_N 2
|
|
||||||
#define GEN_O 3
|
|
||||||
|
|
||||||
// OS settings
|
|
||||||
|
|
||||||
#ifndef ISMAC
|
|
||||||
#define ISMAC 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ISLINUX
|
|
||||||
#define ISLINUX 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ISWINDOWS
|
|
||||||
#define ISWINDOWS 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ISPANDORA
|
|
||||||
#define ISPANDORA 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ISIOS
|
|
||||||
#define ISIOS 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ISANDROID
|
|
||||||
#define ISANDROID 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ISWEB
|
|
||||||
#define ISWEB 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ISFAKEMOBILE
|
|
||||||
#define ISFAKEMOBILE 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ISMOBILE (ISIOS || ISANDROID || ISFAKEMOBILE)
|
|
||||||
#define ISMOBWEB (ISMOBILE || ISWEB)
|
|
||||||
|
|
||||||
#ifndef ISMINI
|
|
||||||
#define ISMINI 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_XGD
|
|
||||||
#define CAP_XGD (ISANDROID || ISFAKEMOBILE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CAP_FRAMELIMIT (!ISMOBWEB)
|
|
||||||
|
|
||||||
#if ISMOBILE==1
|
|
||||||
#define EXTERNALFONT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_FILES
|
|
||||||
#define CAP_FILES 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_INV
|
|
||||||
#define CAP_INV 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_ANDROIDSHARE
|
|
||||||
#define CAP_ANDROIDSHARE (ISANDROID)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_SDL
|
|
||||||
#define CAP_SDL (!ISMOBILE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CAP_COMPASS
|
|
||||||
#define CAP_COMPASS ISMOBILE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_SDLGFX
|
|
||||||
#define CAP_SDLGFX (CAP_SDL && !ISWEB)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_GL
|
|
||||||
#define CAP_GL (ISMOBILE || CAP_SDL)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_AUDIO
|
|
||||||
#define CAP_AUDIO ((ISMOBILE || CAP_SDL) && !ISWEB && !ISMINI)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CAP_GLORNOT (CAP_GL && !ISWEB && !ISIOS)
|
|
||||||
|
|
||||||
#if ISSTEAM
|
|
||||||
#define CAP_DAILY 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_DAILY
|
|
||||||
#define CAP_DAILY 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_CERTIFY
|
|
||||||
#define CAP_CERTIFY 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_RUG
|
|
||||||
#define CAP_RUG (!ISMINI && CAP_GL)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_SURFACE
|
|
||||||
#define CAP_SURFACE CAP_RUG
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_EDIT
|
|
||||||
#define CAP_EDIT (CAP_FILES && !ISWEB && !ISMINI)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_ODS
|
|
||||||
#define CAP_ODS 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_TEXTURE
|
|
||||||
#define CAP_TEXTURE (CAP_GL && (CAP_PNG || CAP_SDL_IMG) && !ISMINI)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_MODEL
|
|
||||||
#define CAP_MODEL (!ISMOBWEB && !ISMINI && CAP_SDLGFX)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_SAVE
|
|
||||||
#define CAP_SAVE (CAP_FILES && !ISWEB && !ISMINI)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_CONFIG
|
|
||||||
#define CAP_CONFIG (CAP_FILES && !ISWEB && !ISMINI)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_TRANS
|
|
||||||
#define CAP_TRANS (!ISWEB && !ISMINI)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_TOUR
|
|
||||||
#define CAP_TOUR (!ISWEB && !ISMINI)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_ROGUEVIZ
|
|
||||||
#define CAP_ROGUEVIZ 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_PROFILING
|
|
||||||
#define CAP_PROFILING 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PSEUDOKEY_WHEELDOWN 2501
|
|
||||||
#define PSEUDOKEY_WHEELUP 2502
|
|
||||||
#define PSEUDOKEY_RELEASE 2503
|
|
||||||
|
|
||||||
#ifndef CAP_PNG
|
|
||||||
#define CAP_PNG (!ISMOBWEB)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_ORIENTATION
|
|
||||||
#define CAP_ORIENTATION ISMOBILE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_COMMANDLINE
|
|
||||||
#define CAP_COMMANDLINE (!ISMOBILE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CAP_SDLAUDIO (CAP_SDL && CAP_AUDIO)
|
|
||||||
|
|
||||||
#ifndef CAP_SVG
|
|
||||||
#define CAP_SVG (!ISMOBILE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_POLY
|
|
||||||
#define CAP_POLY (CAP_SDLGFX || CAP_GL || CAP_SVG)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CAP_QUEUE CAP_POLY
|
|
||||||
#define CAP_CURVE CAP_POLY
|
|
||||||
|
|
||||||
#ifndef CAP_SDLJOY
|
|
||||||
#define CAP_SDLJOY (CAP_SDL && !ISWEB)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_SDL_IMG
|
|
||||||
#define CAP_SDL_IMG 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_SDLTTF
|
|
||||||
#define CAP_SDLTTF (CAP_SDL && !ISMOBILE && !ISWEB)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CAP_GLFONT (CAP_GL && !ISMOBILE)
|
|
||||||
|
|
||||||
#ifndef CAP_TABFONT
|
|
||||||
#define CAP_TABFONT (ISWEB)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_CREATEFONT
|
|
||||||
#define CAP_CREATEFONT 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_FIXEDSIZE
|
|
||||||
#define CAP_FIXEDSIZE (CAP_CREATEFONT || CAP_TABFONT ? 36 : 0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_SHMUP
|
|
||||||
#define CAP_SHMUP 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef ISSTEAM
|
|
||||||
#define CAP_ACHIEVE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_BITFIELD
|
|
||||||
#define CAP_BITFIELD (!ISWEB)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_ACHIEVE
|
|
||||||
#define CAP_ACHIEVE 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CAP_SHMUP_GOOD
|
|
||||||
#define CAP_SHMUP_GOOD (!ISMOBWEB)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern int fontscale;
|
|
||||||
|
|
||||||
#if ISMOBILE
|
|
||||||
#define EXTRALICENSE "\n\nHyperRogue soundtrack by Shawn Parrotte (http://www.shawnparrotte.com), under the Creative Commons BY-SA 3.0 license, http://creativecommons.org/licenses/by-sa/3.0/"
|
|
||||||
#undef XEXTRALICENSE
|
|
||||||
|
|
||||||
bool buttonclicked;
|
|
||||||
void gdpush(int t);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HYPERPATH
|
|
||||||
#define HYPERPATH ""
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#if CAP_SDL
|
|
||||||
#include <SDL/SDL.h>
|
|
||||||
|
|
||||||
#if !ISMAC
|
|
||||||
#undef main
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if CAP_SDLAUDIO
|
|
||||||
#include <SDL/SDL_mixer.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if CAP_SDLTTF
|
|
||||||
#include <SDL/SDL_ttf.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if CAP_SDLGFX
|
|
||||||
#include <SDL/SDL_gfxPrimitives.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#elif !ISFAKEMOBILE
|
|
||||||
#define SDLK_F1 (123001)
|
|
||||||
#define SDLK_F2 (123002)
|
|
||||||
#define SDLK_F3 (123003)
|
|
||||||
#define SDLK_F4 (123004)
|
|
||||||
#define SDLK_F5 (123005)
|
|
||||||
#define SDLK_F6 (123006)
|
|
||||||
#define SDLK_F7 (123007)
|
|
||||||
#define SDLK_F8 (123008)
|
|
||||||
#define SDLK_F9 (123009)
|
|
||||||
#define SDLK_F10 (123010)
|
|
||||||
#define SDLK_ESCAPE (123099)
|
|
||||||
#define SDLK_F12 (123012)
|
|
||||||
#define SDLK_HOME (123013)
|
|
||||||
#define SDLK_LEFT (123014)
|
|
||||||
#define SDLK_RIGHT (123015)
|
|
||||||
#define SDLK_END (123016)
|
|
||||||
#define MIX_MAX_VOLUME 128
|
|
||||||
#define SDLK_UP (123021)
|
|
||||||
#define SDLK_DOWN (123022)
|
|
||||||
#define SDLK_PAGEUP (123023)
|
|
||||||
#define SDLK_PAGEDOWN (123024)
|
|
||||||
#define SDLK_RETURN (123025)
|
|
||||||
#define SDLK_KP1 (123031)
|
|
||||||
#define SDLK_KP2 (123032)
|
|
||||||
#define SDLK_KP3 (123033)
|
|
||||||
#define SDLK_KP4 (123034)
|
|
||||||
#define SDLK_KP5 (123035)
|
|
||||||
#define SDLK_KP6 (123036)
|
|
||||||
#define SDLK_KP7 (123037)
|
|
||||||
#define SDLK_KP8 (123038)
|
|
||||||
#define SDLK_KP9 (123039)
|
|
||||||
#define SDLK_KP_PERIOD (123051)
|
|
||||||
#define SDLK_KP_MINUS (123053)
|
|
||||||
#define SDLK_DELETE (123052)
|
|
||||||
#define SDLK_DELETE (123052)
|
|
||||||
#define SDLK_KP_ENTER (123054)
|
|
||||||
#define SDLK_BACKSPACE (123055)
|
|
||||||
typedef int SDL_Event;
|
|
||||||
typedef unsigned int Uint32;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ISWEB
|
|
||||||
extern "C" {
|
|
||||||
Uint8 *SDL_GetKeyState(void*);
|
|
||||||
}
|
|
||||||
// inline Uint8 *SDL_GetKeyState(void *v) { static Uint8 tab[1024]; return tab; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef CAP_GLEW
|
|
||||||
#define CAP_GLEW (CAP_GL && !ISMOBILE && !ISMAC && !ISLINUX && !ISWEB)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if CAP_GL
|
|
||||||
#if CAP_GLEW
|
|
||||||
#include <GL/glew.h>
|
|
||||||
#else
|
|
||||||
#define GL_GLEXT_PROTOTYPES 1
|
|
||||||
#if ISMAC
|
|
||||||
#include <OpenGL/gl.h>
|
|
||||||
#include <OpenGL/glu.h>
|
|
||||||
#include <OpenGL/glext.h>
|
|
||||||
#elif ISIOS
|
|
||||||
// already included
|
|
||||||
#elif ISANDROID
|
|
||||||
#include <GLES/gl.h>
|
|
||||||
#include <GLES/glext.h>
|
|
||||||
#include <GLES2/gl2.h>
|
|
||||||
#include <GLES3/gl3.h>
|
|
||||||
#define GLES_ONLY
|
|
||||||
#else
|
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glu.h>
|
|
||||||
#include <GL/glext.h>
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <functional>
|
|
||||||
#include <memory>
|
|
||||||
#include <cmath>
|
|
||||||
#include <time.h>
|
|
||||||
#include <vector>
|
|
||||||
#include <algorithm>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <string>
|
|
||||||
#include <map>
|
|
||||||
#include <queue>
|
|
||||||
#include <stdexcept>
|
|
||||||
#include <array>
|
|
||||||
#include <set>
|
|
||||||
|
|
||||||
#ifdef USE_UNORDERED_MAP
|
|
||||||
#include <unordered_map>
|
|
||||||
#else
|
|
||||||
#define unordered_map map
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
void addMessage(string s, char spamtype = 0);
|
|
||||||
|
|
||||||
#define ALPHA (M_PI*2/S7)
|
|
||||||
#define S7 ginf[geometry].sides
|
|
||||||
#define S3 ginf[geometry].vertex
|
|
||||||
#define hyperbolic_37 (S7 == 7 && S3 == 3)
|
|
||||||
#define hyperbolic_not37 ((S7 > 7 || S3 > 3) && hyperbolic)
|
|
||||||
#define weirdhyperbolic ((S7 > 7 || S3 > 3 || gp::on) && hyperbolic)
|
|
||||||
#define stdhyperbolic (S7 == 7 && S3 == 3 && !gp::on)
|
|
||||||
|
|
||||||
#define cgclass (ginf[geometry].cclass)
|
|
||||||
#define euclid (cgclass == gcEuclid)
|
|
||||||
#define sphere (cgclass == gcSphere)
|
|
||||||
#define hyperbolic (cgclass == gcHyperbolic)
|
|
||||||
#define elliptic (ginf[geometry].quotientstyle & qELLIP)
|
|
||||||
#define quotient (ginf[geometry].quotientstyle & (qZEBRA | qFIELD))
|
|
||||||
#define torus (ginf[geometry].quotientstyle & qTORUS)
|
|
||||||
#define doall (ginf[geometry].quotientstyle)
|
|
||||||
#define smallbounded (sphere || (quotient & qZEBRA) || torus)
|
|
||||||
#define bounded (sphere || quotient || torus)
|
|
||||||
|
|
||||||
#define a4 (S3 == 4)
|
|
||||||
#define a45 (S3 == 4 && S7 == 5)
|
|
||||||
#define a46 (S3 == 4 && S7 == 6)
|
|
||||||
#define a47 (S3 == 4 && S7 == 7)
|
|
||||||
#define a457 (S3 == 4 && S7 != 6)
|
|
||||||
#define a467 (S3 == 4 && S7 >= 6)
|
|
||||||
#define a38 (S7 == 8)
|
|
||||||
#define sphere4 (sphere && S7 == 4)
|
|
||||||
#define stdeuc (geometry == gNormal || geometry == gEuclid || geometry == gEuclidSquare)
|
|
||||||
#define smallsphere (S7 < 5)
|
|
||||||
#define bigsphere (S7 == 5)
|
|
||||||
#define ap4 (a4 && nonbitrunc)
|
|
||||||
#define euclid4 (euclid && a4)
|
|
||||||
#define euclid6 (euclid && !a4)
|
|
||||||
|
|
||||||
#define S6 (S3*2)
|
|
||||||
#define S42 (S7*S6)
|
|
||||||
#define S12 (S6*2)
|
|
||||||
#define S14 (S7*2)
|
|
||||||
#define S21 (S7*S3)
|
|
||||||
#define S28 (S7*4)
|
|
||||||
#define S36 (S6*6)
|
|
||||||
#define S84 (S7*S6*2)
|
|
||||||
#define MAX_EDGE 8
|
|
||||||
#define MAX_S3 4
|
|
||||||
#define MAX_S84 240
|
|
||||||
|
|
||||||
#include "compileunits.h"
|
#include "compileunits.h"
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
#if CU_INIT
|
#if CU_INIT
|
||||||
int fontscale = 100;
|
int fontscale = 100;
|
||||||
|
|
||||||
@ -851,3 +416,4 @@ void playSound(cell*, const string &s, int vol) { printf("play sound: %s vol %d\
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Hyperbolic Rogue -- Orb Strategy Mode
|
// Hyperbolic Rogue -- Orb Strategy Mode
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
namespace inv {
|
namespace hr::inv {
|
||||||
|
|
||||||
bool on;
|
bool on;
|
||||||
array<int, ittypes> usedup;
|
array<int, ittypes> usedup;
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
// land generation routines
|
// land generation routines
|
||||||
|
|
||||||
bool safety = false;
|
bool safety = false;
|
||||||
@ -2485,3 +2487,5 @@ void setdist(cell *c, int d, cell *from) {
|
|||||||
mapeditor::applyModelcell(c);
|
mapeditor::applyModelcell(c);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
// land statistics and flags
|
// land statistics and flags
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool nodisplay(eMonster m) {
|
bool nodisplay(eMonster m) {
|
||||||
return
|
return
|
||||||
m == moIvyDead ||
|
m == moIvyDead ||
|
||||||
@ -1415,3 +1417,4 @@ int checkLands() {
|
|||||||
|
|
||||||
auto hookcl = addHook(hooks_args, 100, checkLands); */
|
auto hookcl = addHook(hooks_args, 100, checkLands); */
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
#define NUMLAN 7
|
#define NUMLAN 7
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
const char *dnameof(eMonster m) { return minf[m].name; }
|
const char *dnameof(eMonster m) { return minf[m].name; }
|
||||||
const char *dnameof(eLand l) { return linf[l].name; }
|
const char *dnameof(eLand l) { return linf[l].name; }
|
||||||
const char *dnameof(eWall w) { return winf[w].name; }
|
const char *dnameof(eWall w) { return winf[w].name; }
|
||||||
@ -391,3 +393,4 @@ string XLAT1(string x) {
|
|||||||
|
|
||||||
string XLATT1(stringpar p) { return XLAT1(p.v); }
|
string XLATT1(stringpar p) { return XLAT1(p.v); }
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
namespace mapeditor {
|
namespace mapeditor {
|
||||||
|
|
||||||
struct editwhat {
|
struct editwhat {
|
||||||
@ -1794,3 +1796,4 @@ namespace mapeditor {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#define BLACKISH 0x404040
|
#define BLACKISH 0x404040
|
||||||
#define REDDISH 0x400000
|
#define REDDISH 0x400000
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
ld whatever = 0;
|
ld whatever = 0;
|
||||||
|
|
||||||
int PREC(ld x) {
|
int PREC(ld x) {
|
||||||
@ -908,3 +909,4 @@ void showMessageLog() {
|
|||||||
else if(doexiton(sym, uni)) popScreen();
|
else if(doexiton(sym, uni)) popScreen();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
// Routines concentrating on monster generation.
|
// Routines concentrating on monster generation.
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool timerghost = true;
|
bool timerghost = true;
|
||||||
|
|
||||||
int buildIvy(cell *c, int children, int minleaf) {
|
int buildIvy(cell *c, int children, int minleaf) {
|
||||||
@ -705,3 +707,4 @@ void generateSnake(cell *c, int i) {
|
|||||||
}
|
}
|
||||||
else c2->mondir = NODIR;
|
else c2->mondir = NODIR;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
#if CAP_MODEL
|
#if CAP_MODEL
|
||||||
namespace netgen {
|
namespace hr::netgen {
|
||||||
|
|
||||||
// We need a two-dimensional vector class for this.
|
// We need a two-dimensional vector class for this.
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- built-in font
|
// Hyperbolic Rogue -- built-in font
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
#if CAP_TABFONT
|
#if CAP_TABFONT
|
||||||
// compile with -DCAP_CREATEFONT=1 to generate this table
|
// compile with -DCAP_CREATEFONT=1 to generate this table
|
||||||
// this variant has been created for non-translated HyperRogue
|
// this variant has been created for non-translated HyperRogue
|
||||||
@ -164,3 +166,4 @@ void generateFont(int ch, SDL_Surface *txt) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#define ORBLINES 70
|
#define ORBLINES 70
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
// orbgen flags
|
// orbgen flags
|
||||||
|
|
||||||
namespace orbgenflags {
|
namespace orbgenflags {
|
||||||
@ -548,3 +549,4 @@ void placeOceanOrbs(cell *c) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
3
orbs.cpp
3
orbs.cpp
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
// Orb-related routines
|
// Orb-related routines
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool markOrb(eItem it) {
|
bool markOrb(eItem it) {
|
||||||
if(!items[it]) return false;
|
if(!items[it]) return false;
|
||||||
orbused[it] = true;
|
orbused[it] = true;
|
||||||
@ -1396,3 +1398,4 @@ void orboflava(int i) {
|
|||||||
forCellEx(c2, c) makelava(c2, i);
|
forCellEx(c2, c) makelava(c2, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
int gp_threecolor() {
|
int gp_threecolor() {
|
||||||
if(!gp::on) return 0;
|
if(!gp::on) return 0;
|
||||||
if((gp::param.first - gp::param.second) % 3 == 0) return 2;
|
if((gp::param.first - gp::param.second) % 3 == 0) return 2;
|
||||||
@ -2011,3 +2013,4 @@ int val46(cell *c) {
|
|||||||
return si.id;
|
return si.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
void spill50(cell *c, eWall w, int r) {
|
void spill50(cell *c, eWall w, int r) {
|
||||||
c->wall = w;
|
c->wall = w;
|
||||||
if(r) for(int i=0; i<c->type; i++) spill50(createMov(c, i), w, r-1);
|
if(r) for(int i=0; i<c->type; i++) spill50(createMov(c, i), w, r-1);
|
||||||
@ -443,3 +445,4 @@ void buildAutomatonRule(cell *c) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// #define BUILDZEBRA
|
// #define BUILDZEBRA
|
||||||
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
// === EMERALD PATTERN ===
|
// === EMERALD PATTERN ===
|
||||||
|
|
||||||
// rules for the emeraldvalues of heptagons.
|
// rules for the emeraldvalues of heptagons.
|
||||||
@ -1141,3 +1143,4 @@ int fifty_38(int f, int d) {
|
|||||||
+ (((c + (dockflip[dock][d2]&3)) % 3) << 1)
|
+ (((c + (dockflip[dock][d2]&3)) % 3) << 1)
|
||||||
+ (dockflip[dock][d2]&~3);
|
+ (dockflip[dock][d2]&~3);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
// draw the lines
|
// draw the lines
|
||||||
static const int POLY_DRAWLINES = 1;
|
static const int POLY_DRAWLINES = 1;
|
||||||
// draw the area
|
// draw the area
|
||||||
@ -3371,3 +3373,4 @@ NEWSHAPE
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
3
quit.cpp
3
quit.cpp
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- the mission screen
|
// Hyperbolic Rogue -- the mission screen
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool quitsaves() { return (items[itOrbSafety] && havesave); }
|
bool quitsaves() { return (items[itOrbSafety] && havesave); }
|
||||||
|
|
||||||
bool needConfirmation() {
|
bool needConfirmation() {
|
||||||
@ -540,3 +542,4 @@ void showMissionScreen() {
|
|||||||
dialog::highlight_text = contstr();
|
dialog::highlight_text = contstr();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
#if CAP_GL
|
#if CAP_GL
|
||||||
#if !CAP_GLEW
|
#if !CAP_GLEW
|
||||||
#if ISLINUX
|
#if ISLINUX
|
||||||
@ -214,3 +216,4 @@ void resetbuffer::reset() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
// Kohonen's self-organizing networks.
|
// Kohonen's self-organizing networks.
|
||||||
// This is a part of RogueViz, not a part of HyperRogue.
|
// This is a part of RogueViz, not a part of HyperRogue.
|
||||||
|
|
||||||
namespace kohonen {
|
namespace rogueviz::kohonen {
|
||||||
|
|
||||||
int cols;
|
int cols;
|
||||||
|
|
||||||
@ -1125,11 +1125,10 @@ auto hooks = addHook(hooks_args, 100, readArgs);
|
|||||||
auto hooks2 = addHook(hooks_frame, 50, levelline::draw);
|
auto hooks2 = addHook(hooks_frame, 50, levelline::draw);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mark(cell *c) {
|
void rogueviz::mark(cell *c) {
|
||||||
using namespace kohonen;
|
using namespace kohonen;
|
||||||
if(kind == kKohonen && inited >= 1) {
|
if(kind == kKohonen && inited >= 1) {
|
||||||
distfrom = getNeuronSlow(c);
|
distfrom = getNeuronSlow(c);
|
||||||
coloring();
|
coloring();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
// Kohonen's self-organizing networks.
|
// Kohonen's self-organizing networks.
|
||||||
// This is a part of RogueViz, not a part of HyperRogue.
|
// This is a part of RogueViz, not a part of HyperRogue.
|
||||||
|
|
||||||
namespace staircase {
|
namespace rogueviz::staircase {
|
||||||
|
|
||||||
using namespace hyperpoint_vec;
|
using namespace hyperpoint_vec;
|
||||||
|
|
||||||
|
12
rogueviz.cpp
12
rogueviz.cpp
@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
// hyper -tess <parameter file> -- visualize a horocyclic tesselation,
|
// hyper -tess <parameter file> -- visualize a horocyclic tesselation,
|
||||||
|
|
||||||
#include "rogueviz.h"
|
|
||||||
|
|
||||||
namespace rogueviz {
|
namespace rogueviz {
|
||||||
|
|
||||||
|
using namespace hr;
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
bool showlabels = false;
|
bool showlabels = false;
|
||||||
@ -935,9 +935,9 @@ string describe(shmup::monster *m) {
|
|||||||
|
|
||||||
sort(alledges.begin(), alledges.end(), edgecmp);
|
sort(alledges.begin(), alledges.end(), edgecmp);
|
||||||
|
|
||||||
::help = "Edges: ";
|
hr::help = "Edges: ";
|
||||||
|
|
||||||
if(vd.info) ::help = (*vd.info) + "\n" + help;
|
if(vd.info) hr::help = (*vd.info) + "\n" + help;
|
||||||
|
|
||||||
for(int j=0; j<size(alledges); j++) {
|
for(int j=0; j<size(alledges); j++) {
|
||||||
edgeinfo *ei = alledges[j];
|
edgeinfo *ei = alledges[j];
|
||||||
@ -1984,8 +1984,8 @@ auto hooks =
|
|||||||
#endif
|
#endif
|
||||||
addHook(clearmemory, 0, close);
|
addHook(clearmemory, 0, close);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
#include "rogueviz-kohonen.cpp"
|
#include "rogueviz-kohonen.cpp"
|
||||||
#include "rogueviz-staircase.cpp"
|
#include "rogueviz-staircase.cpp"
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
93
rogueviz.h
93
rogueviz.h
@ -1,38 +1,54 @@
|
|||||||
// See: http://www.roguetemple.com/z/hyper/rogueviz.php
|
// See: http://www.roguetemple.com/z/hyper/rogueviz.php
|
||||||
|
|
||||||
namespace rogueviz {
|
namespace rogueviz {
|
||||||
|
using namespace hr;
|
||||||
|
|
||||||
|
extern bool on;
|
||||||
|
string describe(shmup::monster *m);
|
||||||
|
void describe(cell *c);
|
||||||
|
void activate(shmup::monster *m);
|
||||||
|
void drawVertex(const transmatrix &V, cell *c, shmup::monster *m);
|
||||||
|
bool virt(shmup::monster *m);
|
||||||
|
void turn(int delta);
|
||||||
|
void drawExtra();
|
||||||
|
void fixparam();
|
||||||
|
int readArgs();
|
||||||
|
void close();
|
||||||
|
void mark(cell *c);
|
||||||
|
void showMenu();
|
||||||
|
string makehelp();
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
struct edgeinfo {
|
struct edgeinfo {
|
||||||
int i, j;
|
int i, j;
|
||||||
double weight, weight2;
|
double weight, weight2;
|
||||||
bool visible;
|
bool visible;
|
||||||
vector<glvertex> prec;
|
vector<glvertex> prec;
|
||||||
cell *orig;
|
cell *orig;
|
||||||
int lastdraw;
|
int lastdraw;
|
||||||
edgeinfo() { visible = true; orig = NULL; lastdraw = -1; }
|
edgeinfo() { visible = true; orig = NULL; lastdraw = -1; }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct colorpair {
|
struct colorpair {
|
||||||
int color1, color2;
|
int color1, color2;
|
||||||
char shade;
|
char shade;
|
||||||
colorpair(int col = 0xC0C0C0FF) { shade = 0; color1 = col; }
|
colorpair(int col = 0xC0C0C0FF) { shade = 0; color1 = col; }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vertexdata {
|
struct vertexdata {
|
||||||
vector<pair<int, edgeinfo*> > edges;
|
vector<pair<int, edgeinfo*> > edges;
|
||||||
string name;
|
string name;
|
||||||
colorpair cp;
|
colorpair cp;
|
||||||
edgeinfo *virt;
|
edgeinfo *virt;
|
||||||
bool special;
|
bool special;
|
||||||
int data;
|
int data;
|
||||||
string *info;
|
string *info;
|
||||||
shmup::monster *m;
|
shmup::monster *m;
|
||||||
vertexdata() { virt = NULL; m = NULL; info = NULL; special = false; }
|
vertexdata() { virt = NULL; m = NULL; info = NULL; special = false; }
|
||||||
};
|
};
|
||||||
|
|
||||||
extern vector<vertexdata> vdata;
|
extern vector<vertexdata> vdata;
|
||||||
|
|
||||||
void storeall();
|
void storeall();
|
||||||
|
|
||||||
@ -47,4 +63,29 @@ extern vector<vertexdata> vdata;
|
|||||||
|
|
||||||
extern ld ggamma;
|
extern ld ggamma;
|
||||||
extern bool showlabels;
|
extern bool showlabels;
|
||||||
|
|
||||||
|
extern bool rog3;
|
||||||
|
extern bool rvwarp;
|
||||||
|
#if CAP_TOUR
|
||||||
|
namespace rvtour {
|
||||||
|
extern tour::slide rvslides[];
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace kohonen {
|
||||||
|
extern int samples;
|
||||||
|
void showsample(int id);
|
||||||
|
void showsample(string id);
|
||||||
|
void describe(cell *c);
|
||||||
|
void steps();
|
||||||
|
void showMenu();
|
||||||
|
bool handleMenu(int sym, int uni);
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace staircase {
|
||||||
|
extern bool on;
|
||||||
|
void showMenu();
|
||||||
|
void make_staircase();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
rug.cpp
4
rug.cpp
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
// implementation of the Hypersian Rug mode
|
// implementation of the Hypersian Rug mode
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
#if CAP_RUG
|
#if CAP_RUG
|
||||||
|
|
||||||
@ -1666,7 +1667,7 @@ hyperpoint gethyper(ld x, ld y) {
|
|||||||
|
|
||||||
videopar svid = vid;
|
videopar svid = vid;
|
||||||
setVidParam();
|
setVidParam();
|
||||||
hyperpoint h = ::gethyper(px, py);
|
hyperpoint h = hr::gethyper(px, py);
|
||||||
vid = svid;
|
vid = svid;
|
||||||
|
|
||||||
return h;
|
return h;
|
||||||
@ -1944,3 +1945,4 @@ namespace rug {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
// Hyperbolic Rogue -- smart memory cleaner
|
// Hyperbolic Rogue -- smart memory cleaner
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool memory_saving_mode = true;
|
bool memory_saving_mode = true;
|
||||||
|
|
||||||
#define LIM 150
|
static const int LIM = 150;
|
||||||
|
|
||||||
heptagon *last_cleared;
|
heptagon *last_cleared;
|
||||||
|
|
||||||
@ -168,3 +170,5 @@ bool is_cell_removed(cell *c) {
|
|||||||
void set_if_removed(cell*& c, cell *val) {
|
void set_if_removed(cell*& c, cell *val) {
|
||||||
if(is_cell_removed(c)) c = val;
|
if(is_cell_removed(c)) c = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#if CAP_SAVE
|
#if CAP_SAVE
|
||||||
|
|
||||||
namespace scores {
|
namespace hr::scores {
|
||||||
|
|
||||||
vector<score> scores;
|
vector<score> scores;
|
||||||
score *currentgame;
|
score *currentgame;
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
// If CAP_SHADER is 0, OpenGL 1.0 is used.
|
// If CAP_SHADER is 0, OpenGL 1.0 is used.
|
||||||
// If CAP_SHADER is 1, GLSL is used.
|
// If CAP_SHADER is 1, GLSL is used.
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
#ifndef DEBUG_GL
|
#ifndef DEBUG_GL
|
||||||
#define DEBUG_GL 0
|
#define DEBUG_GL 0
|
||||||
#endif
|
#endif
|
||||||
@ -640,3 +642,4 @@ void set_depthtest(bool b) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
// implementation of the shoot'em up mode
|
// implementation of the shoot'em up mode
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
extern int mousex, mousey;
|
extern int mousex, mousey;
|
||||||
extern bool clicked;
|
extern bool clicked;
|
||||||
|
|
||||||
@ -368,7 +370,7 @@ void handleConfig(int sym, int uni) {
|
|||||||
shmupcfg = !shmupcfg;
|
shmupcfg = !shmupcfg;
|
||||||
#if CAP_CONFIG
|
#if CAP_CONFIG
|
||||||
else if(uni == 'c')
|
else if(uni == 'c')
|
||||||
::saveConfig();
|
hr::saveConfig();
|
||||||
#endif
|
#endif
|
||||||
else if(uni == 'n' || uni == 'N') {
|
else if(uni == 'n' || uni == 'N') {
|
||||||
vid.scfg.players += shiftmul > 0 ? 1 : -1;
|
vid.scfg.players += shiftmul > 0 ? 1 : -1;
|
||||||
@ -2263,7 +2265,7 @@ void moveBullet(monster *m, int delta) {
|
|||||||
bool revive = m2->type == moMirrorSpirit && !m2->dead;
|
bool revive = m2->type == moMirrorSpirit && !m2->dead;
|
||||||
killMonster(m2, m->parent ? m->parent->type : moNone);
|
killMonster(m2, m->parent ? m->parent->type : moNone);
|
||||||
if(revive && m2->dead) {
|
if(revive && m2->dead) {
|
||||||
::kills[moMirrorSpirit]--;
|
hr::kills[moMirrorSpirit]--;
|
||||||
multi::kills[cpid]--;
|
multi::kills[cpid]--;
|
||||||
mirrorspirits++;
|
mirrorspirits++;
|
||||||
}
|
}
|
||||||
@ -3576,3 +3578,4 @@ auto hooks = addHook(clearmemory, 0, shmup::clearMemory) +
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// Hyperbolic Rogue -- routines related to sounds
|
// Hyperbolic Rogue -- routines related to sounds
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool audio;
|
bool audio;
|
||||||
string musiclicense;
|
string musiclicense;
|
||||||
string musfname[landtypes];
|
string musfname[landtypes];
|
||||||
@ -216,3 +218,4 @@ void playSound(cell *c, const string& fname, int vol) {
|
|||||||
void resetmusic() {}
|
void resetmusic() {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
// See http://webmath2.unito.it/paginepersonali/sergio.console/CurveSuperfici/AG15.pdf for a nice reference
|
// See http://webmath2.unito.it/paginepersonali/sergio.console/CurveSuperfici/AG15.pdf for a nice reference
|
||||||
|
|
||||||
#if CAP_SURFACE
|
#if CAP_SURFACE
|
||||||
namespace surface {
|
namespace hr::surface {
|
||||||
|
|
||||||
using namespace hyperpoint_vec;
|
using namespace hyperpoint_vec;
|
||||||
|
|
||||||
|
378
sysconfig.h
Normal file
378
sysconfig.h
Normal file
@ -0,0 +1,378 @@
|
|||||||
|
// Hyperbolic Rogue -- set compiler flags, and include all the required system headers
|
||||||
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
|
#ifdef MAC
|
||||||
|
#define ISMAC 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef LINUX
|
||||||
|
#define ISLINUX 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef WINDOWS
|
||||||
|
#define ISWINDOWS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ISSTEAM
|
||||||
|
#define NOLICENSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_SHADER
|
||||||
|
#define CAP_SHADER CAP_GL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// OS settings
|
||||||
|
|
||||||
|
#ifndef ISMAC
|
||||||
|
#define ISMAC 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ISLINUX
|
||||||
|
#define ISLINUX 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ISWINDOWS
|
||||||
|
#define ISWINDOWS 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ISPANDORA
|
||||||
|
#define ISPANDORA 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ISIOS
|
||||||
|
#define ISIOS 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ISANDROID
|
||||||
|
#define ISANDROID 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ISWEB
|
||||||
|
#define ISWEB 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ISFAKEMOBILE
|
||||||
|
#define ISFAKEMOBILE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ISMOBILE (ISIOS || ISANDROID || ISFAKEMOBILE)
|
||||||
|
#define ISMOBWEB (ISMOBILE || ISWEB)
|
||||||
|
|
||||||
|
#ifndef ISMINI
|
||||||
|
#define ISMINI 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_XGD
|
||||||
|
#define CAP_XGD (ISANDROID || ISFAKEMOBILE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CAP_FRAMELIMIT (!ISMOBWEB)
|
||||||
|
|
||||||
|
#if ISMOBILE==1
|
||||||
|
#define EXTERNALFONT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_FILES
|
||||||
|
#define CAP_FILES 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_INV
|
||||||
|
#define CAP_INV 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_ANDROIDSHARE
|
||||||
|
#define CAP_ANDROIDSHARE (ISANDROID)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_SDL
|
||||||
|
#define CAP_SDL (!ISMOBILE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CAP_COMPASS
|
||||||
|
#define CAP_COMPASS ISMOBILE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_SDLGFX
|
||||||
|
#define CAP_SDLGFX (CAP_SDL && !ISWEB)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_GL
|
||||||
|
#define CAP_GL (ISMOBILE || CAP_SDL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_AUDIO
|
||||||
|
#define CAP_AUDIO ((ISMOBILE || CAP_SDL) && !ISWEB && !ISMINI)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CAP_GLORNOT (CAP_GL && !ISWEB && !ISIOS)
|
||||||
|
|
||||||
|
#if ISSTEAM
|
||||||
|
#define CAP_DAILY 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_DAILY
|
||||||
|
#define CAP_DAILY 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_CERTIFY
|
||||||
|
#define CAP_CERTIFY 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_RUG
|
||||||
|
#define CAP_RUG (!ISMINI && CAP_GL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_SURFACE
|
||||||
|
#define CAP_SURFACE CAP_RUG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_EDIT
|
||||||
|
#define CAP_EDIT (CAP_FILES && !ISWEB && !ISMINI)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_ODS
|
||||||
|
#define CAP_ODS 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_TEXTURE
|
||||||
|
#define CAP_TEXTURE (CAP_GL && (CAP_PNG || CAP_SDL_IMG) && !ISMINI)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_MODEL
|
||||||
|
#define CAP_MODEL (!ISMOBWEB && !ISMINI && CAP_SDLGFX)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_SAVE
|
||||||
|
#define CAP_SAVE (CAP_FILES && !ISWEB && !ISMINI)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_CONFIG
|
||||||
|
#define CAP_CONFIG (CAP_FILES && !ISWEB && !ISMINI)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_TRANS
|
||||||
|
#define CAP_TRANS (!ISWEB && !ISMINI)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_TOUR
|
||||||
|
#define CAP_TOUR (!ISWEB && !ISMINI)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_ROGUEVIZ
|
||||||
|
#define CAP_ROGUEVIZ 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_PROFILING
|
||||||
|
#define CAP_PROFILING 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PSEUDOKEY_WHEELDOWN 2501
|
||||||
|
#define PSEUDOKEY_WHEELUP 2502
|
||||||
|
#define PSEUDOKEY_RELEASE 2503
|
||||||
|
|
||||||
|
#ifndef CAP_PNG
|
||||||
|
#define CAP_PNG (!ISMOBWEB)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_ORIENTATION
|
||||||
|
#define CAP_ORIENTATION ISMOBILE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_COMMANDLINE
|
||||||
|
#define CAP_COMMANDLINE (!ISMOBILE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CAP_SDLAUDIO (CAP_SDL && CAP_AUDIO)
|
||||||
|
|
||||||
|
#ifndef CAP_SVG
|
||||||
|
#define CAP_SVG (!ISMOBILE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_POLY
|
||||||
|
#define CAP_POLY (CAP_SDLGFX || CAP_GL || CAP_SVG)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CAP_QUEUE CAP_POLY
|
||||||
|
#define CAP_CURVE CAP_POLY
|
||||||
|
|
||||||
|
#ifndef CAP_SDLJOY
|
||||||
|
#define CAP_SDLJOY (CAP_SDL && !ISWEB)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_SDL_IMG
|
||||||
|
#define CAP_SDL_IMG 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_SDLTTF
|
||||||
|
#define CAP_SDLTTF (CAP_SDL && !ISMOBILE && !ISWEB)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CAP_GLFONT (CAP_GL && !ISMOBILE)
|
||||||
|
|
||||||
|
#ifndef CAP_TABFONT
|
||||||
|
#define CAP_TABFONT (ISWEB)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_CREATEFONT
|
||||||
|
#define CAP_CREATEFONT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_FIXEDSIZE
|
||||||
|
#define CAP_FIXEDSIZE (CAP_CREATEFONT || CAP_TABFONT ? 36 : 0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_SHMUP
|
||||||
|
#define CAP_SHMUP 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ISSTEAM
|
||||||
|
#define CAP_ACHIEVE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_BITFIELD
|
||||||
|
#define CAP_BITFIELD (!ISWEB)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_ACHIEVE
|
||||||
|
#define CAP_ACHIEVE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CAP_SHMUP_GOOD
|
||||||
|
#define CAP_SHMUP_GOOD (!ISMOBWEB)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ISMOBILE
|
||||||
|
#define EXTRALICENSE "\n\nHyperRogue soundtrack by Shawn Parrotte (http://www.shawnparrotte.com), under the Creative Commons BY-SA 3.0 license, http://creativecommons.org/licenses/by-sa/3.0/"
|
||||||
|
#undef XEXTRALICENSE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HYPERPATH
|
||||||
|
#define HYPERPATH ""
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#if CAP_SDL
|
||||||
|
#include <SDL/SDL.h>
|
||||||
|
|
||||||
|
#if !ISMAC
|
||||||
|
#undef main
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CAP_SDLAUDIO
|
||||||
|
#include <SDL/SDL_mixer.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CAP_SDLTTF
|
||||||
|
#include <SDL/SDL_ttf.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CAP_SDLGFX
|
||||||
|
#include <SDL/SDL_gfxPrimitives.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif !ISFAKEMOBILE
|
||||||
|
#define SDLK_F1 (123001)
|
||||||
|
#define SDLK_F2 (123002)
|
||||||
|
#define SDLK_F3 (123003)
|
||||||
|
#define SDLK_F4 (123004)
|
||||||
|
#define SDLK_F5 (123005)
|
||||||
|
#define SDLK_F6 (123006)
|
||||||
|
#define SDLK_F7 (123007)
|
||||||
|
#define SDLK_F8 (123008)
|
||||||
|
#define SDLK_F9 (123009)
|
||||||
|
#define SDLK_F10 (123010)
|
||||||
|
#define SDLK_ESCAPE (123099)
|
||||||
|
#define SDLK_F12 (123012)
|
||||||
|
#define SDLK_HOME (123013)
|
||||||
|
#define SDLK_LEFT (123014)
|
||||||
|
#define SDLK_RIGHT (123015)
|
||||||
|
#define SDLK_END (123016)
|
||||||
|
#define MIX_MAX_VOLUME 128
|
||||||
|
#define SDLK_UP (123021)
|
||||||
|
#define SDLK_DOWN (123022)
|
||||||
|
#define SDLK_PAGEUP (123023)
|
||||||
|
#define SDLK_PAGEDOWN (123024)
|
||||||
|
#define SDLK_RETURN (123025)
|
||||||
|
#define SDLK_KP1 (123031)
|
||||||
|
#define SDLK_KP2 (123032)
|
||||||
|
#define SDLK_KP3 (123033)
|
||||||
|
#define SDLK_KP4 (123034)
|
||||||
|
#define SDLK_KP5 (123035)
|
||||||
|
#define SDLK_KP6 (123036)
|
||||||
|
#define SDLK_KP7 (123037)
|
||||||
|
#define SDLK_KP8 (123038)
|
||||||
|
#define SDLK_KP9 (123039)
|
||||||
|
#define SDLK_KP_PERIOD (123051)
|
||||||
|
#define SDLK_KP_MINUS (123053)
|
||||||
|
#define SDLK_DELETE (123052)
|
||||||
|
#define SDLK_DELETE (123052)
|
||||||
|
#define SDLK_KP_ENTER (123054)
|
||||||
|
#define SDLK_BACKSPACE (123055)
|
||||||
|
typedef int SDL_Event;
|
||||||
|
typedef unsigned int Uint32;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ISWEB
|
||||||
|
extern "C" {
|
||||||
|
Uint8 *SDL_GetKeyState(void*);
|
||||||
|
}
|
||||||
|
// inline Uint8 *SDL_GetKeyState(void *v) { static Uint8 tab[1024]; return tab; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CAP_GLEW
|
||||||
|
#define CAP_GLEW (CAP_GL && !ISMOBILE && !ISMAC && !ISLINUX && !ISWEB)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CAP_GL
|
||||||
|
#if CAP_GLEW
|
||||||
|
#include <GL/glew.h>
|
||||||
|
#else
|
||||||
|
#define GL_GLEXT_PROTOTYPES 1
|
||||||
|
#if ISMAC
|
||||||
|
#include <OpenGL/gl.h>
|
||||||
|
#include <OpenGL/glu.h>
|
||||||
|
#include <OpenGL/glext.h>
|
||||||
|
#elif ISIOS
|
||||||
|
// already included
|
||||||
|
#elif ISANDROID
|
||||||
|
#include <GLES/gl.h>
|
||||||
|
#include <GLES/glext.h>
|
||||||
|
#include <GLES2/gl2.h>
|
||||||
|
#include <GLES3/gl3.h>
|
||||||
|
#define GLES_ONLY
|
||||||
|
#else
|
||||||
|
#include <GL/gl.h>
|
||||||
|
#include <GL/glu.h>
|
||||||
|
#include <GL/glext.h>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <functional>
|
||||||
|
#include <memory>
|
||||||
|
#include <cmath>
|
||||||
|
#include <time.h>
|
||||||
|
#include <vector>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <string>
|
||||||
|
#include <map>
|
||||||
|
#include <queue>
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <array>
|
||||||
|
#include <set>
|
||||||
|
#include <random>
|
||||||
|
|
||||||
|
#ifdef USE_UNORDERED_MAP
|
||||||
|
#include <unordered_map>
|
||||||
|
#else
|
||||||
|
#define unordered_map map
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CAP_SDL
|
||||||
|
union SDL_Event;
|
||||||
|
#endif
|
@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
// routines for: initializing/closing, loading/saving, and cheating
|
// routines for: initializing/closing, loading/saving, and cheating
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
bool need_reset_geometry = true;
|
bool need_reset_geometry = true;
|
||||||
|
|
||||||
bool game_active;
|
bool game_active;
|
||||||
@ -1308,3 +1310,4 @@ addHook(hooks_removecells, 0, [] () {
|
|||||||
for(int i=0; i<SHSIZE; i++) for(int p=0; p<MAXPLAYER; p++)
|
for(int i=0; i<SHSIZE; i++) for(int p=0; p<MAXPLAYER; p++)
|
||||||
set_if_removed(shpos[p][i], NULL);
|
set_if_removed(shpos[p][i], NULL);
|
||||||
});;
|
});;
|
||||||
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CAP_TEXTURE
|
#if CAP_TEXTURE
|
||||||
namespace texture {
|
namespace hr::texture {
|
||||||
|
|
||||||
cpatterntype cgroup;
|
cpatterntype cgroup;
|
||||||
|
|
||||||
|
4
tour.cpp
4
tour.cpp
@ -1,7 +1,7 @@
|
|||||||
// Hyperbolic Rogue -- the Tutorial/presentation
|
// Hyperbolic Rogue -- the Tutorial/presentation
|
||||||
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
// Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
|
||||||
|
|
||||||
namespace tour {
|
namespace hr::tour {
|
||||||
|
|
||||||
bool on;
|
bool on;
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ bool handleKeyTour(int sym, int uni) {
|
|||||||
if(inhelp) slidehelp();
|
if(inhelp) slidehelp();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if(sym == '1' || sym == '2') { // || sym == '3') {
|
if(sym == '1' || sym == '2') { // || sym == '3')
|
||||||
int legal = slides[currentslide].flags & 7;
|
int legal = slides[currentslide].flags & 7;
|
||||||
|
|
||||||
if(legal == LEGAL_NONE || legal == LEGAL_HYPERBOLIC) {
|
if(legal == LEGAL_NONE || legal == LEGAL_HYPERBOLIC) {
|
||||||
|
3
util.cpp
3
util.cpp
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
// basic utility functions
|
// basic utility functions
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
long double sqr(long double x) { return x*x; }
|
long double sqr(long double x) { return x*x; }
|
||||||
string its(int i) { char buf[64]; sprintf(buf, "%d", i); return buf; }
|
string its(int i) { char buf[64]; sprintf(buf, "%d", i); return buf; }
|
||||||
string fts(float x) { char buf[64]; sprintf(buf, "%4.2f", x); return buf; }
|
string fts(float x) { char buf[64]; sprintf(buf, "%4.2f", x); return buf; }
|
||||||
@ -114,3 +116,4 @@ void profile_info() {
|
|||||||
int whateveri, whateveri2;
|
int whateveri, whateveri2;
|
||||||
|
|
||||||
purehookset hooks_tests;
|
purehookset hooks_tests;
|
||||||
|
}
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
// Yendor Quest, together with the Yendor Challenge
|
// Yendor Quest, together with the Yendor Challenge
|
||||||
// also, the Pure Tactics Mode and the Peace Mode
|
// also, the Pure Tactics Mode and the Peace Mode
|
||||||
|
|
||||||
|
namespace hr {
|
||||||
|
|
||||||
namespace peace { extern bool on; }
|
namespace peace { extern bool on; }
|
||||||
|
|
||||||
int hiitemsMax(eItem it) {
|
int hiitemsMax(eItem it) {
|
||||||
@ -1100,3 +1102,4 @@ namespace peace {
|
|||||||
|
|
||||||
auto aNext = addHook(hooks_nextland, 100, getNext);
|
auto aNext = addHook(hooks_nextland, 100, getNext);
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user