1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-23 21:07:17 +00:00

added CAP_RAY guard to intra stuff

This commit is contained in:
Zeno Rogue 2022-05-09 14:53:41 +02:00
parent 3c491fb7ac
commit b0c34c4f2c
5 changed files with 15 additions and 11 deletions

View File

@ -1295,7 +1295,7 @@ EX vector<cell*> build_shortest_path(cell *c1, cell *c2) {
}
EX void clearCellMemory() {
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
if(intra::in) {
intra::erase_all_maps();
return;

View File

@ -1219,7 +1219,7 @@ EX string cgi_string() {
return s;
}
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
#define IFINTRA(x,y) x
#else
#define IFINTRA(x,y) y

View File

@ -3012,7 +3012,7 @@ EX void shift_view(hyperpoint H) {
static bool recursive = false;
if(!recursive && intra::in) {
dynamicval<bool> r(recursive, true);
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
intra::shift_view_portal(H);
#endif
return;

View File

@ -6,7 +6,7 @@ EX namespace intra {
EX bool in;
#if MAXMDIM >= 4
#if CAP_RAY && MAXMDIM >= 4
#if HDR
/** information per every space connected with intra-portals */
struct intra_data {
@ -931,11 +931,15 @@ EX void handle() {
#else
if(false) {}
#endif
#if CAP_RAY
else {
transmatrix M = ray::mirrorize(currentmap->ray_iadj(on_floor_of, floor_dir));
M = ToOld * M * inverse(ToOld);
return mid(at, M * at);
}
#else
else return at;
#endif
};
hyperpoint at = tC0(inverse(View));

View File

@ -717,7 +717,7 @@ EX namespace mapstream {
}
addToQueue(save_start());
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
if(intra::in) intra::prepare_need_to_save();
#endif
for(int i=0; i<isize(cellbyid); i++) {
@ -762,7 +762,7 @@ EX namespace mapstream {
f.write(c->wparam); f.write(c->landparam);
f.write_char(c->stuntime); f.write_char(c->hitpoints);
bool blocked = false;
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
if(intra::in && isWall3(c) && !intra::need_to_save.count(c)) blocked = true;
#endif
if(!blocked)
@ -796,7 +796,7 @@ EX namespace mapstream {
for(int i=0; i<multi::players; i++)
f.write(cellids[multi::player[i].at]);
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
if(intra::in) {
for(int i=0; i<isize(intra::portals_to_save); i++) {
auto& p = intra::portals_to_save[i];
@ -1040,7 +1040,7 @@ EX namespace mapstream {
}
}
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
if(intra::in) {
while(true) {
char k = f.get<char>();
@ -1100,14 +1100,14 @@ EX namespace mapstream {
if(!f.f) return false;
f.write(f.vernum);
f.write(dual::state);
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
int q = intra::in ? isize(intra::data) : 0;
f.write(q);
#else
int q = 0;
#endif
if(q) {
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
intra::prepare_to_save();
int qp = isize(intra::portals_to_save);
f.write(qp);
@ -1148,7 +1148,7 @@ EX namespace mapstream {
if(q) {
int qp;
f.read(qp);
#if MAXMDIM >= 4
#if MAXMDIM >= 4 && CAP_RAY
intra::portals_to_save.resize(qp);
for(auto& ps: intra::portals_to_save) {
f.read(ps.spin);