/**************************************************************************/ // races.h - The race class /*************************************************************************** * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt * * >> A number of people have contributed to the Dawn codebase, with the * * majority of code written by Michael Garratt - www.dawnoftime.org * * >> To use this source code, you must fully comply with the dawn license * * in licenses.txt... In particular, you may not remove this copyright * * notice. * **************************************************************************/ #ifndef RACES_H #define RACES_H /**************************************************************************/ // race flags #define RACEFLAG_CREATION_ACTIVATED (B) // race is activated for creation #define RACEFLAG_PCRACE (C) // pcrace stats have meaning #define RACEFLAG_DYNAMICALLY_GENERATED (D) // pcrace stats have meaning #define RACEFLAG_PCRACE_WITH_NO_CLASSXP_SET (E) #define RACEFLAG_NIGHTMAP (G) #define RACEFLAG_REGEN_SLOW_IN_LIGHT (H) #define RACEFLAG_NEED_TWICE_AS_MUCH_SLEEP (I) #define RACEFLAG_ALWAYS_HIDDEN_FROM_MORTAL_RACEINFO (J) // only effects morts #define RACEFLAG_HIDDEN_FROM_MORTAL_RACEINFO_WHEN_ABOVE_THEIR_REMORT (K) // only effects morts #define RACEFLAG_LOWCOST_LAUNCH (L) #define RACEFLAG_NO_CUSTOMIZATION (M) int race_generate_race_adding_to_race_table(const char *name); extern const struct flag_type race_flags[]; char *race_get_races_set_for_n_array(unsigned char n_array[]); /**************************************************************************/ class race_data { public: // public member functions bool pc_race() { return IS_SET(flags, RACEFLAG_PCRACE)==0?false:true;}; bool creation_selectable(); void update_dynamic_flags(); public: race_data *next; char * name; // call name of the race char * short_name; language_data *language; // default language for the race long flags; // autosave etc long act; // act bits for the race long aff; // aff bits for the race long aff2; // aff2 bits for the race long off; // off bits for the race long imm; // imm bits for the race long res; // res bits for the race long vuln; // vuln bits for the race long form; // default form flag for the race long parts; // default parts for the race sh_int remort_number; // which remort this race belongs to sh_int points; // cost in points of the race sh_int class_exp[MAX_CLASS]; // exp to play race for a particular class sh_int skills[MAX_RACIAL_SKILLS]; // bonus skills for the race sh_int stat_modifier[MAX_STATS]; // starting stats sh_int size; // aff bits for the race sh_int start_hp; int max_hp; sh_int low_size; sh_int high_size; int recall_room; int death_room; vn_int morgue; vn_int newbie_map_vnum; sh_int min_height; sh_int max_height; sh_int min_weight; sh_int max_weight; int food_vnum; // dynamic data below here - not saved, generated each time int inuse; // number of mobs using that race int areacount; // number of areas the race is used in area_data * lastarea; // used to get the areacount char * load_language; // used to load/save languages in text form char * load_skills; // used to load/save skills in text form }; #endif // RACES_H /**************************************************************************/