make attack result macros more distinguishable from makemon macros

Use the MM_ prefix only for the makemon macros, and change these five as follows:

 MM_MISS 0x0     -> M_ATTK_MISS      /* aggressor missed */
 MM_HIT 0x1      -> M_ATTK_HIT       /* aggressor hit defender */
 MM_DEF_DIED 0x2 -> M_ATTK_DEF_DIED  /* defender died */
 MM_AGR_DIED 0x4 -> M_ATTK_AGR_DIED  /* aggressor died */
 MM_AGR_DONE 0x8 -> M_ATTK_AGR_DONE  /* aggressor is done with their turn */

include/hack.h:#define NO_MM_FLAGS     0x000000L /* use this rather than plain 0 */
include/hack.h:#define MM_NOWAIT       0x000002L /* don't set STRAT_WAITMASK flags */
include/hack.h:#define MM_NOCOUNTBIRTH 0x000004L /* don't increment born count (for revival) */
include/hack.h:#define MM_IGNOREWATER  0x000008L /* ignore water when positioning */
include/hack.h:#define MM_ADJACENTOK   0x000010L /* acceptable to use adjacent coordinates */
include/hack.h:#define MM_ANGRY        0x000020L /* monster is created angry */
include/hack.h:#define MM_NONAME       0x000040L /* monster is not christened */
include/hack.h:#define MM_EGD          0x000100L /* add egd structure */
include/hack.h:#define MM_EPRI         0x000200L /* add epri structure */
include/hack.h:#define MM_ESHK         0x000400L /* add eshk structure */
include/hack.h:#define MM_EMIN         0x000800L /* add emin structure */
include/hack.h:#define MM_EDOG         0x001000L /* add edog structure */
include/hack.h:#define MM_ASLEEP       0x002000L /* monsters should be generated asleep */
include/hack.h:#define MM_NOGRP        0x004000L /* suppress creation of monster groups */
include/hack.h:#define MM_NOTAIL       0x008000L /* if a long worm, don't give it a tail */
include/hack.h:#define MM_MALE         0x010000L /* male variation */
include/hack.h:#define MM_FEMALE       0x020000L /* female variation */
include/hack.h:#define MM_NOMSG        0x040000L /* no appear message */

include/hack.h:#define MM_NOEXCLAM     0x400000L /* more sedate "<mon> appears." mesg for ^G */
include/hack.h:#define MM_IGNORELAVA   0x800000L /* ignore lava when positioning */
This commit is contained in:
nhmall
2023-03-19 12:19:34 -04:00
parent e29bfcab54
commit 5f69dc6228
10 changed files with 227 additions and 227 deletions

View File

