]> granicus.if.org Git - nethack/commitdiff
Castle trap doors fix
authornethack.rankin <nethack.rankin>
Sun, 27 Apr 2003 10:32:55 +0000 (10:32 +0000)
committernethack.rankin <nethack.rankin>
Sun, 27 Apr 2003 10:32:55 +0000 (10:32 +0000)
     Recently discussed in the newsgroup, and it sounded familiar so may
have been reported directly earlier:

  You fly through the trap door.  You fly down along the stairs.

when polymorphed into a flying creature or riding a flying steed.  It
only happens at the castle, and only happens because the go-down code is
explicitly setting the arrival point to be the Valley stairs.  That's how
the castle trap doors used to work as traps too, but they were changed to
dump you randomly near the stairs quite some time ago.  Fix it by making
intentional triggering work the same now; this also prevents the false
feedback (even if you happen to arrive on the stairs by coincidence).

doc/fixes34.2
src/do.c

index 7965b0c980a4454ad769189603459917ce5ade7c..5bd3f076459f04b796a409dcc2ed23f678df43d6 100644 (file)
@@ -45,6 +45,7 @@ allow wishing for magenta potions (ignoring the rank name 'mage')
 fix an uninitialized memory access in non-quick dolookup
 fix were changing message that wasn't being displayed
 immediate encumbrance feedback when removing gauntlets of power
+make deliberately flying down the Castle's trap doors consistent with falling
 
 
 Platform- and/or Interface-Specific Fixes
index 717efed21638b2398e23a87a44305ebda5fb12c4..86b90a34b177107ada551532f6dd69da5ce96d70 100644 (file)
--- a/src/do.c
+++ b/src/do.c
@@ -1,4 +1,4 @@
-/*     SCCS Id: @(#)do.c       3.4     2002/09/08      */
+/*     SCCS Id: @(#)do.c       3.4     2003/04/25      */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -801,7 +801,7 @@ dodown()
                trap->ttyp == HOLE ? "down the hole" : "through the trap door");
 
        if (trap && Is_stronghold(&u.uz)) {
-               goto_hell(TRUE, TRUE);
+               goto_hell(FALSE, TRUE);
        } else {
                at_ladder = (boolean) (levl[u.ux][u.uy].typ == LADDER);
                next_level(!trap);