diff --git a/doc/fixes34.4 b/doc/fixes34.4 index ace4cfb25..1c90981a5 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -56,6 +56,7 @@ destroying a worn item via dipping in burning oil would not unwear/unwield 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 diff --git a/include/extern.h b/include/extern.h index 7c53e4ab0..11db72c19 100644 --- a/include/extern.h +++ b/include/extern.h @@ -996,7 +996,6 @@ E int FDECL(mattackm, (struct monst *,struct monst *)); #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)); @@ -1203,6 +1202,7 @@ E void FDECL(decide_to_shapeshift, (struct monst *,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 *)); diff --git a/src/mhitm.c b/src/mhitm.c index 1a74dbf83..f085ef00e 100644 --- a/src/mhitm.c +++ b/src/mhitm.c @@ -1,4 +1,4 @@ -/* 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. */ @@ -1265,18 +1265,6 @@ mdamagem(magr, mdef, mattk) 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) diff --git a/src/mondata.c b/src/mondata.c index 33d0bd0f7..53077129d 100644 --- a/src/mondata.c +++ b/src/mondata.c @@ -1,4 +1,4 @@ -/* 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. */ @@ -46,6 +46,25 @@ int atyp; 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;