diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/Map/Course.hpp | 117 | ||||
| -rw-r--r-- | include/Map/Course_Unk_c8.hpp | 19 | ||||
| -rw-r--r-- | include/Map/Course_Unk_cc.hpp | 28 | ||||
| -rw-r--r-- | include/lib/math.h | 6 |
4 files changed, 111 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 */ +}; diff --git a/include/lib/math.h b/include/lib/math.h index 8790c9f6..b601dc71 100644 --- a/include/lib/math.h +++ b/include/lib/math.h @@ -14,6 +14,12 @@ typedef s16 q4; #define ROUND_Q20(n) (((s32)(n) + 0x800) >> 12) typedef struct { + /* 0 */ s8 x; + /* 1 */ s8 y; + /* 2 */ +} Vec2b; + +typedef struct { /* 0 */ q20 x; /* 4 */ q20 y; /* 8 */ q20 z; |
