re-fix #H1371 - dead monster fleeing

From a bug report, a monster which
died by moving into a trap which was next to the hero standing on Elbereth
resulted in "The <mon> is killed!  The <mon> turns to flee!".  An earlier
change made monflee() return if it's given a dead monster, so the fleeing
message is no longer given.  This fixes the place where monflee() was
inappropriately being called for a dead monster in the reported situation.
This commit is contained in:
nethack.rankin
2007-08-20 00:05:24 +00:00
parent 6bf7c5a1eb
commit 86fccb4e1a
2 changed files with 5 additions and 3 deletions
+1
View File
@@ -18,6 +18,7 @@ grammar of messages regarding eating artifacts
avoid a message about an invisible monster looking much better avoid a message about an invisible monster looking much better
player polymorphed as a xorn could not pick up items in pits player polymorphed as a xorn could not pick up items in pits
don't display "turns to flee" message for a mimicing mimic don't display "turns to flee" message for a mimicing mimic
don't display "turns to flee" message for a monster who has just died
dipping acid in a fountain could cause an explosion but not destroy the potion dipping acid in a fountain could cause an explosion but not destroy the potion
if your blindfold glows and you're not otherwise blinded, you can see it if your blindfold glows and you're not otherwise blinded, you can see it
added strsubst() to hacklib added strsubst() to hacklib
+4 -3
View File
@@ -1,4 +1,4 @@
/* SCCS Id: @(#)monmove.c 3.5 2007/05/16 */ /* SCCS Id: @(#)monmove.c 3.5 2007/08/19 */
/* 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. */
@@ -252,7 +252,7 @@ boolean fleemsg;
} }
STATIC_OVL void STATIC_OVL void
distfleeck(mtmp,inrange,nearby,scared) distfleeck(mtmp, inrange, nearby, scared)
register struct monst *mtmp; register struct monst *mtmp;
int *inrange, *nearby, *scared; int *inrange, *nearby, *scared;
{ {
@@ -531,7 +531,8 @@ toofar:
} }
tmp = m_move(mtmp, 0); tmp = m_move(mtmp, 0);
distfleeck(mtmp,&inrange,&nearby,&scared); /* recalc */ if (tmp != 2)
distfleeck(mtmp, &inrange, &nearby, &scared); /* recalc */
switch (tmp) { switch (tmp) {
case 0: /* no movement, but it can still attack you */ case 0: /* no movement, but it can still attack you */