los:: improved blocks_sight for: Fish users, Yendorian trunks, Lost Mountain, Round Table

This commit is contained in:
Zeno Rogue
2026-08-05 13:48:54 +02:00
parent 750745a74d
commit 88d001863a
+7 -1
View File
@@ -957,10 +957,16 @@ EX bool blocks_sight(cell *c, cell *last) {
auto cw2 = mirror::reflect(cw);
return blocks_sight(cw2.at, cw2.cpeek());
}
if(invisfish && !isWateryOrBoat(c)) return true;
if(c->monst == passive_switch) return true;
if(among(c->wall, waBigStatue, waMirror, waCloud, waThumperOff, waThumperOn, waExplosiveBarrel)) return c->cpdist > 1;
if(snakelevel(c) == 3 && !(c->cpdist == 1 && snakelevel(cwt.at) >= 2)) return true;
return (isWall(c) && !among(c->wall, waFreshGrave, waAncientGrave, waClosedGate, waMirrorWall, waSmallTree, waShrub)) || thruVine(c, last);
if(c->wall == waTrunk && last && last->wall != waTrunk && c->cpdist > 1) return true;
if(c->land == laMountain && last->land == laMountain) {
int d = celldistAlt(last);
if(celldistAlt(c) > d && (cwt.at->land != laMountain || celldistAlt(cwt.at) > d)) return true;
}
return (isWall(c) && !among(c->wall, waFreshGrave, waAncientGrave, waClosedGate, waMirrorWall, waSmallTree, waShrub, waRoundTable)) || thruVine(c, last);
}
EX bool in_line_of_sight(cell *c) {