Death attacking a monster does drain life attack
add unique Rider revival messages
don't dereference NULL u.ustuck in dobuzz() when hero has been swallowed
+monsters should growl even if you can't hear it
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
adjalign(2);
} else
adjalign(-1); /* attacking peaceful monsters is bad */
- if (couldsee(mtmp->mx, mtmp->my)) {
- if (humanoid(mtmp->data) || mtmp->isshk || mtmp->isgd)
+ if (humanoid(mtmp->data) || mtmp->isshk || mtmp->isgd) {
+ if (couldsee(mtmp->mx, mtmp->my))
pline("%s gets angry!", Monnam(mtmp));
- else if (flags.verbose && !Deaf)
- growl(mtmp);
+ } else {
+ growl(mtmp);
}
/* attacking your own quest leader will anger his or her guardians */
} else if (mon->data->mlet == mtmp->data->mlet
&& big_little_match(mndx, monsndx(mon->data))
&& !rn2(3)) {
- if (!Deaf && !rn2(4)) {
+ if (!rn2(4)) {
growl(mon);
exclaimed = (iflags.last_msg == PLNMSG_GROWL);
}
{
register const char *growl_verb = 0;
- if (mtmp->msleeping || !mtmp->mcanmove || !mtmp->data->msound)
+ if (mtmp->msleeping || !mtmp->mcanmove || mtmp->data->msound == MS_SILENT)
return;
/* presumably nearness and soundok checks have already been made */
else
growl_verb = growl_sound(mtmp);
if (growl_verb) {
- pline("%s %s!", Monnam(mtmp), vtense((char *) 0, growl_verb));
- iflags.last_msg = PLNMSG_GROWL;
- if (g.context.run)
- nomul(0);
+ if (canseemon(mtmp) || !Deaf) {
+ pline("%s %s!", Monnam(mtmp), vtense((char *) 0, growl_verb));
+ iflags.last_msg = PLNMSG_GROWL;
+ if (g.context.run)
+ nomul(0);
+ }
wake_nearto(mtmp->mx, mtmp->my, mtmp->data->mlevel * 18);
}
}