@@ -93,7 +93,7 @@
struct mhitm_data {
int damage;
int hitflags; /* MM_DEF_DIED | MM_AGR_DIED | ... */
int hitflags; /* M_ATTK_DEF_DIED | M_ATTK_AGR_DIED | ... */
boolean done;
boolean permdmg;
int specialdmg;
@@ -105,10 +105,10 @@ struct mhitm_data {
* any or all of the following can be returned. See mattackm() for more
* details.
*/
#define MM_MISS 0x0 /* aggressor missed */
#define MM_HIT 0x1 /* aggressor hit defender */
#define MM_DEF_DIED 0x2 /* defender died */
#define MM_AGR_DIED 0x4 /* aggressor died */
#define MM_AGR_DONE 0x8 /* aggressor is done with their turn */
#define M_ATTK_MISS 0x0 /* aggressor missed */
#define M_ATTK_HIT 0x1 /* aggressor hit defender */
#define M_ATTK_DEF_DIED 0x2 /* defender died */
#define M_ATTK_AGR_DIED 0x4 /* aggressor died */
#define M_ATTK_AGR_DONE 0x8 /* aggressor is done with their turn */
#endif /* MONATTK_H */

View File

@@ -876,7 +876,7 @@ pet_ranged_attk(struct monst *mtmp)
/* Hungry pets are unlikely to use breath/spit attacks */
if (mtarg && (!hungry || !rn2(5))) {
int mstatus = MM_MISS;
int mstatus = M_ATTK_MISS;
if (mtarg == &gy.youmonst) {
if (mattacku(mtmp))
@@ -887,19 +887,19 @@ pet_ranged_attk(struct monst *mtmp)
* and "attacked but didn't die" cases, and this is preferable
* to letting the pet attack the player and continuing to move.
*/
mstatus = MM_HIT;
mstatus = M_ATTK_HIT;
} else {
mstatus = mattackm(mtmp, mtarg);
/* Shouldn't happen, really */
if (mstatus & MM_AGR_DIED)
if (mstatus & M_ATTK_AGR_DIED)
return MMOVE_DIED;
/* Allow the targeted nasty to strike back - if
* the targeted beast doesn't have a ranged attack,
* nothing will happen.
*/
if ((mstatus & MM_HIT) && !(mstatus & MM_DEF_DIED)
if ((mstatus & M_ATTK_HIT) && !(mstatus & M_ATTK_DEF_DIED)
&& rn2(4) && mtarg != &gy.youmonst) {
/* Can monster see? If it can, it can retaliate
@@ -909,7 +909,7 @@ pet_ranged_attk(struct monst *mtmp)
*/
if (mtarg->mcansee && haseyes(mtarg->data)) {
mstatus = mattackm(mtarg, mtmp);
if (mstatus & MM_DEF_DIED)
if (mstatus & M_ATTK_DEF_DIED)
return MMOVE_DIED;
}
}
@@ -922,9 +922,9 @@ pet_ranged_attk(struct monst *mtmp)
* only ever try ranged options
* 2. if the only attacks available to mattackm are ranged
* options, and the monster cannot make a ranged attack, it
* will return MM_MISS.
* will return M_ATTK_MISS.
*/
if (mstatus != MM_MISS)
if (mstatus != M_ATTK_MISS)
return MMOVE_DONE;
}
return MMOVE_NOTHING;
@@ -1097,16 +1097,16 @@ dog_move(register struct monst *mtmp,
mstatus = mattackm(mtmp, mtmp2);
/* aggressor (pet) died */
if (mstatus & MM_AGR_DIED)
if (mstatus & M_ATTK_AGR_DIED)
return MMOVE_DIED;
if ((mstatus & MM_HIT) && !(mstatus & MM_DEF_DIED) && rn2(4)
if ((mstatus & M_ATTK_HIT) && !(mstatus & M_ATTK_DEF_DIED) && rn2(4)
&& mtmp2->mlstmv != gm.moves
&& !onscary(mtmp->mx, mtmp->my, mtmp2)
/* monnear check needed: long worms hit on tail */
&& monnear(mtmp2, mtmp->mx, mtmp->my)) {
mstatus = mattackm(mtmp2, mtmp); /* return attack */
if (mstatus & MM_DEF_DIED)
if (mstatus & M_ATTK_DEF_DIED)
return MMOVE_DIED;
}
return MMOVE_DONE;
@@ -1117,7 +1117,7 @@ dog_move(register struct monst *mtmp,
register struct monst *mtmp2 = m_at(nx, ny);
mstatus = mdisplacem(mtmp, mtmp2, FALSE); /* displace monster */
if (mstatus & MM_DEF_DIED)
if (mstatus & M_ATTK_DEF_DIED)
return MMOVE_DIED;
return MMOVE_NOTHING;
}

View File

@@ -207,9 +207,9 @@ kick_monster(struct monst *mon, coordxy x, coordxy y)
} else if (tmp > kickdieroll) {
You("kick %s.", mon_nam(mon));
sum = damageum(mon, uattk, specialdmg);
(void) passive(mon, uarmf, (sum != MM_MISS),
!(sum & MM_DEF_DIED), AT_KICK, FALSE);
if ((sum & MM_DEF_DIED))
(void) passive(mon, uarmf, (sum != M_ATTK_MISS),
!(sum & M_ATTK_DEF_DIED), AT_KICK, FALSE);
if ((sum & M_ATTK_DEF_DIED))
break; /* Defender died */
} else {
missum(mon, uattk, (tmp + armorpenalty > kickdieroll));

View File

@@ -582,13 +582,13 @@ eat_brains(
{
struct permonst *pd = mdef->data;
boolean give_nutrit = FALSE;
int result = MM_HIT, xtra_dmg = rnd(10);
int result = M_ATTK_HIT, xtra_dmg = rnd(10);
if (noncorporeal(pd)) {
if (visflag)
pline("%s brain is unharmed.",
(mdef == &gy.youmonst) ? "Your" : s_suffix(Monnam(mdef)));
return MM_MISS; /* side-effects can't occur */
return M_ATTK_MISS; /* side-effects can't occur */
} else if (magr == &gy.youmonst) {
You("eat %s brain!", s_suffix(mon_nam(mdef)));
} else if (mdef == &gy.youmonst) {
@@ -614,12 +614,12 @@ eat_brains(
monstone(magr);
if (!DEADMONSTER(magr)) {
/* life-saved; don't continue eating the brains */
return MM_MISS;
return M_ATTK_MISS;
} else {
if (magr->mtame && !visflag)
/* parallels mhitm.c's brief_feeling */
You("have a sad thought for a moment, then it passes.");
return MM_AGR_DIED;
return M_ATTK_AGR_DIED;
}
}
}
@@ -632,7 +632,7 @@ eat_brains(
if (mindless(pd)) { /* (cannibalism not possible here) */
pline("%s doesn't notice.", Monnam(mdef));
/* all done; no extra harm inflicted upon target */
return MM_MISS;
return M_ATTK_MISS;
} else if (is_rider(pd)) {
pline("Ingesting that is fatal.");
Sprintf(gk.killer.name, "unwisely ate the brain of %s",
@@ -697,11 +697,11 @@ eat_brains(
if (mindless(pd)) {
if (visflag && canspotmon(mdef))
pline("%s doesn't notice.", Monnam(mdef));
return MM_MISS;
return M_ATTK_MISS;
} else if (is_rider(pd)) {
mondied(magr);
if (DEADMONSTER(magr))
result = MM_AGR_DIED;
result = M_ATTK_AGR_DIED;
/* Rider takes extra damage regardless of whether attacker dies */
*dmg_p += xtra_dmg;
} else {

View File

@@ -210,20 +210,20 @@ castmu(
if (foundyou)
impossible(
"spellcasting monster found you and doesn't know it?");
return MM_MISS;
return M_ATTK_MISS;
}
break;
}
} while (--cnt > 0
&& spell_would_be_useless(mtmp, mattk->adtyp, spellnum));
if (cnt == 0)
return MM_MISS;
return M_ATTK_MISS;
}
/* monster unable to cast spells? */
if (mtmp->mcan || mtmp->mspec_used || !ml) {
cursetxt(mtmp, is_undirected_spell(mattk->adtyp, spellnum));
return MM_MISS;
return M_ATTK_MISS;
}
if (mattk->adtyp == AD_SPEL || mattk->adtyp == AD_CLRC) {
@@ -241,7 +241,7 @@ castmu(
canseemon(mtmp) ? Monnam(mtmp) : "Something",
is_waterwall(mtmp->mux,mtmp->muy) ? "empty water"
: "thin air");
return MM_MISS;
return M_ATTK_MISS;
}
nomul(0);
@@ -249,7 +249,7 @@ castmu(
Soundeffect(se_air_crackles, 60);
if (canseemon(mtmp) && !Deaf)
pline_The("air crackles around %s.", mon_nam(mtmp));
return MM_MISS;
return M_ATTK_MISS;
}
if (canspotmon(mtmp) || !is_undirected_spell(mattk->adtyp, spellnum)) {
pline("%s casts a spell%s!",
@@ -275,7 +275,7 @@ castmu(
impossible(
"%s casting non-hand-to-hand version of hand-to-hand spell %d?",
Monnam(mtmp), mattk->adtyp);
return MM_MISS;
return M_ATTK_MISS;
}
} else if (mattk->damd)
dmg = d((int) ((ml / 2) + mattk->damn), (int) mattk->damd);
@@ -284,7 +284,7 @@ castmu(
if (Half_spell_damage)
dmg = (dmg + 1) / 2;
ret = MM_HIT;
ret = M_ATTK_HIT;
switch (mattk->adtyp) {
case AD_FIRE:
pline("You're enveloped in flames.");
@@ -913,11 +913,11 @@ buzzmu(struct monst *mtmp, struct attack *mattk)
/* don't print constant stream of curse messages for 'normal'
spellcasting monsters at range */
if (!BZ_VALID_ADTYP(mattk->adtyp))
return MM_MISS;
return M_ATTK_MISS;
if (mtmp->mcan || m_seenres(mtmp, cvt_adtyp_to_mseenres(mattk->adtyp))) {
cursetxt(mtmp, FALSE);
return MM_MISS;
return M_ATTK_MISS;
}
if (lined_up(mtmp) && rn2(3)) {
nomul(0);
@@ -928,9 +928,9 @@ buzzmu(struct monst *mtmp, struct attack *mattk)
buzz(BZ_M_SPELL(BZ_OFS_AD(mattk->adtyp)), (int) mattk->damn,
mtmp->mx, mtmp->my, sgn(gt.tbx), sgn(gt.tby));
gb.buzzer = 0;
return MM_HIT;
return M_ATTK_HIT;
}
return MM_MISS;
return M_ATTK_MISS;
}
/*mcastu.c*/

View File

@@ -144,7 +144,7 @@ fightm(register struct monst *mtmp)
gn.notonhead = 0;
result = mattackm(mtmp, mon);
if (result & MM_AGR_DIED)
if (result & M_ATTK_AGR_DIED)
return 1; /* mtmp died */
/*
* If mtmp has the hero swallowed, lie and say there
@@ -156,14 +156,14 @@ fightm(register struct monst *mtmp)
/* Allow attacked monsters a chance to hit back. Primarily
* to allow monsters that resist conflict to respond.
*/
if ((result & MM_HIT) && !(result & MM_DEF_DIED) && rn2(4)
if ((result & M_ATTK_HIT) && !(result & M_ATTK_DEF_DIED) && rn2(4)
&& mon->movement >= NORMAL_SPEED) {
mon->movement -= NORMAL_SPEED;
gn.notonhead = 0;
(void) mattackm(mon, mtmp); /* return attack */
}
return (result & MM_HIT) ? 1 : 0;
return (result & M_ATTK_HIT) ? 1 : 0;
}
}
}
@@ -183,23 +183,23 @@ mdisplacem(register struct monst *magr, register struct monst *mdef,
/* sanity checks; could matter if we unexpectedly get a long worm */
if (!magr || !mdef || magr == mdef)
return MM_MISS;
return M_ATTK_MISS;
pa = magr->data, pd = mdef->data;
tx = mdef->mx, ty = mdef->my; /* destination */
fx = magr->mx, fy = magr->my; /* current location */
if (m_at(fx, fy) != magr || m_at(tx, ty) != mdef)
return MM_MISS;
return M_ATTK_MISS;
/* The 1 in 7 failure below matches the chance in do_attack()
* for pet displacement.
*/
if (!rn2(7))
return MM_MISS;
return M_ATTK_MISS;
/* Grid bugs cannot displace at an angle. */
if (pa == &mons[PM_GRID_BUG] && magr->mx != mdef->mx
&& magr->my != mdef->my)
return MM_MISS;
return M_ATTK_MISS;
/* undetected monster becomes un-hidden if it is displaced */
if (mdef->mundetected)
@@ -222,7 +222,7 @@ mdisplacem(register struct monst *magr, register struct monst *mdef,
if (!which_armor(magr, W_ARMG)) {
if (poly_when_stoned(pa)) {
mon_to_stone(magr);
return MM_HIT; /* no damage during the polymorph */
return M_ATTK_HIT; /* no damage during the polymorph */
}
if (!quietly && canspotmon(magr)) {
if (gv.vis) {
@@ -233,10 +233,10 @@ mdisplacem(register struct monst *magr, register struct monst *mdef,
}
monstone(magr);
if (!DEADMONSTER(magr))
return MM_HIT; /* lifesaved */
return M_ATTK_HIT; /* lifesaved */
else if (magr->mtame && !gv.vis)
You(brief_feeling, "peculiarly sad");
return MM_AGR_DIED;
return M_ATTK_AGR_DIED;
}
}
@@ -260,7 +260,7 @@ mdisplacem(register struct monst *magr, register struct monst *mdef,
newsym(tx, ty); /* all happen */
flush_screen(0); /* make sure it shows up */
return MM_HIT;
return M_ATTK_HIT;
}
/*
@@ -272,11 +272,11 @@ mdisplacem(register struct monst *magr, register struct monst *mdef,
* / / /
* x x x
*
* 0x8 MM_AGR_DONE
* 0x4 MM_AGR_DIED
* 0x2 MM_DEF_DIED
* 0x1 MM_HIT
* 0x0 MM_MISS
* 0x8 M_ATTK_AGR_DONE
* 0x4 M_ATTK_AGR_DIED
* 0x2 M_ATTK_DEF_DIED
* 0x1 M_ATTK_HIT
* 0x0 M_ATTK_MISS
*
* Each successive attack has a lower probability of hitting. Some rely on
* success of previous attacks. ** this doesn't seem to be implemented -dl **
@@ -298,16 +298,16 @@ mattackm(register struct monst *magr, register struct monst *mdef)
struct permonst *pa, *pd;
if (!magr || !mdef)
return MM_MISS; /* mike@genat */
return M_ATTK_MISS; /* mike@genat */
if (helpless(magr))
return MM_MISS;
return M_ATTK_MISS;
pa = magr->data;
pd = mdef->data;
/* Grid bugs cannot attack at an angle. */
if (pa == &mons[PM_GRID_BUG] && magr->mx != mdef->mx
&& magr->my != mdef->my)
return MM_MISS;
return M_ATTK_MISS;
/* Calculate the armour class differential. */
tmp = find_mac(mdef) + magr->m_lev;
@@ -358,7 +358,7 @@ mattackm(register struct monst *magr, register struct monst *mdef)
/* Now perform all attacks for the monster. */
for (i = 0; i < NATTK; i++) {
res[i] = MM_MISS;
res[i] = M_ATTK_MISS;
mattk = getmattk(magr, mdef, i, res, &alt_attk);
mwep = (struct obj *) 0;
attk = 1;
@@ -372,20 +372,20 @@ mattackm(register struct monst *magr, register struct monst *mdef)
case AT_WEAP: /* "hand to hand" attacks */
if (distmin(magr->mx, magr->my, mdef->mx, mdef->my) > 1) {
/* D: Do a ranged attack here! */
strike = (thrwmm(magr, mdef) == MM_MISS) ? 0 : 1;
strike = (thrwmm(magr, mdef) == M_ATTK_MISS) ? 0 : 1;
if (strike)
/* don't really know if we hit or not; pretend we did */
res[i] |= MM_HIT;
res[i] |= M_ATTK_HIT;
if (DEADMONSTER(mdef))
res[i] = MM_DEF_DIED;
res[i] = M_ATTK_DEF_DIED;
if (DEADMONSTER(magr))
res[i] |= MM_AGR_DIED;
res[i] |= M_ATTK_AGR_DIED;
break;
}
if (magr->weapon_check == NEED_WEAPON || !MON_WEP(magr)) {
magr->weapon_check = NEED_HTH_WEAPON;
if (mon_wield_item(magr) != 0)
return MM_MISS;
return M_ATTK_MISS;
}
possibly_unwield(magr, FALSE);
if ((mwep = MON_WEP(magr)) != 0) {
@@ -444,7 +444,7 @@ mattackm(register struct monst *magr, register struct monst *mdef)
break;
case AT_HUGS: /* automatic if prev two attacks succeed */
strike = (i >= 2 && res[i - 1] == MM_HIT && res[i - 2] == MM_HIT);
strike = (i >= 2 && res[i - 1] == M_ATTK_HIT && res[i - 2] == M_ATTK_HIT);
if (strike)
res[i] = hitmm(magr, mdef, mattk, (struct obj *) 0, 0);
@@ -461,7 +461,7 @@ mattackm(register struct monst *magr, register struct monst *mdef)
continue;
res[i] = explmm(magr, mdef, mattk);
if (res[i] == MM_MISS) { /* cancelled--no attack */
if (res[i] == M_ATTK_MISS) { /* cancelled--no attack */
strike = 0;
attk = 0;
} else
@@ -494,15 +494,15 @@ mattackm(register struct monst *magr, register struct monst *mdef)
case AT_BREA:
if (!monnear(magr, mdef->mx, mdef->my)) {
strike = (breamm(magr, mattk, mdef) == MM_MISS) ? 0 : 1;
strike = (breamm(magr, mattk, mdef) == M_ATTK_MISS) ? 0 : 1;
/* We don't really know if we hit or not; pretend we did. */
if (strike)
res[i] |= MM_HIT;
res[i] |= M_ATTK_HIT;
if (DEADMONSTER(mdef))
res[i] = MM_DEF_DIED;
res[i] = M_ATTK_DEF_DIED;
if (DEADMONSTER(magr))
res[i] |= MM_AGR_DIED;
res[i] |= M_ATTK_AGR_DIED;
}
else
strike = 0;
@@ -510,15 +510,15 @@ mattackm(register struct monst *magr, register struct monst *mdef)
case AT_SPIT:
if (!monnear(magr, mdef->mx, mdef->my)) {
strike = (spitmm(magr, mattk, mdef) == MM_MISS) ? 0 : 1;
strike = (spitmm(magr, mattk, mdef) == M_ATTK_MISS) ? 0 : 1;
/* We don't really know if we hit or not; pretend we did. */
if (strike)
res[i] |= MM_HIT;
res[i] |= M_ATTK_HIT;
if (DEADMONSTER(mdef))
res[i] = MM_DEF_DIED;
res[i] = M_ATTK_DEF_DIED;
if (DEADMONSTER(magr))
res[i] |= MM_AGR_DIED;
res[i] |= M_ATTK_AGR_DIED;
}
break;
@@ -528,23 +528,23 @@ mattackm(register struct monst *magr, register struct monst *mdef)
break;
}
if (attk && !(res[i] & MM_AGR_DIED)
if (attk && !(res[i] & M_ATTK_AGR_DIED)
&& distmin(magr->mx, magr->my, mdef->mx, mdef->my) <= 1)
res[i] = passivemm(magr, mdef, strike,
(res[i] & MM_DEF_DIED), mwep);
(res[i] & M_ATTK_DEF_DIED), mwep);
if (res[i] & MM_DEF_DIED)
if (res[i] & M_ATTK_DEF_DIED)
return res[i];
if (res[i] & MM_AGR_DIED)
if (res[i] & M_ATTK_AGR_DIED)
return res[i];
/* return if aggressor can no longer attack */
if (helpless(magr))
return res[i];
if (res[i] & MM_HIT)
if (res[i] & M_ATTK_HIT)
struck = 1; /* at least one hit */
}
return (struck ? MM_HIT : MM_MISS);
return (struck ? M_ATTK_HIT : M_ATTK_MISS);
}
/* Returns the result of mdamagem(). */
@@ -566,7 +566,7 @@ hitmm(
compat = !magr->mcan ? could_seduce(magr, mdef, mattk) : 0;
if (!compat && shade_miss(magr, mdef, mwep, FALSE, gv.vis))
return MM_MISS; /* bypass mdamagem() */
return M_ATTK_MISS; /* bypass mdamagem() */
if (gv.vis) {
char buf[BUFSZ], magr_name[BUFSZ];
@@ -667,7 +667,7 @@ gazemm(struct monst *magr, struct monst *mdef, struct attack *mattk)
|| (magr->minvis && !perceives(mdef->data)) || mdef->msleeping) {
if (gv.vis && canspotmon(mdef))
pline("but nothing happens.");
return MM_MISS;
return M_ATTK_MISS;
}
/* call mon_reflects 2x, first test, then, if visible, print message */
if (magr->data == &mons[PM_MEDUSA] && mon_reflects(mdef, (char *) 0)) {
@@ -678,7 +678,7 @@ gazemm(struct monst *magr, struct monst *mdef, struct attack *mattk)
if (canseemon(magr))
(void) mon_reflects(magr,
"The gaze is reflected away by %s %s.");
return MM_MISS;
return M_ATTK_MISS;
}
if (mdef->minvis && !perceives(magr->data)) {
if (canseemon(magr)) {
@@ -686,14 +686,14 @@ gazemm(struct monst *magr, struct monst *mdef, struct attack *mattk)
"%s doesn't seem to notice that %s gaze was reflected.",
Monnam(magr), mhis(magr));
}
return MM_MISS;
return M_ATTK_MISS;
}
if (canseemon(magr))
pline("%s is turned to stone!", Monnam(magr));
monstone(magr);
if (!DEADMONSTER(magr))
return MM_MISS;
return MM_AGR_DIED;
return M_ATTK_MISS;
return M_ATTK_AGR_DIED;
}
} else if (archon) {
mhitm_ad_blnd(magr, mattk, mdef, (struct mhitm_data *) 0);
@@ -757,7 +757,7 @@ gulpmm(
struct obj *obj;
if (!engulf_target(magr, mdef))
return MM_MISS;
return M_ATTK_MISS;
if (gv.vis) {
pline("%s %s %s.", Monnam(magr),
@@ -785,7 +785,7 @@ gulpmm(
| SUPPRESS_INVISIBLE), FALSE));
}
}
return MM_HIT; /* bypass mdamagem() */
return M_ATTK_HIT; /* bypass mdamagem() */
}
/*
@@ -809,10 +809,10 @@ gulpmm(
status = mdamagem(magr, mdef, mattk, (struct obj *) 0, 0);
if ((status & (MM_AGR_DIED | MM_DEF_DIED))
== (MM_AGR_DIED | MM_DEF_DIED)) {
if ((status & (M_ATTK_AGR_DIED | M_ATTK_DEF_DIED))
== (M_ATTK_AGR_DIED | M_ATTK_DEF_DIED)) {
; /* both died -- do nothing */
} else if (status & MM_DEF_DIED) { /* defender died */
} else if (status & M_ATTK_DEF_DIED) { /* defender died */
/*
* Note: mdamagem() -> monkilled() -> mondead() -> m_detach()
* -> relmon() used to call remove_monster() for the dead
@@ -843,8 +843,8 @@ gulpmm(
if (minliquid(magr)
|| (t_at(dx, dy)
&& mintrap(magr, NO_TRAP_FLAGS) == Trap_Killed_Mon))
status |= MM_AGR_DIED;
} else if (status & MM_AGR_DIED) { /* aggressor died */
status |= M_ATTK_AGR_DIED;
} else if (status & M_ATTK_AGR_DIED) { /* aggressor died */
place_monster(mdef, dx, dy);
newsym(dx, dy);
} else { /* both alive, put them back */
@@ -871,7 +871,7 @@ explmm(struct monst *magr, struct monst *mdef, struct attack *mattk)
int result;
if (magr->mcan)
return MM_MISS;
return M_ATTK_MISS;
if (cansee(magr->mx, magr->my))
pline("%s explodes!", Monnam(magr));
@@ -883,19 +883,19 @@ explmm(struct monst *magr, struct monst *mdef, struct attack *mattk)
|| mattk->adtyp == AD_ELEC) {
mon_explodes(magr, mattk);
/* unconditionally set AGR_DIED here; lifesaving is accounted below */
result = MM_AGR_DIED | (DEADMONSTER(mdef) ? MM_DEF_DIED : 0);
result = M_ATTK_AGR_DIED | (DEADMONSTER(mdef) ? M_ATTK_DEF_DIED : 0);
} else {
result = mdamagem(magr, mdef, mattk, (struct obj *) 0, 0);
}
/* Kill off aggressor if it didn't die. */
if (!(result & MM_AGR_DIED)) {
if (!(result & M_ATTK_AGR_DIED)) {
boolean was_leashed = (magr->mleashed != 0);
mondead(magr);
if (!DEADMONSTER(magr))
return result; /* life saved */
result |= MM_AGR_DIED;
result |= M_ATTK_AGR_DIED;
/* mondead() -> m_detach() -> m_unleash() always suppresses
the m_unleash() slack message, so deliver it here instead */
@@ -918,7 +918,7 @@ mdamagem(struct monst *magr, struct monst *mdef,
struct permonst *pa = magr->data, *pd = mdef->data;
struct mhitm_data mhm;
mhm.damage = d((int) mattk->damn, (int) mattk->damd);
mhm.hitflags = MM_MISS;
mhm.hitflags = M_ATTK_MISS;
mhm.permdmg = 0;
mhm.specialdmg = 0;
mhm.dieroll = dieroll;
@@ -938,16 +938,16 @@ mdamagem(struct monst *magr, struct monst *mdef,
|| (protector != ~0L && (wornitems & protector) != protector)) {
if (poly_when_stoned(pa)) {
mon_to_stone(magr);
return MM_HIT; /* no damage during the polymorph */
return M_ATTK_HIT; /* no damage during the polymorph */
}
if (gv.vis && canspotmon(magr))
pline("%s turns to stone!", Monnam(magr));
monstone(magr);
if (!DEADMONSTER(magr))
return MM_HIT; /* lifesaved */
return M_ATTK_HIT; /* lifesaved */
else if (magr->mtame && !gv.vis)
You(brief_feeling, "peculiarly sad");
return MM_AGR_DIED;
return M_ATTK_AGR_DIED;
}
}
@@ -955,7 +955,7 @@ mdamagem(struct monst *magr, struct monst *mdef,
if (mhitm_knockback(magr, mdef, mattk, &mhm.hitflags,
(MON_WEP(magr) != 0))
&& ((mhm.hitflags & MM_DEF_DIED) != 0
&& ((mhm.hitflags & M_ATTK_DEF_DIED) != 0
|| (mdef->mstate & (MON_DETACH|MON_MIGRATING|MON_LIMBO)) != 0))
return mhm.hitflags;
@@ -985,8 +985,8 @@ mdamagem(struct monst *magr, struct monst *mdef,
gm.mkcorpstat_norevive = FALSE;
if (!DEADMONSTER(mdef))
return mhm.hitflags; /* mdef lifesaved */
else if (mhm.hitflags == MM_AGR_DIED)
return (MM_DEF_DIED | MM_AGR_DIED);
else if (mhm.hitflags == M_ATTK_AGR_DIED)
return (M_ATTK_DEF_DIED | M_ATTK_AGR_DIED);
if (mattk->adtyp == AD_DGST) {
/* various checks similar to dog_eat and meatobj.
@@ -998,7 +998,7 @@ mdamagem(struct monst *magr, struct monst *mdef,
} else if (pd == &mons[PM_WRAITH]) {
(void) grow_up(magr, (struct monst *) 0);
/* don't grow up twice */
return (MM_DEF_DIED | (!DEADMONSTER(magr) ? 0 : MM_AGR_DIED));
return (M_ATTK_DEF_DIED | (!DEADMONSTER(magr) ? 0 : M_ATTK_AGR_DIED));
} else if (pd == &mons[PM_NURSE]) {
magr->mhp = magr->mhpmax;
}
@@ -1006,9 +1006,9 @@ mdamagem(struct monst *magr, struct monst *mdef,
}
/* caveat: above digestion handling doesn't keep `pa' up to date */
return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
return (M_ATTK_DEF_DIED | (grow_up(magr, mdef) ? 0 : M_ATTK_AGR_DIED));
}
return (mhm.hitflags == MM_AGR_DIED) ? MM_AGR_DIED : MM_HIT;
return (mhm.hitflags == M_ATTK_AGR_DIED) ? M_ATTK_AGR_DIED : M_ATTK_HIT;
}
int
@@ -1194,7 +1194,7 @@ passivemm(register struct monst *magr, register struct monst *mdef,
register struct permonst *madat = magr->data;
char buf[BUFSZ];
int i, tmp;
int mhit = mhitb ? MM_HIT : MM_MISS;
int mhit = mhitb ? M_ATTK_HIT : M_ATTK_MISS;
for (i = 0;; i++) {
if (i >= NATTK)
@@ -1334,7 +1334,7 @@ passivemm(register struct monst *magr, register struct monst *mdef,
assess_dmg:
if ((magr->mhp -= tmp) <= 0) {
monkilled(magr, "", (int) mddat->mattk[i].adtyp);
return (mdead | mhit | MM_AGR_DIED);
return (mdead | mhit | M_ATTK_AGR_DIED);
}
return (mdead | mhit);
}

View File

@@ -314,7 +314,7 @@ getmattk(struct monst *magr, struct monst *mdef,
/* prevent a monster with two consecutive disease or hunger attacks
from hitting with both of them on the same turn; if the first has
already hit, switch to a stun attack for the second */
if (indx > 0 && prev_result[indx - 1] > MM_MISS
if (indx > 0 && prev_result[indx - 1] > M_ATTK_MISS
&& (attk->adtyp == AD_DISE || attk->adtyp == AD_PEST
|| attk->adtyp == AD_FAMN)
&& attk->adtyp == mptr->mattk[indx - 1].adtyp) {
@@ -457,14 +457,14 @@ mattacku(register struct monst *mtmp)
&& next2u(mtmp->mx, mtmp->my)) {
/* Attack your steed instead */
i = mattackm(mtmp, u.usteed);
if ((i & MM_AGR_DIED))
if ((i & M_ATTK_AGR_DIED))
return 1;
/* make sure steed is still alive and within range */
if ((i & MM_DEF_DIED) || !u.usteed
if ((i & M_ATTK_DEF_DIED) || !u.usteed
|| !next2u(mtmp->mx, mtmp->my))
return 0;
/* Let your steed retaliate */
return !!(mattackm(u.usteed, mtmp) & MM_DEF_DIED);
return !!(mattackm(u.usteed, mtmp) & M_ATTK_DEF_DIED);
}
}
@@ -677,7 +677,7 @@ mattacku(register struct monst *mtmp)
for (i = 0; i < NATTK; i++) {
/* recalc in case attack moved hero */
calc_mattacku_vars(mtmp, &ranged, &range2, &foundyou, &youseeit);
sum[i] = MM_MISS;
sum[i] = M_ATTK_MISS;
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 */
@@ -825,15 +825,15 @@ mattacku(register struct monst *mtmp)
if (gc.context.botl)
bot();
/* give player a chance of waking up before dying -kaa */
if (sum[i] == MM_HIT) { /* successful attack */
if (sum[i] == M_ATTK_HIT) { /* successful attack */
if (u.usleep && u.usleep < gm.moves && !rn2(10)) {
gm.multi = -1;
gn.nomovemsg = "The combat suddenly awakens you.";
}
}
if ((sum[i] & MM_AGR_DIED))
if ((sum[i] & M_ATTK_AGR_DIED))
return 1; /* attacker dead */
if ((sum[i] & MM_AGR_DONE))
if ((sum[i] & M_ATTK_AGR_DONE))
break; /* attacker teleported, no more attacks */
/* sum[i] == 0: unsuccessful attack */
}
@@ -1028,7 +1028,7 @@ hitmu(register struct monst *mtmp, register struct attack *mattk)
struct permonst *olduasmon = gy.youmonst.data;
int res;
struct mhitm_data mhm;
mhm.hitflags = MM_MISS;
mhm.hitflags = M_ATTK_MISS;
mhm.permdmg = 0;
mhm.specialdmg = 0;
mhm.done = FALSE;
@@ -1141,7 +1141,7 @@ hitmu(register struct monst *mtmp, register struct attack *mattk)
if (mhm.damage)
res = passiveum(olduasmon, mtmp, mattk);
else
res = MM_HIT;
res = M_ATTK_HIT;
stop_occupation();
return res;
}
@@ -1179,9 +1179,9 @@ gulpmu(struct monst *mtmp, struct attack *mattk)
int omx = mtmp->mx, omy = mtmp->my;
if (!engulf_target(mtmp, &gy.youmonst))
return MM_MISS;
return M_ATTK_MISS;
if ((t && is_pit(t->ttyp)) && sobj_at(BOULDER, u.ux, u.uy))
return MM_MISS;
return M_ATTK_MISS;
if (Punished)
unplacebc(); /* ball&chain go away */
@@ -1247,7 +1247,7 @@ gulpmu(struct monst *mtmp, struct attack *mattk)
if (Punished)
placebc();
set_ustuck((struct monst *) 0);
return (!DEADMONSTER(mtmp)) ? MM_MISS : MM_AGR_DIED;
return (!DEADMONSTER(mtmp)) ? M_ATTK_MISS : M_ATTK_AGR_DIED;
}
display_nhwindow(WIN_MESSAGE, FALSE);
@@ -1280,7 +1280,7 @@ gulpmu(struct monst *mtmp, struct attack *mattk)
}
if (mtmp != u.ustuck)
return MM_MISS;
return M_ATTK_MISS;
if (Punished) {
/* ball&chain are in limbo while swallowed; update their internal
location to be at swallower's spot */
@@ -1443,7 +1443,7 @@ gulpmu(struct monst *mtmp, struct attack *mattk)
pline("Obviously %s doesn't like your taste.", mon_nam(mtmp));
expels(mtmp, mtmp->data, FALSE);
}
return MM_HIT;
return M_ATTK_HIT;
}
/* monster explodes in your face */
@@ -1455,7 +1455,7 @@ explmu(struct monst *mtmp, struct attack *mattk, boolean ufound)
int tmp;
if (mtmp->mcan)
return MM_MISS;
return M_ATTK_MISS;
tmp = d((int) mattk->damn, (int) mattk->damd);
not_affected = defended(mtmp, (int) mattk->adtyp);
@@ -1517,7 +1517,7 @@ explmu(struct monst *mtmp, struct attack *mattk, boolean ufound)
if (kill_agr && !DEADMONSTER(mtmp))
mondead(mtmp);
wake_nearto(mtmp->mx, mtmp->my, 7 * 7);
return (!DEADMONSTER(mtmp)) ? MM_MISS : MM_AGR_DIED;
return (!DEADMONSTER(mtmp)) ? M_ATTK_MISS : M_ATTK_AGR_DIED;
}
/* monster gazes at you */
@@ -1539,7 +1539,7 @@ gazemu(struct monst *mtmp, struct attack *mattk)
&& mtmp->mcansee);
if (m_seenres(mtmp, cvt_adtyp_to_mseenres(mattk->adtyp)))
return MM_MISS;
return M_ATTK_MISS;
is_medusa = (mtmp->data == &mons[PM_MEDUSA]);
reflectable = (Reflecting && couldsee(mtmp->mx, mtmp->my) && is_medusa);
@@ -1599,7 +1599,7 @@ gazemu(struct monst *mtmp, struct attack *mattk)
if (!DEADMONSTER(mtmp))
break;
return MM_AGR_DIED;
return M_ATTK_AGR_DIED;
}
if (canseemon(mtmp) && couldsee(mtmp->mx, mtmp->my)
&& !Stone_resistance && !Unaware) {
@@ -1750,7 +1750,7 @@ gazemu(struct monst *mtmp, struct attack *mattk)
: (!rn2(2) ? "a bit " : "somewhat "),
reactions[react]);
}
return MM_MISS;
return M_ATTK_MISS;
}
/* mtmp hits you for n points damage */
@@ -2212,7 +2212,7 @@ passiveum(
*/
for (i = 0; !oldu_mattk; i++) {
if (i >= NATTK)
return MM_HIT;
return M_ATTK_HIT;
if (olduasmon->mattk[i].aatyp == AT_NONE
|| olduasmon->mattk[i].aatyp == AT_BOOM)
oldu_mattk = &olduasmon->mattk[i];
@@ -2265,10 +2265,10 @@ passiveum(
gs.stoned = 1;
xkilled(mtmp, XKILL_NOMSG);
if (!DEADMONSTER(mtmp))
return MM_HIT;
return MM_AGR_DIED;
return M_ATTK_HIT;
return M_ATTK_AGR_DIED;
}
return MM_HIT;
return M_ATTK_HIT;
}
case AD_ENCH: /* KMH -- remove enchantment (disenchanter) */
if (mon_currwep) {
@@ -2277,12 +2277,12 @@ passiveum(
(void) drain_item(mon_currwep, TRUE);
/* No message */
}
return MM_HIT;
return M_ATTK_HIT;
default:
break;
}
if (!Upolyd)
return MM_HIT;
return M_ATTK_HIT;
/* These affect the enemy only if you are still a monster */
if (rn2(3))
@@ -2313,15 +2313,15 @@ passiveum(
return 1;
pline("%s is frozen by your gaze!", Monnam(mtmp));
paralyze_monst(mtmp, tmp);
return MM_AGR_DONE;
return M_ATTK_AGR_DONE;
}
}
} else { /* gelatinous cube */
pline("%s is frozen by you.", Monnam(mtmp));
paralyze_monst(mtmp, tmp);
return MM_AGR_DONE;
return M_ATTK_AGR_DONE;
}
return MM_HIT;
return M_ATTK_HIT;
case AD_COLD: /* Brown mold or blue jelly */
if (resists_cold(mtmp)) {
shieldeff(mtmp->mx, mtmp->my);
@@ -2377,10 +2377,10 @@ passiveum(
pline("%s dies!", Monnam(mtmp));
xkilled(mtmp, XKILL_NOMSG);
if (!DEADMONSTER(mtmp))
return MM_HIT;
return MM_AGR_DIED;
return M_ATTK_HIT;
return M_ATTK_AGR_DIED;
}
return MM_HIT;
return M_ATTK_HIT;
}
struct monst *

View File

@@ -756,7 +756,7 @@ dochug(register struct monst* mtmp)
for (a = &mdat->mattk[0]; a < &mdat->mattk[NATTK]; a++) {
if (a->aatyp == AT_MAGC
&& (a->adtyp == AD_SPEL || a->adtyp == AD_CLRC)) {
if ((castmu(mtmp, a, FALSE, FALSE) & MM_HIT)) {
if ((castmu(mtmp, a, FALSE, FALSE) & M_ATTK_HIT)) {
status = MMOVE_DONE; /* bypass m_move() */
break;
}
@@ -1506,9 +1506,9 @@ m_move(register struct monst* mtmp, register int after)
mtmp2 = m_at(nix, niy);
mstatus = mdisplacem(mtmp, mtmp2, FALSE);
if ((mstatus & MM_AGR_DIED) || (mstatus & MM_DEF_DIED))
if ((mstatus & M_ATTK_AGR_DIED) || (mstatus & M_ATTK_DEF_DIED))
return MMOVE_DIED;
if (mstatus & MM_HIT)
if (mstatus & M_ATTK_HIT)
return MMOVE_MOVED;
return MMOVE_DONE;
}
@@ -1796,15 +1796,15 @@ m_move_aggress(struct monst* mtmp, coordxy x, coordxy y)
/* note: mstatus returns 0 if mtmp2 is nonexistent */
mstatus = mattackm(mtmp, mtmp2);
if (mstatus & MM_AGR_DIED) /* aggressor died */
if (mstatus & M_ATTK_AGR_DIED) /* aggressor died */
return MMOVE_DIED;
if ((mstatus & MM_HIT) && !(mstatus & MM_DEF_DIED) && rn2(4)
if ((mstatus & M_ATTK_HIT) && !(mstatus & M_ATTK_DEF_DIED) && rn2(4)
&& mtmp2->movement >= NORMAL_SPEED) {
mtmp2->movement -= NORMAL_SPEED;
gn.notonhead = 0;
mstatus = mattackm(mtmp2, mtmp); /* return attack */
if (mstatus & MM_DEF_DIED)
if (mstatus & M_ATTK_DEF_DIED)
return MMOVE_DIED;
}
return MMOVE_DONE;

View File

@@ -785,13 +785,13 @@ thrwmm(struct monst* mtmp, struct monst* mtarg)
mtmp->weapon_check = NEED_RANGED_WEAPON;
/* mon_wield_item resets weapon_check as appropriate */
if (mon_wield_item(mtmp) != 0)
return MM_MISS;
return M_ATTK_MISS;
}
/* Pick a weapon */
otmp = select_rwep(mtmp);
if (!otmp)
return MM_MISS;
return M_ATTK_MISS;
ispole = is_pole(otmp);
x = mtmp->mx;
@@ -806,17 +806,17 @@ thrwmm(struct monst* mtmp, struct monst* mtarg)
if (ammo_and_launcher(otmp, mwep)
&& dist2(mtmp->mx, mtmp->my, mtarg->mx, mtarg->my)
> PET_MISSILE_RANGE2)
return MM_MISS; /* Out of range */
return M_ATTK_MISS; /* Out of range */
/* Set target monster */
gm.mtarget = mtarg;
gm.marcher = mtmp;
monshoot(mtmp, otmp, mwep); /* multishot shooting or throwing */
gm.marcher = gm.mtarget = (struct monst *) 0;
nomul(0);
return MM_HIT;
return M_ATTK_HIT;
}
}
return MM_MISS;
return M_ATTK_MISS;
}
/* monster spits substance at monster */
@@ -835,7 +835,7 @@ spitmm(struct monst* mtmp, struct attack* mattk, struct monst* mtarg)
You_hear("a dry rattle nearby.");
}
}
return MM_MISS;
return M_ATTK_MISS;
}
if (m_lined_up(mtarg, mtmp)) {
boolean utarg = (mtarg == &gy.youmonst);
@@ -874,13 +874,13 @@ spitmm(struct monst* mtmp, struct attack* mattk, struct monst* mtarg)
dog->hungrytime -= 5;
}
return MM_HIT;
return M_ATTK_HIT;
} else {
obj_extract_self(otmp);
obfree(otmp, (struct obj *) 0);
}
}
return MM_MISS;
return M_ATTK_MISS;
}
/* Return the name of a breath weapon. If the player is hallucinating, return
@@ -911,7 +911,7 @@ breamm(struct monst* mtmp, struct attack* mattk, struct monst* mtarg)
You_hear("a cough.");
}
}
return MM_MISS;
return M_ATTK_MISS;
}
/* if we've seen the actual resistance, don't bother, or
@@ -919,7 +919,7 @@ breamm(struct monst* mtmp, struct attack* mattk, struct monst* mtarg)
if (m_seenres(mtmp, cvt_adtyp_to_mseenres(typ))
|| (m_seenres(mtmp, M_SEEN_REFL)
&& monnear(mtmp, mtmp->mux, mtmp->muy)))
return MM_HIT;
return M_ATTK_HIT;
if (!mtmp->mspec_used && rn2(3)) {
if (BZ_VALID_ADTYP(typ)) {
@@ -951,9 +951,9 @@ breamm(struct monst* mtmp, struct attack* mattk, struct monst* mtarg)
}
} else impossible("Breath weapon %d used", typ-1);
} else
return MM_MISS;
return M_ATTK_MISS;
}
return MM_HIT;
return M_ATTK_HIT;
}
/* remove an entire item from a monster's inventory; destroy that item */

