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.
This commit is contained in:
Sean Hunt
2015-02-18 23:24:41 -05:00
parent ad4f3fc0fe
commit 72c2ae233d

View File

@@ -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--;