1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-12-19 12:28:07 +00:00

Rework removed tiles in Crystal World

They're now treated specially in passable, so even flying/aethereal/etc.
beings can't occupy them, since they're not supposed to exist at all. This
also fixes a bug where trying to move onto chasms that used to be trapdoors
in Crystal World would give the generic "You cannot move there!" message
instead of the correct "You cannot move through the chasm!" message, and a
bug where things like Slime Beasts could make them walkable.
This commit is contained in:
Joseph C. Sible
2025-11-12 02:35:33 -05:00
parent 0afff9daf6
commit 3ac6126ece
3 changed files with 4 additions and 3 deletions

View File

@@ -143,6 +143,8 @@ EX bool anti_alchemy(cell *w, cell *from) {
EX bool passable(cell *w, cell *from, flagtype flags) {
bool vrevdir = bool(flags&P_VOID);
if(w->land == laDual && pseudohept(w) && !F(P_BULLET)) return false;
if(from && from != w && nonAdjacent(from, w) && !F(P_IGNORE37 | P_BULLET)) return false;
if((isWateryOrBoat(w) || w->wall == waShallow) && F(P_WATERCURSE))
@@ -169,7 +171,6 @@ EX bool passable(cell *w, cell *from, flagtype flags) {
if(airdist(w) < 3) return false;
if(againstWind(w,from)) return false;
if(isGravityLand(w)) return false;
if(w->wall == waChasm && w->land == laDual) return false;
}
if(from && strictlyAgainstGravity(w, from, vrevdir, flags)