pull request #936 - feedback for grease wash off
Pull request from entrez: if a greased item loses its grease after being affected by water, say so. Also, the post-water code could access freed memory for an item that had been destroyed by the water (potion of acid). Fixes #936
This commit is contained in:
@@ -429,12 +429,8 @@ dipfountain(register struct obj *obj)
|
||||
} else {
|
||||
er = water_damage(obj, NULL, TRUE);
|
||||
|
||||
if (obj->otyp == POT_ACID
|
||||
&& er != ER_DESTROYED) { /* Acid and water don't mix */
|
||||
useup(obj);
|
||||
return;
|
||||
} else if (er != ER_NOTHING && !rn2(2)) { /* no further effect */
|
||||
return;
|
||||
if (er == ER_DESTROYED || (er != ER_NOTHING && !rn2(2))) {
|
||||
return; /* no further effect */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4146,10 +4146,13 @@ water_damage(
|
||||
wet_a_towel(obj, -rnd(7 - obj->spe), TRUE);
|
||||
return ER_NOTHING;
|
||||
} else if (obj->greased) {
|
||||
if (!rn2(2))
|
||||
if (!rn2(2)) {
|
||||
obj->greased = 0;
|
||||
if (carried(obj))
|
||||
update_inventory();
|
||||
if (carried(obj)) {
|
||||
pline_The("grease on %s washes off.", yname(obj));
|
||||
update_inventory();
|
||||
}
|
||||
}
|
||||
return ER_GREASED;
|
||||
} else if (Is_container(obj)
|
||||
&& (!Waterproof_container(obj) || (obj->cursed && !rn2(3)))) {
|
||||
|
||||
Reference in New Issue
Block a user