From 48bca11d670fd9c89bab1054c2882b622ea71329 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Thu, 6 Jan 2022 14:00:52 +0200 Subject: [PATCH] Accessibility: give message for created monsters Always give a message when creating a detected monster during gameplay (as opposed to during level creation). To prevent the message, use the MM_NOMSG flag for makemon. Most places already handled their own messaging, but there were some, such as bag of tricks, create monster magic and random monsters created during gameplay that didn't. --- include/hack.h | 5 +++-- src/apply.c | 2 +- src/cmd.c | 2 +- src/dig.c | 8 ++++---- src/dog.c | 2 +- src/dokick.c | 8 ++++---- src/dothrow.c | 2 +- src/fountain.c | 10 +++++----- src/makemon.c | 11 ++++++++++- src/mcastu.c | 2 +- src/mhitu.c | 6 ++++-- src/minion.c | 8 ++++---- src/muse.c | 4 ++-- src/pickup.c | 2 +- src/potion.c | 4 ++-- src/pray.c | 2 +- src/priest.c | 4 ++-- src/read.c | 4 ++-- src/shk.c | 2 +- src/sp_lev.c | 2 +- src/timeout.c | 3 ++- src/trap.c | 5 +++-- src/wizard.c | 2 +- src/zap.c | 8 ++++---- 24 files changed, 61 insertions(+), 47 deletions(-) diff --git a/include/hack.h b/include/hack.h index dba6bcc1b..d9b59d402 100644 --- a/include/hack.h +++ b/include/hack.h @@ -291,10 +291,11 @@ typedef struct sortloot_item Loot; #define MM_NOTAIL 0x008000L /* if a long worm, don't give it a tail */ #define MM_MALE 0x010000L /* male variation */ #define MM_FEMALE 0x020000L /* female variation */ +#define MM_NOMSG 0x040000L /* no appear message */ /* if more MM_ flag masks are added, skip or renumber the GP_ one(s) */ -#define GP_ALLOW_XY 0x040000L /* [actually used by enexto() to decide whether +#define GP_ALLOW_XY 0x080000L /* [actually used by enexto() to decide whether * to make an extra call to goodpos()] */ -#define GP_ALLOW_U 0x080000L /* don't reject hero's location */ +#define GP_ALLOW_U 0x100000L /* don't reject hero's location */ /* flags for make_corpse() and mkcorpstat(); 0..7 are recorded in obj->spe */ #define CORPSTAT_NONE 0x00 diff --git a/src/apply.c b/src/apply.c index bca5a82e0..7ce9c6673 100644 --- a/src/apply.c +++ b/src/apply.c @@ -1051,7 +1051,7 @@ use_bell(struct obj **optr) && !(g.mvitals[PM_WOOD_NYMPH].mvflags & G_GONE) && !(g.mvitals[PM_WATER_NYMPH].mvflags & G_GONE) && !(g.mvitals[PM_MOUNTAIN_NYMPH].mvflags & G_GONE) - && (mtmp = makemon(mkclass(S_NYMPH, 0), u.ux, u.uy, NO_MINVENT)) + && (mtmp = makemon(mkclass(S_NYMPH, 0), u.ux, u.uy, NO_MINVENT|MM_NOMSG)) != 0) { You("summon %s!", a_monnam(mtmp)); if (!obj_resists(obj, 93, 100)) { diff --git a/src/cmd.c b/src/cmd.c index ec3f62544..9bb26fb2c 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -3015,7 +3015,7 @@ wiz_migrate_mons(void) else get_level(&tolevel, depth(&u.uz) + 1); ptr = rndmonst(); - mtmp = makemon(ptr, 0, 0, NO_MM_FLAGS); + mtmp = makemon(ptr, 0, 0, NO_MM_FLAGS|MM_NOMSG); if (mtmp) migrate_to_level(mtmp, ledger_no(&tolevel), MIGR_RANDOM, (coord *) 0); diff --git a/src/dig.c b/src/dig.c index 2f40f23a5..6e333382b 100644 --- a/src/dig.c +++ b/src/dig.c @@ -437,10 +437,10 @@ dig(void) switch (rn2(2)) { case 0: mtmp = makemon(&mons[PM_EARTH_ELEMENTAL], dpx, dpy, - NO_MM_FLAGS); + NO_MM_FLAGS|MM_NOMSG); break; default: - mtmp = makemon(&mons[PM_XORN], dpx, dpy, NO_MM_FLAGS); + mtmp = makemon(&mons[PM_XORN], dpx, dpy, NO_MM_FLAGS|MM_NOMSG); break; } if (mtmp) @@ -933,13 +933,13 @@ dig_up_grave(coord *cc) if (!Blind) pline(Hallucination ? "Dude! The living dead!" : "The grave's owner is very upset!"); - (void) makemon(mkclass(S_ZOMBIE, 0), dig_x, dig_y, NO_MM_FLAGS); + (void) makemon(mkclass(S_ZOMBIE, 0), dig_x, dig_y, MM_NOMSG); break; case 3: if (!Blind) pline(Hallucination ? "I want my mummy!" : "You've disturbed a tomb!"); - (void) makemon(mkclass(S_MUMMY, 0), dig_x, dig_y, NO_MM_FLAGS); + (void) makemon(mkclass(S_MUMMY, 0), dig_x, dig_y, MM_NOMSG); break; default: /* No corpse */ diff --git a/src/dog.c b/src/dog.c index d41f5987f..a3bed238d 100644 --- a/src/dog.c +++ b/src/dog.c @@ -99,7 +99,7 @@ make_familiar(struct obj *otmp, xchar x, xchar y, boolean quietly) } } - mmflags = MM_EDOG | MM_IGNOREWATER | NO_MINVENT; + mmflags = MM_EDOG | MM_IGNOREWATER | NO_MINVENT | MM_NOMSG; cgend = otmp ? (otmp->spe & CORPSTAT_GENDER) : 0; mmflags |= ((cgend == CORPSTAT_FEMALE) ? MM_FEMALE : (cgend == CORPSTAT_MALE) ? MM_MALE : 0L); diff --git a/src/dokick.c b/src/dokick.c index 4a4bd107c..a81d2441b 100644 --- a/src/dokick.c +++ b/src/dokick.c @@ -1133,7 +1133,7 @@ dokick(void) while (cnt--) { if (enexto(&mm, mm.x, mm.y, &mons[PM_KILLER_BEE]) && makemon(&mons[PM_KILLER_BEE], mm.x, mm.y, - MM_ANGRY)) + MM_ANGRY|MM_NOMSG)) made++; } if (made) @@ -1164,7 +1164,7 @@ dokick(void) else pline("A %s ooze gushes up from the drain!", hcolor(NH_BLACK)); - (void) makemon(&mons[PM_BLACK_PUDDING], x, y, NO_MM_FLAGS); + (void) makemon(&mons[PM_BLACK_PUDDING], x, y, MM_NOMSG); exercise(A_DEX, TRUE); newsym(x, y); g.maploc->looted |= S_LPUDDING; @@ -1174,8 +1174,8 @@ dokick(void) /* can't resist... */ pline("%s returns!", (Blind ? Something : "The dish washer")); if (makemon(&mons[PM_AMOROUS_DEMON], x, y, - (gend == 1 || (gend == 2 && rn2(2))) - ? MM_MALE : MM_FEMALE)) + MM_NOMSG | ((gend == 1 || (gend == 2 && rn2(2))) + ? MM_MALE : MM_FEMALE))) newsym(x, y); g.maploc->looted |= S_LDWASHER; exercise(A_DEX, TRUE); diff --git a/src/dothrow.c b/src/dothrow.c index c0682e77b..763a0a555 100644 --- a/src/dothrow.c +++ b/src/dothrow.c @@ -2109,7 +2109,7 @@ release_camera_demon(struct obj *obj, xchar x, xchar y) struct monst *mtmp; if (!rn2(3) && (mtmp = makemon(&mons[rn2(3) ? PM_HOMUNCULUS : PM_IMP], x, y, - NO_MM_FLAGS)) != 0) { + MM_NOMSG)) != 0) { if (canspotmon(mtmp)) pline("%s is released!", Hallucination ? An(rndmonnam(NULL)) diff --git a/src/fountain.c b/src/fountain.c index 1cf621606..fad5599d2 100644 --- a/src/fountain.c +++ b/src/fountain.c @@ -43,7 +43,7 @@ dowatersnakes(void) You_hear("%s hissing!", something); while (num-- > 0) if ((mtmp = makemon(&mons[PM_WATER_MOCCASIN], u.ux, u.uy, - NO_MM_FLAGS)) != 0 + MM_NOMSG)) != 0 && t_at(mtmp->mx, mtmp->my)) (void) mintrap(mtmp); } else @@ -58,7 +58,7 @@ dowaterdemon(void) if (!(g.mvitals[PM_WATER_DEMON].mvflags & G_GONE)) { if ((mtmp = makemon(&mons[PM_WATER_DEMON], u.ux, u.uy, - NO_MM_FLAGS)) != 0) { + MM_NOMSG)) != 0) { if (!Blind) You("unleash %s!", a_monnam(mtmp)); else @@ -86,7 +86,7 @@ dowaternymph(void) if (!(g.mvitals[PM_WATER_NYMPH].mvflags & G_GONE) && (mtmp = makemon(&mons[PM_WATER_NYMPH], u.ux, u.uy, - NO_MM_FLAGS)) != 0) { + MM_NOMSG)) != 0) { if (!Blind) You("attract %s!", a_monnam(mtmp)); else @@ -553,7 +553,7 @@ drinksink(void) if (g.mvitals[PM_SEWER_RAT].mvflags & G_GONE) pline_The("sink seems quite dirty."); else { - mtmp = makemon(&mons[PM_SEWER_RAT], u.ux, u.uy, NO_MM_FLAGS); + mtmp = makemon(&mons[PM_SEWER_RAT], u.ux, u.uy, MM_NOMSG); if (mtmp) pline("Eek! There's %s in the sink!", (Blind || !canspotmon(mtmp)) ? "something squirmy" @@ -593,7 +593,7 @@ drinksink(void) case 7: pline_The("%s moves as though of its own will!", hliquid("water")); if ((g.mvitals[PM_WATER_ELEMENTAL].mvflags & G_GONE) - || !makemon(&mons[PM_WATER_ELEMENTAL], u.ux, u.uy, NO_MM_FLAGS)) + || !makemon(&mons[PM_WATER_ELEMENTAL], u.ux, u.uy, MM_NOMSG)) pline("But it quiets down."); break; case 8: diff --git a/src/makemon.c b/src/makemon.c index d9769521e..d70fe1c28 100644 --- a/src/makemon.c +++ b/src/makemon.c @@ -1409,8 +1409,17 @@ makemon(register struct permonst *ptr, if (allow_minvent && g.migrating_objs) deliver_obj_to_mon(mtmp, 1, DF_NONE); /* in case of waiting items */ - if (!g.in_mklev) + if (!g.in_mklev) { newsym(mtmp->mx, mtmp->my); /* make sure the mon shows up */ + if (!(mmflags & MM_NOMSG) + && ((canseemon(mtmp) && (M_AP_TYPE(mtmp) == M_AP_NOTHING + || M_AP_TYPE(mtmp) == M_AP_MONSTER)) + || sensemon(mtmp))) + pline("%s suddenly appears%s!", Amonnam(mtmp), + distu(x, y) <= 2 ? " next to you" + : (distu(x, y) <= (BOLT_LIM * BOLT_LIM)) ? " close by" : ""); + /* TODO: unify with teleport appears msg */ + } return mtmp; } diff --git a/src/mcastu.c b/src/mcastu.c index 76a53fd2f..7d5dfaac6 100644 --- a/src/mcastu.c +++ b/src/mcastu.c @@ -613,7 +613,7 @@ cast_cleric_spell(struct monst *mtmp, int dmg, int spellnum) if (!enexto(&bypos, mtmp->mux, mtmp->muy, mtmp->data)) break; if ((pm = mkclass(let, 0)) != 0 - && (mtmp2 = makemon(pm, bypos.x, bypos.y, MM_ANGRY)) != 0) { + && (mtmp2 = makemon(pm, bypos.x, bypos.y, MM_ANGRY|MM_NOMSG)) != 0) { success = TRUE; mtmp2->msleeping = mtmp2->mpeaceful = mtmp2->mtame = 0; set_malign(mtmp2); diff --git a/src/mhitu.c b/src/mhitu.c index 99adda4a2..002712048 100644 --- a/src/mhitu.c +++ b/src/mhitu.c @@ -838,9 +838,10 @@ summonmu(struct monst *mtmp, boolean youseeit) char buf[BUFSZ], genericwere[BUFSZ]; Strcpy(genericwere, "creature"); + if (youseeit) + pline("%s summons help!", Monnam(mtmp)); numhelp = were_summon(mdat, FALSE, &numseen, genericwere); if (youseeit) { - pline("%s summons help!", Monnam(mtmp)); if (numhelp > 0) { if (numseen == 0) You_feel("hemmed in."); @@ -2300,7 +2301,8 @@ cloneu(void) return (struct monst *) 0; if (g.mvitals[mndx].mvflags & G_EXTINCT) return (struct monst *) 0; - mon = makemon(g.youmonst.data, u.ux, u.uy, NO_MINVENT | MM_EDOG); + mon = makemon(g.youmonst.data, u.ux, u.uy, + NO_MINVENT | MM_EDOG | MM_NOMSG); if (!mon) return NULL; mon->mcloned = 1; diff --git a/src/minion.c b/src/minion.c index 50885709b..70e281565 100644 --- a/src/minion.c +++ b/src/minion.c @@ -142,7 +142,7 @@ msummon(struct monst *mon) xlight = FALSE; while (cnt > 0) { - mtmp = makemon(&mons[dtype], u.ux, u.uy, MM_EMIN); + mtmp = makemon(&mons[dtype], u.ux, u.uy, MM_EMIN|MM_NOMSG); if (mtmp) { result++; /* an angel's alignment should match the summoner */ @@ -215,7 +215,7 @@ summon_minion(aligntyp alignment, boolean talk) if (mnum == NON_PM) { mon = 0; } else if (mnum == PM_ANGEL) { - mon = makemon(&mons[mnum], u.ux, u.uy, MM_EMIN); + mon = makemon(&mons[mnum], u.ux, u.uy, MM_EMIN|MM_NOMSG); if (mon) { mon->isminion = 1; EMIN(mon)->min_align = alignment; @@ -225,14 +225,14 @@ summon_minion(aligntyp alignment, boolean talk) && mnum != PM_ALIGNED_CLERIC && mnum != PM_HIGH_CLERIC) { /* This was mons[mnum].pxlth == 0 but is this restriction appropriate or necessary now that the structures are separate? */ - mon = makemon(&mons[mnum], u.ux, u.uy, MM_EMIN); + mon = makemon(&mons[mnum], u.ux, u.uy, MM_EMIN|MM_NOMSG); if (mon) { mon->isminion = 1; EMIN(mon)->min_align = alignment; EMIN(mon)->renegade = FALSE; } } else { - mon = makemon(&mons[mnum], u.ux, u.uy, NO_MM_FLAGS); + mon = makemon(&mons[mnum], u.ux, u.uy, MM_NOMSG); } if (mon) { if (talk) { diff --git a/src/muse.c b/src/muse.c index 5336d275f..f9026204e 100644 --- a/src/muse.c +++ b/src/muse.c @@ -65,7 +65,7 @@ precheck(struct monst* mon, struct obj* obj) return 0; mquaffmsg(mon, obj); m_useup(mon, obj); - mtmp = makemon(&mons[PM_GHOST], cc.x, cc.y, NO_MM_FLAGS); + mtmp = makemon(&mons[PM_GHOST], cc.x, cc.y, MM_NOMSG); if (!mtmp) { if (vis) pline1(empty); @@ -91,7 +91,7 @@ precheck(struct monst* mon, struct obj* obj) return 0; mquaffmsg(mon, obj); m_useup(mon, obj); - mtmp = makemon(&mons[PM_DJINNI], cc.x, cc.y, NO_MM_FLAGS); + mtmp = makemon(&mons[PM_DJINNI], cc.x, cc.y, MM_NOMSG); if (!mtmp) { if (vis) pline1(empty); diff --git a/src/pickup.c b/src/pickup.c index e0e62c98f..8539b2e8d 100644 --- a/src/pickup.c +++ b/src/pickup.c @@ -2586,7 +2586,7 @@ observe_quantum_cat(struct obj *box, boolean makecat, boolean givemsg) if (itsalive) { if (makecat) livecat = makemon(&mons[PM_HOUSECAT], box->ox, box->oy, - NO_MINVENT | MM_ADJACENTOK); + NO_MINVENT | MM_ADJACENTOK | MM_NOMSG); if (livecat) { livecat->mpeaceful = 1; set_malign(livecat); diff --git a/src/potion.c b/src/potion.c index a8bad0fa1..87c62d7d7 100644 --- a/src/potion.c +++ b/src/potion.c @@ -465,7 +465,7 @@ self_invis_message(void) static void ghost_from_bottle(void) { - struct monst *mtmp = makemon(&mons[PM_GHOST], u.ux, u.uy, NO_MM_FLAGS); + struct monst *mtmp = makemon(&mons[PM_GHOST], u.ux, u.uy, MM_NOMSG); if (!mtmp) { pline("This bottle turns out to be empty."); @@ -2567,7 +2567,7 @@ djinni_from_bottle(struct obj *obj) struct monst *mtmp; int chance; - if (!(mtmp = makemon(&mons[PM_DJINNI], u.ux, u.uy, NO_MM_FLAGS))) { + if (!(mtmp = makemon(&mons[PM_DJINNI], u.ux, u.uy, MM_NOMSG))) { pline("It turns out to be empty."); return; } diff --git a/src/pray.c b/src/pray.c index 75ca2941e..a6b57a5f6 100644 --- a/src/pray.c +++ b/src/pray.c @@ -1426,7 +1426,7 @@ dosacrifice(void) demonless_msg = "blood coagulates"; } if ((pm = dlord(altaralign)) != NON_PM - && (dmon = makemon(&mons[pm], u.ux, u.uy, NO_MM_FLAGS)) + && (dmon = makemon(&mons[pm], u.ux, u.uy, MM_NOMSG)) != 0) { char dbuf[BUFSZ]; diff --git a/src/priest.c b/src/priest.c index 63692de00..2b97fe130 100644 --- a/src/priest.c +++ b/src/priest.c @@ -514,7 +514,7 @@ intemple(int roomno) make sure we give one the first time */ } if (!rn2(5) - && (mtmp = makemon(&mons[PM_GHOST], u.ux, u.uy, NO_MM_FLAGS)) + && (mtmp = makemon(&mons[PM_GHOST], u.ux, u.uy, MM_NOMSG)) != 0) { int ngen = g.mvitals[PM_GHOST].born; if (canspotmon(mtmp)) @@ -678,7 +678,7 @@ mk_roamer(struct permonst *ptr, aligntyp alignment, xchar x, xchar y, if (MON_AT(x, y)) (void) rloc(m_at(x, y), RLOC_NOMSG); /* insurance */ - if (!(roamer = makemon(ptr, x, y, MM_ADJACENTOK | MM_EMIN))) + if (!(roamer = makemon(ptr, x, y, MM_ADJACENTOK | MM_EMIN | MM_NOMSG))) return (struct monst *) 0; EMIN(roamer)->min_align = alignment; diff --git a/src/read.c b/src/read.c index bd25f9c4c..e92baeb7f 100644 --- a/src/read.c +++ b/src/read.c @@ -1584,7 +1584,7 @@ seffect_light(struct obj **sobjp) for (i = 0; i < numlights; ++i) { struct monst * mon = makemon(&mons[pm], u.ux, u.uy, - MM_EDOG | NO_MINVENT); + MM_EDOG | NO_MINVENT | MM_NOMSG); initedog(mon); mon->msleeping = 0; mon->mcan = TRUE; @@ -2680,7 +2680,7 @@ do_genocide(int how) if (!(mons[mndx].geno & G_UNIQ) && !(g.mvitals[mndx].mvflags & (G_GENOD | G_EXTINCT))) for (i = rn1(3, 4); i > 0; i--) { - if (!makemon(ptr, u.ux, u.uy, NO_MINVENT)) + if (!makemon(ptr, u.ux, u.uy, NO_MINVENT|MM_NOMSG)) break; /* couldn't make one */ ++cnt; if (g.mvitals[mndx].mvflags & G_EXTINCT) diff --git a/src/shk.c b/src/shk.c index 8d5b72092..35578c23c 100644 --- a/src/shk.c +++ b/src/shk.c @@ -4108,7 +4108,7 @@ makekops(coord* mm) while (cnt--) if (enexto(mm, mm->x, mm->y, &mons[mndx])) - (void) makemon(&mons[mndx], mm->x, mm->y, NO_MM_FLAGS); + (void) makemon(&mons[mndx], mm->x, mm->y, MM_NOMSG); } } diff --git a/src/sp_lev.c b/src/sp_lev.c index a273c0189..5ec3ca445 100644 --- a/src/sp_lev.c +++ b/src/sp_lev.c @@ -2243,7 +2243,7 @@ create_object(object* o, struct mkroom* croom) */ for (wastyp = otmp->corpsenm; i < 1000; i++, wastyp = rndmonnum()) { /* makemon without rndmonst() might create a group */ - was = makemon(&mons[wastyp], 0, 0, MM_NOCOUNTBIRTH); + was = makemon(&mons[wastyp], 0, 0, MM_NOCOUNTBIRTH|MM_NOMSG); if (was) { if (!resists_ston(was) && !poly_when_stoned(&mons[wastyp])) { (void) propagate(wastyp, TRUE, FALSE); diff --git a/src/timeout.c b/src/timeout.c index b1ef4cbba..8b473e5ec 100644 --- a/src/timeout.c +++ b/src/timeout.c @@ -901,7 +901,8 @@ hatch_egg(anything *arg, long timeout) && !(g.mvitals[mnum].mvflags & (G_GENOD | G_EXTINCT))) { for (i = hatchcount; i > 0; i--) { if (!enexto(&cc, x, y, &mons[mnum]) - || !(mon = makemon(&mons[mnum], cc.x, cc.y, NO_MINVENT))) + || !(mon = makemon(&mons[mnum], cc.x, cc.y, + NO_MINVENT|MM_NOMSG))) break; /* tame if your own egg hatches while you're on the same dungeon level, or any dragon egg which hatches diff --git a/src/trap.c b/src/trap.c index a33b2b35f..e600b1871 100644 --- a/src/trap.c +++ b/src/trap.c @@ -410,7 +410,8 @@ maketrap(int x, int y, int typ) && sgn(u.ualign.type) == sgn(mptr->maligntyp)); statue = mkcorpstat(STATUE, (struct monst *) 0, mptr, x, y, CORPSTAT_NONE); - mtmp = makemon(&mons[statue->corpsenm], 0, 0, MM_NOCOUNTBIRTH); + mtmp = makemon(&mons[statue->corpsenm], 0, 0, + MM_NOCOUNTBIRTH|MM_NOMSG); if (!mtmp) break; /* should never happen */ while (mtmp->minvent) { @@ -637,7 +638,7 @@ animate_statue( wary_dog(mon, TRUE); } else { int sgend = (statue->spe & CORPSTAT_GENDER); - long mmflags = (NO_MINVENT + long mmflags = (NO_MINVENT | MM_NOMSG | ((sgend == CORPSTAT_MALE) ? MM_MALE : 0) | ((sgend == CORPSTAT_FEMALE) ? MM_FEMALE : 0)); diff --git a/src/wizard.c b/src/wizard.c index 5b33ca2b4..6de3a8fd4 100644 --- a/src/wizard.c +++ b/src/wizard.c @@ -629,7 +629,7 @@ nasty(struct monst *summoner) limit spellcasters to inhibit chain summoning */ if ((mtmp = makemon((struct permonst *) 0, bypos.x, bypos.y, - NO_MM_FLAGS)) != 0) { + NO_MM_FLAGS|MM_NOMSG)) != 0) { m_cls = mtmp->data->mlet; if ((difcap > 0 && mtmp->data->difficulty >= difcap && attacktype(mtmp->data, AT_MAGC)) diff --git a/src/zap.c b/src/zap.c index bb9434fdc..6396c8fef 100644 --- a/src/zap.c +++ b/src/zap.c @@ -618,7 +618,7 @@ montraits(struct obj *obj, coord *cc, give mtmp any; it will be given a new 'wormno' though (unless those are exhausted) so be able to grow new tail segments */ - | MM_NOTAIL + | MM_NOTAIL | MM_NOMSG | (adjacentok ? MM_ADJACENTOK : 0))); if (!mtmp) { /* mtmp2 is a copy of obj's object->oextra->omonst extension @@ -775,7 +775,7 @@ revive(struct obj *corpse, boolean by_hero) coord xy; xchar x, y; boolean one_of; - long mmflags = NO_MINVENT | MM_NOWAIT; + long mmflags = NO_MINVENT | MM_NOWAIT | MM_NOMSG; int montype, cgend, container_nesting = 0; boolean is_zomb = (mons[corpse->corpsenm].mlet == S_ZOMBIE); @@ -1482,7 +1482,7 @@ create_polymon(struct obj *obj, int okind) if (!(g.mvitals[pm_index].mvflags & G_GENOD)) mdat = &mons[pm_index]; - mtmp = makemon(mdat, obj->ox, obj->oy, NO_MM_FLAGS); + mtmp = makemon(mdat, obj->ox, obj->oy, MM_NOMSG); polyuse(obj, okind, (int) mons[pm_index].cwt); if (mtmp && cansee(mtmp->mx, mtmp->my)) { @@ -1867,7 +1867,7 @@ stone_to_flesh_obj(struct obj *obj) } else { /* (obj->otyp == FIGURINE) */ if (golem_xform) ptr = &mons[PM_FLESH_GOLEM]; - mon = makemon(ptr, oox, ooy, NO_MINVENT); + mon = makemon(ptr, oox, ooy, NO_MINVENT|MM_NOMSG); if (mon) { if (costly_spot(oox, ooy) && (carried(obj) ? obj->unpaid : !obj->no_charge)) {