#define ACT_IS_NPC 0 #define ACT_SENTINEL 1 #define ACT_SCAVENGER 2 #define ACT_CAN_TAME 3 #define ACT_AGGR_ALL 4 #define ACT_STAY_AREA 5 #define ACT_WIMPY 6 #define ACT_HUMANOID 7 #define ACT_WARM_BLOODED 8 #define ACT_SUMMONABLE 9 #define ACT_ASSIST_GROUP 10 #define ACT_CAN_FLY 11 #define ACT_CAN_SWIM 12 #define ACT_MOUNT 13 #define ACT_CAN_CLIMB 14 #define ACT_CAN_CARRY 15 #define ACT_HAS_EYES 16 #define ACT_HAS_SKELETON 17 #define ACT_GHOST 18 #define ACT_ZERO_REGEN 19 #define ACT_SLITHERS 20 #define ACT_OOZES 21 #define ACT_NO_BASH 22 #define ACT_MIMIC 23 #define ACT_PREDATOR 24 #define ACT_MELT 25 #define ACT_AGGR_EVIL 26 #define ACT_AGGR_GOOD 27 #define ACT_CARNIVORE 28 #define ACT_ELEMENTAL 29 #define ACT_USE_THE 30 #define MAX_ACT 31 class Species_Data { public: descr_data* descr; mprog_data* mprog; reset_data* reset; share_data* shdata; program_data* attack; const char* creator; int date; int vnum; int hitdice; int movedice; int sex; int adult; int maturity; int language; int nation; int group; int affected_by [ 2 ]; int gold; int color; int size; int weight; int chance [ MAX_ARMOR ]; int armor [ MAX_ARMOR ]; char* part_name [ MAX_ARMOR ]; int act_flags; int wear_part; int skeleton; int zombie; int corpse; int price; int damage; int rounds; int special; int damage_taken; int exp; int wander; int light; Species_Data( ) { record_new( sizeof( species_data ), MEM_SPECIES ); mprog = NULL; reset = NULL; nation = NATION_NONE; wander = 4000; } ~Species_Data( ) { record_delete( sizeof( species_data ), MEM_SPECIES ); } const char* Name ( ); }; bool can_extract ( species_data*, char_data* ); void fix_species ( void ); mob_data* create_mobile ( species_data* ); /* * GET_SPECIES ROUTINE */ extern species_data* species_list [ MAX_SPECIES ]; inline species_data* get_species( int vnum ) { if( vnum < 0 || vnum >= MAX_SPECIES ) return NULL; return species_list[ vnum ]; }