]> granicus.if.org Git - nethack/commitdiff
> - When polymorphed into a flying creature and being grabbed
authornethack.allison <nethack.allison>
Sat, 18 Oct 2003 14:59:29 +0000 (14:59 +0000)
committernethack.allison <nethack.allison>
Sat, 18 Oct 2003 14:59:29 +0000 (14:59 +0000)
> 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. [<email deleted>, patch
> supplied]
>

A recent patch ensured that you ended up in the water when
polymorphed.

This patch is less ambitious than <Someone>'s
contribution, where he actually had the monster hold you up.
Perhaps that can be tackled for the trunk later.

doc/fixes34.3
src/trap.c

index 58c8fabf2df5ae8e250bed1d1c8831f82f0701ef..cda68ea6f65ed2aed1c2dc546611014802d87c24 100644 (file)
@@ -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
index ffec6778cdf92905c4e18914de633687e81af7d8..1fec73bd7d8994161275824038eef35bde085fc1 100644 (file)
@@ -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