From: Michael Meyer Date: Thu, 22 Sep 2022 01:25:25 +0000 (-0400) Subject: Apply trap door destination restrictions in dodown X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e148d5e92542e98a0742db03ec72379c86c8ae80;p=nethack Apply trap door destination restrictions in dodown Missed this way to use the trap door (in a block added in 05761ba) in previous commits, though I'm a little confused about whether that block in dodown is even reachable given how various trap scenarios are handled with dotrap earlier in the function. --- diff --git a/src/do.c b/src/do.c index 17dcf6dfa..3f1ee04c3 100644 --- a/src/do.c +++ b/src/do.c @@ -1145,8 +1145,11 @@ dodown(void) } if (trap && Is_stronghold(&u.uz)) { goto_hell(FALSE, TRUE); - } else if (trap) { - goto_level(&(trap->dst), FALSE, FALSE, FALSE); + } else if (trap && trap->dst.dlevel != -1) { + d_level tdst; + assign_level(&tdst, &(trap->dst)); + (void) clamp_hole_destination(&tdst); + goto_level(&tdst, FALSE, FALSE, FALSE); } else { g.at_ladder = (boolean) (levl[u.ux][u.uy].typ == LADDER); next_level(!trap);