-// monster requests
-const int MR_SETUP = 1; // (SERVER) setup monster data
-.bool(Monster this) mr_setup;
-const int MR_THINK = 2; // (SERVER) logic to run every frame
-.bool(Monster this) mr_think;
-const int MR_DEATH = 3; // (SERVER) called when monster dies
-.bool(Monster this) mr_death;
-const int MR_PRECACHE = 4; // (BOTH) precaches models/sounds used by this monster
-.bool(Monster this) mr_precache;
-const int MR_PAIN = 5; // (SERVER) called when monster is damaged
-.bool(Monster this) mr_pain;
-const int MR_ANIM = 6; // (BOTH?) sets animations for monster
-.bool(Monster this) mr_anim;
+ /** (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; }
+ /** (SERVER) called when monster is damaged */
+ METHOD(Monster, mr_pain, float(Monster this, entity actor, float damage_take, entity attacker, float deathtype)) { TC(Monster, this); return damage_take; }
+ /** (BOTH?) sets animations for monster */
+ METHOD(Monster, mr_anim, bool(Monster this, entity actor)) { TC(Monster, this); return false; }