Don't show rusting of items landing in water

When a thrown item lands in a pool of water, it immediately
rusts - but don't give that message unless the hero is at the same
location and also under the water.  My reasoning: hero can't see items
under water, and by the time the item rusts, it's in the water.
This commit is contained in:
Pasi Kallinen
2022-02-11 20:13:20 +02:00
parent 8ce3e08d00
commit cd797afd0e
2 changed files with 4 additions and 1 deletions

View File

@@ -776,6 +776,7 @@ add unique Rider revival messages
don't dereference NULL u.ustuck in dobuzz() when hero has been swallowed don't dereference NULL u.ustuck in dobuzz() when hero has been swallowed
monsters should growl even if you can't hear it monsters should growl even if you can't hear it
give a sound effect message when thrown item lands in water or lava give a sound effect message when thrown item lands in water or lava
don't show rusting of items that land in water
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository Fixes to 3.7.0-x Problems that Were Exposed Via git Repository

View File

@@ -182,7 +182,9 @@ erode_obj(
uvictim = (victim == &g.youmonst); uvictim = (victim == &g.youmonst);
vismon = victim && (victim != &g.youmonst) && canseemon(victim); vismon = victim && (victim != &g.youmonst) && canseemon(victim);
/* Is g.bhitpos correct here? Ugh. */ /* Is g.bhitpos correct here? Ugh. */
visobj = !victim && cansee(g.bhitpos.x, g.bhitpos.y); visobj = !victim && cansee(g.bhitpos.x, g.bhitpos.y)
&& (!is_pool(g.bhitpos.x, g.bhitpos.y)
|| (u.ux == g.bhitpos.x && u.uy == g.bhitpos.y && Underwater));
switch (type) { switch (type) {
case ERODE_BURN: case ERODE_BURN: