From a76eefa1a52f9d985ad5352c13cae1d4299cecb2 Mon Sep 17 00:00:00 2001 From: Aetias Date: Thu, 9 Jan 2025 08:24:32 +0100 Subject: PlayerControl: Decomp 7% --- include/Actor/ActorNavi.hpp | 28 +++++++++++++++++++++++++++- include/Actor/ActorNaviBase.hpp | 34 ++++++++++++++++++++++++++++++++++ include/DTCM/UnkStruct_027e05f8.hpp | 2 +- include/DTCM/UnkStruct_027e103c.hpp | 5 ++++- include/DTCM/UnkStruct_027e1098.hpp | 21 +++++++++++++++++++++ include/Item/ItemManager.hpp | 6 +++--- include/Player/EquipBombchu.hpp | 2 ++ include/Player/PlayerControl.hpp | 2 +- 8 files changed, 93 insertions(+), 7 deletions(-) create mode 100644 include/Actor/ActorNaviBase.hpp create mode 100644 include/DTCM/UnkStruct_027e1098.hpp (limited to 'include') diff --git a/include/Actor/ActorNavi.hpp b/include/Actor/ActorNavi.hpp index 36ce860d..bb6b15d4 100644 --- a/include/Actor/ActorNavi.hpp +++ b/include/Actor/ActorNavi.hpp @@ -1,3 +1,29 @@ #pragma once -class ActorNavi; +#include "global.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorNaviBase.hpp" +#include "Render/ModelRender.hpp" + +class ActorNavi : public ActorNaviBase { +public: + /* 000 (base) */ + /* 294 */ ModelRender mUnk_294; + /* 2f0 */ void *mUnk_2f0; + /* 2f4 */ unk8 mUnk_2f4[0x40]; + /* 334 */ unk32 mUnk_334; + /* 338 */ unk32 mUnk_338; + /* 33c */ unk32 mUnk_33c; + /* 340 */ unk16 mUnk_340; + /* 342 */ unk8 mUnk_342[0x2]; + /* 344 */ unk32 mUnk_344; + /* 348 */ unk32 mUnk_348; + /* 34c */ unk8 mUnk_34c[0x68]; + /* 3b4 */ unk32 mUnk_3b4; + /* 3b8 */ unk32 mUnk_3b8; + /* 3bc */ unk32 mUnk_3bc; + /* 3c0 */ unk8 mUnk_3c0[0x8]; + /* 3c8 */ +}; diff --git a/include/Actor/ActorNaviBase.hpp b/include/Actor/ActorNaviBase.hpp new file mode 100644 index 00000000..9b49aa13 --- /dev/null +++ b/include/Actor/ActorNaviBase.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Render/ModelRender.hpp" + +class ActorNaviBase : public Actor { +public: + /* 000 (base) */ + /* 158 */ Vec3p mOffsetPos; + /* 164 */ u32 mUnk_164; + /* 168 */ unk8 mUnk_168[0x68]; + /* 1d0 */ void *mUnk_1d0; + /* 164 */ unk8 mUnk_1d4[0x40]; + /* 214 */ unk16 mUnk_214; + /* 216 */ unk8 mUnk_216[0xc]; + /* 222 */ unk16 mUnk_222; + /* 224 */ unk8 mUnk_224[0x28]; + /* 24c */ unk32 mUnk_24c; + /* 250 */ unk32 mUnk_250; + /* 254 */ unk32 mUnk_254; + /* 258 */ unk32 mUnk_258; + /* 25c */ unk32 mUnk_25c; + /* 260 */ unk32 mUnk_260; + /* 264 */ unk8 mUnk_264[0x1c]; + /* 280 */ unk32 mUnk_280; + /* 284 */ unk32 mUnk_284; + /* 288 */ unk8 mUnk_288[0x2]; + /* 28a */ unk16 mUnk_28a; + /* 28c */ unk8 mUnk_28c[0x8]; + /* 294 */ +}; diff --git a/include/DTCM/UnkStruct_027e05f8.hpp b/include/DTCM/UnkStruct_027e05f8.hpp index ad976a06..b46748ec 100644 --- a/include/DTCM/UnkStruct_027e05f8.hpp +++ b/include/DTCM/UnkStruct_027e05f8.hpp @@ -4,7 +4,7 @@ #include "types.h" struct UnkStruct_027e05f8 { - /* 0 */ unk16 mUnk_0; + /* 0 */ u16 mUnk_0; /* 2 */ unk16 mUnk_2; /* 4 */ unk16 mUnk_4; /* 6 */ diff --git a/include/DTCM/UnkStruct_027e103c.hpp b/include/DTCM/UnkStruct_027e103c.hpp index 62798d92..53550fe0 100644 --- a/include/DTCM/UnkStruct_027e103c.hpp +++ b/include/DTCM/UnkStruct_027e103c.hpp @@ -16,10 +16,13 @@ struct UnkStruct_027e103c { /* 20 */ unk16 mUnk_20; /* 22 */ s16 mUnk_22; /* 24 */ u8 mUnk_24; - /* 25 */ unk8 mUnk_25[7]; + /* 25 */ unk8 mUnk_25[5]; + /* 2a */ unk8 mUnk_2a; /* 2c */ + unk32 func_ov000_020cf01c(); void func_ov000_020cf2b8(); + void func_ov000_020cf9dc(s32 param1, s32 param2); }; extern UnkStruct_027e103c *data_027e103c; diff --git a/include/DTCM/UnkStruct_027e1098.hpp b/include/DTCM/UnkStruct_027e1098.hpp new file mode 100644 index 00000000..043e108a --- /dev/null +++ b/include/DTCM/UnkStruct_027e1098.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include "types.h" + +struct UnkStruct_027e1098 { + /* 00 */ unk8 mUnk_00[0x38]; + /* 38 */ unk32 mUnk_38; + /* 3c */ unk32 mUnk_3c; + /* 40 */ unk32 mUnk_40; + /* 44 */ unk32 mUnk_44; + /* 48 */ unk8 mUnk_48; + /* 49 */ unk8 mUnk_49; + /* 4a */ unk8 mUnk_4a; + /* 4b */ unk8 mUnk_4b; + /* 4c */ unk32 mUnk_4c; + /* 50 */ + + void func_ov014_0211fd04(); +}; + +extern UnkStruct_027e1098 *data_027e1098; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index f3554a25..3599c17c 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -8,7 +8,7 @@ extern "C" { #include "lib/math.h" #include "types.h" -#include "Actor/ActorNavi.hpp" +#include "Actor/ActorNaviBase.hpp" #include "DTCM/UnkStruct_027e0f78.hpp" #include "Item/Item.hpp" #include "Map/MapManager.hpp" @@ -172,7 +172,7 @@ public: /* 008 */ ItemFlag mForcedItem; // game crashes when any item besides this one is equipped /* 00c */ u32 mHourglassSandFrames; /* 010 */ FairyId mEquippedFairy; - /* 014 */ ActorNavi *mFairies[FairyId_COUNT]; + /* 014 */ ActorNaviBase *mFairies[FairyId_COUNT]; /* 020 */ u16 mEquipLoadTimer; /* 022 */ u16 mNumRupees; /* 024 */ u8 mNumGems[Gem_COUNT]; @@ -218,7 +218,7 @@ public: // Fairy FairyId GetEquippedFairy() const; - ActorNavi *GetFairy(FairyId id) const; + ActorNaviBase *GetFairy(FairyId id) const; u32 GetActiveFairyLevel(FairyId id) const; u32 GetFairyLevel(FairyId id) const; diff --git a/include/Player/EquipBombchu.hpp b/include/Player/EquipBombchu.hpp index 449e6512..4e9651cf 100644 --- a/include/Player/EquipBombchu.hpp +++ b/include/Player/EquipBombchu.hpp @@ -41,4 +41,6 @@ public: /* 34 */ virtual void vfunc_34(unk16 *param1) override; // func_ov58_0213ecb4 /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov58_02199170 /* 50 */ + + void func_ov014_0213ec64(); }; diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index 015c22bd..e00aafaa 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.hpp @@ -48,7 +48,7 @@ public: /* 7b */ bool mUnk_7b; /* 7c */ s8 mUnk_7c; /* 7d */ bool mUnk_7d; - /* 7e */ s8 mUnk_7e; + /* 7e */ u8 mUnk_7e; /* 7f */ bool mUnk_7f; /* 80 */ bool mUnk_80; /* 81 */ bool mFollowing; -- cgit v1.2.3