From: Pasi Kallinen Date: Wed, 7 Dec 2022 19:51:47 +0000 (+0200) Subject: Fix skipping attacks if hero moved away X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=85137bb76a754681c35a9c25eb592ba768b5b1fd;p=nethack Fix skipping attacks if hero moved away Recent change by me caused a bug where a monster was trying to attack after hero was moved away by the previous attacks. --- diff --git a/src/mhitu.c b/src/mhitu.c index ac7cb008c..625ce6fa6 100644 --- a/src/mhitu.c +++ b/src/mhitu.c @@ -418,7 +418,7 @@ mattacku(register struct monst *mtmp) * excessively verbose miss feedback when monster can do multiple * attacks and would miss the same wrong spot each time.) */ - boolean ranged, range2, foundyou, youseeit, + boolean ranged, range2, foundyou, firstfoundyou, youseeit, skipnonmagc = FALSE; calc_mattacku_vars(mtmp, &ranged, &range2, &foundyou, &youseeit); @@ -663,12 +663,13 @@ mattacku(register struct monst *mtmp) } gs.skipdrin = FALSE; /* [see mattackm(mhitm.c)] */ + firstfoundyou = foundyou; for (i = 0; i < NATTK; i++) { /* recalc in case attack moved hero */ calc_mattacku_vars(mtmp, &ranged, &range2, &foundyou, &youseeit); sum[i] = MM_MISS; - if (i > 0 && foundyou /* previous attack might have moved hero */ + if (i > 0 && firstfoundyou /* previous attack might have moved hero */ && (mtmp->mux != u.ux || mtmp->muy != u.uy)) continue; /* fill in sum[] with 'miss' but skip other actions */ mon_currwep = (struct obj *) 0;