From eb3406d7dca08ddbe038392c0117d7ff77881e7c Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Fri, 22 Dec 2023 00:51:07 +0100 Subject: [PATCH] fixed the bug where tides may move on orb use --- environment.cpp | 25 ++++++++++++------------- mapeffects.cpp | 2 +- orbs.cpp | 2 ++ 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/environment.cpp b/environment.cpp index 9acffdbe..c0cb5b58 100644 --- a/environment.cpp +++ b/environment.cpp @@ -304,8 +304,6 @@ EX vector bfs_reachedfrom; /** calculate cpdist, 'have' flags, and do general fixings */ EX void bfs() { - calcTidalPhase(); - yendor::onpath(); int dcs = isize(dcal); @@ -330,12 +328,9 @@ EX void bfs() { dcal.clear(); bfs_reachedfrom.clear(); - recalcTide = false; - for(cell *c: player_positions()) { if(c->cpdist == 0) continue; c->cpdist = 0; - checkTide(c); dcal.push_back(c); bfs_reachedfrom.push_back(hrand(c->type)); if(!invismove) targets.push_back(c); @@ -436,8 +431,6 @@ EX void bfs() { dcal.push_back(c2); bfs_reachedfrom.push_back(c->c.spin(i)); - checkTide(c2); - if(c2->wall == waBigStatue && c2->land != laTemple) statuecount++; @@ -548,11 +541,6 @@ EX void bfs() { if(c2->wall == waThumperOn) { targets.push_back(c2); } - - while(recalcTide) { - recalcTide = false; - for(int i=0; imonst = t.second; @@ -831,7 +819,16 @@ EX void findWormIvy(cell *c) { else break; } } - + +EX void advance_tides() { + calcTidalPhase(); + recalcTide = true; + while(recalcTide) { + recalcTide = false; + for(int i=0; i