summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2025-07-01 22:36:29 +0200
committerAetias <aetias@outlook.com>2025-07-01 22:36:29 +0200
commit67c7707657bc509e7a534ad74eaf0d513feb861f (patch)
tree5506b6a43e75e45bcb3df60057dfddbb36e4e272 /include
parentfc678172685705dfbbd6ce264331a14bd0b4ba9c (diff)
parentd90d96dca48177a841e7f76101343125debb594a (diff)
Merge remote-tracking branch 'zeldaret/main' into hammer
Diffstat (limited to 'include')
-rw-r--r--include/Actor/ActorType.hpp1
-rw-r--r--include/DTCM/UnkStruct_027e02a0.hpp10
-rw-r--r--include/DTCM/UnkStruct_027e0618.hpp9
-rw-r--r--include/DTCM/UnkStruct_027e08f8.hpp9
-rw-r--r--include/DTCM/UnkStruct_027e0d38.hpp4
-rw-r--r--include/DTCM/UnkStruct_027e0f64.hpp5
-rw-r--r--include/Map/Course.hpp15
-rw-r--r--include/Map/Entrance.hpp5
-rw-r--r--include/Map/MapBase.hpp85
-rw-r--r--include/Map/MapManager.hpp316
-rw-r--r--include/Map/MapOverworld.hpp6
-rw-r--r--include/System/SysNew.hpp3
-rw-r--r--include/Unknown/UnkStruct_02063220.hpp48
-rw-r--r--include/Unknown/UnkStruct_0206322c.hpp39
-rw-r--r--include/Unknown/UnkStruct_020ee734.hpp7
-rw-r--r--include/types.h1
16 files changed, 347 insertions, 216 deletions
diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp
index 1d7d5723..6101cd2c 100644
--- a/include/Actor/ActorType.hpp
+++ b/include/Actor/ActorType.hpp
@@ -78,6 +78,7 @@ enum ActorTypeId_ {
ActorTypeId_BMTY = 'BMTY',
ActorTypeId_BTRF = 'BTRF',
ActorTypeId_CBLS = 'CBLS',
+ ActorTypeId_EVIC = 'EVIC',
ActorTypeId_FLAL = 'FLAL',
ActorTypeId_FLBM = 'FLBM',
ActorTypeId_FLBT = 'FLBT',
diff --git a/include/DTCM/UnkStruct_027e02a0.hpp b/include/DTCM/UnkStruct_027e02a0.hpp
new file mode 100644
index 00000000..2cfcf4f7
--- /dev/null
+++ b/include/DTCM/UnkStruct_027e02a0.hpp
@@ -0,0 +1,10 @@
+#pragma once
+
+#include "types.h"
+
+struct UnkStruct_027e02a0 {
+ unk8 mUnk_00[0x94];
+ unk32 mUnk_94[23];
+};
+
+extern UnkStruct_027e02a0 *data_027e02a0;
diff --git a/include/DTCM/UnkStruct_027e0618.hpp b/include/DTCM/UnkStruct_027e0618.hpp
new file mode 100644
index 00000000..7489cee5
--- /dev/null
+++ b/include/DTCM/UnkStruct_027e0618.hpp
@@ -0,0 +1,9 @@
+#pragma once
+
+#include "types.h"
+
+struct UnkStruct_027e0618 {
+ void func_0202cf34(void);
+};
+
+extern UnkStruct_027e0618 data_027e0618;
diff --git a/include/DTCM/UnkStruct_027e08f8.hpp b/include/DTCM/UnkStruct_027e08f8.hpp
new file mode 100644
index 00000000..c4f91b86
--- /dev/null
+++ b/include/DTCM/UnkStruct_027e08f8.hpp
@@ -0,0 +1,9 @@
+#pragma once
+
+#include "types.h"
+
+struct UnkStruct_027e08f8 {
+ void func_0202f9a0(unk32);
+};
+
+extern UnkStruct_027e08f8 data_027e08f8;
diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp
index 37532ba8..ba565f60 100644
--- a/include/DTCM/UnkStruct_027e0d38.hpp
+++ b/include/DTCM/UnkStruct_027e0d38.hpp
@@ -12,7 +12,9 @@ struct UnkStruct_027e0d38_UnkC {
struct UnkStruct_027e0d38_Unk28 {
/* 00 */ unk8 mUnk_00[0x34];
/* 34 */ bool mUnk_34;
- /* 35 */
+ /* 35 */ unk8 mUnk_35[0x27];
+ /* 5c */ unk32 mUnk_5c[3];
+ /* 68 */
};
struct UnkStruct_027e0d38 {
diff --git a/include/DTCM/UnkStruct_027e0f64.hpp b/include/DTCM/UnkStruct_027e0f64.hpp
index 33728a7e..975c6818 100644
--- a/include/DTCM/UnkStruct_027e0f64.hpp
+++ b/include/DTCM/UnkStruct_027e0f64.hpp
@@ -3,7 +3,10 @@
#include "global.h"
#include "types.h"
-struct UnkStruct_027e0f64 {
+#include "Debug/DebugHierarchy.hpp"
+
+class UnkStruct_027e0f64 {
+public:
/* 0 */ DebugHierarchyBase *mUnk_0;
/* 4 */ void *mUnk_4;
/* 8 */ void *mUnk_8;
diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp
index b9b11904..c09cbb4d 100644
--- a/include/Map/Course.hpp
+++ b/include/Map/Course.hpp
@@ -27,14 +27,15 @@ struct CourseProgress {
};
class Course : public SysObject {
- /* 000 */ unk32 mIndex;
+public:
+ /* 000 */ s32 mIndex;
/* 004 */ CourseType mType;
/* 008 */ unk32 mUnk_008;
/* 00c */ char mName[0x10];
/* 01c */ Vec2b mCurrMapPos; // position in the map grid
/* 01e */ unk8 mUnk_01e;
/* 01f */ unk8 mUnk_01f;
- /* 020 */ unk8 mMapGrid[10][10];
+ /* 020 */ u8 mMapGrid[10][10];
/* 084 */ Vec2b mMainGrid; // part of the grid where you can walk off screen to another map
/* 086 */ Vec2b mMainGridSize;
/* 088 */ s32 mScreenMapOffsetX;
@@ -42,8 +43,8 @@ class Course : public SysObject {
/* 090 */ unk32 mUnk_090;
/* 094 */ unk32 mUnk_094;
/* 098 */ AABB mBounds;
- /* 0b0 */ s8 mNumMaps;
- /* 0b1 */ unk8 mUnk_0b1;
+ /* 0b0 */ u8 mNumMaps;
+ /* 0b1 */ u8 mUnk_0b1;
/* 0b2 */ unk8 mUnk_0b2;
/* 0b3 */ unk8 mUnk_0b3;
/* 0b4 */ unk32 mUnk_0b4;
@@ -58,7 +59,7 @@ class Course : public SysObject {
/* 25e */ unk8 mUnk_25e;
/* 25f */ unk8 mUnk_25f;
/* 260 */ unk32 mNumKeys;
- /* 260 */ unk32 mFlags0[1];
+ /* 264 */ unk32 mFlags0[1];
/* 268 */ unk32 mFlags1[1]; // knows which doors are open in a dungeon
/* 26c */
@@ -77,7 +78,7 @@ class Course : public SysObject {
void GetMRCFilePath(unk32 param_2, unk32 buf, unk32 param_4);
void func_ov00_0207ce20(unk32 param_2, unk32 param_3, char *param_4, unk32 param_5);
void func_ov00_0207ce4c(s32 param_2, s32 param_3, unk32 param_4, char *param_5, unk32 param_6);
- bool func_ov00_0207d404(s32 param_2, unk32 param_3, unk32 param_4);
+ bool func_ov00_0207d404(s32 param_2, unk32 param_3, unk32 param_4, unk32 param_5);
bool IsCurrentMapInMainGrid();
bool IsInMainGrid(s32 x, s32 y);
bool IsMapInMainGrid(u32 map);
@@ -107,7 +108,7 @@ class Course : public SysObject {
bool GetMapDataFlag2(unk32 param_2);
void SetMapDataFlag3(unk32 param_2, bool param_3);
bool GetMapDataFlag3(unk32 param_2);
- void SetMapDataFlag4(unk32 param_2, unk32 param_3);
+ void SetMapDataFlag4(unk32 param_2, bool param_3);
bool GetMapDataFlag4(unk32 param_2);
MapData *FindMapData(u32 map);
MapData *FindCurrentMapData();
diff --git a/include/Map/Entrance.hpp b/include/Map/Entrance.hpp
index 8d7d6a29..d8d1b751 100644
--- a/include/Map/Entrance.hpp
+++ b/include/Map/Entrance.hpp
@@ -8,10 +8,11 @@
#include "System/SysNew.hpp"
class Entrance : public SysObject {
+public:
/* 00 */ Vec3p mPos;
/* 0c */ unk16 mAngle;
- /* 0e */ s8 mUnk_0e;
- /* 0f */ unk8 mUnk_0f;
+ /* 0e */ u8 mId;
+ /* 0f */ // unk8 mUnk_0f;
/* 10 */ s32 mUnk_10;
/* 14 */
};
diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp
index 4c061620..f9768a81 100644
--- a/include/Map/MapBase.hpp
+++ b/include/Map/MapBase.hpp
@@ -66,7 +66,7 @@ public:
/* 013 */ unk8 mUnk_013;
/* 014 */ unk8 mUnk_014;
/* 015 */ unk8 mUnk_015;
- /* 016 */ unk8 mUnk_016[2];
+ /* 016 */ unk8 mCurrViewpointId[2];
/* 018 */ unk8 mUnk_018[2];
/* 01a */ unk8 mUnk_01a;
/* 01b */ unk8 mUnk_01b;
@@ -76,8 +76,8 @@ public:
/* 01f */ unk8 mUnk_01f;
/* 020 */ unk32 mUnk_020;
/* 024 */ unk32 mUnk_024;
- /* 028 */ s16 mUnk_028;
- /* 02a */ s16 mUnk_02a;
+ /* 028 */ s16 mWidth;
+ /* 02a */ s16 mHeight;
/* 02c */ unk16 mUnk_02c;
/* 02e */ unk16 mUnk_02e;
/* 030 */ s16 mUnk_030;
@@ -90,9 +90,8 @@ public:
/* 048 */ u32 mUnk_048;
/* 04c */ unk32 mUnk_04c;
/* 050 */ unk8 mUnk_050[0x80];
- /* 0d0 */ Vec3p mUnk_0d0;
- /* 0dc */ Vec3p mUnk_0dc;
- /* 0e8 */ Vec3p mUnk_0e8;
+ /* 0d0 */ Vec3p mCenter;
+ /* 0dc */ AABB mBounds;
/* 0f4 */ Vec3p mUnk_0f4;
/* 100 */ std::vector<Entrance> mEntrances;
/* 10c */ std::vector<TriggerBase *> mTriggers;
@@ -112,8 +111,8 @@ public:
/* 180 */ MapBase_Unk_180 mUnk_180[2];
/* 188 */ unk8 mUnk_188[0x14];
/* 19c */ unk32 mUnk_19c;
- /* 1a0 */ unk8 mUnk_1a0[0xc];
- /* 1ac */ unk32 mUnk_1ac;
+ /* 1a0 */ Vec3p mUnk_1a0;
+ /* 1ac */ s16 mUnk_1ac;
/* 1b0 */
/* 00 */ virtual ~MapBase();
@@ -134,32 +133,32 @@ public:
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
- /* 4c */ virtual void vfunc_4c() = 0;
+ /* 4c */ virtual s32 vfunc_4c();
/* 50 */ virtual unk32 vfunc_50();
- /* 54 */ virtual unk32 vfunc_54();
- /* 58 */ virtual unk32 vfunc_58();
+ /* 54 */ virtual unk32 vfunc_54(Vec2b *param_1);
+ /* 58 */ virtual unk32 vfunc_58(Vec2b *param_1, int param_2);
/* 5c */ virtual unk32 vfunc_5c();
- /* 60 */ virtual unk32 vfunc_60();
+ /* 60 */ virtual unk32 vfunc_60(Vec2b *param_1);
/* 64 */ virtual unk32 vfunc_64();
- /* 68 */ virtual unk8 vfunc_68(unk32 param_2, unk32 param_3);
+ /* 68 */ virtual unk32 vfunc_68(Vec3p *param_1, bool param_2);
/* 6c */ virtual unk8 vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4);
/* 70 */ virtual unk32 vfunc_70(Vec3p *param_2);
- /* 74 */ virtual s32 *vfunc_74(Vec3p *param_2);
- /* 78 */ virtual unk32 vfunc_78();
- /* 7c */ virtual unk32 vfunc_7c();
+ /* 74 */ virtual unk32 *vfunc_74(Vec3p *param_2);
+ /* 78 */ virtual unk32 *vfunc_78(Vec2b *param_1);
+ /* 7c */ virtual s32 vfunc_7c(s32 param_1, unk32 *param_2, s32 param_3, short param_4[4]);
/* 80 */ virtual unk32 vfunc_80();
/* 84 */ virtual void vfunc_84(unk32 param_2);
/* 88 */ virtual unk32 vfunc_88();
/* 8c */ virtual unk32 vfunc_8c();
- /* 90 */ virtual unk8 vfunc_90(unk32 param_2, unk32 param_3, unk32 param_4);
+ /* 90 */ virtual unk8 vfunc_90(Vec2b *param_2, unk32 param_3);
/* 94 */ virtual void vfunc_94();
- /* 98 */ virtual void vfunc_98();
+ /* 98 */ virtual void vfunc_98(unk32 param_2, unk32 param_3, unk32 param_4);
/* 9c */ virtual void vfunc_9c();
/* a0 */ virtual void vfunc_a0();
- /* a4 */ virtual unk32 vfunc_a4();
+ /* a4 */ virtual unk32 vfunc_a4(unk8 *param_1);
/* a8 */ virtual void vfunc_a8();
/* ac */ virtual void vfunc_ac();
- /* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3);
+ /* b0 */ virtual void vfunc_b0(unk32 param_2, unk32 param_3);
/* b4 */ virtual void vfunc_b4();
/* b8 */ virtual unk32 vfunc_b8();
/* bc */ virtual void vfunc_bc();
@@ -172,16 +171,16 @@ public:
void func_ov00_0207de68(unk32 param_2);
void func_ov00_0207de88();
void func_ov00_0207dea0(bool param_2);
- bool func_ov00_0207e08c(unk32 param_2, unk32 param_3);
- s32 func_ov00_0207e0f0(unk32 param_2);
- s32 func_ov00_0207e28c(unk32 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 unk8 func_ov00_0207e968();
static unk8 func_ov00_0207e96c();
static unk8 func_ov00_0207f100();
bool func_ov00_0207f104(unk32 param_2, unk32 param_3);
unk32 func_ov00_0207f1f4(Vec3p *param_2, unk32 *param_3);
- unk8 func_ov00_0207f38c(unk32 param_2);
+ bool func_ov00_0207f38c(s32 *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, Vec2b *param_3, unk32 param_4);
@@ -191,42 +190,42 @@ public:
s32 GetTileEndX(unk32 x);
s32 GetTileEndZ(unk32 z);
void GetTileBounds(Vec2b *tilePos, AABB *bounds);
- unk8 GetClampedTileX(unk32 worldX);
- unk8 GetClampedTileY(unk32 worldZ);
- unk8 GetTileX(unk32 worldX);
- unk8 GetTileY(unk32 worldZ);
+ s32 GetClampedTileX(s32 worldX);
+ s32 GetClampedTileY(s32 worldZ);
+ unk8 GetTileX(s32 worldX);
+ unk8 GetTileY(s32 worldZ);
bool IsInBounds(Vec3p *tileWorldPos);
s32 AddEntrance(Entrance *param_2);
- unk8 FindEntrance(unk32 id);
- unk8 func_ov00_0207f924(unk32 param_2);
+ Entrance *FindEntrance(unk32 id);
+ void func_ov00_0207f924(s32 param_2);
unk8 func_ov00_0207f934();
unk8 func_ov00_0207f948(unk32 param_2);
void AddTrigger(TriggerParams *param_2);
- s32 GetTriggerBoundingBox(unk32 param_2, AABB *param_3);
- unk8 GetTriggerBoundingBoxes(unk32 param_2, AABB *param_3, unk32 param_4);
- unk32 GetOverlappingTrigger(Vec3p *param_2);
- unk8 FindTrigger(unk32 type);
+ s32 GetTriggerBoundingBox(s32 param_2, AABB *param_3);
+ s32 GetTriggerBoundingBoxes(s32 param_2, AABB *param_3, s32 param_4);
+ bool GetOverlappingTrigger(Vec3p *param_2);
+ TriggerBase *FindTrigger(unk32 type);
unk8 GetOverlappingTriggers(Vec3p *param_2, TriggerBase **triggers, unk32 capacity);
bool IsTriggerTypeOverlapped(unk32 type, Vec3p *param_3);
bool AnyTrigger_func_0c(unk32 type);
unk8 Trigger_vfunc_08();
bool AddTrigger(unk32 param_2);
- bool func_ov00_0207ff88(unk32 param_2);
+ bool func_ov00_0207ff88(s32 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);
unk8 AddExit(Exit *param_2);
- unk8 func_ov00_02080140(Exit *param_2);
- bool FindExit(unk32 param_2, Exit *param_3);
+ char func_ov00_02080140(Exit *param_2);
+ bool FindExit(u32 param_2, Exit *param_3);
unk8 AddCameraViewpoint(CameraViewpoint *param_2);
bool FindViewpoint_Unk_4(unk8 id, CameraViewpoint *param_3);
- bool FindViewpoint_Unk_0(unk32 param_2, CameraViewpoint *param_3);
- void GetCurrentViewpoint(CameraViewpoint *param_2, unk32 param_3);
- unk8 GetCurrentViewpoint_Unk_00(s32 param_2);
- bool func_ov00_02080824(unk32 param_2, unk32 param_3);
- bool AddUnk_130(unk32 param_2);
- bool func_ov00_020809b8(unk32 param_2);
+ 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(s32 param_2);
+ bool func_ov00_020809b8(s32 param_2);
unk8 func_ov00_02080a78(Vec3p *param_2);
unk8 func_ov00_02080b24(Vec2b *param_2);
void func_ov00_02080d08(unk32 param_2);
diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp
index 9b9199ca..88308e4b 100644
--- a/include/Map/MapManager.hpp
+++ b/include/Map/MapManager.hpp
@@ -30,11 +30,11 @@ class MapManager : public SysObject {
public:
/* 00 */ Course *mCourse;
/* 04 */ MapBase *mMap;
- /* 08 */ unk8 mUnk_08;
- /* 09 */ unk8 mUnk_09;
- /* 0a */ unk8 mUnk_0a;
- /* 0b */ unk8 mUnk_0b;
- /* 0c */ unk8 mUnk_0c;
+ /* 08 */ bool mUnk_08;
+ /* 09 */ bool mUnk_09;
+ /* 0a */ bool mUnk_0a;
+ /* 0b */ bool mUnk_0b;
+ /* 0c */ u8 mUnk_0c;
/* 0d */ unk8 mUnk_0d;
/* 0e */ unk8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
@@ -45,202 +45,202 @@ public:
bool func_01ffc118(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7);
bool func_01ffd1e0(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7);
- void func_ov00_020820ec(unk32 *param_2);
+ void GetCourseDungeonProgress(CourseProgress *param_2);
void func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_4);
- unk8 func_ov00_0208210c(unk32 param_2, unk32 param_3);
- unk8 func_ov00_0208230c(unk32 param_2);
- unk8 func_ov00_02082348(unk32 param_2);
+ void func_ov00_0208210c(unk32 param_2, unk32 *param_3);
+ void func_ov00_0208230c(s32 *param_2);
+ void func_ov00_02082348(unk32 *param_2);
void func_ov00_020823a4(unk32 param_2);
- unk8 func_ov00_020823b4();
+ void func_ov00_020823b4();
bool func_ov00_020823c4(unk32 *param_2, s32 param_3);
s32 func_ov00_020823d4(s32 param_2);
s32 func_ov00_020823e4(s32 param_2);
- unk8 MapData_vfunc_b4();
- unk8 MapData_vfunc_9c();
+ void MapData_vfunc_b4();
+ void MapData_vfunc_9c();
s32 func_ov00_02082424();
- unk8 func_ov00_02082454(unk32 param_2, unk32 param_3);
- unk8 func_ov00_02082494(unk32 param_2);
- unk8 func_ov00_020824cc(unk32 param_2);
- unk8 func_ov00_02082504();
- unk8 *func_ov00_02082538();
+ bool func_ov00_02082454(Vec3p *param_2, Vec3p *param_3);
+ bool func_ov00_02082494(s32 param_2);
+ bool func_ov00_020824cc(s32 param_2);
+ s32 func_ov00_02082504();
+ Vec3p *func_ov00_02082538();
void func_ov00_02082594();
void func_ov00_020825ac();
s32 GetCourseFilePath(char *courseName, char *buf);
- unk8 func_ov00_020825e4(unk32 param_2, unk32 param_3);
- unk8 func_ov00_02082614(unk32 param_2, unk32 param_3);
- unk8 MapData_vfunc_b0();
+ void func_ov00_020825e4(unk32 param_2, char *buf);
+ void func_ov00_02082614(char *param_2, unk32 param_3);
+ void MapData_vfunc_b0(unk32 param_2, unk32 param_3);
void func_ov00_02082650(s32 param_2, s32 param_3, unk32 param_4);
void func_ov00_02082660(s32 param_2, s32 param_3);
void func_ov00_02082670(unk32 param_2, s32 param_3);
void func_ov00_02082680(unk32 param_2, unk32 param_3);
- unk8 func_ov00_020826a0(unk32 param_2, unk32 param_3, unk32 param_4);
- unk8 CreateMap(unk32 mapType, unk32 param_3, unk32 param_4);
- unk8 DestroyMap();
- unk8 MapData_vfunc_44();
- static unk8 func_ov00_02082808();
- unk8 MapData_vfunc_7c();
- unk8 MapData_vfunc_84();
+ void func_ov00_020826a0(unk32 param_2, unk32 param_3);
+ void CreateMap(unk32 mapType, unk32 param_3, unk32 param_4);
+ void DestroyMap();
+ void MapData_vfunc_44();
+ void func_ov00_02082808(bool param_2);
+ s32 MapData_vfunc_7c(s32 param_1, unk32 *param_2, s32 param_3, short param_4[4]);
+ void MapData_vfunc_84(unk32 param_2);
bool func_ov00_020828f8(s32 *param_2);
- unk8 GetCourseData_Unk_b0();
+ u8 GetNumMaps();
s32 func_ov00_02082914(unk32 param_2);
- unk8 func_ov00_02082acc();
+ void func_ov00_02082acc();
unk32 *func_ov00_02082adc();
- unk8 func_ov00_02082af4();
- bool func_ov00_02082b3c(s32 param_2);
- unk8 func_ov00_02082d08();
- unk8 GetCourseData_Unk_1c();
- unk8 GetCourseData_Unk_1d();
- unk8 func_ov00_02082d40();
+ void func_ov00_02082af4();
+ void func_ov00_02082b3c(unk32 *param_2, Vec2b *param3);
+ u8 func_ov00_02082d08();
+ u8 GetCurrentMapPosX();
+ u8 GetCurrentMapPosY();
+ u8 func_ov00_02082d40();
u32 func_ov00_02082d74(unk32 param_2);
- static unk8 func_ov00_02082d84();
+ void func_ov00_02082d84(Vec2b *param_2, s32 *param_3, s32 *param_4);
bool func_ov00_02082e1c(s32 *param_2, s32 *param_3);
- static unk8 func_ov00_0208306c();
+ void func_ov00_0208306c(s32 *param_2, s32 *param_3);
void func_ov00_0208315c(s32 *param_2, s32 *param_3);
- void func_ov00_02083244(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5);
- void func_ov00_02083298(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5);
- unk8 GetCourseData_Unk_25c();
- bool func_ov00_02083318(unk32 param_2);
- static unk8 func_ov00_02083328();
- unk8 GetCourseData_Unk_86();
- unk8 GetCourseData_Unk_87();
- unk8 Get_MapData_Unk28();
- unk8 Get_MapData_Unk2a();
- static unk8 func_ov00_02083374();
- static unk8 func_ov00_02083384();
- unk8 GetCourseMinX();
- unk8 GetCourseMinZ();
- unk8 GetCourseMaxX();
- unk8 GetCourseMaxZ();
- unk8 func_ov00_020833c4();
- unk8 func_ov00_020833d0();
- unk8 func_ov00_020833dc();
- unk8 func_ov00_020833e8();
- unk8 Get_MapData_Unk_d0();
- unk8 Get_MapData_Unk_d8();
- unk8 GetMapData_Unk_dc(Vec3p *param_2);
- unk8 GetMapData_Unk_e8(Vec3p *param_2);
- unk8 GetMapData_Unk_d0(Vec3p *param_2);
- unk8 func_ov00_0208346c(AABB *param_2);
- unk8 func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4);
- unk8 func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 param_4);
- static void func_ov00_02083560(unk32 param_1, MapManager *param_2, u32 param_3);
- unk8 func_ov00_02083570(unk32 param_2, unk32 param_3);
+ void func_ov00_02083244(u32 param_2, Vec3p *param_3, s32 *param_4, s32 *param_5);
+ void func_ov00_02083298(u32 param_2, Vec3p *param_3, s32 *param_4, s32 *param_5);
+ bool GetCourseData_Unk_25c();
+ bool IsMapInMainGrid(u32 map);
+ bool func_ov00_02083328();
+ u8 GetCourseMainGridSizeX();
+ u8 GetCourseMainGridSizeY();
+ u16 GetMapWidth();
+ u16 GetMapHeight();
+ s32 func_ov00_02083374();
+ s32 func_ov00_02083384();
+ q20 GetCourseMinX();
+ q20 GetCourseMinZ();
+ q20 GetCourseMaxX();
+ q20 GetCourseMaxZ();
+ q20 GetMapMinX();
+ q20 GetMapMinZ();
+ q20 GetMapMaxX();
+ q20 GetMapMaxZ();
+ q20 GetMapCenterX();
+ q20 GetMapCenterZ();
+ void GetMapMinBounds(Vec3p *param_2);
+ void GetMapMaxBounds(Vec3p *param_2);
+ void GetMapCenter(Vec3p *param_2);
+ void func_ov00_0208346c(AABB *param_2);
+ void func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4);
+ void func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 param_4);
+ static void func_ov00_02083560(Vec2b *param_1, MapManager *param_2, u32 param_3);
+ u8 func_ov00_02083570(u8 param_2, u8 param_3);
unk32 func_ov00_02083588();
unk32 func_ov00_020835a4();
unk32 func_ov00_020835b4();
- unk8 func_ov00_020835c4(unk32 param_2, unk32 param_3);
- bool func_ov00_020835e4(s32 param_2, unk32 *param_3, unk32 *param_4);
+ bool func_ov00_020835c4(s32 param_2, unk32 param_3);
+ bool func_ov00_020835e4(s32 param_2, unk32 *param_3, unk8 *param_4);
unk32 func_ov00_020835f4(s32 param_2);
void func_ov00_02083604(s32 param_2);
unk8 func_ov00_02083614(s32 param_2);
- bool GetEntrancePos(Vec3p *param_2, unk32 entranceId);
- bool func_ov00_02083664(Vec3p *param_2, unk32 entranceId);
- s32 func_ov00_020836bc(u32 param_2, unk32 *param_3);
- s32 GetTriggerBoundingBoxes(u32 param_2, AABB *param_3, u32 param_4);
- unk8 func_ov00_020836dc(unk32 param_2, unk32 param_3);
- bool func_ov00_02083770(u32 param_2, unk32 param_3);
- bool func_ov00_02083780(unk32 param_2);
- bool func_ov00_02083790(unk32 param_2);
- unk8 func_ov00_02083840(unk32 param_2);
- bool func_ov00_020838c8(s32 param_2);
+ bool GetEntrancePos(Entrance *param_2, unk32 entranceId);
+ bool func_ov00_02083664(Entrance *param_2, unk32 entranceId);
+ s32 GetTriggerBoundingBox(s32 param_2, AABB *param_3);
+ s32 GetTriggerBoundingBoxes(s32 param_2, AABB *param_3, s32 param_4);
+ bool func_ov00_020836dc(u32 param_2, u32 actorId);
+ bool IsTriggerTypeOverlapped(u32 param_2, Vec3p *param_3);
+ bool GetOverlappingTrigger(Vec3p *param_2);
+ bool func_ov00_02083790(s32 param_2);
+ bool func_ov00_02083840(s32 param_2);
+ bool AddTrigger(s32 param_2);
bool func_ov00_020838d8(s32 param_2);
- bool func_ov00_020838e8(u32 param_2, unk32 *param_3);
- char func_ov00_020838f8(unk32 *param_2);
- bool func_ov00_02083908(char param_2, unk32 *param_3);
- void func_ov00_02083918(s32 param_2, s32 *param_3);
- void func_ov00_02083928(unk8 *param_2, s32 param_3);
+ bool FindExit(u32 param_2, Exit *param_3);
+ char func_ov00_020838f8(Exit *param_2);
+ bool func_ov00_02083908(char param_2, CameraViewpoint *param_3);
+ void func_ov00_02083918(s32 param_2, CameraViewpoint *param_3);
+ void GetCurrentViewpoint(CameraViewpoint *param_2, s32 param_3);
unk32 func_ov00_02083938(s32 param_2);
- unk8 Set_MapData_Unk_16(unk8 value, unk32 index);
+ void SetCurrentViewpointId(unk8 value, s32 index);
void func_ov00_02083958(s32 param_2);
void func_ov00_02083968(u32 param_2, unk8 *param_3);
- bool func_ov00_02083978(unk32 param_2, Vec3p *param_3);
+ bool func_ov00_02083978(Vec3p *param_2, Vec3p *param_3);
bool func_ov00_020839b4(s32 param_2);
bool func_ov00_020839c4(s32 param_2);
- static unk8 func_ov00_020839d4();
- static unk8 func_ov00_020839f8();
+ s32 func_ov00_020839d4(s32 param_2);
+ s32 func_ov00_020839f8(s32 param_2);
static void func_ov00_02083a1c(Vec2b *param_1, MapManager *param_2, Vec3p *param_3);
- static unk8 func_ov00_02083a54(unk32 param_1, MapManager *param_2, unk32 param_3, unk32 param_4, unk32 param_5);
- static unk8 func_ov00_02083b84();
- static unk8 func_ov00_02083bac();
- static unk8 func_ov00_02083bd4();
- static unk8 func_ov00_02083bfc();
- unk8 func_ov00_02083c24(unk32 param_2);
- unk8 func_ov00_02083c50(unk32 param_2);
- unk8 func_ov00_02083c7c(Vec3p *param_2, Vec2b param_3);
- static unk8 func_ov00_02083ce8(unk8 param_1, unk8 param_2, unk8 param_3, unk8 param_4, unk32 param_5);
- unk8 func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4);
- unk8 MapData_vfunc_60();
- static unk8 func_ov00_02083e70();
- unk8 MapData_vfunc_68();
- s32 func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3, unk32 param_4);
- void func_ov00_02083f44(Vec3p *param_2);
- unk8 MapData_vfunc_6c();
- unk8 MapData_vfunc_70();
- static unk8 func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
+ static void func_ov00_02083a54(u8 *param_1, MapManager *param_2, s32 *param_3, s32 param_4, s32 *param_5);
+ s32 GetTileStartX(unk32 x);
+ s32 GetTileStartZ(unk32 z);
+ s32 GetTileEndX(unk32 x);
+ s32 GetTileEndZ(unk32 z);
+ s32 func_ov00_02083c24(unk32 x);
+ s32 func_ov00_02083c50(unk32 z);
+ void func_ov00_02083c7c(Vec3p *param_2, Vec2b param_3);
+ void func_ov00_02083ce8(Vec3p *param_2, u32 param_3, s32 param_4, u32 param_5);
+ s32 func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4);
+ unk32 MapData_vfunc_60(Vec2b *param_1);
+ bool func_ov00_02083e70(Vec2b *param_2);
+ unk32 MapData_vfunc_68(Vec3p *param_1, bool param_2);
+ s32 func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3, bool param_4);
+ unk32 func_ov00_02083f44(Vec3p *param_2, bool param_3);
+ unk8 MapData_vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4);
+ unk32 MapData_vfunc_70(Vec3p *param_2);
+ static void func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
void GetTileWorldBounds(Vec2b *tile, AABB *tileBounds);
- unk8 MapData_vfunc_54();
- unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4);
- unk32 MapData_vfunc_78(Vec2b *param1);
- static unk8 func_ov00_020840dc();
- static unk8 func_ov00_02084100(unk32 param_1, MapManager *param_2);
- unk8 GetMapData_Unk_48();
- unk8 GetMapData_Unk_4c();
+ unk32 MapData_vfunc_54(Vec2b *a);
+ unk32 func_ov00_020840a0(unk8 param_2, unk8 param_3);
+ unk32 *MapData_vfunc_78(Vec2b *param_1);
+ unk32 func_ov00_020840dc(Vec2b *param_1);
+ static unk8 func_ov00_02084100(unk32 *param_1, MapManager *param_2);
+ u32 GetMapData_Unk_48();
+ unk32 GetMapData_Unk_4c();
unk32 func_ov00_0208412c();
void func_ov00_0208413c(unk32 param_2);
- unk8 MapData_vfunc_58();
- static unk8 func_ov00_02084164();
- unk8 GetMapData_Unk_0a();
- unk8 GetMapData_Unk_0b();
- unk8 MapData_vfunc_a4();
- unk8 func_ov00_0208433c(Vec3p *param_2, unk32 param_3);
- static unk8 func_ov00_0208439c();
+ unk8 MapData_vfunc_58(Vec2b *param_1, int param_2);
+ s32 func_ov00_02084164(Vec2b *param_2);
+ u8 GetMapData_Unk_0a();
+ u8 GetMapData_Unk_0b();
+ unk8 MapData_vfunc_a4(unk8 *param_1);
+ void func_ov00_0208433c(Vec3p *param_2, Vec2s *param_3);
+ unk8 func_ov00_0208439c(Vec2s *param_2, Vec3p *param_3);
void func_ov00_020843ec(s32 *param_2);
- unk8 GetMapData_Unk_38();
- unk8 func_ov00_020846a4();
- static unk8 func_ov00_02084700();
- unk8 func_ov00_02084740();
- unk8 func_ov00_020847e0();
- unk8 func_ov00_020847f0();
+ unk32 GetMapData_Unk_38();
+ s32 func_ov00_020846a4();
+ s32 func_ov00_02084700();
+ unk32 func_ov00_02084740();
+ unk32 func_ov00_020847e0();
+ unk32 func_ov00_020847f0(unk32 type);
bool func_ov00_02084838();
bool func_ov00_020848b8();
void func_ov00_02084924(u32 param_2);
- static unk8 func_ov00_02084934();
- unk8 GetMapData_Unk_06();
- unk8 GetMapData_Unk_07();
- unk8 func_ov00_0208499c();
- unk8 func_ov00_020849c0();
- unk8 func_ov00_020849dc();
+ bool func_ov00_02084934(Vec3p *param_2);
+ u8 GetMapData_Unk_06();
+ u8 GetMapData_Unk_07();
+ bool func_ov00_0208499c();
+ bool func_ov00_020849c0();
+ bool func_ov00_020849dc();
bool func_ov00_020849f8();
- unk8 func_ov00_02084a50();
+ u8 func_ov00_02084a50();
void SpawnNPC(Vec3p *param_2, unk32 param_3, unk32 param_4);
bool func_ov00_02084ac4(u32 actorId);
- unk8 SetNumKeys(unk32 keys);
- unk8 GetNumKeys();
- unk8 SetCourseData_Unk_25c(unk8 param_2);
- unk8 GetCourseData_Unk_25d();
- unk8 func_ov00_02084b38(unk32 param_2, unk32 param_3, unk32 param_4);
- bool func_ov00_02084be0(unk32 param_2, unk32 param_3);
- void func_ov00_02084c5c(unk32 param_2, unk32 param_3);
- bool func_ov00_02084c6c(unk32 param_2);
- unk8 func_ov00_02084c7c(unk32 param_2);
- unk8 func_ov00_02084c94(unk32 param_2);
- unk8 func_ov00_02084cb0(unk32 param_2);
- unk8 func_ov00_02084cc8(unk32 param_2);
- unk8 func_ov00_02084ce4(unk32 param_2);
- unk8 func_ov00_02084cfc(unk32 param_2);
- unk8 GetMapData_Unk_09();
- unk8 func_ov00_02084d24(unk8 param_2, unk8 param_3, unk32 param_4);
+ void SetNumKeys(unk32 keys);
+ unk32 GetNumKeys();
+ void SetBlueWarpOpen(bool state);
+ bool GetBlueWarpOpen();
+ void func_ov00_02084b38(u32 param_2, unk32 param_3, bool param_4);
+ bool func_ov00_02084be0(u32 param_2, unk32 param_3);
+ void SetMapDataFlag1(unk32 param_2, bool param_3);
+ bool GetMapDataFlag1(unk32 param_2);
+ void func_ov00_02084c7c(unk32 param_2, bool param_3);
+ bool func_ov00_02084c94(unk32 param_2);
+ void func_ov00_02084cb0(unk32 param_2, bool param_3);
+ bool func_ov00_02084cc8(unk32 param_2);
+ void func_ov00_02084ce4(unk32 param_2, bool param_3);
+ bool func_ov00_02084cfc(unk32 param_2);
+ u8 GetMapData_Unk_09();
+ void func_ov00_02084d24(unk8 param_2, unk8 param_3, unk16 param_4);
s32 func_ov00_02084d4c(unk32 param_2, unk32 param_3, Vec3p *param_4);
- unk8 func_ov00_02084ebc(unk32 param_2);
+ unk32 func_ov00_02084ebc(Vec3p *param_2);
s32 func_ov00_02085108(Vec3p *param_2);
- static unk8 func_ov00_0208527c();
- static unk8 func_ov00_020853fc();
- unk8 func_ov00_02085594(Vec3p *param_1);
- static void func_ov00_0208583c(unk32 param_1, Vec3p *param_2, unk32 param_3);
- static unk8 func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 param_3);
- s32 func_ov00_02085a34(unk32 param_2, unk32 param_3);
- unk8 func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5);
- unk8 func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4);
+ static s32 func_ov00_0208527c(MapManager *param_1, unk32 param_2, unk32 *param_3);
+ static s32 func_ov00_020853fc(MapManager *param_1, Vec3p *param_2, s32 *param_3);
+ unk32 func_ov00_02085594(Vec3p *param_2);
+ static void func_ov00_0208583c(MapManager *param_1, Vec3p *param_2, unk32 param_3);
+ static unk32 func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 param_3);
+ s32 func_ov00_02085a34(Vec3p *param_2, unk32 param_3);
+ unk8 func_ov00_02085c60(Vec3p *param_2, unk32 *param_3, unk32 *param_4, u32 param_5);
+ unk8 func_ov00_02086044(Vec3p *param_2, Vec3p *param_3, unk32 param_4);
bool func_ov00_02086284(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, u16 param_6, Vec3p *param_7,
Vec3p *param_8);
bool func_ov00_02086a84(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, s32 param_6, unk32 param_7,
@@ -253,7 +253,7 @@ public:
static void LoadMapTexSprites(s32 param1);
void func_ov004_02102260();
void func_ov004_02102264(unk32 *param1, char *param2);
- void func_ov004_021024c4(s32 param1, unk32 param2, unk32 param3);
+ void func_ov004_021024c4(unk32 *param1, unk32 param2, bool param3);
void func_ov004_021025d8();
};
diff --git a/include/Map/MapOverworld.hpp b/include/Map/MapOverworld.hpp
index 482b3ad1..2fda60af 100644
--- a/include/Map/MapOverworld.hpp
+++ b/include/Map/MapOverworld.hpp
@@ -46,19 +46,19 @@ public:
/* 1c */ virtual void vfunc_1c(bool param_2) override;
/* 20 */ virtual void vfunc_20(s32 param_2) override;
/* 2c */ virtual void vfunc_2c() override;
- /* 4c */ virtual void vfunc_4c() override;
+ /* 4c */ virtual s32 vfunc_4c() override;
/* 54 */ virtual unk32 vfunc_54() override;
/* 58 */ virtual unk32 vfunc_58() override;
/* 5c */ virtual unk32 vfunc_5c() override;
/* 60 */ virtual unk32 vfunc_60() override;
/* 64 */ virtual unk32 vfunc_64() override;
- /* 78 */ virtual unk32 vfunc_78() override;
+ /* 78 */ virtual unk32 *vfunc_78() override;
/* 7c */ virtual unk32 vfunc_7c() override;
/* 80 */ virtual unk32 vfunc_80() override;
/* 94 */ virtual void vfunc_94() override;
/* 98 */ virtual void vfunc_98() override;
/* a4 */ virtual unk32 vfunc_a4() override;
- /* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3) override;
+ /* b0 */ virtual void vfunc_b0(unk32 param_2, unk32 param_3) override;
/* bc */ virtual void vfunc_bc() override;
/* c0 */ virtual void vfunc_c0() override;
/* c4 */
diff --git a/include/System/SysNew.hpp b/include/System/SysNew.hpp
index 7e9b0cd8..4d3c3f7c 100644
--- a/include/System/SysNew.hpp
+++ b/include/System/SysNew.hpp
@@ -4,7 +4,8 @@
struct UnkStruct_0202e894 {
/* 00 */ u32 mId;
- /* 04 */ unk8 mUnk_04[0x28];
+ /* 04 */ u32 *mUnk_04;
+ /* 08 */ unk8 mUnk_08[0x24];
/* 2c */
};
diff --git a/include/Unknown/UnkStruct_02063220.hpp b/include/Unknown/UnkStruct_02063220.hpp
new file mode 100644
index 00000000..5a07303b
--- /dev/null
+++ b/include/Unknown/UnkStruct_02063220.hpp
@@ -0,0 +1,48 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+struct Registers {
+ /* 00 */ unk32 mUnk_00; // CPSR
+ /* 04 */ unk32 mUnk_04[12];
+ /* 08 */ unk32 mUnk_08;
+ /* 0C */ unk32 mUnk_0C; // SP
+ /* 10 */ unk32 mUnk_10; // LR
+ /* 14 */ unk32 mUnk_14; // PC
+ /* 18 */ unk32 mUnk_18;
+ /* 1C */ unk32 mUnk_1C;
+ /* 20 */ unk32 mUnk_20;
+ /* 24 */ unk32 mUnk_24;
+ /* 28 */ unk32 mUnk_28;
+ /* 2C */ unk32 mUnk_2C;
+ /* 30 */ unk32 mUnk_30;
+ /* 34 */ unk32 mUnk_34;
+ /* 38 */ unk32 mUnk_38; // CP15
+ /* 3C */ unk32 mUnk_3C; // SPSR
+};
+
+struct UnkStruct_02063220_08 {
+ unk32 mUnk_00;
+
+ void func_0202fd9c(unk32);
+};
+
+class UnkStruct_02063220 {
+public:
+ /* 00 */ char *path;
+ /* 04 */ u8 mUnk_04;
+ /* 05 */ u8 mUnk_05;
+ /* 06 */ unk16 mUnk_06;
+ /* 08 */ UnkStruct_02063220_08 mUnk_08;
+
+ void DisplayAssertError(char *file, u16 line, char *msg, ...);
+ void DisplayException(Registers *param1);
+ static bool func_0202f3f0(unk32 param1);
+ static unk32 func_0202f400(unk32 param1);
+ void func_0202f4b4(void);
+ void func_0202f500(void);
+ void func_0202f754(unk32);
+};
+
+extern UnkStruct_02063220 data_02063220;
diff --git a/include/Unknown/UnkStruct_0206322c.hpp b/include/Unknown/UnkStruct_0206322c.hpp
new file mode 100644
index 00000000..534fc26b
--- /dev/null
+++ b/include/Unknown/UnkStruct_0206322c.hpp
@@ -0,0 +1,39 @@
+#pragma once
+
+#include "types.h"
+
+#define SCREEN_WIDTH 32
+#define SCREEN_HEIGHT 24
+
+struct Screen {
+ /* 000 */ unk16 mUnk_00;
+ /* 002 */ unk16 mUnk_02;
+ /* 004 */ unk16 mUnk_04;
+ /* 004 */ unk16 mUnk_06;
+ /* 008 */ unk32 mUnk_08;
+ /* 00c */ u16 data[SCREEN_WIDTH * SCREEN_HEIGHT];
+ /* 60c */
+};
+
+class UnkStruct_0206322c {
+public:
+ /* 000 */ UNK_PTR mUnk_00; // tile
+ /* 004 */ UNK_PTR mUnk_04; // palette
+ /* 008 */ Screen topScreen;
+ /* 614 */ Screen bottomScreen;
+ /* c20 */
+
+ // loads the debug font (palette and tile files)
+ void func_02030354(bool doTopScreen, bool doBottomScreen);
+
+ // ctor?
+ void *func_02030408(void);
+
+ // copy the screen data to VRAM
+ void func_02030464(bool doTopScreen, bool doBottomScreen);
+
+ // reset screen data
+ void func_020304a8(bool doTopScreen, bool doBottomScreen);
+};
+
+extern UnkStruct_0206322c data_0206322c;
diff --git a/include/Unknown/UnkStruct_020ee734.hpp b/include/Unknown/UnkStruct_020ee734.hpp
new file mode 100644
index 00000000..18e24d39
--- /dev/null
+++ b/include/Unknown/UnkStruct_020ee734.hpp
@@ -0,0 +1,7 @@
+#pragma once
+
+struct UnkStruct_020ee734 {
+ void func_ov000_020d6620(void);
+};
+
+extern UnkStruct_020ee734 data_ov000_020ee734;
diff --git a/include/types.h b/include/types.h
index 03e8352f..5d42ab41 100644
--- a/include/types.h
+++ b/include/types.h
@@ -22,5 +22,6 @@ typedef s32 bool;
#endif
#define CEIL_DIV(a, b) (((a) + (b) - 1) / (b))
+#define UNK_PTR unk32 *
#endif