00001 #ifndef PLACE_INFO_H 00002 #define PLACE_INFO_H 00003 00004 class PlaceInfo 00005 { 00006 public: 00007 int level_type; // enum level_area_type 00008 int branch; // enum branch_type if LEVEL_DUNGEON; otherwise -1 00009 00010 unsigned int num_visits; 00011 unsigned int levels_seen; 00012 00013 unsigned int mon_kill_exp; 00014 unsigned int mon_kill_exp_avail; 00015 unsigned int mon_kill_num[KC_NCATEGORIES]; 00016 00017 int turns_total; 00018 int turns_explore; 00019 int turns_travel; 00020 int turns_interlevel; 00021 int turns_resting; 00022 int turns_other; 00023 00024 int elapsed_total; 00025 int elapsed_explore; 00026 int elapsed_travel; 00027 int elapsed_interlevel; 00028 int elapsed_resting; 00029 int elapsed_other; 00030 00031 public: 00032 PlaceInfo(); 00033 00034 bool is_global() const; 00035 void make_global(); 00036 00037 void assert_validity() const; 00038 00039 const std::string short_name() const; 00040 00041 const PlaceInfo &operator += (const PlaceInfo &other); 00042 const PlaceInfo &operator -= (const PlaceInfo &other); 00043 PlaceInfo operator + (const PlaceInfo &other) const; 00044 PlaceInfo operator - (const PlaceInfo &other) const; 00045 }; 00046 00047 #endif