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:
parent
7dbbbb2dd9
commit
3daaaa6c6f
@ -28,6 +28,23 @@ color_t rainbow_color_at(hyperpoint h) {
|
|||||||
ld hue = atan2(h[0], h[1]) / TAU;
|
ld hue = atan2(h[0], h[1]) / TAU;
|
||||||
return rainbow_color(sat, hue);
|
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) {
|
void set_cell(cell *c) {
|
||||||
if(mhybrid) {
|
if(mhybrid) {
|
||||||
@ -38,14 +55,9 @@ void set_cell(cell *c) {
|
|||||||
c->landparam = c1->landparam;
|
c->landparam = c1->landparam;
|
||||||
c->item = itNone;
|
c->item = itNone;
|
||||||
c->monst = moNone;
|
c->monst = moNone;
|
||||||
if(qmode == 1) {
|
int zw = z_in_wall(hybrid::get_where(c).second);
|
||||||
if(hybrid::get_where(c).second == 0)
|
if(zw == 2) c->landparam = 0xFFFFFF;
|
||||||
c->landparam = 0xFFFFFF;
|
if(zw == 0) c->wall = waNone;
|
||||||
}
|
|
||||||
if(qmode == 2) {
|
|
||||||
if(hybrid::get_where(c).second != 0)
|
|
||||||
c->wall = waNone;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(c->land == laHive) return;
|
if(c->land == laHive) return;
|
||||||
@ -67,9 +79,20 @@ void set_cell(cell *c) {
|
|||||||
}
|
}
|
||||||
c->landparam = col;
|
c->landparam = col;
|
||||||
c->land = laHive;
|
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->item = itNone;
|
||||||
c->monst = moNone;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user