From d013f95679eae3246f067f7cf198d28cd048d161 Mon Sep 17 00:00:00 2001 From: cohrs Date: Thu, 12 Dec 2002 04:28:28 +0000 Subject: [PATCH] B14006 - monsters and lava - water elementals now get a special message when they land in lava - rather than track down all places where non-moving monsters can end up in lava (or water, not that it currently matters), add a check to mcalcdistress to catch all such cases, once per turn. --- doc/fixes34.1 | 1 + src/mon.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/doc/fixes34.1 b/doc/fixes34.1 index 4fa5c743d..69d39ee53 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -325,6 +325,7 @@ mimics that are detected but not seen should not display as their mimiced not all cavemen are human, so avoid using human in quest messages tengu is singular and plural, some rumors were incorrect don't let leader or nemesis be renamed +non-moving monster are not affected by liquid Platform- and/or Interface-Specific Fixes diff --git a/src/mon.c b/src/mon.c index b2b858be8..5658345cb 100644 --- a/src/mon.c +++ b/src/mon.c @@ -380,7 +380,9 @@ register struct monst *mtmp; if (!is_clinger(mtmp->data) && !likes_lava(mtmp->data)) { if (!resists_fire(mtmp)) { if (cansee(mtmp->mx,mtmp->my)) - pline("%s burns to a crisp.", Monnam(mtmp)); + pline("%s %s.", Monnam(mtmp), + mtmp->data == &mons[PM_WATER_ELEMENTAL] ? + "boils aways" : "burns to a crisp"); mondead(mtmp); } else { @@ -473,6 +475,13 @@ mcalcdistress() for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) { if (DEADMONSTER(mtmp)) continue; + /* must check non-moving monsters once/turn in case + * they managed to end up in liquid */ + if (mtmp->data->mmove == 0) { + if (vision_full_recalc) vision_recalc(0); + if (minliquid(mtmp)) continue; + } + /* regenerate hit points */ mon_regen(mtmp, FALSE);