diff --git a/complex.cpp b/complex.cpp index e345742e..b3f178e2 100644 --- a/complex.cpp +++ b/complex.cpp @@ -922,6 +922,8 @@ namespace whirlpool { cell *prev = whirlline[size(whirlline)-2]; for(int i=0; itype; i++) if(at->mov[i] && (euclid || at->mov[i]->master->alt) && celldistAlt(at->mov[i]) == d && at->mov[i] != prev) { + if(at->mov[i] == whirlline[0]) return; // loops in weird geometries? + if(at->mov[i] == whirlline[size(whirlline)/2]) return; // even weirder geometry? whirlline.push_back(at->mov[i]); goto again; } @@ -931,6 +933,8 @@ namespace whirlpool { if(wto->wall == waBoat || wto->monst) return; + wto->wall = waSea; + if(hrand(35000) < 40 + items[itWhirlpool] + yendor::hardness()) wto->monst = moCShark; else if(hrand(5000) < 500)