22#define APCLIENT_CORE_CHECK_MGR_H
33#include < types.h>
44
5+ #include " core/checks.h"
56#include " core/const.h"
67#include < Sports2/Sp2Cmn.h>
78
89#include < libkiwi.h>
910
1011namespace AP {
1112
12- class CheckMgr : public kiwi ::DynamicSingleton<CheckMgr>,
13- public kiwi::IBinary<CheckMgr> {
13+ #define X (ID, IDENT, STR ) CHECK_ ##IDENT = ID ,
14+ enum CheckID { AP_CHECKS_LIST COUNT };
15+ #undef X
16+
17+ /* *
18+ * @brief Archipelago check manager
19+ */
20+ class CheckMgr : public kiwi ::DynamicSingleton<CheckMgr> {
1421 friend class kiwi ::DynamicSingleton<CheckMgr>;
1522
1623public:
17- enum CheckID {
18- // Stamps
19- SWORDPLAY_SHOWDOWN_STAMP_1 = 0x0000 , // Sport ID 0
20- SWORDPLAY_SHOWDOWN_STAMP_2 = 0x0001 ,
21- SWORDPLAY_SHOWDOWN_STAMP_3 = 0x0002 ,
22- SWORDPLAY_SHOWDOWN_STAMP_4 = 0x0003 ,
23- SWORDPLAY_SHOWDOWN_STAMP_5 = 0x0004 ,
24- SWORDPLAY_DUEL_STAMP_1 = 0x0005 , // Sport ID 1
25- SWORDPLAY_DUEL_STAMP_2 = 0x0006 ,
26- SWORDPLAY_DUEL_STAMP_3 = 0x0007 ,
27- SWORDPLAY_DUEL_STAMP_4 = 0x0008 ,
28- SWORDPLAY_DUEL_STAMP_5 = 0x0009 ,
29- SWORDPLAY_SPEED_SLICE_STAMP_1 = 0x000A , // Sport ID 2
30- SWORDPLAY_SPEED_SLICE_STAMP_2 = 0x000B ,
31- SWORDPLAY_SPEED_SLICE_STAMP_3 = 0x000C ,
32- SWORDPLAY_SPEED_SLICE_STAMP_4 = 0x000D ,
33- SWORDPLAY_SPEED_SLICE_STAMP_5 = 0x000E ,
34- POWER_CRUISING_STAMP_1 = 0x000F , // Sport ID 3
35- POWER_CRUISING_STAMP_2 = 0x0010 ,
36- POWER_CRUISING_STAMP_3 = 0x0011 ,
37- POWER_CRUISING_STAMP_4 = 0x0012 ,
38- POWER_CRUISING_STAMP_5 = 0x0013 ,
39- ARCHERY_STAMP_1 = 0x0019 , // Sport ID 5
40- ARCHERY_STAMP_2 = 0x001A ,
41- ARCHERY_STAMP_3 = 0x001B ,
42- ARCHERY_STAMP_4 = 0x001C ,
43- ARCHERY_STAMP_5 = 0x001D ,
44- FRISBEE_DOG_STAMP_1 = 0x001E , // Sport ID 6
45- FRISBEE_DOG_STAMP_2 = 0x001F ,
46- FRISBEE_DOG_STAMP_3 = 0x0020 ,
47- FRISBEE_DOG_STAMP_4 = 0x0021 ,
48- FRISBEE_DOG_STAMP_5 = 0x0022 ,
49- BASKETBALL_3PT_CONTEST_STAMP_1 = 0x0023 , // Sport ID 7
50- BASKETBALL_3PT_CONTEST_STAMP_2 = 0x0024 ,
51- BASKETBALL_3PT_CONTEST_STAMP_3 = 0x0025 ,
52- BASKETBALL_3PT_CONTEST_STAMP_4 = 0x0026 ,
53- BASKETBALL_3PT_CONTEST_STAMP_5 = 0x0027 ,
54- BASKETBALL_PICKUP_GAME_1 = 0x0028 , // Sport ID 8
55- BASKETBALL_PICKUP_GAME_2 = 0x0029 ,
56- BASKETBALL_PICKUP_GAME_3 = 0x002A ,
57- BASKETBALL_PICKUP_GAME_4 = 0x002B ,
58- BASKETBALL_PICKUP_GAME_5 = 0x002C ,
59- BOWLING_STANDARD_GAME_STAMP_1 = 0x002D , // Sport ID 9
60- BOWLING_STANDARD_GAME_STAMP_2 = 0x002E ,
61- BOWLING_STANDARD_GAME_STAMP_3 = 0x002F ,
62- BOWLING_STANDARD_GAME_STAMP_4 = 0x0030 ,
63- BOWLING_STANDARD_GAME_STAMP_5 = 0x0031 ,
64- BOWLING_100_PIN_STAMP_1 = 0x0032 , // Sport ID 10
65- BOWLING_100_PIN_STAMP_2 = 0x0033 ,
66- BOWLING_100_PIN_STAMP_3 = 0x0034 ,
67- BOWLING_100_PIN_STAMP_4 = 0x0035 ,
68- BOWLING_100_PIN_STAMP_5 = 0x0036 ,
69- BOWLING_SPIN_CONTROL_STAMP_1 = 0x0037 , // Sport ID 11
70- BOWLING_SPIN_CONTROL_STAMP_2 = 0x0038 ,
71- BOWLING_SPIN_CONTROL_STAMP_3 = 0x0039 ,
72- BOWLING_SPIN_CONTROL_STAMP_4 = 0x003A ,
73- BOWLING_SPIN_CONTROL_STAMP_5 = 0x003B ,
74- CANOEING_STAMP_1 = 0x0041 , // Sport ID 13
75- CANOEING_STAMP_2 = 0x0042 ,
76- CANOEING_STAMP_3 = 0x0043 ,
77- CANOEING_STAMP_4 = 0x0044 ,
78- CANOEING_STAMP_5 = 0x0045 ,
79- TABLE_TENNIS_RETURN_CHALLENGE_STAMP_1 = 0x0046 , // Sport ID 14
80- TABLE_TENNIS_RETURN_CHALLENGE_STAMP_2 = 0x0047 ,
81- TABLE_TENNIS_RETURN_CHALLENGE_STAMP_3 = 0x0048 ,
82- TABLE_TENNIS_RETURN_CHALLENGE_STAMP_4 = 0x0049 ,
83- TABLE_TENNIS_RETURN_CHALLENGE_STAMP_5 = 0x004A ,
84- TABLE_TENNIS_MATCH_STAMP_1 = 0x004B , // Sport ID 15
85- TABLE_TENNIS_MATCH_STAMP_2 = 0x004C ,
86- TABLE_TENNIS_MATCH_STAMP_3 = 0x004D ,
87- TABLE_TENNIS_MATCH_STAMP_4 = 0x004E ,
88- TABLE_TENNIS_MATCH_STAMP_5 = 0x004F ,
89- WAKEBOARDING_STAMP_1 = 0x0050 , // Sport ID 16
90- WAKEBOARDING_STAMP_2 = 0x0051 ,
91- WAKEBOARDING_STAMP_3 = 0x0052 ,
92- WAKEBOARDING_STAMP_4 = 0x0053 ,
93- WAKEBOARDING_STAMP_5 = 0x0054 ,
94- ISLAND_FLYOVER_STAMP_1 = 0x0055 , // Sport ID 17
95- ISLAND_FLYOVER_STAMP_2 = 0x0056 ,
96- ISLAND_FLYOVER_STAMP_3 = 0x0057 ,
97- ISLAND_FLYOVER_STAMP_4 = 0x0058 ,
98- ISLAND_FLYOVER_STAMP_5 = 0x0059 ,
99- GOLF_STAMP_1 = 0x005F , // Sport ID 19
100- GOLF_STAMP_2 = 0x0060 ,
101- GOLF_STAMP_3 = 0x0061 ,
102- GOLF_STAMP_4 = 0x0062 ,
103- GOLF_STAMP_5 = 0x0063 ,
104- FRISBEE_GOLF_STAMP_1 = 0x0064 , // Sport ID 20
105- FRISBEE_GOLF_STAMP_2 = 0x0065 ,
106- FRISBEE_GOLF_STAMP_3 = 0x0066 ,
107- FRISBEE_GOLF_STAMP_4 = 0x0067 ,
108- FRISBEE_GOLF_STAMP_5 = 0x0068 ,
109- CYCLING_STAMP_1 = 0x006E , // Sport ID 22
110- CYCLING_STAMP_2 = 0x006F ,
111- CYCLING_STAMP_3 = 0x0070 ,
112- CYCLING_STAMP_4 = 0x0071 ,
113- CYCLING_STAMP_5 = 0x0072 ,
114- SKYDIVING_STAMP_1 = 0x0073 , // Sport ID 23
115- SKYDIVING_STAMP_2 = 0x0074 ,
116- SKYDIVING_STAMP_3 = 0x0075 ,
117- SKYDIVING_STAMP_4 = 0x0076 ,
118- SKYDIVING_STAMP_5 = 0x0077 ,
119-
120- // Swordplay Duel
121- SWORDPLAY_DUEL_FIRST_WIN = 0x0200 ,
122-
123- // Bowling Standard Game
124- BOWLING_STANDARD_FIRST_STRIKE = 0x0E00 ,
125-
126- // Island Flyover
127- ISLAND_FLYOVER_IPOINT_GROUP_1 = 0x1B00 ,
128- ISLAND_FLYOVER_IPOINT_GROUP_2 = 0x1B01 ,
129- ISLAND_FLYOVER_IPOINT_GROUP_3 = 0x1B02 ,
130- ISLAND_FLYOVER_IPOINT_GROUP_4 = 0x1B03 ,
131- ISLAND_FLYOVER_IPOINT_GROUP_5 = 0x1B04 ,
132- ISLAND_FLYOVER_IPOINT_GROUP_6 = 0x1B05 ,
133- ISLAND_FLYOVER_IPOINT_GROUP_7 = 0x1B06 ,
134- ISLAND_FLYOVER_IPOINT_GROUP_8 = 0x1B07 ,
135- ISLAND_FLYOVER_IPOINT_GROUP_9 = 0x1B08 ,
136- ISLAND_FLYOVER_IPOINT_GROUP_10 = 0x1B09 ,
137- ISLAND_FLYOVER_IPOINT_GROUP_11 = 0x1B0A ,
138- ISLAND_FLYOVER_IPOINT_GROUP_12 = 0x1B0B ,
139-
140- GOLF_COMPLTE_HOLE_1 = 0x0D00 ,
141- GOLF_COMPLTE_HOLE_2 = 0x0D01 ,
142- GOLF_COMPLTE_HOLE_3 = 0x0D02 ,
143- GOLF_COMPLTE_HOLE_4 = 0x0D03 ,
144- GOLF_COMPLTE_HOLE_5 = 0x0D04 ,
145- GOLF_COMPLTE_HOLE_6 = 0x0D05 ,
146- GOLF_COMPLTE_HOLE_7 = 0x0D06 ,
147- GOLF_COMPLTE_HOLE_8 = 0x0D07 ,
148- GOLF_COMPLTE_HOLE_9 = 0x0D08 ,
149- GOLF_COMPLTE_HOLE_10 = 0x0D09 ,
150- GOLF_COMPLTE_HOLE_11 = 0x0D0A ,
151- GOLF_COMPLTE_HOLE_12 = 0x0D0B ,
152- GOLF_COMPLTE_HOLE_13 = 0x0D0C ,
153- GOLF_COMPLTE_HOLE_14 = 0x0D0D ,
154- GOLF_COMPLTE_HOLE_15 = 0x0D0E ,
155- GOLF_COMPLTE_HOLE_16 = 0x0D0F ,
156- GOLF_COMPLTE_HOLE_17 = 0x0D10 ,
157- GOLF_COMPLTE_HOLE_18 = 0x0D11 ,
158- GOLF_COMPLTE_HOLE_19 = 0x0D12 ,
159- GOLF_COMPLTE_HOLE_20 = 0x0D13 ,
160- GOLF_COMPLTE_HOLE_21 = 0x0D14 ,
161-
162- COUNT
163- }; // CheckID;
24+ /* *
25+ * @brief Gets the readable name of the specified check ID
26+ */
27+ static kiwi::String GetCheckName (CheckID id);
16428
165- public:
16629 /* *
16730 * @brief Sets debug state
16831 */
@@ -213,65 +76,12 @@ class CheckMgr : public kiwi::DynamicSingleton<CheckMgr>,
21376 */
21477 void GiveItemFromCheck (CheckID id);
21578
216- /* *
217- * @brief Gets name of check
218- *
219- */
220- const char * GetCheckName (CheckID id) const ;
221-
222- /* *
223- * @brief populates check id array
224- */
225- void GenerateCheckIDArray ();
226-
227- private:
228- // ! Binary file magic
229- static const u32 SIGNATURE = ' CHCK' ;
230- // ! Binary file version
231- static const int VERSION = K_BIN_VERSION (1 , 0 );
232- // ! Binary file path
233- static const char * PATH ;
234-
235- private:
236- /* *
237- * @brief Binary file structure
238- */
239- #pragma pack(push, 1)
240- struct BinData {};
241- #pragma pack(pop)
242-
24379private:
24480 /* *
24581 * @brief Constructor
24682 */
24783 CheckMgr ();
24884
249- /* *
250- * @brief Gets the kind/magic of this object
251- */
252- virtual u32 GetBinaryKind () const {
253- return SIGNATURE ;
254- }
255- /* *
256- * @brief Gets the expected version of this object
257- */
258- virtual u16 GetVersion () const {
259- return VERSION ;
260- }
261-
262- /* *
263- * @brief Deserializes binary contents (internal implementation)
264- *
265- * @param rBin Binary file contents
266- */
267- virtual void DeserializeImpl (const Bin& rBin);
268- /* *
269- * @brief Serializes binary contents (internal implementation)
270- *
271- * @param rBin Binary file contents
272- */
273- virtual void SerializeImpl (Bin& rBin) const ;
274-
27585public:
27686 /* *
27787 * @brief returns number of groups of i point checks obtained
@@ -283,9 +93,6 @@ class CheckMgr : public kiwi::DynamicSingleton<CheckMgr>,
28393 return 99 ;
28494 }
28595
286- public:
287- kiwi::TArray<CheckID, 135 > checkIDArr;
288-
28996private:
29097 kiwi::THashMap<CheckID, bool > mCheckState ; // !< Check state
29198 kiwi::THashMap<CheckID, u16 > mCheckToItemID ; // !< Check to item mapping
0 commit comments