Add is_watch define for watchmen

This commit is contained in:
Pasi Kallinen
2015-04-27 21:09:26 +03:00
parent 93cbd1fbb1
commit f0699b76d9
7 changed files with 11 additions and 17 deletions

View File

@@ -134,6 +134,8 @@
#define is_displacer(ptr) (((ptr)->mflags3 & M3_DISPLACES) != 0L)
#define is_mplayer(ptr) (((ptr) >= &mons[PM_ARCHEOLOGIST]) && \
((ptr) <= &mons[PM_WIZARD]))
#define is_watch(ptr) ((ptr) == &mons[PM_WATCHMAN] || \
(ptr) == &mons[PM_WATCH_CAPTAIN])
#define is_rider(ptr) ((ptr) == &mons[PM_DEATH] || \
(ptr) == &mons[PM_FAMINE] || \
(ptr) == &mons[PM_PESTILENCE])

View File

@@ -1171,8 +1171,7 @@ watch_dig(mtmp, x, y, zap)
if (!mtmp) {
for(mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp)) continue;
if ((mtmp->data == &mons[PM_WATCHMAN] ||
mtmp->data == &mons[PM_WATCH_CAPTAIN]) &&
if (is_watch(mtmp->data) &&
mtmp->mcansee && m_canseeu(mtmp) &&
couldsee(mtmp->mx, mtmp->my) && mtmp->mpeaceful)
break;

View File

@@ -1198,8 +1198,7 @@ dumb:
if (in_town(x, y))
for(mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp)) continue;
if((mtmp->data == &mons[PM_WATCHMAN] ||
mtmp->data == &mons[PM_WATCH_CAPTAIN]) &&
if (is_watch(mtmp->data) &&
couldsee(mtmp->mx, mtmp->my) &&
mtmp->mpeaceful) {
if (canspotmon(mtmp))
@@ -1218,8 +1217,7 @@ dumb:
if (in_town(x, y))
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp)) continue;
if ((mtmp->data == &mons[PM_WATCHMAN] ||
mtmp->data == &mons[PM_WATCH_CAPTAIN]) &&
if (is_watch(mtmp->data) &&
mtmp->mpeaceful && couldsee(mtmp->mx, mtmp->my)) {
if (canspotmon(mtmp))
pline("%s yells:", Amonnam(mtmp));

View File

@@ -169,8 +169,7 @@ boolean isyou;
/* Warn about future fountain use. */
for(mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp)) continue;
if ((mtmp->data == &mons[PM_WATCHMAN] ||
mtmp->data == &mons[PM_WATCH_CAPTAIN]) &&
if (is_watch(mtmp->data) &&
couldsee(mtmp->mx, mtmp->my) &&
mtmp->mpeaceful) {
pline("%s yells:", Amonnam(mtmp));

View File

@@ -3117,9 +3117,7 @@ register boolean silent;
for(mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp)) continue;
if((mtmp->data == &mons[PM_WATCHMAN] ||
mtmp->data == &mons[PM_WATCH_CAPTAIN])
&& mtmp->mpeaceful) {
if (is_watch(mtmp->data) && mtmp->mpeaceful) {
ct++;
if(cansee(mtmp->mx, mtmp->my) && mtmp->mcanmove) {
if (distu(mtmp->mx, mtmp->my) == 2) nct++;
@@ -3157,9 +3155,8 @@ pacify_guards()
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp)) continue;
if (mtmp->data == &mons[PM_WATCHMAN] ||
mtmp->data == &mons[PM_WATCH_CAPTAIN])
mtmp->mpeaceful = 1;
if (is_watch(mtmp->data))
mtmp->mpeaceful = 1;
}
}

View File

@@ -400,7 +400,7 @@ register struct monst *mtmp;
}
/* the watch will look around and see if you are up to no good :-) */
if (mdat == &mons[PM_WATCHMAN] || mdat == &mons[PM_WATCH_CAPTAIN])
if (is_watch(mdat))
watch_on_duty(mtmp);
else if (is_mind_flayer(mdat) && !rn2(20)) {

View File

@@ -516,8 +516,7 @@ int thrown; /* HMON_xxx (0 => hand-to-hand, other => ranged) */
anger_guards = (mon->mpeaceful &&
(mon->ispriest || mon->isshk ||
mon->data == &mons[PM_WATCHMAN] ||
mon->data == &mons[PM_WATCH_CAPTAIN]));
is_watch(mon->data)));
result = hmon_hitmon(mon, obj, thrown);
if (mon->ispriest && !rn2(2)) ghod_hitsu(mon);
if (anger_guards) (void)angry_guards(!!Deaf);