View File

@@ -2088,7 +2088,7 @@ mhitm_ad_rust(struct monst *magr, struct attack *mattk, struct monst *mdef,
pline("%s %s to pieces!", Monnam(mdef),
!mlifesaver(mdef) ? "falls" : "starts to fall");
xkilled(mdef, XKILL_NOMSG);
mhm->hitflags |= MM_DEF_DIED;
mhm->hitflags |= M_ATTK_DEF_DIED;
}
erode_armor(mdef, ERODE_RUST);
mhm->damage = 0; /* damageum(), int tmp */
@@ -2115,12 +2115,12 @@ mhitm_ad_rust(struct monst *magr, struct attack *mattk, struct monst *mdef,
!mlifesaver(mdef) ? "falls" : "starts to fall");
monkilled(mdef, (char *) 0, AD_RUST);
if (!DEADMONSTER(mdef)) {
mhm->hitflags = MM_MISS;
mhm->hitflags = M_ATTK_MISS;
mhm->done = TRUE;
return;
}
mhm->hitflags = (MM_DEF_DIED | (grow_up(magr, mdef) ? 0
: MM_AGR_DIED));
mhm->hitflags = (M_ATTK_DEF_DIED | (grow_up(magr, mdef) ? 0
: M_ATTK_AGR_DIED));
mhm->done = TRUE;
return;
}
@@ -2194,12 +2194,12 @@ mhitm_ad_dcay(struct monst *magr, struct attack *mattk, struct monst *mdef,
monkilled(mdef, (char *) 0, AD_DCAY);
if (!DEADMONSTER(mdef)) {
mhm->done = TRUE;
mhm->hitflags = MM_MISS;
mhm->hitflags = M_ATTK_MISS;
return;
}
mhm->done = TRUE;
mhm->hitflags = (MM_DEF_DIED
| (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
mhm->hitflags = (M_ATTK_DEF_DIED
| (grow_up(magr, mdef) ? 0 : M_ATTK_AGR_DIED));
return;
}
erode_armor(mdef, ERODE_ROT);
@@ -2398,12 +2398,12 @@ mhitm_ad_fire(
: "is totally engulfed in flames");
monkilled(mdef, (char *) 0, AD_FIRE);
if (!DEADMONSTER(mdef)) {
mhm->hitflags = MM_MISS;
mhm->hitflags = M_ATTK_MISS;
mhm->done = TRUE;
return;
}
mhm->hitflags = (MM_DEF_DIED
| (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
mhm->hitflags = (M_ATTK_DEF_DIED
| (grow_up(magr, mdef) ? 0 : M_ATTK_AGR_DIED));
mhm->done = TRUE;
return;
}
@@ -2867,14 +2867,14 @@ mhitm_ad_curs(struct monst *magr, struct attack *mattk, struct monst *mdef,
}
mondied(mdef);
if (!DEADMONSTER(mdef)) {
mhm->hitflags = MM_MISS;
mhm->hitflags = M_ATTK_MISS;
mhm->done = TRUE;
return;
} else if (mdef->mtame && !gv.vis) {
You(brief_feeling, "strangely sad");
}
mhm->hitflags = (MM_DEF_DIED
| (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
mhm->hitflags = (M_ATTK_DEF_DIED
| (grow_up(magr, mdef) ? 0 : M_ATTK_AGR_DIED));
mhm->done = TRUE;
return;
}
@@ -3017,7 +3017,7 @@ mhitm_ad_drin(
regardless of current shape) or is noncorporeal
(can't happen here; no one can poly into a ghost
or shade) so this check for missing is academic */
if (eat_brains(magr, mdef, TRUE, (int *) 0) == MM_MISS)
if (eat_brains(magr, mdef, TRUE, (int *) 0) == M_ATTK_MISS)
return;
}
/* adjattrib gives dunce cap message when appropriate */
@@ -3273,7 +3273,7 @@ mhitm_ad_slim(
}
/* munslime attempt could have been fatal */
if (DEADMONSTER(mdef)) {
mhm->hitflags = MM_DEF_DIED; /* skip death message */
mhm->hitflags = M_ATTK_DEF_DIED; /* skip death message */
mhm->done = TRUE;
return;
}
@@ -3314,14 +3314,14 @@ mhitm_ad_slim(
if (newcham(mdef, &mons[PM_GREEN_SLIME], ncflags))
pd = mdef->data;
mdef->mstrategy &= ~STRAT_WAITFORU;
mhm->hitflags = MM_HIT;
mhm->hitflags = M_ATTK_HIT;
}
/* munslime attempt could have been fatal,
potentially to multiple monsters (SCR_FIRE) */
if (DEADMONSTER(magr))
mhm->hitflags |= MM_AGR_DIED;
mhm->hitflags |= M_ATTK_AGR_DIED;
if (DEADMONSTER(mdef))
mhm->hitflags |= MM_DEF_DIED;
mhm->hitflags |= M_ATTK_DEF_DIED;
mhm->damage = 0;
}
}
@@ -3667,14 +3667,14 @@ do_stone_mon(struct monst *magr, struct attack *mattk UNUSED,
monstone(mdef);
post_stone:
if (!DEADMONSTER(mdef)) {
mhm->hitflags = MM_MISS;
mhm->hitflags = M_ATTK_MISS;
mhm->done = TRUE;
return;
} else if (mdef->mtame && !gv.vis) {
You(brief_feeling, "peculiarly sad");
}
mhm->hitflags = (MM_DEF_DIED
| (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
mhm->hitflags = (M_ATTK_DEF_DIED
| (grow_up(magr, mdef) ? 0 : M_ATTK_AGR_DIED));
mhm->done = TRUE;
return;
}
@@ -3728,11 +3728,11 @@ mhitm_ad_phys(
if (!u.ustuck && rn2(2)) {
if (u_slip_free(magr, mattk)) {
mhm->damage = 0;
mhm->hitflags |= MM_MISS;
mhm->hitflags |= M_ATTK_MISS;
} else {
set_ustuck(magr);
pline("%s grabs you!", Monnam(magr));
mhm->hitflags |= MM_HIT;
mhm->hitflags |= M_ATTK_HIT;
}
} else if (u.ustuck == magr) {
exercise(A_STR, FALSE);
@@ -3753,7 +3753,7 @@ mhitm_ad_phys(
mons[otmp->corpsenm].pmnames[NEUTRAL]);
if (!Stoned) {
if (do_stone_u(magr)) {
mhm->hitflags = MM_HIT;
mhm->hitflags = M_ATTK_HIT;
mhm->done = 1;
return;
}
@@ -3769,7 +3769,7 @@ mhitm_ad_phys(
|| !artifact_hit(magr, mdef, otmp, &mhm->damage,
gm.mhitu_dieroll)) {
hitmsg(magr, mattk);
mhm->hitflags |= MM_HIT;
mhm->hitflags |= M_ATTK_HIT;
}
if (!mhm->damage)
return;
@@ -3805,7 +3805,7 @@ mhitm_ad_phys(
} else if (mattk->aatyp != AT_TUCH || mhm->damage != 0
|| magr != u.ustuck) {
hitmsg(magr, mattk);
mhm->hitflags |= MM_HIT;
mhm->hitflags |= M_ATTK_HIT;
}
}
} else {
@@ -3849,14 +3849,14 @@ mhitm_ad_phys(
if (gv.vis)
pline("%s hits %s.", Monnam(magr),
mon_nam_too(mdef, magr));
mhm->hitflags |= MM_HIT;
mhm->hitflags |= M_ATTK_HIT;
}
/* artifact_hit updates 'tmp' but doesn't inflict any
damage; however, it might cause carried items to be
destroyed and they might do so */
if (DEADMONSTER(mdef)) {
mhm->hitflags = (MM_DEF_DIED | (grow_up(magr, mdef) ? 0
: MM_AGR_DIED));
mhm->hitflags = (M_ATTK_DEF_DIED | (grow_up(magr, mdef) ? 0
: M_ATTK_AGR_DIED));
mhm->done = TRUE;
return;
}
@@ -3919,7 +3919,7 @@ mhitm_ad_ston(
*/
if (!rn2(10) || flags.moonphase == NEW_MOON) {
if (do_stone_u(magr)) {
mhm->hitflags = MM_HIT;
mhm->hitflags = M_ATTK_HIT;
mhm->done = TRUE;
return;
}
@@ -4028,14 +4028,14 @@ mhitm_ad_heal(struct monst *magr, struct attack *mattk, struct monst *mdef,
if (goaway) {
mongone(magr);
mhm->done = TRUE;
mhm->hitflags = MM_DEF_DIED; /* return 2??? */
mhm->hitflags = M_ATTK_DEF_DIED; /* return 2??? */
return;
} else if (!rn2(33)) {
if (!tele_restrict(magr))
(void) rloc(magr, RLOC_MSG);
monflee(magr, d(3, 6), TRUE, FALSE);
mhm->done = TRUE;
mhm->hitflags = MM_HIT | MM_DEF_DIED; /* return 3??? */
mhm->hitflags = M_ATTK_HIT | M_ATTK_DEF_DIED; /* return 3??? */
return;
}
mhm->damage = 0;
@@ -4187,12 +4187,12 @@ mhitm_ad_dgst(struct monst *magr, struct attack *mattk UNUSED,
: "vomits violently and drops dead");
mondied(magr);
if (!DEADMONSTER(magr)) {
mhm->hitflags = MM_MISS; /* lifesaved */
mhm->hitflags = M_ATTK_MISS; /* lifesaved */
mhm->done = TRUE;
return;
} else if (magr->mtame && !gv.vis)
You(brief_feeling, "queasy");
mhm->hitflags = MM_AGR_DIED;
mhm->hitflags = M_ATTK_AGR_DIED;
mhm->done = TRUE;
return;
}
@@ -4318,7 +4318,7 @@ mhitm_ad_sedu(
: "makes some remarks about how difficult theft is lately");
if (!tele_restrict(magr))
(void) rloc(magr, RLOC_MSG);
mhm->hitflags = MM_AGR_DONE; /* return 3??? */
mhm->hitflags = M_ATTK_AGR_DONE; /* return 3??? */
mhm->done = TRUE;
return;
} else if (magr->mcan) {
@@ -4330,7 +4330,7 @@ mhitm_ad_sedu(
if (rn2(3)) {
if (!tele_restrict(magr))
(void) rloc(magr, RLOC_MSG);
mhm->hitflags = MM_AGR_DONE; /* return 3??? */
mhm->hitflags = M_ATTK_AGR_DONE; /* return 3??? */
mhm->done = TRUE;
return;
}
@@ -4339,7 +4339,7 @@ mhitm_ad_sedu(
buf[0] = '\0';
switch (steal(magr, buf)) {
case -1:
mhm->hitflags = MM_AGR_DIED; /* return 2??? */
mhm->hitflags = M_ATTK_AGR_DIED; /* return 2??? */
mhm->done = TRUE;
return;
case 0:
@@ -4353,7 +4353,7 @@ mhitm_ad_sedu(
locomotion(magr->data, "run"), buf);
}
monflee(magr, 0, FALSE, FALSE);
mhm->hitflags = MM_AGR_DONE; /* return 3??? */
mhm->hitflags = M_ATTK_AGR_DONE; /* return 3??? */
mhm->done = TRUE;
return;
}
@@ -4393,8 +4393,8 @@ mhitm_ad_sedu(
mdef->mstrategy &= ~STRAT_WAITFORU;
mselftouch(mdef, (const char *) 0, FALSE);
if (DEADMONSTER(mdef)) {
mhm->hitflags = (MM_DEF_DIED
| (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
mhm->hitflags = (M_ATTK_DEF_DIED
| (grow_up(magr, mdef) ? 0 : M_ATTK_AGR_DIED));
mhm->done = TRUE;
return;
}
@@ -4425,7 +4425,7 @@ mhitm_ad_ssex(struct monst *magr, struct attack *mattk, struct monst *mdef,
if (SYSOPT_SEDUCE) {
if (could_seduce(magr, mdef, mattk) == 1 && !magr->mcan)
if (doseduce(magr)) {
mhm->hitflags = MM_AGR_DONE;
mhm->hitflags = M_ATTK_AGR_DONE;
mhm->done = TRUE;
return;
}
@@ -4504,7 +4504,7 @@ damageum(
struct mhitm_data mhm;
mhm.damage = d((int) mattk->damn, (int) mattk->damd);
mhm.hitflags = MM_MISS;
mhm.hitflags = M_ATTK_MISS;
mhm.permdmg = 0;
mhm.specialdmg = specialdmg;
mhm.done = FALSE;
@@ -4512,7 +4512,7 @@ damageum(
if (is_demon(gy.youmonst.data) && !rn2(13) && !uwep
&& u.umonnum != PM_AMOROUS_DEMON && u.umonnum != PM_BALROG) {
demonpet();
return MM_MISS;
return M_ATTK_MISS;
}
mhitm_adtyping(&gy.youmonst, mattk, mdef, &mhm);
@@ -4542,9 +4542,9 @@ damageum(
killed(mdef); /* regular "you kill <mdef>" message */
}
gm.mkcorpstat_norevive = FALSE;
return MM_DEF_DIED;
return M_ATTK_DEF_DIED;
}
return MM_HIT;
return M_ATTK_HIT;
}
/* Hero, as a monster which is capable of an exploding attack mattk, is
@@ -4581,14 +4581,14 @@ explum(struct monst *mdef, struct attack *mattk)
if (mdef && DEADMONSTER(mdef)) {
/* Other monsters may have died too, but return this if the actual
target died. */
return MM_DEF_DIED;
return M_ATTK_DEF_DIED;
}
break;
default:
break;
}
wake_nearto(u.ux, u.uy, 7 * 7); /* same radius as exploding monster */
return MM_HIT;
return M_ATTK_HIT;
}
static void
@@ -4642,7 +4642,7 @@ gulpum(struct monst *mdef, struct attack *mattk)
*/
if (!engulf_target(&gy.youmonst, mdef))
return MM_MISS;
return M_ATTK_MISS;
if (!(u_digest && u.uhunger >= 1500) && !u.uswallow) {
if (!flaming(gy.youmonst.data)) {
@@ -4668,7 +4668,7 @@ gulpum(struct monst *mdef, struct attack *mattk)
} else {
map_invisible(mdef->mx, mdef->my);
}
return MM_HIT;
return M_ATTK_HIT;
}
/* engulfing a cockatrice or digesting a Rider or Medusa */
@@ -4705,7 +4705,7 @@ gulpum(struct monst *mdef, struct attack *mattk)
pmname(pd, Mgender(mdef)));
gk.killer.format = NO_KILLER_PREFIX;
done(DIED);
return MM_MISS; /* lifesaved */
return M_ATTK_MISS; /* lifesaved */
}
if (Slow_digestion) {
@@ -4765,7 +4765,7 @@ gulpum(struct monst *mdef, struct attack *mattk)
exercise(A_CON, TRUE);
}
end_engulf();
return MM_DEF_DIED;
return M_ATTK_DEF_DIED;
case AD_PHYS:
if (gy.youmonst.data == &mons[PM_FOG_CLOUD]) {
pline("%s is laden with your moisture.", Monnam(mdef));
@@ -4844,7 +4844,7 @@ gulpum(struct monst *mdef, struct attack *mattk)
if (DEADMONSTER(mdef)) {
killed(mdef);
if (DEADMONSTER(mdef)) /* not lifesaved */
return MM_DEF_DIED;
return M_ATTK_DEF_DIED;
}
You("%s %s!", expel_verb, mon_nam(mdef));
if ((Slow_digestion || is_animal(gy.youmonst.data)) && u_digest) {
@@ -4853,7 +4853,7 @@ gulpum(struct monst *mdef, struct attack *mattk)
}
}
}
return MM_MISS;
return M_ATTK_MISS;
}
void
@@ -4960,7 +4960,7 @@ mhitm_knockback(
/* the attack must have hit */
/* mon-vs-mon code path doesn't set up hitflags */
if ((u_agr || u_def) && !(*hitflags & MM_HIT))
if ((u_agr || u_def) && !(*hitflags & M_ATTK_HIT))
return FALSE;
/* steadfast defender cannot be pushed around */
@@ -5028,7 +5028,7 @@ mhitm_knockback(
mhurtle(mdef, dx, dy, knockdistance);
if (DEADMONSTER(mdef)) {
if (!was_u)
*hitflags |= MM_DEF_DIED;
*hitflags |= M_ATTK_DEF_DIED;
} else if (!rn2(4)) {
mdef->mstun = 1;
/* if steed and hero were knocked back, update attacker's idea
@@ -5039,7 +5039,7 @@ mhitm_knockback(
}
if (!u_agr) {
if (DEADMONSTER(magr))
*hitflags |= MM_AGR_DIED;
*hitflags |= M_ATTK_AGR_DIED;
}
return TRUE;
@@ -5063,7 +5063,7 @@ hmonas(struct monst *mon)
with more than one, alternate right and left when checking
whether silver ring causes successful hit */
for (i = 0; i < NATTK; i++) {
sum[i] = MM_MISS;
sum[i] = M_ATTK_MISS;
mattk = getmattk(&gy.youmonst, mon, i, sum, &alt_attk);
if (mattk->aatyp == AT_WEAP
|| mattk->aatyp == AT_CLAW || mattk->aatyp == AT_TUCH)
@@ -5074,7 +5074,7 @@ hmonas(struct monst *mon)
gs.skipdrin = FALSE; /* [see mattackm(mhitm.c)] */
for (i = 0; i < NATTK; i++) {
/* sum[i] = MM_MISS; -- now done above */
/* sum[i] = M_ATTK_MISS; -- now done above */
mattk = getmattk(&gy.youmonst, mon, i, sum, &alt_attk);
if (gs.skipdrin && mattk->aatyp == AT_TENT && mattk->adtyp == AD_DRIN)
continue;
@@ -5088,7 +5088,7 @@ hmonas(struct monst *mon)
get to make another weapon attack (note: monsters who
use weapons do not have this restriction, but they also
never have the opportunity to use two weapons) */
if (weapon_used && (sum[i - 1] > MM_MISS)
if (weapon_used && (sum[i - 1] > M_ATTK_MISS)
&& uwep && bimanual(uwep))
continue;
/* Certain monsters don't use weapons when encountered as enemies,
@@ -5144,10 +5144,10 @@ hmonas(struct monst *mon)
weapon = *originalweapon; /* might receive passive erosion */
if (!monster_survived) {
/* enemy dead, before any special abilities used */
sum[i] = MM_DEF_DIED;
sum[i] = M_ATTK_DEF_DIED;
break;
} else
sum[i] = dhit ? MM_HIT : MM_MISS;
sum[i] = dhit ? M_ATTK_HIT : M_ATTK_MISS;
/* might be a worm that gets cut in half; if so, early return */
if (m_at(u.ux + u.dx, u.uy + u.dy) != mon) {
i = NATTK; /* skip additional attacks */
@@ -5342,8 +5342,8 @@ hmonas(struct monst *mon)
if (silverhit && Verbose(4, hmonas3))
silver_sears(&gy.youmonst, mon, silverhit);
sum[i] = damageum(mon, mattk, specialdmg);
} else if (i >= 2 && (sum[i - 1] > MM_MISS)
&& (sum[i - 2] > MM_MISS)) {
} else if (i >= 2 && (sum[i - 1] > M_ATTK_MISS)
&& (sum[i - 2] > M_ATTK_MISS)) {
/* in case we're hugging a new target while already
holding something else; yields feedback
"<u.ustuck> is no longer in your clutches" */
@@ -5375,7 +5375,7 @@ hmonas(struct monst *mon)
Your("attempt to surround %s is harmless.", mon_nam(mon));
} else {
sum[i] = gulpum(mon, mattk);
if (sum[i] == MM_DEF_DIED && (mon->data->mlet == S_ZOMBIE
if (sum[i] == M_ATTK_DEF_DIED && (mon->data->mlet == S_ZOMBIE
|| mon->data->mlet == S_MUMMY)
&& rn2(5) && !Sick_resistance) {
You_feel("%ssick.", (Sick) ? "very " : "");
@@ -5415,11 +5415,11 @@ hmonas(struct monst *mon)
u.mh = -1; /* dead in the current form */
rehumanize();
}
if (sum[i] == MM_DEF_DIED) {
if (sum[i] == M_ATTK_DEF_DIED) {
/* defender dead */
(void) passive(mon, weapon, 1, 0, mattk->aatyp, FALSE);
} else {
(void) passive(mon, weapon, (sum[i] != MM_MISS), 1,
(void) passive(mon, weapon, (sum[i] != M_ATTK_MISS), 1,
mattk->aatyp, FALSE);
}
@@ -5463,8 +5463,8 @@ passive(struct monst *mon,
{
register struct permonst *ptr = mon->data;
register int i, tmp;
int mhit = mhitb ? MM_HIT : MM_MISS;
int malive = maliveb ? MM_HIT : MM_MISS;
int mhit = mhitb ? M_ATTK_HIT : M_ATTK_MISS;
int malive = maliveb ? M_ATTK_HIT : M_ATTK_MISS;
for (i = 0;; i++) {
if (i >= NATTK)
@@ -5539,7 +5539,7 @@ passive(struct monst *mon,
&& !(poly_when_stoned(gy.youmonst.data)
&& polymon(PM_STONE_GOLEM))) {
done_in_by(mon, STONING); /* "You turn to stone..." */
return MM_DEF_DIED;
return M_ATTK_DEF_DIED;
}
}
}