1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-05-05 08:44:07 +00:00

fake:: limit cells drawn

This commit is contained in:
Zeno Rogue 2020-05-31 03:30:51 +02:00
parent b0e82dd515
commit 38418bd73a

View File

@ -166,8 +166,14 @@ EX namespace fake {
auto enqueue = (multiple ? dq::enqueue_by_matrix_c : dq::enqueue_c); auto enqueue = (multiple ? dq::enqueue_by_matrix_c : dq::enqueue_c);
enqueue(centerover, cview()); enqueue(centerover, cview());
int id = 0;
int limit = 100 * pow(1.2, sightrange_bonus);
if(WDIM == 3 || vid.use_smart_range)
limit = INT_MAX;
while(!dq::drawqueue_c.empty()) { while(!dq::drawqueue_c.empty()) {
auto& p = dq::drawqueue_c.front(); auto& p = dq::drawqueue_c.front();
id++;
cell *c = get<0>(p); cell *c = get<0>(p);
transmatrix V = get<1>(p); transmatrix V = get<1>(p);
dynamicval<ld> b(band_shift, get<2>(p)); dynamicval<ld> b(band_shift, get<2>(p));
@ -178,6 +184,8 @@ EX namespace fake {
drawcell(c, V); drawcell(c, V);
if(in_wallopt() && isWall3(c) && isize(dq::drawqueue_c) > 1000) continue; if(in_wallopt() && isWall3(c) && isize(dq::drawqueue_c) > 1000) continue;
if(id > limit) continue;
for(int i=0; i<c->type; i++) if(c->move(i)) { for(int i=0; i<c->type; i++) if(c->move(i)) {
enqueue(c->move(i), V * adj(c, i)); enqueue(c->move(i), V * adj(c, i));
} }