/************************************************************** * FFTacticsMUD : projectile.h * ************************************************************** * (c) 2002 Damien Dailidenas (Trenton). All rights reserved. * **************************************************************/ #define DECLARE_ON_RELEASE(fun) ON_RELEASE fun #define DECLARE_ON_HIT(fun) ON_HIT fun typedef class PROJECTILE PROJECTILE; typedef class AREA AREA; typedef class ROOM ROOM; typedef void ON_RELEASE args((CH *ch, CH *target)); typedef void ON_HIT args((PROJECTILE *projectile, CH *target)); class PROJECTILE { public: PROJECTILE *next, *next_in_room; AREA *area; ROOM *room; CH *ch, *target; long dam; short timer, id, defense[5], spd, color; ON_HIT *onHit; bool crit, trail, busy; PROJECTILE(); ~PROJECTILE(); void to(ROOM *room); void from_room(); void hit(CH *target); void calculate_damage(const CH *target); void hunt(CH *target); void move(const short dir); void warn(CH *target); short dir(const CH *ch); void leave_trail(); void check_collision(); }; extern PROJECTILE *projectile_list;