1 #pragma once
2 
3 class PlaceInfo
4 {
5 public:
6     branch_type branch;
7 
8     unsigned int num_visits;
9     unsigned int levels_seen;
10 
11     unsigned int mon_kill_exp;
12     unsigned int mon_kill_num[KC_NCATEGORIES];
13 
14     int turns_total;
15     int turns_explore;
16     int turns_travel;
17     int turns_interlevel;
18     int turns_resting;
19     int turns_other;
20 
21     int elapsed_total;
22     int elapsed_explore;
23     int elapsed_travel;
24     int elapsed_interlevel;
25     int elapsed_resting;
26     int elapsed_other;
27 
28 public:
29     PlaceInfo();
30 
31     bool is_global() const;
32 
33     void assert_validity() const;
34 
35     const string short_name() const;
36 
37     const PlaceInfo &operator += (const PlaceInfo &other);
38     const PlaceInfo &operator -= (const PlaceInfo &other);
39     PlaceInfo operator + (const PlaceInfo &other) const;
40     PlaceInfo operator - (const PlaceInfo &other) const;
41 };
42 
43 class LevelXPInfo
44 {
45 public:
46     level_id level;
47 
48     unsigned int non_vault_xp;
49     unsigned int non_vault_count;
50     unsigned int vault_xp;
51     unsigned int vault_count;
52 
53 public:
54     LevelXPInfo();
55     LevelXPInfo(const level_id &level);
56 
57     bool is_global() const;
58 
59     void assert_validity() const;
60 
61     const LevelXPInfo &operator += (const LevelXPInfo &other);
62     const LevelXPInfo &operator -= (const LevelXPInfo &other);
63     LevelXPInfo operator + (const LevelXPInfo &other) const;
64     LevelXPInfo operator - (const LevelXPInfo &other) const;
65 };
66