/************************************************************** * FFTacticsMUD : status.h * ************************************************************** * (c) 2002 Damien Dailidenas (Trenton). All rights reserved. * **************************************************************/ #define DECLARE_STATUS(fun) STATUSTYPE fun #define PULSE_STATUS 4 #define STATUS_ADD 0 #define STATUS_REMOVE 1 #define STATUS_UPDATE 2 typedef class CH CH; typedef class STATUS STATUS; typedef void STATUSTYPE args((CH *ch, STATUS *status, const short action)); class STATUS { public: STATUS *next; short id, ctr, turns; STATUSTYPE *type; STATUS() { next = NULL, type = NULL, id = 0, ctr = 0, turns = 0; } string name(); bool display(); }; struct status_type { const char *name; short ctr; STATUSTYPE *type; }; extern const struct status_type status_table[]; /*********************** * STATUS DECLARATIONS * ***********************/ DECLARE_STATUS(status_charging); DECLARE_STATUS(status_defending); DECLARE_STATUS(status_performing); DECLARE_STATUS(status_accumulate); DECLARE_STATUS(status_berserk); DECLARE_STATUS(status_bloodsuck); DECLARE_STATUS(status_charm); DECLARE_STATUS(status_confusion); DECLARE_STATUS(status_darkness); DECLARE_STATUS(status_dead); DECLARE_STATUS(status_deathsentence); DECLARE_STATUS(status_dontact); DECLARE_STATUS(status_dontmove); DECLARE_STATUS(status_faith); DECLARE_STATUS(status_float); DECLARE_STATUS(status_frog); DECLARE_STATUS(status_haste); DECLARE_STATUS(status_innocent); DECLARE_STATUS(status_invitation); DECLARE_STATUS(status_oil); DECLARE_STATUS(status_petrify); DECLARE_STATUS(status_poison); DECLARE_STATUS(status_protect); DECLARE_STATUS(status_reflect); DECLARE_STATUS(status_regen); DECLARE_STATUS(status_reraise); DECLARE_STATUS(status_shell); DECLARE_STATUS(status_silence); DECLARE_STATUS(status_slow); DECLARE_STATUS(status_sleep); DECLARE_STATUS(status_stop); DECLARE_STATUS(status_deathsentence); DECLARE_STATUS(status_frog); DECLARE_STATUS(status_darkness); DECLARE_STATUS(status_silence); DECLARE_STATUS(status_transparent); DECLARE_STATUS(status_undead);