From 3862979e881663e0144ada5586151db69fbc201a Mon Sep 17 00:00:00 2001 From: PatR Date: Wed, 31 Aug 2022 16:34:56 -0700 Subject: [PATCH] summon nasties feedback Reported by entrez: when a monster casts the "summon nasties" spell, double feedback was given. First it produced "a appears" for each visible monster and then " appear from nowhere" at the end. The latter would have been ok at the begining but made it seem as if even more monsters were arriving when given at the end. Skip the monster-by-monster feedback and just give the summary at the end. That's enough information for a blind player to know to check the map for new monsters. When summon nasties is performed as randomly chosen harassment after killing the Wizard, it still gives the enumerated "a appears" feedback but does not give the "from nowhere" message at the end. --- src/wizard.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/wizard.c b/src/wizard.c index 6093559a0..0b3056d38 100644 --- a/src/wizard.c +++ b/src/wizard.c @@ -563,6 +563,9 @@ nasty(struct monst *summoner) coord bypos; int i, j, count, census, tmp, makeindex, s_cls, m_cls, difcap, trylimit, castalign; + /* when a monster casts the "summon nasties" spell, it gives feedback; + when random post-Wizard harassment casts that, we give feedback */ + unsigned mmflags = summoner ? MM_NOMSG : NO_MM_FLAGS; #define MAXNASTIES 10 /* more than this can be created */ @@ -623,7 +626,7 @@ nasty(struct monst *summoner) /* this honors genocide but overrides extinction; it ignores inside-hell-only (G_HELL) & outside-hell-only (G_NOHELL) */ if ((mtmp = makemon(&mons[makeindex], bypos.x, bypos.y, - NO_MM_FLAGS)) != 0) { + mmflags)) != 0) { mtmp->msleeping = mtmp->mpeaceful = mtmp->mtame = 0; set_malign(mtmp); } else { @@ -631,8 +634,7 @@ nasty(struct monst *summoner) unlike direct choice, not forced to be hostile [why?]; limit spellcasters to inhibit chain summoning */ if ((mtmp = makemon((struct permonst *) 0, - bypos.x, bypos.y, - MM_NOMSG)) != 0) { + bypos.x, bypos.y, mmflags)) != 0) { m_cls = mtmp->data->mlet; if ((difcap > 0 && mtmp->data->difficulty >= difcap && attacktype(mtmp->data, AT_MAGC))