]> granicus.if.org Git - nethack/commitdiff
Magic portals and levitation boots
authorcohrs <cohrs>
Mon, 5 Aug 2002 00:57:21 +0000 (00:57 +0000)
committercohrs <cohrs>
Mon, 5 Aug 2002 00:57:21 +0000 (00:57 +0000)
From a bug report.  Removing levitation boots while hovering over
a magic portal causes the portal to be delayed since it takes time to
remove the boots.  This causes the portal to be taken via unmul in allmain.
At that point, the will activation message display but you won't teleport
until you type something.  Handle the delayed goto after unmul completes.

doc/fixes34.1
src/allmain.c

index df043f12717c51f522aa0a15eb1f48d09b7634f2..88f281a8cf30b1d15ee2d2a11381427852a03bf7 100644 (file)
@@ -180,6 +180,8 @@ effect of wearing or removing the Eyes of the Overworld took effect on the
 dragon scale mail is magic armor
 invoking or applying an artifact must pass a touch_artifact check
 document 'D'rop BUCX behavior in the Guidebook
+remove levitation boots over a portal, the portal teleport is delayed until
+        your next command is typed.
 
 
 Platform- and/or Interface-Specific Fixes
index 65ee608ef28725cd0f86416c7ecf656a4826ef67..d3004e57abb554138c56fd72ce1687a14ab6b429 100644 (file)
@@ -283,10 +283,13 @@ moveloop()
 
                    /* when immobile, count is in turns */
                    if(multi < 0) {
-                       if (++multi == 0)       /* finished yet? */
+                       if (++multi == 0) {     /* finished yet? */
                            unmul((char *)0);
+                           /* if unmul caused a level change, take it now */
+                           if (u.utotype) deferred_goto();
+                       }
                    }
-               }                       
+               }
            } while (youmonst.movement<NORMAL_SPEED); /* hero can't move loop */
 
            /******************************************/