From: Pasi Kallinen Date: Fri, 11 Feb 2022 18:13:20 +0000 (+0200) Subject: Don't show rusting of items landing in water X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cd797afd0e671f1281558b43005d4a5eb6572fae;p=nethack 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. --- diff --git a/doc/fixes3-7-0.txt b/doc/fixes3-7-0.txt index 8b31320bc..5403d3ea1 100644 --- a/doc/fixes3-7-0.txt +++ b/doc/fixes3-7-0.txt @@ -776,6 +776,7 @@ add unique Rider revival messages don't dereference NULL u.ustuck in dobuzz() when hero has been swallowed monsters should growl even if you can't hear it 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 diff --git a/src/trap.c b/src/trap.c index 9b0b2025d..720fef778 100644 --- a/src/trap.c +++ b/src/trap.c @@ -182,7 +182,9 @@ erode_obj( uvictim = (victim == &g.youmonst); vismon = victim && (victim != &g.youmonst) && canseemon(victim); /* 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) { case ERODE_BURN: