1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
#pragma once
#include "global.h"
#include "types.h"
#include "../Item/Item.hpp"
#include "Actor/Actor.hpp"
#include "Unknown/UnkStruct_020ec7dc.hpp"
class SaveItemManager_f8 {
public:
/* 00 */ u32 mUnk_00[2];
/* 08 */
static void func_ov008_021139d8();
static void func_ov008_021139dc();
~SaveItemManager_f8();
SaveItemManager_f8();
};
class SaveItemManager_2f8 {
public:
/* 00 */ u32 mUnk_00[2];
/* 08 */ u32 mUnk_08[1];
/* 0c */
static void func_ov008_02113984();
static void func_ov008_02113988();
~SaveItemManager_2f8();
SaveItemManager_2f8();
};
class SaveItemManager_d1c {
public:
/* 00 */ unk8 pad[0x1c];
/* 1c */ Actor_UnkStruct_020 mUnk_1c;
/* 30 */
static void func_ov008_02113968();
static void func_ov008_0211396c();
SaveItemManager_d1c();
~SaveItemManager_d1c();
};
class SaveItemManager_cec {
public:
/* 00 */ unk32 mUnk_00;
void func_ov000_0207a3e4();
};
class SaveItemManager_2400 {
public:
/* 00 */ unk32 mUnk_00;
void func_ov000_0207a5ac();
};
class SaveItemManager_2580 {
public:
/* 00 */ u16 mUnk_00[11];
/* 16 */
};
class SaveItemManager_2840 {
public:
/* 00 */ unk32 mUnk_00;
void func_ov000_0207a4f0();
};
class SaveItemManager_2940 {
public:
/* 00 */ unk32 mUnk_00;
void func_ov000_0207a6d0();
};
extern "C" void Fill16(int value, unsigned short *dst, int size);
extern "C" void Fill32(unk32, u32 *, unk32);
extern "C" void Fill256(int value, void *dst, int size);
class SaveInventory {
public:
/* 0000 */ ItemFlags itemFlags;
/* 0010 */ u32 salvagedTreasureFlags;
/* 0014 */ ShipPartPricesShown shipPartPricesShown;
/* 0020 */ u32 treasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
/* 0024 */ u8 equippedShipParts[ShipPart_COUNT];
/* 002c */ s8 shipParts[ShipPart_COUNT][ShipType_COUNT];
/* 0074 */ s8 treasure[Treasure_COUNT];
/* 007c */ unk16 unk_7c;
/* 007e */ unk8 unk_7e;
/* 007f */ unk8 unk_7f;
/* 0080 */ u16 hourglassSeconds;
/* 0082 */ u16 fishSize[FishType_COUNT];
/* 008e */ u16 numRupees;
/* 0090 */ unk8 unk_90;
/* 0091 */ unk8 unk_91;
/* 0092 */ unk8 unk_92;
/* 0093 */ u8 numBombs;
/* 0094 */ u8 numBombchus;
/* 0095 */ u8 numArrows;
/* 0096 */ s8 equippedItem;
/* 0097 */ Potion potions[MAX_POTIONS];
/* 0099 */ u8 numGems[Gem_COUNT];
/* 009c */ u8 quiverSize;
/* 009d */ u8 bombBagSize;
/* 009e */ u8 bombchuBagSize;
/* 009f */ FishType fishCount[FishType_COUNT];
/* 00a5 */ u8 equippedFairy;
/* 00a6 */ unk16 unk_a6;
/* 00a8 */ unk32 unk_a8[0x12];
/* 00f0 */ u16 unk_f0[4];
/* 00f8 */
SaveInventory() {
Fill32(0, this->itemFlags.flags, sizeof(this->itemFlags));
Fill32(0, &this->salvagedTreasureFlags, sizeof(this->salvagedTreasureFlags));
Fill32(0, this->shipPartPricesShown.flags, sizeof(this->shipPartPricesShown));
Fill32(0, this->treasurePriceShownFlags, sizeof(this->treasurePriceShownFlags));
this->unk_7c = 0;
this->unk_7e = 0;
this->unk_7f = 0;
this->Init();
Fill256(0, this->unk_a8, sizeof(this->unk_a8));
Fill16(0, this->unk_f0, sizeof(this->unk_f0));
}
void Init();
};
class SaveItemManager_Dummy2 {
public:
/* 000 */ u32 unk_cac[16];
SaveItemManager_Dummy2() {
Fill32(0, this->unk_cac, sizeof(this->unk_cac));
Fill32(0, this->unk_cac, sizeof(this->unk_cac));
}
};
class SaveItemManager {
public:
/* 0000 */ SaveInventory inventory;
/* 00f8 */ SaveItemManager_f8 unk_f8[64];
/* 02f8 */ SaveItemManager_2f8 unk_2f8[207];
/* 0cac */ SaveItemManager_Dummy2 unk_cac;
/* 0cec */ SaveItemManager_cec unk_cec;
/* 0cf0 */ unk8 unk_cf0[0xd1c - 0xcf0];
/* 0d1c */ SaveItemManager_d1c unk_d1c[8];
/* 0e9c */ u32 unk_e9c[2];
/* 0ea4 */ u32 unk_ea4[1];
/* 0ea8 */ unk8 unk_ea8[0xeb0 - 0xea8];
/* 0eb0 */ u32 unk_eb0[2];
/* 0eb8 */ u32 unk_eb8[336];
/* 13f8 */ unk8 unk_13f8[0x1400 - 0x13f8];
/* 1400 */ unk32 unk_1400[0x400];
/* 2400 */ SaveItemManager_2400 unk_2400;
/* 2404 */ unk8 unk_2404[0x2580 - 0x2404];
/* 2580 */ SaveItemManager_2580 unk_2580[32];
/* 2840 */ SaveItemManager_2840 unk_2840;
/* 2844 */ unk8 unk_2844[0x2900 - 0x2844];
/* 2900 */ UnkStruct_020ec7dc unk_2900;
/* 2940 */ SaveItemManager_2940 unk_2940;
/* 2940 */ unk8 unk_2944[0x29c0 - 0x2944];
/* 29c0 */ unk32 unk_29c0;
/* 29c4 */
SaveItemManager();
void func_ov000_0207a418();
};
extern SaveItemManager gSaveItemManager;
|