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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
|
#pragma once
#include <vector>
#include "global.h"
#include "types.h"
#include "nds/math.h"
#include "DTCM/UnkStruct_027e0d38.hpp"
#include "Map/CameraViewpoint.hpp"
#include "Map/Course.hpp"
#include "Map/Entrance.hpp"
#include "Map/Exit.hpp"
#include "Map/TriggerBase.hpp"
#include "System/SysNew.hpp"
#define MAX_ENTRANCES 0x40
#define MAX_TRIGGERS 0x40
#define MAX_EXITS 0x40
#define MAX_VIEWPOINTS 8
#define MAX_MAP_UNK_130 0x20
struct MapBase_Unk_13c {
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */
};
struct MapBase_Unk_140 {
/* 00 */ unk8 mUnk_00[0x5c];
/* 5c */ unk8 mUnk_5c;
/* 5d */ unk8 mUnk_5d[3];
/* 60 */ unk32 *mUnk_60;
/* 64 */
};
struct MapBase_Unk_144 {
/* 00 */ unk8 mUnk_00[0xc];
/* 0c */ unk32 mUnk_0c;
/* 10 */
unk32 *func_ov000_0209c08c(unk32 param_2, unk32 param_3);
void func_ov000_0209c61c(void);
unk32 *func_ov000_0209c530(void);
void func_ov000_0209c788(void);
void func_ov000_0209c8e4(unk32 param_2);
void func_ov000_0209c1e4(unk32 param_2, unk32 param_3, unk32 param_4);
void func_ov000_0209c2b4(unk32 param_2, unk32 param_3);
void func_ov000_0209c2d0(unk32 param_2, unk32 param_3);
};
struct MapBase_Unk_180 {
/* 0 */ unk32 mUnk_0;
/* 4 */
~MapBase_Unk_180();
MapBase_Unk_180();
};
struct MapBase_Unk1 {
/* 00 */ unk32 *mUnk_00;
/* 04 */ Exit mExit_04;
/* 1c */ Exit mExit_1c;
/* 34 */
void func_ov00_02080324(void *param_2, void *param_3, void *param_4);
};
struct MapBase_Unk2_02080ad0 {
TriggerBase **mUnk_00;
TriggerBase **mUnk_04;
};
struct MapBase_Unk2 {
/* 00 */ TriggerBase **ppTVar1;
/* 04 */ TriggerBase **ppTVar2;
/* 08 */ TriggerBase **mTrigger;
/* 10 */ Vec3p mVec;
/* 14 */
/* 20 */
void func_ov00_02080ad0(MapBase_Unk2_02080ad0 param_2, TriggerBase **param_3);
};
struct UnkStruct_0207f38c {
/* 00 */ unk8 mUnk_00[0x14];
/* 14 */ TilePos mUnk_14;
};
class MapBase : public SysObject {
public:
/* 000 (vtable) */
/* 004 */ unk8 mUnk_004;
/* 005 */ unk8 mUnk_005;
/* 006 */ unk8 mUnk_006;
/* 007 */ unk8 mUnk_007;
/* 008 */ unk8 mUnk_008;
/* 009 */ unk8 mUnk_009;
/* 00a */ unk8 mUnk_00a;
/* 00b */ unk8 mUnk_00b;
/* 00c */ unk8 mUnk_00c;
/* 00d */ unk8 mUnk_00d;
/* 00e */ unk8 mUnk_00e;
/* 00f */ unk8 mUnk_00f;
/* 010 */ unk8 mUnk_010;
/* 011 */ unk8 mUnk_011;
/* 012 */ unk8 mUnk_012;
/* 013 */ unk8 mUnk_013;
/* 014 */ unk8 mUnk_014;
/* 015 */ unk8 mUnk_015;
/* 016 */ unk8 mCurrViewpointId[2];
/* 018 */ u8 mUnk_018[2];
/* 01a */ unk8 mUnk_01a;
/* 01b */ unk8 mUnk_01b;
/* 01c */ unk8 mUnk_01c;
/* 01d */ unk8 mUnk_01d;
/* 01e */ unk8 mUnk_01e;
/* 01f */ unk8 mUnk_01f;
/* 020 */ unk32 mUnk_020;
/* 024 */ unk32 mUnk_024;
/* 028 */ s16 mWidth;
/* 02a */ s16 mHeight;
/* 02c */ unk16 mUnk_02c;
/* 02e */ unk16 mUnk_02e;
/* 030 */ u16 mUnk_030;
/* 032 */ unk8 mUnk_032[2];
/* 034 */ unk32 mUnk_034;
/* 038 */ unk32 mUnk_038;
/* 03c */ unk32 mUnk_03c;
/* 040 */ unk32 mUnk_040;
/* 044 */ unk32 mUnk_044;
/* 048 */ u32 mUnk_048;
/* 04c */ unk32 mUnk_04c;
/* 050 */ unk8 mUnk_050[0x80];
/* 0d0 */ Vec3p mCenter;
/* 0dc */ AABB mBounds;
/* 0f4 */ Vec3p mOffset;
/* 100 */ std::vector<Entrance> mEntrances;
/* 10c */ std::vector<TriggerBase *> mTriggers;
/* 118 */ std::vector<Exit> mExits;
/* 124 */ std::vector<CameraViewpoint> mViewpoints;
/* 130 */ std::vector<TriggerBase *> mUnk_130;
/* 13c */ MapBase_Unk_13c *mUnk_13c;
/* 140 */ MapBase_Unk_140 *mUnk_140;
/* 144 */ MapBase_Unk_144 *mUnk_144;
/* 148 */ s32 mUnk_148;
/* 14c */ unk32 mUnk_14c;
/* 150 */ unk32 mUnk_150;
/* 154 */ unk32 mUnk_154;
/* 158 */ unk8 mUnk_158[8];
/* 160 */ unk32 mUnk_160;
/* 164 */ unk8 mUnk_164[0x1c];
/* 180 */ MapBase_Unk_180 mUnk_180[2];
/* 188 */ unk8 mUnk_188[0x14];
/* 19c */ unk32 mUnk_19c;
/* 1a0 */ Vec3p mUnk_1a0;
/* 1ac */ s16 mUnk_1ac;
/* 1b0 */
/* 00 */ virtual ~MapBase();
/* 08 */ virtual void vfunc_08(u32 param_2, u32 param_3, Course *param_4);
/* 0c */ virtual void vfunc_0c(Course *param_2);
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual void vfunc_1c(bool param_2);
/* 20 */ virtual void vfunc_20(s32 param_2);
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28(s32 param_2);
/* 2c */ virtual void vfunc_2c();
/* 30 */ virtual void vfunc_30(s32 param_2);
/* 34 */ virtual bool vfunc_34(char *param_2);
/* 38 */ virtual void vfunc_38();
/* 3c */ virtual void vfunc_3c();
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
/* 4c */ virtual s32 vfunc_4c();
/* 50 */ virtual unk32 vfunc_50();
/* 54 */ virtual unk32 vfunc_54(TilePos *param_1);
/* 58 */ virtual unk32 vfunc_58(TilePos *param_1, int param_2);
/* 5c */ virtual unk32 vfunc_5c();
/* 60 */ virtual unk32 vfunc_60(TilePos *param_1);
/* 64 */ virtual unk32 vfunc_64();
/* 68 */ virtual unk32 vfunc_68(Vec3p *param_1, bool param_2);
/* 6c */ virtual void vfunc_6c(Vec3p *param_2, unk32 *param_3, Vec3p *param_4);
/* 70 */ virtual u16 vfunc_70(Vec3p *param_2);
/* 74 */ virtual unk32 *vfunc_74(Vec3p *param_2);
/* 78 */ virtual unk32 *vfunc_78(TilePos *param_1);
/* 7c */ virtual s32 vfunc_7c(s32 param_1, unk32 *param_2, s32 param_3, short param_4[4]);
/* 80 */ virtual bool vfunc_80(TilePos *param_2);
/* 84 */ virtual bool vfunc_84(UnkStruct_0207f38c *param_2);
/* 88 */ virtual unk32 vfunc_88();
/* 8c */ virtual unk32 vfunc_8c();
/* 90 */ virtual void vfunc_90(TilePos *param_2, unk32 param_3);
/* 94 */ virtual void vfunc_94();
/* 98 */ virtual void vfunc_98(TilePos *param_2, unk32 param_3, unk32 param_4);
/* 9c */ virtual void vfunc_9c();
/* a0 */ virtual void vfunc_a0();
/* a4 */ virtual unk32 vfunc_a4(unk8 *param_1);
/* a8 */ virtual void vfunc_a8();
/* ac */ virtual void vfunc_ac();
/* b0 */ virtual void vfunc_b0(unk32 param_2, unk32 param_3);
/* b4 */ virtual unk32 *vfunc_b4();
/* b8 */ virtual unk32 vfunc_b8(unk32 param_2);
/* bc */ virtual void vfunc_bc();
/* c0 */ virtual void vfunc_c0();
/* c4 */
void SetBounds(unk32 map, Course *course);
void GetMapFilePath(char *courseName, unk32 num1, char *buf);
void func_ov00_0207ddf8(bool param_2);
void func_ov00_0207de68(unk32 param_2);
void func_ov00_0207de88();
void func_ov00_0207dea0(bool param_2);
bool func_ov00_0207e08c(s32 *param_2, s32 param_3);
s32 func_ov00_0207e0f0(s32 param_2);
s32 func_ov00_0207e28c(s32 param_2);
static unk8 *func_ov00_0207e940(unk8 *param_1);
static void func_ov00_0207e968();
static void func_ov00_0207e96c();
static void func_ov00_0207f100();
bool func_ov00_0207f104(Vec3p *param_2, unk32 *param_3);
unk32 func_ov00_0207f1f4(Vec3p *param_2, unk32 *param_3);
bool func_ov00_0207f38c(UnkStruct_0207f38c *param_2);
void func_ov00_0207f4a4(Vec2s *param_2, unk32 param_3);
static void func_ov00_0207f53c(Vec2s *param_1, MapBase *param_2, Vec3p *param_3);
static void func_ov00_0207f588(Vec2s *param_1, MapBase *param_2, TilePos *param_3, unk32 param_4);
void func_ov00_0207f630(Vec2s *param_2, Vec3p *param_3);
unk32 GetTileStartX(unk32 x);
unk32 GetTileStartZ(unk32 z);
unk32 GetTileEndX(unk32 x);
unk32 GetTileEndZ(unk32 z);
void GetTileBounds(TilePos *tilePos, AABB *bounds);
s32 GetClampedTileX(s32 worldX);
s32 GetClampedTileY(s32 worldZ);
unk32 GetTileX(s32 worldX);
unk32 GetTileY(s32 worldZ);
bool IsInBounds(Vec3p *tileWorldPos);
unk32 AddEntrance(Entrance *param_2);
Entrance *FindEntrance(unk32 id);
void func_ov00_0207f924(unk32 param_2);
unk32 *func_ov00_0207f934();
void func_ov00_0207f948(unk32 *param_2);
void AddTrigger(TriggerParams *param_2);
s32 GetTriggerBoundingBox(s32 param_2, AABB *param_3);
u32 GetTriggerBoundingBoxes(s32 param_2, AABB *param_3, s32 param_4);
u8 GetOverlappingTrigger(Vec3p *param_2);
TriggerBase *FindTrigger(unk32 type);
unk32 GetOverlappingTriggers(Vec3p *param_2, TriggerBase **triggers, unk32 capacity);
bool IsTriggerTypeOverlapped(unk32 type, Vec3p *param_3);
bool AnyTrigger_func_0c(unk32 type);
void Trigger_vfunc_08();
bool AddTrigger(TriggerBase *param_2);
bool func_ov00_0207ff88(TriggerBase *param_2);
void func_ov00_0208005c(s32 param_2, s32 param_3, unk32 param_4);
void func_ov00_0208006c(unk32 param_2, s32 param_3);
void func_ov00_0208007c(s32 param_2, s32 param_3);
void func_ov00_0208008c(u32 param_2);
void AddExit(Exit *param_2);
u8 func_ov00_02080140(Exit *param_2);
bool FindExit(u32 param_2, Exit *param_3);
void AddCameraViewpoint(CameraViewpoint *param_2);
bool FindViewpoint_Unk_4(unk8 id, CameraViewpoint *param_3);
bool FindViewpoint_Unk_0(s32 param_2, CameraViewpoint *param_3);
void GetCurrentViewpoint(CameraViewpoint *param_2, s32 param_3);
unk32 GetCurrentViewpoint_Unk_00(s32 param_2);
bool func_ov00_02080824(u32 param_2, unk8 *param_3);
bool AddUnk_130(TriggerBase *param_2);
bool func_ov00_020809b8(TriggerBase *param_2);
TriggerBase *func_ov00_02080a78(Vec3p *param_2);
void func_ov00_02080b24(TilePos *param_2);
void func_ov00_02080d08(TilePos *param_2);
bool TriggerOfType_vfunc_10(unk32 type);
void func_ov00_02080de4();
void func_ov00_02080de8(unk32 param_2);
void func_ov00_02080edc();
MapBase(u32 param1, u32 param2);
void func_ov004_0210c118();
void func_ov004_0210cb1c();
void func_ov004_0210cb38();
void func_ov004_0210cc20(Course *course);
void func_ov004_0210cc58(Course *course, u32 map);
MapBase *func_ov012_0212b358(unk32 param_2, unk32 param_3);
MapBase *func_ov015_02128dd8(unk32 param_2, unk32 param_3);
s32 func_ov015_02129c14();
bool func_ov015_02129c24(Vec3p *param_2, Vec3p *param_3);
bool func_ov015_02129c34(s32 param_2);
bool func_ov015_02129c44(s32 param_2);
MapBase *func_ov017_0215b4a0(unk32 param_2, unk32 param_3);
MapBase *func_ov017_0215b4e8(unk32 param_2, unk32 param_3);
};
|