1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-27 14:37:16 +00:00

qtm: more power

This commit is contained in:
Zeno Rogue 2024-06-16 16:59:37 +02:00
parent 7dbbbb2dd9
commit 3daaaa6c6f

View File

@ -29,6 +29,23 @@ color_t rainbow_color_at(hyperpoint h) {
return rainbow_color(sat, hue);
}
int z_in_wall(int z) {
if(qmode == 0) return 1;
if(qmode == 1) {
if(z == 0) return 2;
return 1;
}
if(qmode == 2) {
if(z) return 0;
return 1;
}
if(qmode == 3) {
if(among(z, 1, 3, 4)) return 0;
return 1;
}
return 1;
}
void set_cell(cell *c) {
if(mhybrid) {
cell *c1 = hybrid::get_where(c).first;
@ -38,14 +55,9 @@ void set_cell(cell *c) {
c->landparam = c1->landparam;
c->item = itNone;
c->monst = moNone;
if(qmode == 1) {
if(hybrid::get_where(c).second == 0)
c->landparam = 0xFFFFFF;
}
if(qmode == 2) {
if(hybrid::get_where(c).second != 0)
c->wall = waNone;
}
int zw = z_in_wall(hybrid::get_where(c).second);
if(zw == 2) c->landparam = 0xFFFFFF;
if(zw == 0) c->wall = waNone;
}
else {
if(c->land == laHive) return;
@ -67,9 +79,20 @@ void set_cell(cell *c) {
}
c->landparam = col;
c->land = laHive;
c->wall = (nil ? (c->master->zebraval & c->master->emeraldval & 1) : pseudohept(c)) ? waWaxWall : waNone;
bool wallmap =
(nil && nilv::nil_structure_index == 0) ? (c->master->zebraval & c->master->emeraldval & 1) :
(nil && nilv::nil_structure_index == 2) ? (gmod(c->master->zebraval - c->master->emeraldval, 3) == 0) :
pseudohept(c);
c->wall = wallmap ? waWaxWall : waNone;
c->item = itNone;
c->monst = moNone;
if(wallmap && nil) {
int z = zgmod(c->master->fieldval, nilv::nilperiod[2]);
int zw = z_in_wall(z);
println(hlog, z, " -> ", zw);
if(zw == 0) c->wall = waNone;
if(zw == 2) c->landparam = 0xFFFFFF;
}
}
}