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:
+3
-3
@@ -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
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user