From adc4094d5087ba6fbbcfda15f46c5fbf4a7f1c7d Mon Sep 17 00:00:00 2001 From: cohrs Date: Sun, 14 Jul 2002 02:48:27 +0000 Subject: [PATCH] dwarvish indecision (and later ) reported along with several other things of a dwarf that stood in place and switched between his pick-axe and broadsword on successive turns. Fixed by bringing the logic in the two cases in line. The code now prefers to leave the hostile dwarf with a weapon. --- doc/fixes34.1 | 2 ++ src/monmove.c | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/fixes34.1 b/doc/fixes34.1 index d3a87a745..49024180f 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -161,6 +161,8 @@ when a fountain dries up or a throne vanishes, make sure it really happens allow player to name polymorph potion if nothing seems to happen avoid crash when drinking a potion causes the hero to float up over a fire trap, for example, which might try to destroy the in-use potion +in some situations, if hero stood still, a hostile dwarf would switch back + and forth between weapon and pick-axe and never move Platform- and/or Interface-Specific Fixes diff --git a/src/monmove.c b/src/monmove.c index f2ac6e2c8..44595171c 100644 --- a/src/monmove.c +++ b/src/monmove.c @@ -875,9 +875,13 @@ not_special: } } + /* don't tunnel if needspick and wielding a non-pick that is known + * cursed or hostile and close enough to prefer a weapon */ if (can_tunnel && needspick(ptr) && - (mw_tmp = MON_WEP(mtmp)) != 0 && !is_pick(mw_tmp) && - mw_tmp->cursed && mtmp->weapon_check == NO_WEAPON_WANTED) + (mw_tmp = MON_WEP(mtmp)) != 0 && !is_pick(mw_tmp) && + ((mw_tmp->cursed && mtmp->weapon_check == NO_WEAPON_WANTED) || + ((!mtmp->mpeaceful || Conflict) && + dist2(mtmp->mx, mtmp->my, mtmp->mux, mtmp->muy) <= 8))) can_tunnel = FALSE; nix = omx; -- 2.40.0