summaryrefslogtreecommitdiff
path: root/include/Map
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2024-04-28 16:38:58 +0200
committerAetias <aetias@outlook.com>2024-04-28 16:38:58 +0200
commitdfea2bd522f9122e3fb7b3d3e778b80b0c7bbe3c (patch)
treecd304d3cca15e17a35fb57977c63629ea867b367 /include/Map
parent04b3812395e96ca9e113d5b928b61a5648168c82 (diff)
Remangle `Course`
Diffstat (limited to 'include/Map')
-rw-r--r--include/Map/Course.hpp117
-rw-r--r--include/Map/Course_Unk_c8.hpp19
-rw-r--r--include/Map/Course_Unk_cc.hpp28
3 files changed, 105 insertions, 59 deletions
diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp
index 3b51529b..917a5d09 100644
--- a/include/Map/Course.hpp
+++ b/include/Map/Course.hpp
@@ -3,6 +3,8 @@
#include "global.h"
#include "types.h"
+#include "Map/Course_Unk_c8.hpp"
+#include "Map/Course_Unk_cc.hpp"
#include "Physics/AABB.hpp"
#include "System/SysNew.hpp"
@@ -27,21 +29,18 @@ class Course : public SysObject {
/* 004 */ CourseType mType;
/* 008 */ unk32 mUnk_008;
/* 00c */ char mName[0x10];
- /* 01c */ unk8 mUnk_01c;
- /* 01d */ unk8 mUnk_01d;
+ /* 01c */ Vec2b mCurrMapPos; // position in the map grid
/* 01e */ unk8 mUnk_01e;
/* 01f */ unk8 mUnk_01f;
- /* 020 */ unk8 mUnk_020[10][10];
- /* 084 */ s8 mUnk_084;
- /* 084 */ s8 mUnk_085;
- /* 084 */ s8 mUnk_086;
- /* 084 */ s8 mUnk_087;
- /* 088 */ unk32 mUnk_088;
- /* 08c */ unk32 mUnk_08c;
+ /* 020 */ unk8 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;
+ /* 08c */ s32 mScreenMapOffsetY;
/* 090 */ unk32 mUnk_090;
/* 094 */ unk32 mUnk_094;
/* 098 */ AABB mBounds;
- /* 0b0 */ s8 mUnk_0b0;
+ /* 0b0 */ s8 mNumMaps;
/* 0b1 */ unk8 mUnk_0b1;
/* 0b2 */ unk8 mUnk_0b2;
/* 0b3 */ unk8 mUnk_0b3;
@@ -50,64 +49,64 @@ class Course : public SysObject {
/* 0bc */ unk32 mUnk_0bc;
/* 0c0 */ unk32 mUnk_0c0;
/* 0c4 */ unk32 mUnk_0c4;
- /* 0c8 */ void *mUnk_0c8;
- /* 0cc */ unk32 mUnk_0cc[100];
+ /* 0c8 */ Course_Unk_c8 *mUnk_0c8;
+ /* 0cc */ Course_Unk_cc *mUnk_0cc[100];
/* 25c */ bool mUnk_25c;
/* 25d */ bool mBlueWarpOpen;
/* 25e */ unk8 mUnk_25e;
/* 25f */ unk8 mUnk_25f;
/* 260 */ unk32 mNumKeys;
- /* 264 */ unk32 mUnk_264;
- /* 268 */ unk32 mFlags; // knows which doors are open in a dungeon
+ /* 260 */ unk32 mFlags0[1];
+ /* 268 */ unk32 mFlags1[1]; // knows which doors are open in a dungeon
/* 26c */
- unk8 GetDungeonProgress(CourseProgress *param_2);
- unk8 func_ov00_0207ca28(unk32 param_2, unk32 param_3, unk32 param_4);
- char * SetCourseName(char *src);
- static unk8 func_ov00_0207ca78();
- bool func_ov00_0207caa8(unk32 param_2, unk32 param_3, unk32 param_4);
- unk32 func_ov00_0207cb30(unk32 param_2);
- static unk8 func_ov00_0207cb7c(unk32 param_1, Course *param_2, unk32 param_3);
- Vec3p * func_ov00_0207cbd8(unk32 param_2);
- void func_ov00_0207cbe8(unk32 param_2);
- unk8 func_ov00_0207cc24(unk32 param_2);
- unk32 func_ov00_0207cc6c();
+ void GetDungeonProgress(CourseProgress *param_2);
+ void func_ov00_0207ca28(s32 param_2, unk32 param_3, unk32 param_4);
+ char* SetCourseName(char *src);
+ void func_ov00_0207ca78(unk32 param_2, unk8 param_3, unk32 param_4);
+ bool func_ov00_0207caa8(s32 param_2, unk32 *param_3, unk8 *param_4);
+ unk32 func_ov00_0207cb30(s32 param_2);
+ static void FindMapGridPos(Vec2b *pos, Course *param_2, u32 map);
+ Vec3p* Find_Unk_cc_14(unk32 param_2);
+ void func_ov00_0207cbe8(s32 param_2);
+ unk8 func_ov00_0207cc24(s32 param_2);
+ unk32 Find_Unk_cc_08();
void GetMCSFilePath(unk32 buf, s32 fileIndex, unk32 fileType);
void GetMRCFilePath(unk32 param_2, unk32 buf, unk32 param_4);
- unk8 func_ov00_0207ce20(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5);
- static unk8 func_ov00_0207ce4c(unk8 param_1, unk8 param_2, unk8 param_3, unk8 param_4, unk32 param_5, unk32 param_6);
- bool func_ov00_0207d404(unk32 param_2, unk32 param_3, unk32 param_4);
- bool func_ov00_0207d47c();
- bool func_ov00_0207d490(unk32 param_2, unk32 param_3);
- bool func_ov00_0207d4e4(unk32 param_2);
- bool func_ov00_0207d518(s32 param_2, s32 *param_3, s32 *param_4);
- unk8 func_ov00_0207d5c4();
- unk8 func_ov00_0207d5f0();
- unk8 func_ov00_0207d61c();
- unk8 GetUnk_c8_Unk_4();
- bool func_ov00_0207d634(unk32 param_2);
- unk8 func_ov00_0207d6ac(unk32 param_2, unk32 param_3);
- static unk8 func_ov00_0207d6ec();
- unk8 func_ov00_0207d738(unk32 param_2);
- unk8 func_ov00_0207d758(unk32 param_2);
- static unk8 func_ov00_0207d778();
- static unk8 func_ov00_0207d788();
- static unk8 func_ov00_0207d7a4();
+ 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 IsCurrentMapInMainGrid();
+ bool IsInMainGrid(s32 x, s32 y);
+ bool IsMapInMainGrid(u32 map);
+ bool GetMapScreenPos(s32 map, s32 *x, s32 *y);
+ u32 GetScreenMapCellSizeX();
+ u32 GetScreenMapCellSizeY();
+ unk32 Get_Unk_c8_00();
+ unk32 Get_Unk_c8_04();
+ bool IsAdjacentMapOnMainGrid(unk32 dir);
+ bool HasGridMap(s32 x, s32 y);
+ unk8 GetAdjacentMap(unk32 dir);
+ u32 GetAdjacentMapX(s32 ir);
+ u32 GetAdjacentMapY(s32 dir);
+ u16 FindCurrent_Unk_cc_04();
+ u32 Find_Unk_cc_04(unk32 param_2);
+ unk32 Find_Unk_cc_0c(unk32 map);
void func_ov00_0207d7bc();
- unk8 func_ov00_0207d7dc(unk32 param_2, unk32 param_3);
- unk8 func_ov00_0207d828(unk32 param_2);
- unk8 func_ov00_0207d848(unk32 param_2, unk32 param_3);
- unk8 func_ov00_0207d894(unk32 param_2);
- static unk8 func_ov00_0207d8b4();
- bool func_ov00_0207d8d4(unk32 param_2);
- static unk8 func_ov00_0207d8ec();
- bool func_ov00_0207d90c(unk32 param_2);
- static unk8 func_ov00_0207d924();
- bool func_ov00_0207d944(unk32 param_2);
- static unk8 func_ov00_0207d95c();
+ void SetFlag0(u32 index, bool value);
+ bool GetFlag0(u32 index);
+ void SetFlag1(u32 index, bool value);
+ bool SetFlag1(u32 index);
+ void SetFlag0_Unk_cc(unk32 index, bool value);
+ bool GetFlag0_Unk_cc(unk32 param_2);
+ void SetFlag1_Unk_cc(unk32 param_2, bool param_3);
+ bool GetFlag1_Unk_cc(unk32 param_2);
+ void SetFlag2_Unk_cc(unk32 param_2, bool param_3);
+ bool GetFlag2_Unk_cc(unk32 param_2);
+ void SetFlag3_Unk_cc(unk32 param_2, bool param_3);
bool func_ov00_0207d97c(unk32 param_2);
- static unk8 func_ov00_0207d994();
- bool func_ov00_0207d9b4(unk32 param_2);
- unk32 func_ov00_0207d9cc(unk32 param_2);
- s32 func_ov00_0207da14();
+ void func_ov00_0207d994(unk32 param_2, unk32 param_3);
+ bool GetFlag3_Unk_cc(unk32 param_2);
+ Course_Unk_cc* Find_Unk_cc(u32 map);
+ Course_Unk_cc* FindCurrent_Unk_cc();
};
diff --git a/include/Map/Course_Unk_c8.hpp b/include/Map/Course_Unk_c8.hpp
new file mode 100644
index 00000000..317f2b70
--- /dev/null
+++ b/include/Map/Course_Unk_c8.hpp
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "System/SysNew.hpp"
+
+class Course_Unk_c8 : public SysObject {
+public:
+ /* 00 */ unk32 mUnk_00;
+ /* 04 */ unk32 mUnk_04;
+ /* 08 */ unk32 mUnk_08;
+ /* 0c */ unk8 mUnk_0c;
+ /* 0d */ unk8 mUnk_0d[3];
+ /* 10 */ void *mUnk_10;
+ /* 14 */ s32 mUnk_14;
+ /* 18 */ u32 mUnk_18;
+ /* 1c */
+};
diff --git a/include/Map/Course_Unk_cc.hpp b/include/Map/Course_Unk_cc.hpp
new file mode 100644
index 00000000..86504f6f
--- /dev/null
+++ b/include/Map/Course_Unk_cc.hpp
@@ -0,0 +1,28 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "lib/math.h"
+
+#include "System/SysNew.hpp"
+
+class Course_Unk_cc : public SysObject {
+public:
+ /* 00 */ char mUnk_00;
+ /* 01 */ s8 mMap;
+ /* 02 */ unk16 mUnk_02;
+ /* 04 */ u16 mUnk_04;
+ /* 06 */ unk8 mUnk_06[2];
+ /* 08 */ unk32 mUnk_08;
+ /* 0c */ unk32 mUnk_0c;
+ /* 10 */ unk8 mUnk_10[4];
+ /* 14 */ Vec3p mUnk_14;
+ /* 20 */ unk32 mFlags0[1];
+ /* 24 */ unk32 mFlags1[8];
+ /* 44 */ unk32 mFlags2[2];
+ /* 4c */ unk32 mFlags3[1];
+ /* 50 */ unk32 mUnk_50;
+ /* 54 */ unk32 mUnk_54;
+ /* 58 */
+};