mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-10-31 19:36:16 +00:00
fixed sky over irregular map
This commit is contained in:
parent
68b7beb753
commit
db43ea9de8
@ -1056,21 +1056,23 @@ EX array<heptagon*, 3> get_masters(cell *c) {
|
|||||||
return make_array(s0.at, (s0 + wstep).at, (s0 + 1 + wstep).at);
|
return make_array(s0.at, (s0 + wstep).at, (s0 + 1 + wstep).at);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX void swap_vertices() {
|
||||||
|
for(auto& c: cells) {
|
||||||
|
swapmatrix(c.p);
|
||||||
|
swapmatrix(c.pusher);
|
||||||
|
swapmatrix(c.rpusher);
|
||||||
|
for(auto& jp: c.jpoints) swapmatrix(jp);
|
||||||
|
for(auto& rm: c.relmatrices) swapmatrix(rm.second);
|
||||||
|
for(auto& v: c.vertices) swapmatrix(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
auto hook =
|
auto hook =
|
||||||
#if CAP_COMMANDLINE
|
#if CAP_COMMANDLINE
|
||||||
addHook(hooks_args, 100, readArgs) +
|
addHook(hooks_args, 100, readArgs) +
|
||||||
#endif
|
#endif
|
||||||
#if MAXMDIM >= 4
|
#if MAXMDIM >= 4
|
||||||
addHook(hooks_swapdim, 100, [] {
|
addHook(hooks_swapdim, 100, swap_vertices) +
|
||||||
for(auto& c: cells) {
|
|
||||||
swapmatrix(c.p);
|
|
||||||
swapmatrix(c.pusher);
|
|
||||||
swapmatrix(c.rpusher);
|
|
||||||
for(auto& jp: c.jpoints) swapmatrix(jp);
|
|
||||||
for(auto& rm: c.relmatrices) swapmatrix(rm.second);
|
|
||||||
for(auto& v: c.vertices) swapmatrix(v);
|
|
||||||
}
|
|
||||||
}) +
|
|
||||||
#endif
|
#endif
|
||||||
addHook(hooks_drawcell, 100, draw_cell_schematics) +
|
addHook(hooks_drawcell, 100, draw_cell_schematics) +
|
||||||
addHook(shmup::hooks_turn, 100, step);
|
addHook(shmup::hooks_turn, 100, step);
|
||||||
|
10
sky.cpp
10
sky.cpp
@ -518,6 +518,12 @@ void celldrawer::draw_ceiling() {
|
|||||||
|
|
||||||
EX struct renderbuffer *airbuf;
|
EX struct renderbuffer *airbuf;
|
||||||
|
|
||||||
|
EX void swap_if_missing(bool missing) {
|
||||||
|
if(!missing) return;
|
||||||
|
arb::swap_vertices();
|
||||||
|
irr::swap_vertices();
|
||||||
|
}
|
||||||
|
|
||||||
EX void make_air() {
|
EX void make_air() {
|
||||||
if(!sky) return;
|
if(!sky) return;
|
||||||
|
|
||||||
@ -576,7 +582,7 @@ EX void make_air() {
|
|||||||
geom3::apply_always3();
|
geom3::apply_always3();
|
||||||
check_cgi();
|
check_cgi();
|
||||||
missing = !(cgi.state & 2);
|
missing = !(cgi.state & 2);
|
||||||
if(missing) arb::swap_vertices();
|
swap_if_missing(missing);
|
||||||
cgi.require_shapes();
|
cgi.require_shapes();
|
||||||
|
|
||||||
eGeometry orig = geometry;
|
eGeometry orig = geometry;
|
||||||
@ -625,7 +631,7 @@ EX void make_air() {
|
|||||||
|
|
||||||
GLERR("after draw");
|
GLERR("after draw");
|
||||||
geom3::apply_always3();
|
geom3::apply_always3();
|
||||||
if(missing) arb::swap_vertices();
|
swap_if_missing(missing);
|
||||||
check_cgi();
|
check_cgi();
|
||||||
calcparam();
|
calcparam();
|
||||||
GLERR("after make_air");
|
GLERR("after make_air");
|
||||||
|
Loading…
Reference in New Issue
Block a user