-// other useful macros
-#define MON_ACTION(mon,mrequest) mon.monster_func(mon, mrequest)
-#define _MON_ACTION(mon,mrequest) MON_ACTION(get_monsterinfo(mon), mrequest)
+ /** (SERVER) setup monster data */
+ METHOD(Monster, mr_setup, bool(Monster this, entity actor)) { TC(Monster, this); return false; }
+ /** (SERVER) logic to run every frame */
+ METHOD(Monster, mr_think, bool(Monster this, entity actor)) { TC(Monster, this); return false; }
+ /** (SERVER) called when monster dies */
+ METHOD(Monster, mr_death, bool(Monster this, entity actor)) { TC(Monster, this); return false; }
+ /** (BOTH) precaches models/sounds used by this monster */
+ METHOD(Monster, mr_precache, bool(Monster this)) { TC(Monster, this); return false; }
+ /** (SERVER) called when monster is damaged */
+ METHOD(Monster, mr_pain, bool(Monster this, entity actor)) { TC(Monster, this); return false; }
+ /** (BOTH?) sets animations for monster */
+ METHOD(Monster, mr_anim, bool(Monster this, entity actor)) { TC(Monster, this); return false; }