follow-up

This commit is contained in:
nhmall
2026-08-23 19:33:39 -04:00
parent 9b4a8dfb05
commit b67553ccc7
+13 -8
View File
@@ -5554,20 +5554,25 @@ maybe_set_terrain_effects(struct monst *mtmp, struct permonst *oldmdat)
if (is_pool(mtmp->mx, mtmp->my) || Is_waterlevel(&u.uz) if (is_pool(mtmp->mx, mtmp->my) || Is_waterlevel(&u.uz)
|| is_lava(mtmp->mx, mtmp->my) || is_lava(mtmp->mx, mtmp->my)
|| IS_FOUNTAIN(levl[mtmp->mx][mtmp->my].typ)) { || IS_FOUNTAIN(levl[mtmp->mx][mtmp->my].typ)) {
/* mtmp is a non-flyer/floater/levitator */
/* mtmp is a non-flyer/floater/levitator */ boolean above_water =
if (!is_flyer(mdat)) { ((is_flyer(mdat) || is_floater(mdat))
changed = (!oldmdat || && !(mtmp == u.usteed && (Flying || Levitation))),
(((is_flyer(oldmdat) != is_flyer(mdat)) was_above_water =
|| (is_floater(oldmdat) != is_floater(mdat))) (oldmdat
&& !(mtmp == u.usteed && (Flying || Levitation)))); && ((is_flyer(oldmdat) || is_floater(oldmdat))
&& !(mtmp == u.usteed && (Flying || Levitation))));
if (!above_water) {
changed = (!oldmdat || (above_water != was_above_water));
gp.pending_terrain_effects |= nonflyer_vs_liquid; gp.pending_terrain_effects |= nonflyer_vs_liquid;
mtmp->mstate |= (long) nonflyer_vs_liquid; mtmp->mstate |= (long) nonflyer_vs_liquid;
} }
/* swimmer/amphibious/breathless to something that is not */ /* swimmer/amphibious/breathless to something that is not */
if (!cant_drown(mdat)) { if (!cant_drown(mdat)) {
changed = (!oldmdat || ((cant_drown(oldmdat) != cant_drown(mdat)))); if (!changed)
changed =
(!oldmdat || ((cant_drown(oldmdat) != cant_drown(mdat))));
gp.pending_terrain_effects |= candrown_vs_liquid; gp.pending_terrain_effects |= candrown_vs_liquid;
mtmp->mstate |= (long) candrown_vs_liquid; mtmp->mstate |= (long) candrown_vs_liquid;
} }