From 806b46854fea8704e1c4746071b6c0cff975c130 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 21 Apr 2024 08:25:26 +0200 Subject: Add `MapManager.cpp` --- include/Map/MapManager.hpp | 232 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 include/Map/MapManager.hpp (limited to 'include') diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp new file mode 100644 index 00000000..897f28c1 --- /dev/null +++ b/include/Map/MapManager.hpp @@ -0,0 +1,232 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +struct MapManager_Unk1 { + /* 0 */ unk32 mUnk_0; + /* 4 */ unk32 mUnk_4; + /* 8 */ + + ~MapManager_Unk1(); +}; + +struct MapManager_Unk2 { + /* 0 */ unk32 mUnk_0; + /* 4 */ unk32 mUnk_4; + /* 8 */ + + ~MapManager_Unk2(); +}; + +class MapDataBase : public SysObject { +public: + /* 00 */ virtual ~MapData(); + + MapData(); + MapData(uint param1, uint param2); +}; + +class MapManager : public SysObject { +public: + void func_ov00_020820ec(unk32 *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_020823a4(unk32 param_2); + unk8 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(); + 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(); + 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_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(); + bool func_ov00_020828f8(s32 *param_2); + unk8 GetCourseData_Unk_b0(); + s32 func_ov00_02082914(unk32 param_2); + unk8 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(); + u32 func_ov00_02082d74(unk32 param_2); + static unk8 func_ov00_02082d84(); + bool func_ov00_02082e1c(s32 *param_2, s32 *param_3); + static unk8 func_ov00_0208306c(); + 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); + 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); + 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); + u32 func_ov00_020836cc(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 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); + unk32 func_ov00_02083938(s32 param_2); + unk8 Set_MapData_Unk_16(unk8 value, unk32 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_020839b4(s32 param_2); + bool func_ov00_020839c4(s32 param_2); + static unk8 func_ov00_020839d4(); + static unk8 func_ov00_020839f8(); + static void func_ov00_02083a1c(unk32 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, unk32 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(); + void func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3); + void func_ov00_02083f44(Vec3p *param_2); + unk8 MapData_vfunc_6c(); + unk8 MapData_vfunc_70(); + static unk8 func_ov00_02083fb0(unk32 param_1, MapManager *param_2, unk32 param_3); + void func_ov00_02084024(unk32 param_2, AABB *param_3); + unk8 MapData_vfunc_54(); + unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4); + unk8 MapData_vfunc_78(); + 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 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(); + 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(); + 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(); + static bool func_ov00_020849f8(unk32 param_1); + unk8 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); + s32 func_ov00_02084d4c(unk32 param_2, unk32 param_3, Vec3p *param_4); + unk8 func_ov00_02084ebc(unk32 param_2); + s32 func_ov00_02085108(s32 *param_2); + static unk8 func_ov00_0208527c(); + static unk8 func_ov00_020853fc(); + static unk8 func_ov00_02085594(); + static void func_ov00_0208583c(unk32 param_1, Vec3p *param_2, unk32 param_3); + static unk8 func_ov00_020858b0(); + 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); + 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, Vec3p *param_8, Vec3p *param_9); +}; -- cgit v1.2.3 From 61de0cef49c8b41c5caff85818af5cccb995365e Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 21 Apr 2024 12:28:25 +0200 Subject: Mangle `MapManager` --- include/Map/MapManager.hpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 897f28c1..6e89e980 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -3,6 +3,9 @@ #include "global.h" #include "types.h" +#include "lib/math.h" + +#include "Physics/AABB.hpp" #include "System/SysNew.hpp" struct MapManager_Unk1 { @@ -23,10 +26,10 @@ struct MapManager_Unk2 { class MapDataBase : public SysObject { public: - /* 00 */ virtual ~MapData(); + /* 00 */ virtual ~MapDataBase(); - MapData(); - MapData(uint param1, uint param2); + MapDataBase(); + MapDataBase(u32 param1, u32 param2); }; class MapManager : public SysObject { -- cgit v1.2.3 From 1b2b274633ca475d3ce0ec29ba849fe8dda26969 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 21 Apr 2024 13:09:41 +0200 Subject: Name `gMapManager` --- include/Item/ItemManager.hpp | 1 + include/Map/MapManager.hpp | 2 ++ 2 files changed, 3 insertions(+) (limited to 'include') diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 44defa6f..7acaf4a3 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -6,6 +6,7 @@ #include "Actor/ActorNavi.hpp" #include "Item/Item.hpp" +#include "Map/MapManager.hpp" #include "Player/EquipItem.hpp" #include "System/SysNew.hpp" #include "System/OverlayManager.hpp" diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 6e89e980..e246cd34 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -233,3 +233,5 @@ public: 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, Vec3p *param_8, Vec3p *param_9); }; + +extern MapManager *gMapManager; -- cgit v1.2.3 From b9e9392f29130451cf2c7d13b720260d8022c812 Mon Sep 17 00:00:00 2001 From: Aetias Date: Mon, 22 Apr 2024 23:57:26 +0200 Subject: Mangle `Course` --- include/Map/Course.hpp | 114 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 include/Map/Course.hpp (limited to 'include') diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp new file mode 100644 index 00000000..847296ef --- /dev/null +++ b/include/Map/Course.hpp @@ -0,0 +1,114 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Physics/AABB.hpp" +#include "System/SysNew.hpp" + +typedef unk32 CourseType; +enum CourseType_ { + CourseType_Normal = 0, + CourseType_Dungeon = 1, + CourseType_Sea = 2, + CourseType_TempleOfTheOceanKing = 3, + CourseType_Battle = 4, +}; + +struct CourseProgress { + /* 0 */ unk32 flags; + /* 4 */ s8 numKeys; + /* 5 */ bool blueWarpOpen; + /* 6 */ +}; + +class Course : public SysObject { + /* 000 */ unk32 mIndex; + /* 004 */ CourseType mType; + /* 008 */ unk32 mUnk_008; + /* 00c */ char mName[0x10]; + /* 01c */ unk8 mUnk_01c; + /* 01d */ unk8 mUnk_01d; + /* 01e */ unk8 mUnk_01e; + /* 01f */ unk8 mUnk_01f; + /* 020 */ unk8 mUnk_020[0x64]; + /* 084 */ s8 mUnk_084; + /* 084 */ s8 mUnk_085; + /* 084 */ s8 mUnk_086; + /* 084 */ s8 mUnk_087; + /* 088 */ unk32 mUnk_088; + /* 08c */ unk32 mUnk_08c; + /* 090 */ unk32 mUnk_090; + /* 094 */ unk32 mUnk_094; + /* 098 */ AABB mBounds; + /* 0b0 */ s8 mUnk_0b0; + /* 0b1 */ unk8 mUnk_0b1; + /* 0b2 */ unk8 mUnk_0b2; + /* 0b3 */ unk8 mUnk_0b3; + /* 0b4 */ unk32 mUnk_0b4; + /* 0b8 */ unk32 mUnk_0b8; + /* 0bc */ unk32 mUnk_0bc; + /* 0c0 */ unk32 mUnk_0c0; + /* 0c4 */ unk32 mUnk_0c4; + /* 0c8 */ void *mUnk_0c8; + /* 0cc */ unk32 mUnk_0cc; + /* 0d0 */ unk8 mUnk_0d0[0x18c]; + /* 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 + /* 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 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_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(); + 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(); +}; -- cgit v1.2.3 From a8c5c49efae2c4c1489bad419fd680bc0e85800c Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 23 Apr 2024 00:30:20 +0200 Subject: Delink `Course` --- include/Player/TouchControl.hpp | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/Player/TouchControl.hpp b/include/Player/TouchControl.hpp index 804078c9..b5c79750 100644 --- a/include/Player/TouchControl.hpp +++ b/include/Player/TouchControl.hpp @@ -42,4 +42,5 @@ public: bool func_ov00_0207aeac(); void UpdateConditionally(TouchState *state, u16 speed); void func_ov00_0207af38(u16 speed, bool param2); + ~TouchControl(); }; -- cgit v1.2.3 From c621c917c11faec9665cd5806dd529780d5e8593 Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 23 Apr 2024 00:34:24 +0200 Subject: Add `MapManager` member variables --- include/Map/MapManager.hpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index e246cd34..2f3311e4 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -5,6 +5,7 @@ #include "lib/math.h" +#include "Map/Course.hpp" #include "Physics/AABB.hpp" #include "System/SysNew.hpp" @@ -24,16 +25,28 @@ struct MapManager_Unk2 { ~MapManager_Unk2(); }; -class MapDataBase : public SysObject { +class MapBase : public SysObject { public: - /* 00 */ virtual ~MapDataBase(); + /* 00 */ virtual ~MapBase(); - MapDataBase(); - MapDataBase(u32 param1, u32 param2); + MapBase(); + MapBase(u32 param1, u32 param2); }; 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; + /* 0d */ unk8 mUnk_0d; + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ + void func_ov00_020820ec(unk32 *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); -- cgit v1.2.3 From a840f8e44624477bfc204d936a228b94c875f69d Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 23 Apr 2024 18:45:21 +0200 Subject: Update `Course` member variables --- include/Map/Course.hpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp index 847296ef..3b51529b 100644 --- a/include/Map/Course.hpp +++ b/include/Map/Course.hpp @@ -31,7 +31,7 @@ class Course : public SysObject { /* 01d */ unk8 mUnk_01d; /* 01e */ unk8 mUnk_01e; /* 01f */ unk8 mUnk_01f; - /* 020 */ unk8 mUnk_020[0x64]; + /* 020 */ unk8 mUnk_020[10][10]; /* 084 */ s8 mUnk_084; /* 084 */ s8 mUnk_085; /* 084 */ s8 mUnk_086; @@ -51,8 +51,7 @@ class Course : public SysObject { /* 0c0 */ unk32 mUnk_0c0; /* 0c4 */ unk32 mUnk_0c4; /* 0c8 */ void *mUnk_0c8; - /* 0cc */ unk32 mUnk_0cc; - /* 0d0 */ unk8 mUnk_0d0[0x18c]; + /* 0cc */ unk32 mUnk_0cc[100]; /* 25c */ bool mUnk_25c; /* 25d */ bool mBlueWarpOpen; /* 25e */ unk8 mUnk_25e; -- cgit v1.2.3 From 62e3dc0834256cc233c5004b7f901505a5140ea6 Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 23 Apr 2024 21:51:13 +0200 Subject: Add `MapBase` and some components --- include/Map/Entrance.hpp | 17 +++++++ include/Map/MapBase.hpp | 97 ++++++++++++++++++++++++++++++++++++++++ include/Map/TriggerAABB.hpp | 13 ++++++ include/Map/TriggerAABB_Unk1.hpp | 20 +++++++++ include/Map/TriggerAABB_Unk2.hpp | 13 ++++++ include/Map/TriggerBase.hpp | 17 +++++++ include/Map/TriggerSphere.hpp | 14 ++++++ 7 files changed, 191 insertions(+) create mode 100644 include/Map/Entrance.hpp create mode 100644 include/Map/MapBase.hpp create mode 100644 include/Map/TriggerAABB.hpp create mode 100644 include/Map/TriggerAABB_Unk1.hpp create mode 100644 include/Map/TriggerAABB_Unk2.hpp create mode 100644 include/Map/TriggerBase.hpp create mode 100644 include/Map/TriggerSphere.hpp (limited to 'include') diff --git a/include/Map/Entrance.hpp b/include/Map/Entrance.hpp new file mode 100644 index 00000000..318b5d2c --- /dev/null +++ b/include/Map/Entrance.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "System/SysNew.hpp" + +class Entrance : public SysObject { + /* 00 */ Vec3p mPos; + /* 0c */ unk16 mAngle; + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ s32 mUnk_10; + /* 14 */ +}; diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp new file mode 100644 index 00000000..07e58a32 --- /dev/null +++ b/include/Map/MapBase.hpp @@ -0,0 +1,97 @@ +#pragma once + +#include + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "Map/Entrance.hpp" +#include "Map/TriggerBase.hpp" +#include "System/SysNew.hpp" + +struct MapBase_Unk_180 { + /* 0 */ unk32 mUnk_0; + /* 4 */ +}; + +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 mUnk_016; + /* 017 */ unk8 mUnk_017; + /* 017 */ unk8 mUnk_017; + /* 018 */ unk8 mUnk_018; + /* 019 */ unk8 mUnk_019; + /* 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 mUnk_028; + /* 02a */ s16 mUnk_02a; + /* 02c */ unk16 mUnk_02c; + /* 02e */ unk16 mUnk_02e; + /* 030 */ s16 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 mUnk_0d0; + /* 0dc */ Vec3p mUnk_0dc; + /* 0e8 */ Vec3p mUnk_0e8; + /* 0f4 */ u32 mUnk_0f4; + /* 0f8 */ unk32 mUnk_0f8; + /* 0fc */ u32 mUnk_0fc; + /* 100 */ std::vector mEntrances; + /* 10c */ std::vector mTriggers; + /* 118 */ std::vector mUnk_118; + /* 124 */ std::vector mUnk_124; + /* 130 */ std::vector mUnk_130; + /* 13c */ unk32 mUnk_13c; + /* 140 */ unk32 mUnk_140; + /* 144 */ void *mUnk_144; + /* 148 */ s32 mUnk_148; + /* 14c */ s32 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 */ unk8 mUnk_1a0[0xc]; + /* 1ac */ s16 mUnk_1ac; + /* 1ae */ unk8 mUnk_1ae[2]; + /* 1b0 */ + + +}; diff --git a/include/Map/TriggerAABB.hpp b/include/Map/TriggerAABB.hpp new file mode 100644 index 00000000..19ac0f55 --- /dev/null +++ b/include/Map/TriggerAABB.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Physics/AABB.hpp" +#include "Map/TriggerBase.hpp" + +class TriggerAABB : public TriggerBase { + /* 00 (base) */ + /* 14 */ AABB mAABB; + /* 2c */ +}; diff --git a/include/Map/TriggerAABB_Unk1.hpp b/include/Map/TriggerAABB_Unk1.hpp new file mode 100644 index 00000000..55edbfca --- /dev/null +++ b/include/Map/TriggerAABB_Unk1.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Map/TriggerAABB.hpp" + +class TriggerAABB_Unk1 : public TriggerAABB { + /* 00 (base) */ + /* 2c */ unk8 mUnk_2c; + /* 2d */ unk8 mUnk_2d[3]; + /* 30 */ void *mUnk_30; + /* 34 */ unk8 mUnk_34; + /* 35 */ unk8 mUnk_35; + /* 36 */ unk8 mUnk_36[2]; + /* 38 */ unk32 mUnk_38; + /* 3c */ unk32 mUnk_3c; + /* 40 */ unk32 mUnk_40; + /* 44 */ +}; diff --git a/include/Map/TriggerAABB_Unk2.hpp b/include/Map/TriggerAABB_Unk2.hpp new file mode 100644 index 00000000..c87c34ba --- /dev/null +++ b/include/Map/TriggerAABB_Unk2.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Map/TriggerAABB.hpp" + +class TriggerAABB_Unk2 : public TriggerAABB { + /* 00 (base) */ + /* 2c */ unk32 mUnk_2c; + /* 30 */ unk8 mUnk_30[0x2c][4]; // non-documented class which inherits from base class + /* e0 */ +}; diff --git a/include/Map/TriggerBase.hpp b/include/Map/TriggerBase.hpp new file mode 100644 index 00000000..2a1eb090 --- /dev/null +++ b/include/Map/TriggerBase.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +class TriggerBase : public SysObject { + /* 00 (vtable) */ + /* 04 */ unk8 mUnk_04; + /* 05 */ u8 mType; + /* 06 */ unk8 mUnk_06[2]; + /* 08 */ u32 mUnk_08; + /* 0c */ u32 mUnk_0c; + /* 10 */ u32 mUnk_10; + /* 14 */ +}; diff --git a/include/Map/TriggerSphere.hpp b/include/Map/TriggerSphere.hpp new file mode 100644 index 00000000..e6bb6b39 --- /dev/null +++ b/include/Map/TriggerSphere.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Physics/Sphere.hpp" +#include "Map/TriggerBase.hpp" + +class TriggerSphere : public TriggerBase { + /* 00 (base) */ + /* 14 */ Sphere mSphere; + /* 24 */ s32 mHeight; + /* 28 */ +}; -- cgit v1.2.3 From d40d7abbb9ec6ddc201e54096507e3083c070cba Mon Sep 17 00:00:00 2001 From: Aetias Date: Fri, 26 Apr 2024 16:47:04 +0200 Subject: Add map components `Exit` and `CameraViewpoint` --- include/Map/CameraViewpoint.hpp | 19 +++++++++++++++++++ include/Map/Exit.hpp | 26 ++++++++++++++++++++++++++ include/Map/MapBase.hpp | 16 +++++++++++----- 3 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 include/Map/CameraViewpoint.hpp create mode 100644 include/Map/Exit.hpp (limited to 'include') diff --git a/include/Map/CameraViewpoint.hpp b/include/Map/CameraViewpoint.hpp new file mode 100644 index 00000000..0fde9bdc --- /dev/null +++ b/include/Map/CameraViewpoint.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "System/SysNew.hpp" + +class CameraViewpoint : public SysObject { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk8 mUnk_04 + /* 05 */ unk8 mUnk_05[3]; + /* 08 */ Vec3p mPos; + /* 14 */ unk16 mUnk_14; + /* 16 */ unk16 mUnk_16; + /* 18 */ unk16 mUnk_18[2]; + /* 1c */ +}; diff --git a/include/Map/Exit.hpp b/include/Map/Exit.hpp new file mode 100644 index 00000000..be00da58 --- /dev/null +++ b/include/Map/Exit.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +struct ExitDest { + /* 0 */ unk8 mEntrance; + /* 1 */ unk8 mMap; +}; + +class Exit : public SysObject { + /* 00 */ unk32 mDestCourse; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ ExitDest mDest; + /* 12 */ unk8 mUnk_12; + /* 13 */ unk8 mUnk_13; + /* 14 */ unk8 mUnk_14; + /* 15 */ unk8 mUnk_15; + /* 16 */ unk8 mUnk_16; + /* 17 */ unk8 mUnk_17; + /* 18 */ +}; diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp index 07e58a32..9a9a2c37 100644 --- a/include/Map/MapBase.hpp +++ b/include/Map/MapBase.hpp @@ -9,8 +9,16 @@ #include "Map/Entrance.hpp" #include "Map/TriggerBase.hpp" +#include "Map/Exit.hpp" +#include "Map/CameraViewpoint.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_180 { /* 0 */ unk32 mUnk_0; /* 4 */ @@ -67,13 +75,11 @@ public: /* 0d0 */ Vec3p mUnk_0d0; /* 0dc */ Vec3p mUnk_0dc; /* 0e8 */ Vec3p mUnk_0e8; - /* 0f4 */ u32 mUnk_0f4; - /* 0f8 */ unk32 mUnk_0f8; - /* 0fc */ u32 mUnk_0fc; + /* 0f4 */ Vec3p mUnk_0f4; /* 100 */ std::vector mEntrances; /* 10c */ std::vector mTriggers; - /* 118 */ std::vector mUnk_118; - /* 124 */ std::vector mUnk_124; + /* 118 */ std::vector mExits; + /* 124 */ std::vector mViewpoints; /* 130 */ std::vector mUnk_130; /* 13c */ unk32 mUnk_13c; /* 140 */ unk32 mUnk_140; -- cgit v1.2.3 From dfea2bd522f9122e3fb7b3d3e778b80b0c7bbe3c Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 28 Apr 2024 16:38:58 +0200 Subject: Remangle `Course` --- include/Map/Course.hpp | 117 +++++++++++++++++++++--------------------- include/Map/Course_Unk_c8.hpp | 19 +++++++ include/Map/Course_Unk_cc.hpp | 28 ++++++++++ include/lib/math.h | 6 +++ 4 files changed, 111 insertions(+), 59 deletions(-) create mode 100644 include/Map/Course_Unk_c8.hpp create mode 100644 include/Map/Course_Unk_cc.hpp (limited to 'include') 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 @@ -13,6 +13,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; -- cgit v1.2.3 From a9a768b1cbf829c07322e1da38aff33eb1ec7d15 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 28 Apr 2024 19:20:16 +0200 Subject: `Course_Unk_cc` -> `MapData` --- include/Map/Course.hpp | 2 +- include/Map/Course_Unk_cc.hpp | 28 ---------------------------- include/Map/MapData.hpp | 28 ++++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 29 deletions(-) delete mode 100644 include/Map/Course_Unk_cc.hpp create mode 100644 include/Map/MapData.hpp (limited to 'include') diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp index 917a5d09..a266fd3e 100644 --- a/include/Map/Course.hpp +++ b/include/Map/Course.hpp @@ -50,7 +50,7 @@ class Course : public SysObject { /* 0c0 */ unk32 mUnk_0c0; /* 0c4 */ unk32 mUnk_0c4; /* 0c8 */ Course_Unk_c8 *mUnk_0c8; - /* 0cc */ Course_Unk_cc *mUnk_0cc[100]; + /* 0cc */ MapData *mMapData[100]; /* 25c */ bool mUnk_25c; /* 25d */ bool mBlueWarpOpen; /* 25e */ unk8 mUnk_25e; diff --git a/include/Map/Course_Unk_cc.hpp b/include/Map/Course_Unk_cc.hpp deleted file mode 100644 index 86504f6f..00000000 --- a/include/Map/Course_Unk_cc.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#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/Map/MapData.hpp b/include/Map/MapData.hpp new file mode 100644 index 00000000..be4b691f --- /dev/null +++ b/include/Map/MapData.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "lib/math.h" + +#include "System/SysNew.hpp" + +class MapData : 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 mCenter; + /* 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 */ +}; -- cgit v1.2.3 From 3b67d0f2201a090bd6d05808a18958dd1c4adca6 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 28 Apr 2024 19:21:00 +0200 Subject: Update map components --- include/Map/Entrance.hpp | 2 +- include/Map/MapBase.hpp | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/Map/Entrance.hpp b/include/Map/Entrance.hpp index 318b5d2c..d9bea6ef 100644 --- a/include/Map/Entrance.hpp +++ b/include/Map/Entrance.hpp @@ -10,7 +10,7 @@ class Entrance : public SysObject { /* 00 */ Vec3p mPos; /* 0c */ unk16 mAngle; - /* 0e */ unk8 mUnk_0e; + /* 0e */ s8 mUnk_0e; /* 0f */ unk8 mUnk_0f; /* 10 */ s32 mUnk_10; /* 14 */ diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp index 9a9a2c37..0608b6aa 100644 --- a/include/Map/MapBase.hpp +++ b/include/Map/MapBase.hpp @@ -45,11 +45,8 @@ public: /* 013 */ unk8 mUnk_013; /* 014 */ unk8 mUnk_014; /* 015 */ unk8 mUnk_015; - /* 016 */ unk8 mUnk_016; - /* 017 */ unk8 mUnk_017; - /* 017 */ unk8 mUnk_017; - /* 018 */ unk8 mUnk_018; - /* 019 */ unk8 mUnk_019; + /* 016 */ unk8 mUnk_016[2]; + /* 018 */ unk8 mUnk_018[2]; /* 01a */ unk8 mUnk_01a; /* 01b */ unk8 mUnk_01b; /* 01c */ unk8 mUnk_01c; -- cgit v1.2.3 From 4e3235b2ec1f35518991e24fe889134324a717e4 Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 30 Apr 2024 14:54:22 +0200 Subject: Re-remangle `Course` --- include/Map/CameraViewpoint.hpp | 2 +- include/Map/Course.hpp | 36 ++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 19 deletions(-) (limited to 'include') diff --git a/include/Map/CameraViewpoint.hpp b/include/Map/CameraViewpoint.hpp index 0fde9bdc..c952078b 100644 --- a/include/Map/CameraViewpoint.hpp +++ b/include/Map/CameraViewpoint.hpp @@ -9,7 +9,7 @@ class CameraViewpoint : public SysObject { /* 00 */ unk32 mUnk_00; - /* 04 */ unk8 mUnk_04 + /* 04 */ unk8 mUnk_04; /* 05 */ unk8 mUnk_05[3]; /* 08 */ Vec3p mPos; /* 14 */ unk16 mUnk_14; diff --git a/include/Map/Course.hpp b/include/Map/Course.hpp index a266fd3e..1768ae85 100644 --- a/include/Map/Course.hpp +++ b/include/Map/Course.hpp @@ -4,7 +4,7 @@ #include "types.h" #include "Map/Course_Unk_c8.hpp" -#include "Map/Course_Unk_cc.hpp" +#include "Map/MapData.hpp" #include "Physics/AABB.hpp" #include "System/SysNew.hpp" @@ -67,10 +67,10 @@ class Course : public SysObject { 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); + Vec3p* FindMapCenter(unk32 map); void func_ov00_0207cbe8(s32 param_2); unk8 func_ov00_0207cc24(s32 param_2); - unk32 Find_Unk_cc_08(); + unk32 FindMapData_Unk_08(unk32 map); void GetMCSFilePath(unk32 buf, s32 fileIndex, unk32 fileType); 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); @@ -89,24 +89,24 @@ class Course : public SysObject { 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); + u16 FindCurrentMapData_Unk_04(); + u32 FindMapData_Unk_04(unk32 param_2); + unk32 FindMapData_Unk_0c(unk32 map); void func_ov00_0207d7bc(); 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); - 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(); + void SetMapDataFlag0(unk32 index, bool value); + bool GetMapDataFlag0(unk32 param_2); + void SetMapDataFlag1(unk32 param_2, bool param_3); + bool GetMapDataFlag1(unk32 param_2); + void SetMapDataFlag2(unk32 param_2, bool param_3); + 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); + bool GetMapDataFlag4(unk32 param_2); + MapData* FindMapData(u32 map); + MapData* FindCurrentMapData(); }; -- cgit v1.2.3 From 2e33294f89b37c8824ee97e8fd3cd675850d743d Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 30 Apr 2024 15:08:45 +0200 Subject: Mangle `MapBase` --- include/Map/MapBase.hpp | 137 ++++++++++++++++++++++++++++++++++++++++++++ include/Map/MapManager.hpp | 9 +-- include/Map/TriggerBase.hpp | 25 +++++++- include/lib/math.h | 6 ++ 4 files changed, 168 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp index 0608b6aa..c9497a0a 100644 --- a/include/Map/MapBase.hpp +++ b/include/Map/MapBase.hpp @@ -7,6 +7,7 @@ #include "lib/math.h" +#include "Map/Course.hpp" #include "Map/Entrance.hpp" #include "Map/TriggerBase.hpp" #include "Map/Exit.hpp" @@ -22,6 +23,25 @@ struct MapBase_Unk_180 { /* 0 */ unk32 mUnk_0; /* 4 */ + + ~MapBase_Unk_180(); +}; + +struct MapBase_Unk1 { + /* 00 */ s32 mUnk_00; + /* 04 */ Exit mExit_04; + /* 1c */ Exit mExit_1c; + /* 34 */ + + void func_ov00_02080324(s32 param_2, s32 param_3, s32 param_4); +}; + +struct MapBase_Unk2 { + /* 00 */ TriggerBase **mTrigger; + /* 04 */ Vec3p mVec; + /* 10 */ + + void func_ov00_02080ad0(TriggerBase **param_2, TriggerBase **param_3); }; class MapBase : public SysObject { @@ -96,5 +116,122 @@ public: /* 1ae */ unk8 mUnk_1ae[2]; /* 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 void vfunc_4c() = 0; + /* 50 */ virtual unk32 vfunc_50(); + /* 54 */ virtual unk32 vfunc_54(); + /* 58 */ virtual unk32 vfunc_58(); + /* 5c */ virtual unk32 vfunc_5c(); + /* 60 */ virtual unk32 vfunc_60(); + /* 64 */ virtual unk32 vfunc_64(); + /* 68 */ virtual unk8 vfunc_68(unk32 param_2, unk32 param_3); + /* 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(); + /* 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); + /* 94 */ virtual void vfunc_94(); + /* 98 */ virtual void vfunc_98(); + /* 9c */ virtual void vfunc_9c(); + /* a0 */ virtual void vfunc_a0(); + /* a4 */ virtual unk32 vfunc_a4(); + /* a8 */ virtual void vfunc_a8(); + /* ac */ virtual void vfunc_ac(); + /* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3); + /* b4 */ virtual void vfunc_b4(); + /* b8 */ virtual unk32 vfunc_b8(); + /* bc */ virtual void vfunc_bc(); + /* c0 */ virtual void vfunc_c0(); + /* c4 */ + void SetBounds(unk32 map, unk32 course); + void GetMapFilePath(char *courseName, unk32 num1, unk32 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(unk32 param_2, unk32 param_3); + s32 func_ov00_0207e0f0(unk32 param_2); + s32 func_ov00_0207e28c(unk32 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); + 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); + void func_ov00_0207f630(Vec2s *param_2, Vec3p *param_3); + unk8 GetTileStartX(unk32 x); + unk8 GetTileStartZ(unk32 z); + 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); + bool IsInBounds(Vec3p *tileWorldPos); + s32 AddEntrance(Entrance *param_2); + unk8 FindEntrance(unk32 id); + unk8 func_ov00_0207f924(unk32 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); + 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); + 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); + 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); + unk8 func_ov00_02080a78(Vec3p *param_2); + unk8 func_ov00_02080b24(Vec2b *param_2); + void func_ov00_02080d08(unk32 param_2); + bool TriggerOfType_vfunc_10(unk32 type); + void func_ov00_02080de4(); + unk8 func_ov00_02080de8(unk32 param_2); + void func_ov00_02080edc(); }; diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 2f3311e4..e773ef19 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -6,6 +6,7 @@ #include "lib/math.h" #include "Map/Course.hpp" +#include "Map/MapBase.hpp" #include "Physics/AABB.hpp" #include "System/SysNew.hpp" @@ -25,14 +26,6 @@ struct MapManager_Unk2 { ~MapManager_Unk2(); }; -class MapBase : public SysObject { -public: - /* 00 */ virtual ~MapBase(); - - MapBase(); - MapBase(u32 param1, u32 param2); -}; - class MapManager : public SysObject { public: /* 00 */ Course *mCourse; diff --git a/include/Map/TriggerBase.hpp b/include/Map/TriggerBase.hpp index 2a1eb090..03046e71 100644 --- a/include/Map/TriggerBase.hpp +++ b/include/Map/TriggerBase.hpp @@ -5,13 +5,36 @@ #include "System/SysNew.hpp" +struct TriggerParams { + /* 0 */ s8 id; + /* 1 */ unk8 zMin; + /* 2 */ unk8 zMax; + /* 3 */ unk8 xMin; + /* 4 */ unk8 xMax; + /* 5 */ bool isAABB_Unk1; + /* 6 */ s8 mUnk_6; + /* 7 */ s8 mUnk_7; + /* 8 */ s8 mUnk_8; + /* 9 */ bool isAABB_Unk2; + /* a */ bool isSphere; + /* b */ +}; + class TriggerBase : public SysObject { /* 00 (vtable) */ /* 04 */ unk8 mUnk_04; - /* 05 */ u8 mType; + /* 05 */ u8 mId; /* 06 */ unk8 mUnk_06[2]; /* 08 */ u32 mUnk_08; /* 0c */ u32 mUnk_0c; /* 10 */ u32 mUnk_10; /* 14 */ + + /* 00 */ virtual ~TriggerBase(); + /* 08 */ void vfunc_08(); + /* 0c */ unk32 vfunc_0c(); + /* 10 */ unk32 vfunc_10(); + /* 14 */ bool Overlaps(); + /* 18 */ bool GetBoundingBox(); + /* 1c */ }; diff --git a/include/lib/math.h b/include/lib/math.h index b601dc71..a8951eb4 100644 --- a/include/lib/math.h +++ b/include/lib/math.h @@ -19,6 +19,12 @@ typedef struct { /* 2 */ } Vec2b; +typedef struct { + /* 0 */ s16 x; + /* 1 */ s16 y; + /* 2 */ +} Vec2s; + typedef struct { /* 0 */ q20 x; /* 4 */ q20 y; -- cgit v1.2.3 From a2bd2faaf0bb4aa6c652b460d0bdb1f528c7605d Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 30 Apr 2024 15:56:52 +0200 Subject: Update `Exit` fields --- include/Map/Exit.hpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/Map/Exit.hpp b/include/Map/Exit.hpp index be00da58..d9fda9bd 100644 --- a/include/Map/Exit.hpp +++ b/include/Map/Exit.hpp @@ -5,19 +5,14 @@ #include "System/SysNew.hpp" -struct ExitDest { - /* 0 */ unk8 mEntrance; - /* 1 */ unk8 mMap; -}; - class Exit : public SysObject { /* 00 */ unk32 mDestCourse; /* 04 */ unk32 mUnk_04; /* 08 */ unk32 mUnk_08; /* 0c */ unk32 mUnk_0c; - /* 10 */ ExitDest mDest; - /* 12 */ unk8 mUnk_12; - /* 13 */ unk8 mUnk_13; + /* 10 */ unk16 mUnk_10; + /* 12 */ unk8 mDestMap; + /* 13 */ unk8 mDestEntrance; /* 14 */ unk8 mUnk_14; /* 15 */ unk8 mUnk_15; /* 16 */ unk8 mUnk_16; -- cgit v1.2.3