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.
This commit is contained in:
+3
-2
@@ -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
|
||||
|
||||
+1
-1
@@ -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)) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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);
|
||||
|
||||
+4
-4
@@ -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);
|
||||
|
||||
+1
-1
@@ -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))
|
||||
|
||||
+5
-5
@@ -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:
|
||||
|
||||
+10
-1
@@ -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;
|
||||
}
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+4
-2
@@ -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;
|
||||
|
||||
+4
-4
@@ -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) {
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+2
-2
@@ -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;
|
||||
}
|
||||
|
||||
+1
-1
@@ -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];
|
||||
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+2
-2
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
+3
-2
@@ -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));
|
||||
|
||||
|
||||
+1
-1
@@ -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))
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user