From: cohrs Date: Mon, 5 Aug 2002 00:57:21 +0000 (+0000) Subject: Magic portals and levitation boots X-Git-Tag: MOVE2GIT~2564 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a61e68069ac4a9dab62d00a401f077ddf2b7d2c0;p=nethack Magic portals and levitation boots 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. --- diff --git a/doc/fixes34.1 b/doc/fixes34.1 index df043f127..88f281a8c 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -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 diff --git a/src/allmain.c b/src/allmain.c index 65ee608ef..d3004e57a 100644 --- a/src/allmain.c +++ b/src/allmain.c @@ -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