My Project
 
Loading...
Searching...
No Matches
badge.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
5#include <set>
6#include <map>
7#include "typedefine.h"
8
9#include "bundle.h"
10#include "callback.h"
11
12class Item;
13
14class Badges{
15public:
16 class Badge{
17 public:
18 static std::map<std::string, Badge*> mapBadge;
19
20 bool meta;
21 std::string description;
22 std::string name;
23 int image;
24
25 bool operator < (const Badge &c) const
26 {
27 return image < c.image;
28 }
29
30 bool operator == (const Badge &c) const
31 {
32 return image == c.image && description.compare(c.description) == 0 && meta == c.meta;
33 }
34 public:
35 Badge(const Badge& other)
36 {
37 this->description = other.description;
38 this->image = other.image;
39 this->meta = other.meta;
40 this->name = other.name;
41 }
42 Badge(const std::string& name, const std::string& description, int image) :Badge(name, description, image, false){}
43 Badge(const std::string& name, const std::string& description, int image, bool meta)
44 {
45 this->description = description;
46 this->image = image;
47 this->meta = meta;
48 this->name = name;
49
50 mapBadge.insert(std::make_pair(name, this));
51 }
52 Badge(const std::string& name) :Badge(name, "", -1){}
53 };
54
55 static const Badge MONSTERS_SLAIN_1;
56 static const Badge MONSTERS_SLAIN_2;
57 static const Badge MONSTERS_SLAIN_3;
58 static const Badge MONSTERS_SLAIN_4;
59 static const Badge GOLD_COLLECTED_1;
60 static const Badge GOLD_COLLECTED_2;
61 static const Badge GOLD_COLLECTED_3;
62 static const Badge GOLD_COLLECTED_4;
63 static const Badge LEVEL_REACHED_1;
64 static const Badge LEVEL_REACHED_2;
65 static const Badge LEVEL_REACHED_3;
66 static const Badge LEVEL_REACHED_4;
75 static const Badge ALL_BAGS_BOUGHT;
76 static const Badge DEATH_FROM_FIRE;
78 static const Badge DEATH_FROM_GAS;
80 static const Badge DEATH_FROM_GLYPH;
82 static const Badge YASD;
87 static const Badge BOSS_SLAIN_1;
88 static const Badge BOSS_SLAIN_2;
89 static const Badge BOSS_SLAIN_3;
90 static const Badge BOSS_SLAIN_4;
101 static const Badge RING_OF_HAGGLER;
102 static const Badge RING_OF_THORNS;
107 static const Badge FOOD_EATEN_1;
108 static const Badge FOOD_EATEN_2;
109 static const Badge FOOD_EATEN_3;
110 static const Badge FOOD_EATEN_4;
111 static const Badge MASTERY_WARRIOR;
112 static const Badge MASTERY_MAGE;
113 static const Badge MASTERY_ROGUE;
115 static const Badge ITEM_LEVEL_1;
116 static const Badge ITEM_LEVEL_2;
117 static const Badge ITEM_LEVEL_3;
118 static const Badge ITEM_LEVEL_4;
119 static const Badge RARE_ALBINO;
120 static const Badge RARE_BANDIT;
121 static const Badge RARE_SHIELDED;
122 static const Badge RARE_SENIOR;
123 static const Badge RARE_ACIDIC;
124 static const Badge RARE;
125 static const Badge VICTORY_WARRIOR;
126 static const Badge VICTORY_MAGE;
127 static const Badge VICTORY_ROGUE;
129 static const Badge VICTORY;
131 static const Badge MASTERY_COMBO;
137 static const Badge GRIM_WEAPON;
138 static const Badge PIRANHAS;
139 static const Badge NIGHT_HUNTER;
140 static const Badge GAMES_PLAYED_1;
141 static const Badge GAMES_PLAYED_2;
142 static const Badge GAMES_PLAYED_3;
143 static const Badge GAMES_PLAYED_4;
144 static const Badge HAPPY_END;
145 static const Badge CHAMPION;
146 static const Badge SUPPORTER;
147
148public:
149 static Callback* loadingListener;
150private:
151 static HashSet<Badge> global;
152 static HashSet<Badge> local;
153
154 static bool saveNeeded;
155
156
157 static const std::string BADGES_FILE;
158 static const std::string BADGES;
159
160 static void restore(Bundle* bundle, std::set<Badge>& badges);
161 static void store(Bundle* bundle, std::set<Badge>& badges);
162 static void displayBadge(const Badge* badge);
163
164 static void validateYASD();
165public:
166 static void reset();
167 static void loadGlobal();
168 static void saveGlobal();
169 static void loadLocal(Bundle* bundle);
170 static void saveLocal(Bundle* bundle);
171
172 static void validateMonstersSlain();
173 static void validateGoldCollected();
174 static void validateLevelReached();
175 static void validateStrengthAttained();
176 static void validateFoodEaten();
177 static void validatePotionsCooked();
178 static void validatePiranhasKilled();
179 static void validateNoKilling();
180 static void validateItemLevelAquired(Item* item);
181 static void validateDeathFromFire();
182 static void validateGrimWeapon();
183 static void validateDeathFromPoison();
184 static void validateDeathFromFalling();
185 static void validateNightHunter();
186 static void validateDeathFromGas();
187 static void validateDeathFromGlyph();
188 static void validateDeathFromHunger();
189 static bool isUnlocked(Badge badge);
190 static void validateVictory();
191 static void validateChampion();
192 static void validateHappyEnd();
193};
Definition badge.h:16
int image
Definition badge.h:23
bool operator<(const Badge &c) const
Definition badge.h:25
bool operator==(const Badge &c) const
Definition badge.h:30
std::string name
Definition badge.h:22
std::string description
Definition badge.h:21
bool meta
Definition badge.h:20
static std::map< std::string, Badge * > mapBadge
Definition badge.h:18
Badge(const std::string &name, const std::string &description, int image)
Definition badge.h:42
Badge(const std::string &name, const std::string &description, int image, bool meta)
Definition badge.h:43
Badge(const std::string &name)
Definition badge.h:52
Badge(const Badge &other)
Definition badge.h:35
Definition badge.h:14
static bool isUnlocked(Badge badge)
Definition badge.cpp:499
static const Badge BOSS_SLAIN_1
Definition badge.h:87
static void validateChampion()
Definition badge.cpp:564
static const Badge GAMES_PLAYED_1
Definition badge.h:140
static const Badge RARE_SENIOR
Definition badge.h:122
static const Badge RARE_SHIELDED
Definition badge.h:121
static const Badge GOLD_COLLECTED_3
Definition badge.h:61
static void validateDeathFromFalling()
Definition badge.cpp:483
static const Badge BOSS_SLAIN_3_SNIPER
Definition badge.h:98
static const Badge BOSS_SLAIN_1_ROGUE
Definition badge.h:85
static void validateGoldCollected()
Definition badge.cpp:265
static const Badge RING_OF_HAGGLER
Definition badge.h:101
static const Badge BAG_BOUGHT_WAND_HOLSTER
Definition badge.h:74
static const Badge RARE_ALBINO
Definition badge.h:119
static const Badge DEATH_FROM_HUNGER
Definition badge.h:79
static const Badge BOSS_SLAIN_3_BERSERKER
Definition badge.h:93
static void validateStrengthAttained()
Definition badge.cpp:321
static const Badge ALL_SCROLLS_IDENTIFIED
Definition badge.h:68
static const Badge GOLD_COLLECTED_2
Definition badge.h:60
static const Badge DEATH_FROM_POISON
Definition badge.h:77
static const Badge GOLD_COLLECTED_1
Definition badge.h:59
static const Badge GOLD_COLLECTED_4
Definition badge.h:62
static const Badge HAPPY_END
Definition badge.h:144
static const Badge ITEM_LEVEL_3
Definition badge.h:117
static void reset()
Definition badge.cpp:118
static const Badge ITEM_LEVEL_2
Definition badge.h:116
static const Badge LEVEL_REACHED_4
Definition badge.h:66
static const Badge VICTORY_WARRIOR
Definition badge.h:125
static const Badge BAG_BOUGHT_SCROLL_HOLDER
Definition badge.h:73
static const Badge ALL_ITEMS_IDENTIFIED
Definition badge.h:71
static const Badge VICTORY_ALL_CLASSES
Definition badge.h:130
static const Badge BOSS_SLAIN_3_WARDEN
Definition badge.h:99
static const Badge RARE
Definition badge.h:124
static const Badge MASTERY_WARRIOR
Definition badge.h:111
static const Badge RARE_BANDIT
Definition badge.h:120
static const Badge GAMES_PLAYED_3
Definition badge.h:142
static const Badge FOOD_EATEN_2
Definition badge.h:108
static void saveLocal(Bundle *bundle)
Definition badge.cpp:232
static const Badge FOOD_EATEN_3
Definition badge.h:109
static void loadLocal(Bundle *bundle)
Definition badge.cpp:227
static const Badge BOSS_SLAIN_3_ALL_SUBCLASSES
Definition badge.h:100
static const Badge POTIONS_COOKED_3
Definition badge.h:134
static void validateFoodEaten()
Definition badge.cpp:345
static void validateDeathFromFire()
Definition badge.cpp:456
static const Badge MASTERY_COMBO
Definition badge.h:131
static const Badge YASD
Definition badge.h:82
static const Badge ITEM_LEVEL_4
Definition badge.h:118
static const Badge BOSS_SLAIN_1_WARRIOR
Definition badge.h:83
static const Badge ITEM_LEVEL_1
Definition badge.h:115
static void loadGlobal()
Definition badge.cpp:197
static void validateGrimWeapon()
Definition badge.cpp:465
static const Badge NO_MONSTERS_SLAIN
Definition badge.h:136
static Callback * loadingListener
Definition badge.h:149
static const Badge MONSTERS_SLAIN_2
Definition badge.h:56
static const Badge LEVEL_REACHED_2
Definition badge.h:64
static const Badge ALL_BAGS_BOUGHT
Definition badge.h:75
static void validateMonstersSlain()
Definition badge.cpp:237
static void validateNoKilling()
Definition badge.cpp:414
static const Badge BOSS_SLAIN_1_ALL_CLASSES
Definition badge.h:91
static void validateNightHunter()
Definition badge.cpp:490
static const Badge CHAMPION
Definition badge.h:145
static const Badge PIRANHAS
Definition badge.h:138
static const Badge FOOD_EATEN_4
Definition badge.h:110
static const Badge GAMES_PLAYED_2
Definition badge.h:141
static const Badge DEATH_FROM_GAS
Definition badge.h:78
static const Badge BOSS_SLAIN_1_HUNTRESS
Definition badge.h:86
static const Badge MONSTERS_SLAIN_4
Definition badge.h:58
static const Badge BOSS_SLAIN_1_MAGE
Definition badge.h:84
static const Badge VICTORY_ROGUE
Definition badge.h:127
static const Badge BOSS_SLAIN_3_FREERUNNER
Definition badge.h:96
static const Badge MASTERY_MAGE
Definition badge.h:112
static const Badge RING_OF_THORNS
Definition badge.h:102
static void validateDeathFromPoison()
Definition badge.cpp:474
static const Badge LEVEL_REACHED_3
Definition badge.h:65
static const Badge NIGHT_HUNTER
Definition badge.h:139
static void validateVictory()
Definition badge.cpp:529
static const Badge SUPPORTER
Definition badge.h:146
static const Badge BOSS_SLAIN_3_BATTLEMAGE
Definition badge.h:95
static const Badge MONSTERS_SLAIN_1
Definition badge.h:55
static const Badge GRIM_WEAPON
Definition badge.h:137
static const Badge POTIONS_COOKED_2
Definition badge.h:133
static const Badge MASTERY_HUNTRESS
Definition badge.h:114
static const Badge DEATH_FROM_GLYPH
Definition badge.h:80
static const Badge MONSTERS_SLAIN_3
Definition badge.h:57
static const Badge GAMES_PLAYED_4
Definition badge.h:143
static const Badge BOSS_SLAIN_3_ASSASSIN
Definition badge.h:97
static const Badge POTIONS_COOKED_4
Definition badge.h:135
static const Badge DEATH_FROM_FIRE
Definition badge.h:76
static const Badge ALL_WANDS_IDENTIFIED
Definition badge.h:70
static void validateDeathFromGlyph()
Definition badge.cpp:513
static const Badge DEATH_FROM_FALLING
Definition badge.h:81
static const Badge STRENGTH_ATTAINED_4
Definition badge.h:106
static const Badge ALL_RINGS_IDENTIFIED
Definition badge.h:69
static void validateHappyEnd()
Definition badge.cpp:569
static void validatePiranhasKilled()
Definition badge.cpp:401
static const Badge RARE_ACIDIC
Definition badge.h:123
static const Badge ALL_POTIONS_IDENTIFIED
Definition badge.h:67
static const Badge VICTORY_HUNTRESS
Definition badge.h:128
static const Badge MASTERY_ROGUE
Definition badge.h:113
static const Badge STRENGTH_ATTAINED_1
Definition badge.h:103
static const Badge LEVEL_REACHED_1
Definition badge.h:63
static const Badge BAG_BOUGHT_SEED_POUCH
Definition badge.h:72
static void validateLevelReached()
Definition badge.cpp:293
static const Badge STRENGTH_ATTAINED_2
Definition badge.h:104
static const Badge FOOD_EATEN_1
Definition badge.h:107
static void validatePotionsCooked()
Definition badge.cpp:373
static const Badge POTIONS_COOKED_1
Definition badge.h:132
static const Badge VICTORY
Definition badge.h:129
static const Badge BOSS_SLAIN_4
Definition badge.h:90
static const Badge STRENGTH_ATTAINED_3
Definition badge.h:105
static void validateDeathFromHunger()
Definition badge.cpp:520
static const Badge VICTORY_MAGE
Definition badge.h:126
static const Badge BOSS_SLAIN_3_WARLOCK
Definition badge.h:94
static const Badge BOSS_SLAIN_2
Definition badge.h:88
static void validateDeathFromGas()
Definition badge.cpp:504
static void saveGlobal()
Definition badge.cpp:211
static const Badge BOSS_SLAIN_3
Definition badge.h:89
static const Badge BOSS_SLAIN_3_GLADIATOR
Definition badge.h:92
static void validateItemLevelAquired(Item *item)
Definition badge.cpp:424
Definition typedefine.h:16
Definition item.h:15