From 99ab57086b1550b0958e37ad32abc31490b7f408 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Fri, 6 Dec 2019 11:45:19 +0100 Subject: [PATCH] in_wallopt(): auto in racing --- asonov.cpp | 2 +- crystal.cpp | 2 +- euclid.cpp | 2 +- graph.cpp | 2 ++ nonisotropic.cpp | 4 ++-- reg3.cpp | 4 ++-- 6 files changed, 9 insertions(+), 7 deletions(-) diff --git a/asonov.cpp b/asonov.cpp index a2f5d3fa..30e46dc6 100644 --- a/asonov.cpp +++ b/asonov.cpp @@ -191,7 +191,7 @@ struct hrmap_asonov : hrmap { cell *c = h->c7; if(!do_draw(c, V)) continue; drawcell(c, V); - if(wallopt && isWall3(c) && isize(dq::drawqueue) > 1000) continue; + if(in_wallopt() && isWall3(c) && isize(dq::drawqueue) > 1000) continue; for(int i=0; icmove(i), V * adjmatrix(i)); diff --git a/crystal.cpp b/crystal.cpp index a49100a3..f4076327 100644 --- a/crystal.cpp +++ b/crystal.cpp @@ -581,7 +581,7 @@ struct hrmap_crystal : hrmap_standard { if(!do_draw(c, V)) continue; drawcell(c, V); - if(wallopt && isWall3(c) && isize(dq::drawqueue) > 1000) continue; + if(in_wallopt() && isWall3(c) && isize(dq::drawqueue) > 1000) continue; for(int d=0; dmove(d), V * adj(h, d)); diff --git a/euclid.cpp b/euclid.cpp index 220218f0..7479cdc5 100644 --- a/euclid.cpp +++ b/euclid.cpp @@ -179,7 +179,7 @@ EX namespace euclid3 { cell *c = h->c7; bool draw = drawcell_subs(c, V * spin(master_to_c7_angle())); - if(wallopt && isWall3(c) && isize(dq::drawqueue) > 1000) continue; + if(in_wallopt() && isWall3(c) && isize(dq::drawqueue) > 1000 && !hybrid::pmap) continue; if(draw) for(int i=0; imove(i), V * adj(h, i)); diff --git a/graph.cpp b/graph.cpp index 885096a4..7c0adf83 100644 --- a/graph.cpp +++ b/graph.cpp @@ -16,6 +16,8 @@ EX int inmirrorcount = 0; /** wall optimization: do not draw things beyond walls */ EX bool wallopt; +EX bool in_wallopt() { return wallopt || racing::on; } + EX bool spatial_graphics; EX bool wmspatial, wmescher, wmplain, wmblack, wmascii; EX bool mmspatial, mmhigh, mmmon, mmitem; diff --git a/nonisotropic.cpp b/nonisotropic.cpp index ec5c761a..a56387fb 100644 --- a/nonisotropic.cpp +++ b/nonisotropic.cpp @@ -413,7 +413,7 @@ EX namespace solnihv { cell *c = h->c7; if(!do_draw(c, V)) continue; drawcell(c, V); - if(wallopt && isWall3(c) && isize(dq::drawqueue) > 1000) continue; + if(in_wallopt() && isWall3(c) && isize(dq::drawqueue) > 1000) continue; for(int i=0; ic7; if(!do_draw(c, V)) continue; drawcell(c, V); - if(wallopt && isWall3(c) && isize(dq::drawqueue) > 1000) continue; + if(in_wallopt() && isWall3(c) && isize(dq::drawqueue) > 1000) continue; if(0) for(int t=0; ttype; t++) { if(!c->move(t)) continue; diff --git a/reg3.cpp b/reg3.cpp index e0947612..1b3870f7 100644 --- a/reg3.cpp +++ b/reg3.cpp @@ -567,7 +567,7 @@ EX namespace reg3 { cell *c = h->c7; if(!do_draw(c, V)) continue; drawcell(c, V); - if(wallopt && isWall3(c) && isize(dq::drawqueue) > 1000) continue; + if(in_wallopt() && isWall3(c) && isize(dq::drawqueue) > 1000) continue; for(int d=0; dmove(d), V * tmatrices[h->fieldval][d]); @@ -861,7 +861,7 @@ EX namespace reg3 { cell *c = h->c7; if(!do_draw(c, V)) continue; drawcell(c, V); - if(wallopt && isWall3(c) && isize(dq::drawqueue) > 1000) continue; + if(in_wallopt() && isWall3(c) && isize(dq::drawqueue) > 1000) continue; for(int i=0; imove(i)) { dq::enqueue(h->move(i), V * adj(h, i));