]> granicus.if.org Git - nethack/commitdiff
levitation timeout
authornethack.rankin <nethack.rankin>
Thu, 15 Dec 2005 04:20:23 +0000 (04:20 +0000)
committernethack.rankin <nethack.rankin>
Thu, 15 Dec 2005 04:20:23 +0000 (04:20 +0000)
     Forwarded from the newsgroup by Michael:  giving a count before '.' to
rest many turns wouldn't be interrupted by having levitation end (despite
autopickup taking place at the time, which is what the thread is about but
not all that relevant to this particular issue).  Stopping counted activity
is easy, so that's all I've done.  Stopping a timed occupation would be a
lot harder due to message sequencing; I'm not going to attempt it.

doc/fixes34.4
src/trap.c

index 87b403319c51a7d802b1df18f9f80829c0369bf0..c015e96d7cca3ee4e511f1c13eebd9b0bb985d54 100644 (file)
@@ -169,6 +169,7 @@ tame flaming spheres and shocking spheres shouldn't pick up items
 can hear the opening or closing of an unseen drawbridge
 prevent "object lost" panic caused by accessing freed memory after worn
        non-fireproof water walking boots are destroyed by lava
+stop multi-turn running, searching, or resting early if levitation ends
 
 
 Platform- and/or Interface-Specific Fixes
index 3eef5a1831ffee7a379f33cd873039906a8315d6..019505229466a9d8f231356f9b85cf3a5ca0c57a 100644 (file)
@@ -2423,6 +2423,7 @@ long hmask, emask;     /* might cancel timeout */
        HLevitation &= ~hmask;
        ELevitation &= ~emask;
        if(Levitation) return(0); /* maybe another ring/potion/boots */
+       nomul(0);       /* stop running or resting */
        if(u.uswallow) {
            You("float down, but you are still %s.",
                is_animal(u.ustuck->data) ? "swallowed" : "engulfed");