From 72c2ae233d35076adece2e8d02a7f8839e4a5aa8 Mon Sep 17 00:00:00 2001 From: Sean Hunt Date: Wed, 18 Feb 2015 23:24:41 -0500 Subject: [PATCH] Clean up lava messages a little. This change has two parts. First, the Book of the Dead now has a special message in lava. This was originally added by Steve Melenchuk (aka Grunt) as a precaution against the Book burning up. While I'm pretty sure that the Book can't burn up in the current codepath, the message is a nice touch and it doesn't help to add a safety check. Second, always print the inventory destruction messages. The reason for this is fairly subtle, but relates to the timing. By not printing the messages when dying, the visible effect to the player is that if they have lifesaving, the items burn up before they die, but if they do not, they burn up after they die---the fact that they do burn up is visible in the dump or bonesfile. --- src/trap.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/trap.c b/src/trap.c index 184f043043..e33b57730b 100644 --- a/src/trap.c +++ b/src/trap.c @@ -4730,11 +4730,6 @@ lava_effects() } else You("fall into the lava!"); - usurvive = Lifesaved || discover; -#ifdef WIZARD - if (wizard) usurvive = TRUE; -#endif - /* prevent remove_worn_item() -> Boots_off(WATER_WALKING_BOOTS) -> spoteffects() -> lava_effects() recursion which would successfully delete (via useupall) the no-longer-worn boots; @@ -4745,15 +4740,17 @@ lava_effects() for(obj = invent; obj; obj = obj2) { obj2 = obj->nobj; /* above, we set in_use for objects which are to be destroyed */ - if (obj->in_use) { + if (obj->otyp == SPE_BOOK_OF_THE_DEAD && !Blind) { + pline("%s glows a strange %s, but remains intact.", + The(xname(obj)), hcolor("dark red")); + } else if (obj->in_use) { if (obj->owornmask) { - if (usurvive) - pline("%s into flame!", Yobjnam2(obj, "burst")); + pline("%s into flame!", Yobjnam2(obj, "burst")); remove_worn_item(obj, TRUE); } useupall(obj); } - } + } iflags.in_lava_effects--;