1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-09-10 14:26:01 +00:00

fixed some crashes in embedding+arb

This commit is contained in:
Zeno Rogue
2023-03-26 00:37:08 +01:00
parent a3c861ec9e
commit a47dbc5dd5
5 changed files with 44 additions and 12 deletions

20
sky.cpp
View File

@@ -601,6 +601,8 @@ EX void make_air() {
bool missing = false;
auto cgi1 = &cgi;
if(1) {
//shot::take("airtest.png", drawqueue);
dynamicval<videopar> v(vid, vid);
@@ -627,13 +629,18 @@ EX void make_air() {
pconf.stretch = 1;
pmodel = mdDisk;
auto cgi1 = &cgi;
vid.always3 = false;
geom3::apply_always3();
check_cgi();
missing = !(cgi.state & 2);
swap_if_missing(missing);
cgi.prepare_basics();
geom3::swap_direction = -1;
if(missing) {
swap(cgi.emb, cgi1->emb);
swap_if_missing(missing);
swap(cgi.emb, cgi1->emb);
}
cgi.require_shapes();
eGeometry orig = geometry;
@@ -682,7 +689,12 @@ EX void make_air() {
GLERR("after draw");
geom3::apply_always3();
swap_if_missing(missing);
geom3::swap_direction = +1;
if(missing) {
swap(cgi.emb, cgi1->emb);
swap_if_missing(missing);
swap(cgi.emb, cgi1->emb);
}
check_cgi();
calcparam();
GLERR("after make_air");