lava_effects() bit

lava_effects() item destrunction had the logic for handling Book of
the Dead wrong.  (However, that didn't matter since the obj_resists()
check earlier would prevent it from being burned up.  Fix it anyway.)
This commit is contained in:
PatR
2024-02-09 15:52:17 -08:00
parent 381851348b
commit 9326f80ecc
2 changed files with 7 additions and 7 deletions
+3 -3
View File
@@ -236,9 +236,9 @@ remove_worn_item(
/* /*
* Losing worn gear might drop hero into water or lava or onto a * Losing worn gear might drop hero into water or lava or onto a
* location-changing trap or take away the ability to breathe in water. * location-changing trap or take away the ability to breathe in water.
* Marking it 'in_use' prevents emergency_disrobe() from dropping it. * Marking it 'in_use' prevents emergency_disrobe() from dropping it
* in_lava() appears to be ok; other cases impacting object location * and lava_effects() from destroying it; other cases impacting object
* (or destruction) might still have issues. * location (or destruction) might still have issues.
* *
* Note: if a hangup save occurs when 'in_use' is set, the item will * Note: if a hangup save occurs when 'in_use' is set, the item will
* be destroyed via useup() during restore. Maybe remove_worn_item() * be destroyed via useup() during restore. Maybe remove_worn_item()
+4 -4
View File
@@ -6609,11 +6609,11 @@ lava_effects(void)
for (obj = gi.invent; obj; obj = obj2) { for (obj = gi.invent; obj; obj = obj2) {
obj2 = obj->nobj; obj2 = obj->nobj;
/* above, we set in_use for objects which are to be destroyed */
if (obj->o_id == protect_oid) { if (obj->o_id == protect_oid) {
; /* skip protected item; caller expects to retain access */ /* skip protected item; caller expects to retain access */
} else if (obj->otyp == SPE_BOOK_OF_THE_DEAD && !Blind) { obj->in_use = 1; /* was cleared when setting protect_oid */
if (usurvive) } else if (obj->otyp == SPE_BOOK_OF_THE_DEAD) {
if (usurvive && !Blind)
pline("%s glows a strange %s, but remains intact.", pline("%s glows a strange %s, but remains intact.",
The(xname(obj)), hcolor("dark red")); The(xname(obj)), hcolor("dark red"));
} else if (obj->in_use) { } else if (obj->in_use) {