From: nethack.allison Date: Sat, 18 Oct 2003 14:59:29 +0000 (+0000) Subject: > - When polymorphed into a flying creature and being grabbed X-Git-Tag: MOVE2GIT~1684 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4cbdae2d3b29ef85f175c6af07e0a00494cdff25;p=nethack > - When polymorphed into a flying creature and being grabbed > over the water, then polymorphed into a non-flying creature > leaves you standing on the water (you can kill the creature > too and you're still on the water when you shouldn't be). > - When floating from levitation over water and being held and > removing levitation, you will fall into the water and drown or > crawl back onto land. If you crawl back onto land you're no > longer being held. > The first situation seems to be a bug, the second a possible > exploit. Both situations don't seem very correct, if you're > being held it seems you should not fall into the water/lava > until you are no longer being held. [patch contributed] It > will keep the hero held up on over the water until released if > his size is smaller than or equal to the size of the monster > holding him. [, patch > supplied] > A recent patch ensured that you ended up in the water when polymorphed. This patch is less ambitious than 's contribution, where he actually had the monster hold you up. Perhaps that can be tackled for the trunk later. --- diff --git a/doc/fixes34.3 b/doc/fixes34.3 index 58c8fabf2..cda68ea6f 100644 --- a/doc/fixes34.3 +++ b/doc/fixes34.3 @@ -51,6 +51,8 @@ Vlad won't waste time trying to use wand of digging in his own tower non-weapon iron objects should rust when dipped in fountains since iron weapons rust suppress "turn to flee" message if monster is mfrozen +don't silently interrupt monster's hold on you if Levitation/Flying ends + while over water Platform- and/or Interface-Specific Fixes diff --git a/src/trap.c b/src/trap.c index ffec6778c..1fec73bd7 100644 --- a/src/trap.c +++ b/src/trap.c @@ -2301,6 +2301,15 @@ long hmask, emask; /* might cancel timeout */ } /* check for falling into pool - added by GAN 10/20/86 */ if(!Flying) { + if (!u.uswallow && u.ustuck) { + if (sticks(youmonst.data)) + You("aren't able to maintain your hold on %s.", + mon_nam(u.ustuck)); + else + pline("Startled, %s can no longer hold you!", + mon_nam(u.ustuck)); + u.ustuck = 0; + } /* kludge alert: * drown() and lava_effects() print various messages almost * every time they're called which conflict with the "fall