the item properly, possibly leading to various strange behaviors
avoid a panic splitbill when shopkeeper is trapped by the door
grammar tidbit for message given when eating tainted meat is also cannibalism
+gas spores shouldn't be described as "unable to attack" while hero is praying
Platform- and/or Interface-Specific Fixes
#ifdef BARGETHROUGH
E int FDECL(mdisplacem, (struct monst *,struct monst *,BOOLEAN_P));
#endif
-E int FDECL(noattacks, (struct permonst *));
E int FDECL(sleep_monst, (struct monst *,int,int));
E void FDECL(slept_monst, (struct monst *));
E long FDECL(attk_protection, (int));
E void FDECL(set_mon_data, (struct monst *,struct permonst *,int));
E struct attack *FDECL(attacktype_fordmg, (struct permonst *,int,int));
E boolean FDECL(attacktype, (struct permonst *,int));
+E boolean FDECL(noattacks, (struct permonst *));
E boolean FDECL(poly_when_stoned, (struct permonst *));
E boolean FDECL(resists_drli, (struct monst *));
E boolean FDECL(resists_magm, (struct monst *));
-/* SCCS Id: @(#)mhitm.c 3.4 2003/01/02 */
+/* SCCS Id: @(#)mhitm.c 3.4 2004/10/20 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
return(MM_HIT);
}
-int
-noattacks(ptr) /* returns 1 if monster doesn't attack */
- struct permonst *ptr;
-{
- int i;
-
- for(i = 0; i < NATTK; i++)
- if(ptr->mattk[i].aatyp) return(0);
-
- return(1);
-}
-
/* `mon' is hit by a sleep attack; return 1 if it's affected, 0 otherwise */
int
sleep_monst(mon, amt, how)
-/* SCCS Id: @(#)mondata.c 3.4 2004/06/12 */
+/* SCCS Id: @(#)mondata.c 3.4 2004/10/20 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
return attacktype_fordmg(ptr, atyp, AD_ANY) ? TRUE : FALSE;
}
+/* returns TRUE if monster doesn't attack, FALSE if it does */
+boolean
+noattacks(ptr)
+struct permonst *ptr;
+{
+ int i;
+ struct attack *mattk = ptr->mattk;
+
+ for (i = 0; i < NATTK; i++) {
+ /* AT_BOOM "passive attack" (gas spore's explosion upon death)
+ isn't an attack as far as our callers are concerned */
+ if (mattk[i].aatyp == AT_BOOM) continue;
+
+ if (mattk[i].aatyp) return FALSE;
+ }
+
+ return TRUE;
+}
+
boolean
poly_when_stoned(ptr)
struct permonst *ptr;