]> granicus.if.org Git - nethack/commitdiff
U592 - stuck in the floor
authorcohrs <cohrs>
Mon, 18 Aug 2003 20:14:18 +0000 (20:14 +0000)
committercohrs <cohrs>
Mon, 18 Aug 2003 20:14:18 +0000 (20:14 +0000)
Digging a pit in the location where you're stuck should always free you.
This would not occur if you used a wand of digging to do the digging,
especially if you did so while levitating.

doc/fixes34.2
src/dig.c

index 9e240079969cac337d50a0dbaf150939717d9723..3dd82b5b5d3963521ee446973daf2187aa657b09 100644 (file)
@@ -129,6 +129,7 @@ avoid "singular of null?" warning for info lookup of obscure user input
 there was no check for iron bars in dokick() so it defaulted to "empty space"
 if you couldn't see the rat created in a sink for some reason other than
        blindness, you would get "Eek there's it in the sink."
+digging a pit while stuck in the floor should always free the player
 
 
 Platform- and/or Interface-Specific Fixes
index 62127500eefc476aeb4678179627b6de11a1f25d..024175eee75793591e3e8f771edd762fa37f945c 100644 (file)
--- a/src/dig.c
+++ b/src/dig.c
@@ -492,8 +492,10 @@ int ttyp;
        boolean at_u = (x == u.ux) && (y == u.uy);
        boolean wont_fall = Levitation || Flying;
 
-       if (u.utrap && u.utraptype == TT_BURIEDBALL)
-               buried_ball_to_punishment();
+       if (u.utrap) {
+           if (u.utraptype == TT_BURIEDBALL) buried_ball_to_punishment();
+           else if (u.utraptype == TT_INFLOOR) u.utrap = 0;
+       }
 
        /* these furniture checks were in dighole(), but wand
           breaking bypasses that routine and calls us directly */