fix #K3274 - applied polearm locates hidden mon
without using any time. Targetting an apparently empty spot at valid polearm range where a monster happens to be hiding reports "Wait! There's something there you can't see!" and displays the remembered, unseen monster glyph, then aborts the attack attempt. It would use a turn if the polearm became wielded in the attempt but not if it was already wielded. Make latter case take time.
This commit is contained in:
+4
-1
@@ -1,4 +1,4 @@
|
|||||||
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.467 $ $NHDT-Date: 1614812488 2021/03/03 23:01:28 $
|
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.468 $ $NHDT-Date: 1615158479 2021/03/07 23:07:59 $
|
||||||
|
|
||||||
General Fixes and Modified Features
|
General Fixes and Modified Features
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
@@ -394,6 +394,9 @@ it was theoretically possible to overflow an internal buffer containing
|
|||||||
using the '(' or '*' commands
|
using the '(' or '*' commands
|
||||||
hero would be blinded and stunned by an Archon's radiance (gaze attack) even
|
hero would be blinded and stunned by an Archon's radiance (gaze attack) even
|
||||||
if the Archon was blind, but monsters would not
|
if the Archon was blind, but monsters would not
|
||||||
|
applying a polearm to attempt to attack a hidden monster would report "wait!
|
||||||
|
there's a monster hidden there" and display the "remembered, unseen
|
||||||
|
monster" glyph but only use a turn if polearm wasn't already wielded
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
+7
-3
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.7 apply.c $NHDT-Date: 1611182249 2021/01/20 22:37:29 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.337 $ */
|
/* NetHack 3.7 apply.c $NHDT-Date: 1615158480 2021/03/07 23:08:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.340 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -3118,8 +3118,12 @@ use_pole(struct obj *obj)
|
|||||||
/* Attack the monster there */
|
/* Attack the monster there */
|
||||||
g.bhitpos = cc;
|
g.bhitpos = cc;
|
||||||
if ((mtmp = m_at(g.bhitpos.x, g.bhitpos.y)) != (struct monst *) 0) {
|
if ((mtmp = m_at(g.bhitpos.x, g.bhitpos.y)) != (struct monst *) 0) {
|
||||||
if (attack_checks(mtmp, uwep))
|
if (attack_checks(mtmp, uwep)) /* can attack proceed? */
|
||||||
return res;
|
/* no, abort the attack attempt; result depends on
|
||||||
|
res: 1 => polearm became wielded, 0 => already wielded;
|
||||||
|
g.context.move: 1 => discovered hidden monster at target spot,
|
||||||
|
0 => answered 'n' to "Really attack?" prompt */
|
||||||
|
return res || g.context.move;
|
||||||
if (overexertion())
|
if (overexertion())
|
||||||
return 1; /* burn nutrition; maybe pass out */
|
return 1; /* burn nutrition; maybe pass out */
|
||||||
g.context.polearm.hitmon = mtmp;
|
g.context.polearm.hitmon = mtmp;
|
||||||
|
|||||||
Reference in New Issue
Block a user