autopickup during failed #untrap attempt (trunk only)
From a bug report, moving into a trap during a failed untrap attempt didn't autopickup any objects there or report about objects which aren't picked up. Although that appears to have been intentional, change move_into_trap() to behave more like a regular move. (I wrote this bit of code and don't remember whether the no pickup aspect was deliberate; I suspect it might have been to avoid the redundant "there is a trap here" message which you get when pickup checking is done but not everything on the spot gets picked up. This patch suppresses that message.)
This commit is contained in:
@@ -132,6 +132,8 @@ better handling for Fort Ludios and endgame in wizard mode's `^V ?' menu
|
|||||||
no free lunch for gelatinous cubes eating scrolls of mail
|
no free lunch for gelatinous cubes eating scrolls of mail
|
||||||
eating gold in front of the vault guard will make the guard angry
|
eating gold in front of the vault guard will make the guard angry
|
||||||
calculate engulf time differently for non-digestion attacks than for digestion
|
calculate engulf time differently for non-digestion attacks than for digestion
|
||||||
|
preform autopickup and/or report on objects at the spot when a failed #untrap
|
||||||
|
attempt causes the hero to move onto a trap's location
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
+10
-4
@@ -1,4 +1,4 @@
|
|||||||
/* SCCS Id: @(#)trap.c 3.5 2005/12/05 */
|
/* SCCS Id: @(#)trap.c 3.5 2006/04/05 */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -3235,8 +3235,8 @@ struct trap *ttmp;
|
|||||||
boolean unused;
|
boolean unused;
|
||||||
|
|
||||||
/* we know there's no monster in the way, and we're not trapped */
|
/* we know there's no monster in the way, and we're not trapped */
|
||||||
if (!Punished || drag_ball(x, y, &bc, &bx, &by, &cx, &cy, &unused,
|
if (!Punished ||
|
||||||
TRUE)) {
|
drag_ball(x, y, &bc, &bx, &by, &cx, &cy, &unused, TRUE)) {
|
||||||
u.ux0 = u.ux, u.uy0 = u.uy;
|
u.ux0 = u.ux, u.uy0 = u.uy;
|
||||||
u.ux = x, u.uy = y;
|
u.ux = x, u.uy = y;
|
||||||
u.umoved = TRUE;
|
u.umoved = TRUE;
|
||||||
@@ -3244,7 +3244,13 @@ struct trap *ttmp;
|
|||||||
vision_recalc(1);
|
vision_recalc(1);
|
||||||
check_leash(u.ux0, u.uy0);
|
check_leash(u.ux0, u.uy0);
|
||||||
if (Punished) move_bc(0, bc, bx, by, cx, cy);
|
if (Punished) move_bc(0, bc, bx, by, cx, cy);
|
||||||
spoteffects(FALSE); /* dotrap() */
|
/* marking the trap unseen forces dotrap() to treat it like a new
|
||||||
|
discovery and prevents pickup() -> look_here() -> check_here()
|
||||||
|
from giving a redudant "there is a <trap> here" message when
|
||||||
|
there are objects covering this trap */
|
||||||
|
ttmp->tseen = 0; /* hack for check_here() */
|
||||||
|
/* trigger the trap */
|
||||||
|
spoteffects(TRUE); /* pickup() + dotrap() */
|
||||||
exercise(A_WIS, FALSE);
|
exercise(A_WIS, FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user