Skip to content

Commit e7085e7

Browse files
committed
x macro for checks
1 parent 39a7fb5 commit e7085e7

11 files changed

Lines changed: 242 additions & 700 deletions

File tree

src/core/CheckMgr.cpp

Lines changed: 23 additions & 448 deletions
Large diffs are not rendered by default.

src/core/CheckMgr.h

Lines changed: 13 additions & 206 deletions
Original file line numberDiff line numberDiff line change
@@ -2,167 +2,30 @@
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

1011
namespace 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

1623
public:
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-
24379
private:
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-
27585
public:
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-
28996
private:
29097
kiwi::THashMap<CheckID, bool> mCheckState; //!< Check state
29198
kiwi::THashMap<CheckID, u16> mCheckToItemID; //!< Check to item mapping

0 commit comments

Comments
 (0)