/**************************************************************
* 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);