From 6b9c7701fe475de8456b7fd67969486c604fc834 Mon Sep 17 00:00:00 2001 From: Aetias Date: Mon, 6 Jan 2025 22:09:32 +0100 Subject: PlayerControl: Decomp 5% --- include/DTCM/UnkStruct_027e05f8.hpp | 13 +++++++++++++ include/DTCM/UnkStruct_027e077c.hpp | 15 +++++++++++++++ include/DTCM/UnkStruct_027e0c68.hpp | 27 +++++++++++++++++++++++++++ include/DTCM/UnkStruct_027e0d38.hpp | 28 ++++++++++++++++++++++++++++ include/DTCM/UnkStruct_027e103c.hpp | 2 ++ include/Debug/DebugHierarchy.hpp | 12 ++++++++++++ include/Item/ItemManager.hpp | 23 +---------------------- include/Player/PlayerControl.hpp | 13 ++++++++++--- 8 files changed, 108 insertions(+), 25 deletions(-) create mode 100644 include/DTCM/UnkStruct_027e05f8.hpp create mode 100644 include/DTCM/UnkStruct_027e077c.hpp create mode 100644 include/DTCM/UnkStruct_027e0c68.hpp create mode 100644 include/DTCM/UnkStruct_027e0d38.hpp (limited to 'include') diff --git a/include/DTCM/UnkStruct_027e05f8.hpp b/include/DTCM/UnkStruct_027e05f8.hpp new file mode 100644 index 00000000..ad976a06 --- /dev/null +++ b/include/DTCM/UnkStruct_027e05f8.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e05f8 { + /* 0 */ unk16 mUnk_0; + /* 2 */ unk16 mUnk_2; + /* 4 */ unk16 mUnk_4; + /* 6 */ +}; + +extern UnkStruct_027e05f8 data_027e05f8; diff --git a/include/DTCM/UnkStruct_027e077c.hpp b/include/DTCM/UnkStruct_027e077c.hpp new file mode 100644 index 00000000..2e34cf7f --- /dev/null +++ b/include/DTCM/UnkStruct_027e077c.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e077c { + /* 0 */ unk32 mUnk_0; + /* 4 */ unk32 mUnk_4; + /* 8 */ unk16 mUnk_8; + /* a */ unk8 mUnk_a; + /* b */ +}; + +extern UnkStruct_027e077c data_027e077c; +extern u8 data_02056be4[]; diff --git a/include/DTCM/UnkStruct_027e0c68.hpp b/include/DTCM/UnkStruct_027e0c68.hpp new file mode 100644 index 00000000..c052b79c --- /dev/null +++ b/include/DTCM/UnkStruct_027e0c68.hpp @@ -0,0 +1,27 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Debug/DebugHierarchyBase.hpp" + +struct UnkStruct_027e0c68 { + /* 00 */ unk8 mUnk_00[4]; + /* 04 */ u8 mUnk_04; + /* 05 */ unk8 mUnk_05[3]; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk8 mUnk_0c[4]; + /* 10 */ unk16 mUnk_10; + /* 12 */ unk8 mUnk_12[2]; + /* 14 */ unk32 mUnk_14; + /* 18 */ s32 mUnk_18; + /* 1c */ s32 mUnk_1c; + /* 20 */ s32 *mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ s32 *mUnk_28; + /* 2c */ unk8 mUnk_2c[0x1c]; + /* 48 */ DebugHierarchyBase *mDebug; + /* 4c */ +}; + +extern UnkStruct_027e0c68 *data_027e0c68; diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp new file mode 100644 index 00000000..46bca505 --- /dev/null +++ b/include/DTCM/UnkStruct_027e0d38.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e0d38 { + /* 00 */ unk8 mUnk_00; + /* 01 */ unk8 mUnk_01[3]; // padding? + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ unk16 mUnk_1c; + /* 1e */ unk8 mUnk_1e; + /* 1f */ unk8 mUnk_1f; + /* 20 */ unk8 mUnk_20; + /* 21 */ unk8 mUnk_21; + /* 22 */ unk8 mUnk_22[2]; // padding? + /* 24 */ void *mUnk_24; + /* 28 */ void *mUnk_28; + /* 2c */ + + s32 func_ov000_02078b40(); +}; + +extern UnkStruct_027e0d38 *data_027e0d38; diff --git a/include/DTCM/UnkStruct_027e103c.hpp b/include/DTCM/UnkStruct_027e103c.hpp index c95f759a..62798d92 100644 --- a/include/DTCM/UnkStruct_027e103c.hpp +++ b/include/DTCM/UnkStruct_027e103c.hpp @@ -18,6 +18,8 @@ struct UnkStruct_027e103c { /* 24 */ u8 mUnk_24; /* 25 */ unk8 mUnk_25[7]; /* 2c */ + + void func_ov000_020cf2b8(); }; extern UnkStruct_027e103c *data_027e103c; diff --git a/include/Debug/DebugHierarchy.hpp b/include/Debug/DebugHierarchy.hpp index 05ab803f..2a03fed3 100644 --- a/include/Debug/DebugHierarchy.hpp +++ b/include/Debug/DebugHierarchy.hpp @@ -6,6 +6,18 @@ #include "Debug/DebugHierarchyBase.hpp" class DebugHierarchy : public DebugHierarchyBase { +public: /* 00 (base) */ /* 08 */ + + /* 00 */ virtual void vfunc_00(); + /* 04 */ virtual void vfunc_04(); + /* 08 */ virtual void vfunc_08(); + /* 0c */ virtual void vfunc_0c(); + /* 10 */ virtual void vfunc_10(); + /* 14 */ virtual void vfunc_14(); + /* 18 */ virtual void vfunc_18(); + /* 1c */ virtual void vfunc_1c(); + /* 20 */ virtual void vfunc_20(unk32 param1, const char *param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6); + /* 24 */ }; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index ae5e8cad..f3554a25 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -106,26 +106,6 @@ struct ShipPartPricesShown { /* c */ }; -struct UnkStruct_027e0d38 { - /* 00 */ unk8 mUnk_00; - /* 01 */ unk8 mUnk_01[3]; // padding? - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; - /* 0c */ unk32 mUnk_0c; - /* 10 */ unk32 mUnk_10; - /* 14 */ unk32 mUnk_14; - /* 18 */ unk32 mUnk_18; - /* 1c */ unk16 mUnk_1c; - /* 1e */ unk8 mUnk_1e; - /* 1f */ unk8 mUnk_1f; - /* 20 */ unk8 mUnk_20; - /* 21 */ unk8 mUnk_21; - /* 22 */ unk8 mUnk_22[2]; // padding? - /* 24 */ void *mUnk_24; - /* 28 */ void *mUnk_28; - /* 2c */ -}; - typedef u32 ItemModelId; enum ItemModelId_ { ItemModelId_OshusSword, // swA @@ -186,7 +166,7 @@ struct SaveItemManager { }; class ItemManager : public SysObject { -private: +public: /* 000 */ ItemFlag mEquippedItem; /* 004 */ ItemFlag mPrevEquippedItem; /* 008 */ ItemFlag mForcedItem; // game crashes when any item besides this one is equipped @@ -227,7 +207,6 @@ private: /* 14e */ unk8 mUnk_14e[0x2]; // padding? /* 150 */ -public: static ItemManager *Create(); static void Destroy(); ItemManager(); diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index 0e0da8ae..015c22bd 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.hpp @@ -57,8 +57,8 @@ public: /* 84 */ ActorRef mFollowRef; /* 8c */ ActorRef mNextFollowRef; /* 94 */ ActorRef mLastFollowRef; - /* 9c */ unk8 mUnk_9c; - /* 9d */ unk8 mUnk_9d; + /* 9c */ u8 mUnk_9c; + /* 9d */ u8 mUnk_9d; /* 9e */ unk8 mUnk_9e[2]; /* a0 */ void *mFollowActor; /* a4 */ q20 mFollowDist; @@ -75,7 +75,7 @@ public: /* d8 */ static bool func_ov00_020aeeac(); - void func_ov00_020aeef8(); + bool func_ov00_020aeef8(); void func_ov00_020aef30(); void UpdateAim(); Actor *GetFollowActor(); @@ -124,6 +124,13 @@ public: bool IsTouchingFast(); bool IsTappedNow(); bool func_ov00_020b13c4(); + + // More methods starting from 020b78a0, different TU? + void ResetTouchWorld(); + void InitTouchMovement(); + void func_ov000_020b7924(s32 param1); + void ApplyTouchWorld(Vec3p *result, q20 scale); + bool func_ov000_020b7d6c(); }; extern PlayerControl *gPlayerControl; -- cgit v1.2.3 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 From 8cda3ca2d7f5fe424cc1a649baec2ff992368e62 Mon Sep 17 00:00:00 2001 From: Aetias Date: Fri, 10 Jan 2025 09:27:01 +0100 Subject: PlayerControl: Decomp 9% --- include/Player/PlayerControl.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index e00aafaa..de2dd560 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.hpp @@ -46,7 +46,7 @@ public: /* 79 */ bool mUsingEquipItem; /* 7a */ bool mUnk_7a; /* 7b */ bool mUnk_7b; - /* 7c */ s8 mUnk_7c; + /* 7c */ u8 mUnk_7c; /* 7d */ bool mUnk_7d; /* 7e */ u8 mUnk_7e; /* 7f */ bool mUnk_7f; -- cgit v1.2.3 From f27b60d4fef5d3d081a2fe231169219416c877c8 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 8 Feb 2025 22:25:31 +0100 Subject: match most of OverlayManager.cpp --- include/System/OverlayManager.hpp | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp index 636208fc..4c83bbe4 100644 --- a/include/System/OverlayManager.hpp +++ b/include/System/OverlayManager.hpp @@ -6,6 +6,7 @@ typedef u32 OverlayId; enum OverlayId_ { + OverlayId_None = -1, OverlayId_Core, OverlayId_01, OverlayId_02, -- cgit v1.2.3 From 57de07939724a1a1762422c915814ca2f9dc760c Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 9 Feb 2025 09:38:23 +0100 Subject: PlayerControl: Decomp 27% --- include/Actor/ActorRef.hpp | 4 +--- include/Actor/Navi/ActorNaviBase.hpp | 1 + include/DTCM/UnkStruct_027e0d38.hpp | 8 +++++++- include/DTCM/UnkStruct_027e0e2c.hpp | 22 ++++++++++++++++++++++ include/DTCM/UnkStruct_027e0ffc.hpp | 26 ++++++++++++++++++++++++++ include/Map/MapManager.hpp | 10 +++++----- include/Player/EquipItem.hpp | 2 +- include/Player/PlayerControl.hpp | 15 +++++++-------- 8 files changed, 70 insertions(+), 18 deletions(-) create mode 100644 include/DTCM/UnkStruct_027e0e2c.hpp create mode 100644 include/DTCM/UnkStruct_027e0ffc.hpp (limited to 'include') diff --git a/include/Actor/ActorRef.hpp b/include/Actor/ActorRef.hpp index 5ef03f2c..eeace571 100644 --- a/include/Actor/ActorRef.hpp +++ b/include/Actor/ActorRef.hpp @@ -8,9 +8,7 @@ struct ActorRef { /* 4 */ s32 index; /* 8 */ - inline ActorRef() { - Reset(); - } + inline ActorRef() {} inline ActorRef(s32 id, s32 index) : id(id), index(index) {} diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index c98bf84f..95a34c6c 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -10,6 +10,7 @@ class ActorNaviBase_Unk1 {}; class ActorNaviBase : public Actor { +public: /* 000 (base) */ /* 158 */ Vec3p mOffsetPos; /* 164 */ unk32 mUnk_164; diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp index fd616496..b2e50a89 100644 --- a/include/DTCM/UnkStruct_027e0d38.hpp +++ b/include/DTCM/UnkStruct_027e0d38.hpp @@ -3,6 +3,12 @@ #include "global.h" #include "types.h" +struct UnkStruct_027e0d38_Unk28 { + /* 00 */ unk8 mUnk_00[0x34]; + /* 34 */ bool mUnk_34; + /* 35 */ +}; + struct UnkStruct_027e0d38 { /* 00 */ unk8 mUnk_00; /* 01 */ unk8 mUnk_01[3]; // padding? @@ -19,7 +25,7 @@ struct UnkStruct_027e0d38 { /* 21 */ unk8 mUnk_21; /* 22 */ unk8 mUnk_22[2]; // padding? /* 24 */ void *mUnk_24; - /* 28 */ void *mUnk_28; + /* 28 */ UnkStruct_027e0d38_Unk28 *mUnk_28; /* 2c */ s32 func_ov000_02078b40(); diff --git a/include/DTCM/UnkStruct_027e0e2c.hpp b/include/DTCM/UnkStruct_027e0e2c.hpp new file mode 100644 index 00000000..b8923bde --- /dev/null +++ b/include/DTCM/UnkStruct_027e0e2c.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e0e2c { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk16 mUnk_14; + /* 16 */ unk16 mUnk_16; + /* 18 */ unk32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2c */ +}; + +extern UnkStruct_027e0e2c data_027e0e2c; diff --git a/include/DTCM/UnkStruct_027e0ffc.hpp b/include/DTCM/UnkStruct_027e0ffc.hpp new file mode 100644 index 00000000..d422ae19 --- /dev/null +++ b/include/DTCM/UnkStruct_027e0ffc.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e0ffc { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04[0x4]; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk8 mUnk_24; + /* 25 */ unk8 mUnk_25[0x3]; + /* 28 */ unk32 mUnk_28; + /* 2c */ unk32 mUnk_2c; + /* 30 */ unk32 mUnk_30; + /* 34 */ unk32 mUnk_34; + /* 38 */ unk8 mUnk_38; + /* 39 */ + + void func_ov000_020cebcc(u32 param1, unk16 param2, unk32 param3); + void func_ov000_020ced64(Cylinder *param1, u32 param2); +}; + +extern UnkStruct_027e0ffc data_027e0ffc; diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 13ca4348..f597a37a 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -158,7 +158,7 @@ public: 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 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(); @@ -166,7 +166,7 @@ public: 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); + 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(); @@ -180,7 +180,7 @@ public: void GetTileWorldBounds(Vec2b *tile, AABB *tileBounds); unk8 MapData_vfunc_54(); unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4); - unk8 MapData_vfunc_78(); + unk32 MapData_vfunc_78(); static unk8 func_ov00_020840dc(); static unk8 func_ov00_02084100(unk32 param_1, MapManager *param_2); unk8 GetMapData_Unk_48(); @@ -232,10 +232,10 @@ public: 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); + s32 func_ov00_02085108(Vec3p *param_2); static unk8 func_ov00_0208527c(); static unk8 func_ov00_020853fc(); - static unk8 func_ov00_02085594(); + 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(); s32 func_ov00_02085a34(unk32 param_2, unk32 param_3); diff --git a/include/Player/EquipItem.hpp b/include/Player/EquipItem.hpp index 6702bc48..21f114da 100644 --- a/include/Player/EquipItem.hpp +++ b/include/Player/EquipItem.hpp @@ -34,7 +34,7 @@ public: /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const; /* 40 */ virtual unk32 vfunc_40() const; /* 44 */ virtual unk32 vfunc_44(unk32 param1) const; - /* 48 */ virtual unk32 vfunc_48(unk32 param1) const; + /* 48 */ virtual unk32 vfunc_48() const; /* 4c */ virtual s32 vfunc_4c() const; /* 50 */ diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index 39e118da..1bfdd833 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.hpp @@ -28,7 +28,7 @@ public: /* 50 */ q20 mTouchSpeedX; // how fast the stylus moves /* 54 */ q20 mTouchSpeedY; /* 58 */ q20 mTouchDist; // pixel distance from touch to link, deadzone is 20 pixels - /* 5c */ unk32 mUnk_5c; + /* 5c */ q20 mTouchSpeed; /* 60 */ s16 mTouchDuration; /* 62 */ s16 mTouchSlowDuration; // resets to 0 if stylus is fast enough /* 64 */ s16 mTouchFastTime; // gets set to mTouchDuration if stylus is fast enough @@ -57,13 +57,12 @@ public: /* 84 */ ActorRef mFollowRef; /* 8c */ ActorRef mNextFollowRef; /* 94 */ ActorRef mLastFollowRef; - /* 9c */ u8 mUnk_9c; - /* 9d */ u8 mUnk_9d; + /* 9c */ Vec2b mUnk_9c; /* 9e */ unk8 mUnk_9e[2]; /* a0 */ void *mFollowActor; /* a4 */ q20 mFollowDist; /* a8 */ u16 mFollowStuckTimer; - /* aa */ u16 mCutsceneEndTimer; + /* aa */ s16 mCutsceneEndTimer; /* ac */ s16 mUnk_ac; /* ae */ unk16 mUnk_ae; /* b0 */ Vec3p mAim; // used by boomerang, bow and rope @@ -75,11 +74,11 @@ public: /* d8 */ static bool func_ov00_020aeeac(); - bool func_ov00_020aeef8(); + static bool func_ov00_020aeef8(); void func_ov00_020aef30(); void UpdateAim(); Actor *GetFollowActor(); - bool func_ov00_020af01c(unk8 *param1); + bool func_ov00_020af01c(Vec2b *param1); void SetUnk_80(); void StopFollowing(); void func_ov00_020af06c(); @@ -90,14 +89,14 @@ public: bool CheckTouching(u32 param1); bool CheckTouchFast(u32 param1); bool func_ov00_020af4a4(); - void func_ov00_020af538(); + void func_ov00_020af538(bool param1, u8 param2); void func_ov00_020af6e4(Vec3p *param1, s32 param3, s32 param4); bool func_ov00_020af778(); bool func_ov00_020afad8(Vec3p *param1); void func_ov00_020afb6c(); bool func_ov00_020afe88(s32 param1, bool param2); bool func_ov00_020afeec(unk32 param1, bool param2); - void func_ov00_020aff90(unk32 param1, unk32 param2); + void func_ov00_020aff90(Cylinder *param1, unk32 param2); void func_ov00_020affec(Vec3p *param1, s32 y, s32 param3, Vec3p *param4); void func_ov00_020b014c(); void SetAim(); -- cgit v1.2.3 From 10db9067430c77b2b6cd2b14da018b81a5f43c84 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 9 Feb 2025 13:13:49 +0100 Subject: Add MapOverworld --- include/Map/MapBase.hpp | 3 +- include/Map/MapOverworld.hpp | 75 ++++++++++++++++++++++++++++ include/Unknown/UnkStruct_ov000_020c0c08.hpp | 21 ++++++++ 3 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 include/Map/MapOverworld.hpp create mode 100644 include/Unknown/UnkStruct_ov000_020c0c08.hpp (limited to 'include') diff --git a/include/Map/MapBase.hpp b/include/Map/MapBase.hpp index c92060a3..4c061620 100644 --- a/include/Map/MapBase.hpp +++ b/include/Map/MapBase.hpp @@ -113,8 +113,7 @@ public: /* 188 */ unk8 mUnk_188[0x14]; /* 19c */ unk32 mUnk_19c; /* 1a0 */ unk8 mUnk_1a0[0xc]; - /* 1ac */ s16 mUnk_1ac; - /* 1ae */ unk8 mUnk_1ae[2]; + /* 1ac */ unk32 mUnk_1ac; /* 1b0 */ /* 00 */ virtual ~MapBase(); diff --git a/include/Map/MapOverworld.hpp b/include/Map/MapOverworld.hpp new file mode 100644 index 00000000..482b3ad1 --- /dev/null +++ b/include/Map/MapOverworld.hpp @@ -0,0 +1,75 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Map/MapBase.hpp" +#include "Render/ModelRender.hpp" +#include "Unknown/UnkStruct_ov000_020c0c08.hpp" + +class MapOverworld_Unk1 : public UnkStruct_ov000_020c0c08 { +public: + /* 00 (base) */ + /* 24 */ + + MapOverworld_Unk1(u32 param1, u8 *param2, unk32 param3); +}; + +class MapOverworld : public MapBase { +public: + /* 000 (base) */ + /* 1b0 */ void *mUnk_1b0; + /* 1b4 */ unk8 mUnk_1b4; + /* 1b5 */ unk8 mUnk_1b5; + /* 1b6 */ unk8 mUnk_1b6; + /* 1b7 */ unk8 mUnk_1b7; + /* 1b8 */ u8 mUnk_1b8; + /* 1b9 */ unk8 mUnk_1b9; + /* 1ba */ unk8 mUnk_1ba; + /* 1bb */ unk8 mUnk_1bb; + /* 1bc */ s32 mUnk_1bc; + /* 1c0 */ ModelRender *mUnk_1c0; + /* 1c4 */ void *mUnk_1c4; + /* 1c8 */ void *mUnk_1c8; + /* 1cc */ unk8 mUnk_1cc; + /* 1cd */ unk8 mUnk_1cd; + /* 1ce */ unk8 mUnk_1ce[0x2]; + /* 1d0 */ unk32 mUnk_1d0; + /* 1d4 */ unk32 mUnk_1d4; + /* 1d8 */ s16 mUnk_1d8; + /* 1da */ s16 mUnk_1da; + /* 1dc */ + + /* 00 */ virtual ~MapOverworld() override; + /* 08 */ virtual void vfunc_08(u32 param_2, u32 param_3, Course *param_4) override; + /* 14 */ virtual void vfunc_14() override; + /* 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; + /* 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; + /* 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; + /* bc */ virtual void vfunc_bc() override; + /* c0 */ virtual void vfunc_c0() override; + /* c4 */ + + MapOverworld(u32 width, u32 height); + void func_ov018_0215bfc8(); + u32 func_ov018_0215c34c(); + u32 func_ov018_0215c368(); + s32 func_ov018_0215c380(u8 *param1); + void func_ov018_0215c650(); + void func_ov018_0215c6ac(); + void func_ov018_0215c6d0(); + void func_ov018_0215c9ac(); +}; diff --git a/include/Unknown/UnkStruct_ov000_020c0c08.hpp b/include/Unknown/UnkStruct_ov000_020c0c08.hpp new file mode 100644 index 00000000..69054538 --- /dev/null +++ b/include/Unknown/UnkStruct_ov000_020c0c08.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_0202e1a0.hpp" + +class UnkStruct_ov000_020c0c08 : public SysObject { +public: + /* 00 (vtable) */ + /* 04 */ unk32 mUnk_04; + /* 08 */ u8 *mUnk_08; + /* 0c */ UnkStruct_0202e1a0 mUnk_0c; + /* 24 */ + + /* 00 */ virtual ~UnkStruct_ov000_020c0c08(); + /* 08 */ + + UnkStruct_ov000_020c0c08(unk32 param1, u8 *param2); +}; -- cgit v1.2.3 From d057996378f1235c67d93014595e9fd929a4efb6 Mon Sep 17 00:00:00 2001 From: Aetias Date: Mon, 10 Feb 2025 23:07:55 +0100 Subject: PlayerControl: Decomp 38% --- include/Actor/Navi/ActorNaviBase.hpp | 2 +- include/Player/PlayerControl.hpp | 8 +++++--- include/Player/PlayerControlData.hpp | 6 ++++-- 3 files changed, 10 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index 95a34c6c..1571fdc0 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -97,7 +97,7 @@ public: bool func_ov000_020ba458(); void func_ov000_020ba4e4(); void func_ov000_020ba53c(); - void func_ov000_020baca8(Vec3p *param1, unk32 param2); + void func_ov000_020baca8(Cylinder *param1, unk32 param2); void func_ov000_020bad18(); static void func_ov000_020bb0ac(); static void func_ov000_020bb0e0(); diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index 1bfdd833..c11ad0ce 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.hpp @@ -59,7 +59,7 @@ public: /* 94 */ ActorRef mLastFollowRef; /* 9c */ Vec2b mUnk_9c; /* 9e */ unk8 mUnk_9e[2]; - /* a0 */ void *mFollowActor; + /* a0 */ void *mFollowObject; /* a4 */ q20 mFollowDist; /* a8 */ u16 mFollowStuckTimer; /* aa */ s16 mCutsceneEndTimer; @@ -98,8 +98,8 @@ public: bool func_ov00_020afeec(unk32 param1, bool param2); void func_ov00_020aff90(Cylinder *param1, unk32 param2); void func_ov00_020affec(Vec3p *param1, s32 y, s32 param3, Vec3p *param4); - void func_ov00_020b014c(); - void SetAim(); + void func_ov00_020b014c(Vec3p *param1); + void ResetAim(); bool UpdateAimWorld(Vec3p *param1); s16 GetTouchAngle(); u32 func_ov00_020b034c(); @@ -137,6 +137,8 @@ public: void Init(); void func_ov004_0210b1d0(); static void func_ov004_0210b1f0(); + + bool func_ov024_02178348(Vec3p *param1); }; extern PlayerControl *gPlayerControl; diff --git a/include/Player/PlayerControlData.hpp b/include/Player/PlayerControlData.hpp index 3527810c..cdcd8db8 100644 --- a/include/Player/PlayerControlData.hpp +++ b/include/Player/PlayerControlData.hpp @@ -87,8 +87,8 @@ public: /* 68 */ virtual void vfunc_68(unk32 param1, unk32 param2); /* 6c */ virtual void vfunc_6c(s32 param1, Vec3p *param2); /* 70 */ virtual void vfunc_70(s32 param1); - /* 74 */ virtual unk32 vfunc_74(); - /* 78 */ virtual unk32 vfunc_78(); + /* 74 */ virtual unk32 vfunc_74(s32 param1); + /* 78 */ virtual unk32 vfunc_78(s32 param1); /* 7c */ virtual unk32 vfunc_7c(); /* 80 */ @@ -105,3 +105,5 @@ public: PlayerControlData(); }; + +extern PlayerControlData *gPlayerControlData; -- cgit v1.2.3 From 83bdfdb8925d84d85b36ffbe69f256cc87da8116 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 16 Feb 2025 16:07:22 +0100 Subject: PlayerControl: Decomp 68% --- include/DTCM/UnkStruct_027e05f8.hpp | 2 +- include/DTCM/UnkStruct_027e0f64.hpp | 15 +++++++++++++++ include/Player/PlayerBase.hpp | 2 +- include/Player/PlayerControl.hpp | 8 ++++---- include/Player/TouchGesture.hpp | 3 ++- 5 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 include/DTCM/UnkStruct_027e0f64.hpp (limited to 'include') diff --git a/include/DTCM/UnkStruct_027e05f8.hpp b/include/DTCM/UnkStruct_027e05f8.hpp index 7270ade1..a5bc24d6 100644 --- a/include/DTCM/UnkStruct_027e05f8.hpp +++ b/include/DTCM/UnkStruct_027e05f8.hpp @@ -5,7 +5,7 @@ struct UnkStruct_027e05f8 { /* 0 */ u16 mUnk_0; - /* 2 */ unk16 mUnk_2; + /* 2 */ u16 mUnk_2; /* 4 */ unk16 mUnk_4; /* 6 */ diff --git a/include/DTCM/UnkStruct_027e0f64.hpp b/include/DTCM/UnkStruct_027e0f64.hpp new file mode 100644 index 00000000..33728a7e --- /dev/null +++ b/include/DTCM/UnkStruct_027e0f64.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e0f64 { + /* 0 */ DebugHierarchyBase *mUnk_0; + /* 4 */ void *mUnk_4; + /* 8 */ void *mUnk_8; + /* c */ + + unk32 func_ov000_0208b180(); +}; + +extern UnkStruct_027e0f64 *data_027e0f64; diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp index 354e1078..b08e71a4 100644 --- a/include/Player/PlayerBase.hpp +++ b/include/Player/PlayerBase.hpp @@ -64,4 +64,4 @@ public: extern PlayerBase *gPlayer; extern Vec3p gPlayerPos; extern Vec3p gPlayerVel; -extern s16 gPlayerAngle; +extern u16 gPlayerAngle; diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index c11ad0ce..962a3fe0 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.hpp @@ -11,7 +11,7 @@ #include "Player/TouchControl.hpp" #include "Player/TouchGesture.hpp" -typedef u16 TouchEdge; +typedef s16 TouchEdge; enum TouchEdge_ { TouchEdge_Right = 0, TouchEdge_Left = 1, @@ -52,7 +52,7 @@ public: /* 7f */ bool mUnk_7f; /* 80 */ bool mUnk_80; /* 81 */ bool mFollowing; - /* 82 */ unk8 mUnk_82; + /* 82 */ bool mUnk_82; /* 83 */ bool mUnk_83; /* 84 */ ActorRef mFollowRef; /* 8c */ ActorRef mNextFollowRef; @@ -106,13 +106,13 @@ public: s32 func_ov00_020b0418(); bool func_ov00_020b049c(Vec3p *param1, bool param2); bool func_ov00_020b05e8(Vec3p *param1); - bool func_ov00_020b0778(Vec3p *param1, u32 param2, unk32 param3); + bool func_ov00_020b0778(Vec3p *param1, u32 param2, unk32 *param3); bool CheckNotTouching(); bool func_ov00_020b0ad0(Actor *actor); bool func_ov00_020b0b0c(s16 *pAngle, ItemFlag *pEquipId, unk32 *pCardinal, bool *pFast); bool func_ov00_020b0de8(Vec3p *param1); bool func_ov00_020b0e54(Vec3p *param1, Vec3p *param2); - bool func_ov00_020b0f88(Vec3p *param1, unk32 param2, Vec3p *param3); + bool func_ov00_020b0f88(Vec3p *param1, unk32 scale, Vec3p *param3); bool func_ov00_020b1058(Vec3p *param1, unk32 param2, Vec3p *param3, Vec3p *param4); bool IsUntouchedNow(); bool IsNotUntouchedNow(); diff --git a/include/Player/TouchGesture.hpp b/include/Player/TouchGesture.hpp index 5009525e..0ed897a7 100644 --- a/include/Player/TouchGesture.hpp +++ b/include/Player/TouchGesture.hpp @@ -22,7 +22,8 @@ public: class TouchGesture : public TouchGestureBase { public: /* 00 (base) */ - /* 05 */ unk8 mUnk_05[7]; + /* 05 */ unk8 mUnk_05[3]; + /* 08 */ s32 mUnk_08; /* 0c */ u16 mIndex; /* 0e */ unk16 mUnk_0e; /* 10 */ u16 mUnk_10[GESTURE_BUFFER_LENGTH]; -- cgit v1.2.3 From 4a764f9d58cb16343c02afb3592aad7aabf66d6d Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 18 Feb 2025 18:33:12 +0100 Subject: PlayerControl: Decomp 80% --- include/Actor/Navi/ActorNaviBase.hpp | 2 +- include/DTCM/UnkStruct_027e0c68.hpp | 2 +- include/DTCM/UnkStruct_027e0ffc.hpp | 3 ++- include/Map/MapManager.hpp | 2 +- include/Player/EquipItem.hpp | 2 +- include/Player/PlayerControl.hpp | 4 ++-- 6 files changed, 8 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index 1571fdc0..95a34c6c 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -97,7 +97,7 @@ public: bool func_ov000_020ba458(); void func_ov000_020ba4e4(); void func_ov000_020ba53c(); - void func_ov000_020baca8(Cylinder *param1, unk32 param2); + void func_ov000_020baca8(Vec3p *param1, unk32 param2); void func_ov000_020bad18(); static void func_ov000_020bb0ac(); static void func_ov000_020bb0e0(); diff --git a/include/DTCM/UnkStruct_027e0c68.hpp b/include/DTCM/UnkStruct_027e0c68.hpp index c052b79c..e172e51e 100644 --- a/include/DTCM/UnkStruct_027e0c68.hpp +++ b/include/DTCM/UnkStruct_027e0c68.hpp @@ -24,4 +24,4 @@ struct UnkStruct_027e0c68 { /* 4c */ }; -extern UnkStruct_027e0c68 *data_027e0c68; +extern UnkStruct_027e0c68 data_027e0c68; diff --git a/include/DTCM/UnkStruct_027e0ffc.hpp b/include/DTCM/UnkStruct_027e0ffc.hpp index d422ae19..463d9ec8 100644 --- a/include/DTCM/UnkStruct_027e0ffc.hpp +++ b/include/DTCM/UnkStruct_027e0ffc.hpp @@ -20,7 +20,8 @@ struct UnkStruct_027e0ffc { /* 39 */ void func_ov000_020cebcc(u32 param1, unk16 param2, unk32 param3); - void func_ov000_020ced64(Cylinder *param1, u32 param2); + void func_ov000_020ced64(Cylinder *param1, u32 param2, u32 param3); + void func_ov000_020ced7c(Vec3p *param1, s32 param2, s32 param3, unk32 param4); }; extern UnkStruct_027e0ffc data_027e0ffc; diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index f597a37a..5fdbcabf 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -180,7 +180,7 @@ public: 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(); + 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(); diff --git a/include/Player/EquipItem.hpp b/include/Player/EquipItem.hpp index 21f114da..6702bc48 100644 --- a/include/Player/EquipItem.hpp +++ b/include/Player/EquipItem.hpp @@ -34,7 +34,7 @@ public: /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const; /* 40 */ virtual unk32 vfunc_40() const; /* 44 */ virtual unk32 vfunc_44(unk32 param1) const; - /* 48 */ virtual unk32 vfunc_48() const; + /* 48 */ virtual unk32 vfunc_48(unk32 param1) const; /* 4c */ virtual s32 vfunc_4c() const; /* 50 */ diff --git a/include/Player/PlayerControl.hpp b/include/Player/PlayerControl.hpp index 962a3fe0..11dd6488 100644 --- a/include/Player/PlayerControl.hpp +++ b/include/Player/PlayerControl.hpp @@ -61,7 +61,7 @@ public: /* 9e */ unk8 mUnk_9e[2]; /* a0 */ void *mFollowObject; /* a4 */ q20 mFollowDist; - /* a8 */ u16 mFollowStuckTimer; + /* a8 */ s16 mFollowStuckTimer; /* aa */ s16 mCutsceneEndTimer; /* ac */ s16 mUnk_ac; /* ae */ unk16 mUnk_ae; @@ -96,7 +96,7 @@ public: void func_ov00_020afb6c(); bool func_ov00_020afe88(s32 param1, bool param2); bool func_ov00_020afeec(unk32 param1, bool param2); - void func_ov00_020aff90(Cylinder *param1, unk32 param2); + void func_ov00_020aff90(Vec3p *param1, unk32 param2); void func_ov00_020affec(Vec3p *param1, s32 y, s32 param3, Vec3p *param4); void func_ov00_020b014c(Vec3p *param1); void ResetAim(); -- cgit v1.2.3 From 8d6d73108bd55be0aad9f1c1c1b8c286ecce9d2f Mon Sep 17 00:00:00 2001 From: Ozero4 Date: Mon, 24 Feb 2025 20:22:07 +0100 Subject: Partial decompilation of TouchControl --- include/Player/TouchControl.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/Player/TouchControl.hpp b/include/Player/TouchControl.hpp index 1301e144..8970c032 100644 --- a/include/Player/TouchControl.hpp +++ b/include/Player/TouchControl.hpp @@ -5,6 +5,8 @@ #include "nds/math.h" #include "types.h" +extern u16 *data_0207aecc; + typedef u16 TouchFlags; enum TouchFlag_ { TouchFlag_TouchedNow = 0x0001, @@ -42,9 +44,11 @@ public: void Update(TouchState *state, u16 speed); bool func_ov00_0207aeac(); void UpdateConditionally(TouchState *state, u16 speed); - void func_ov00_0207af38(u16 speed, bool param2); + void func_ov00_0207af38(u16 speedIncrease, bool shouldIncrease); ~TouchControl(); static bool func_0202b864(Vec3p *param1, s32 size, unk8 param3); static bool func_0202b894(Vec3p *param1, s32 size, unk8 param3); }; + +void Fill16(int value, unsigned short *dst, int size); // TODO: Replace with header file -- cgit v1.2.3 From 3c223d570c19e1b244705bfb5893d51f30a17f80 Mon Sep 17 00:00:00 2001 From: Aetias Date: Thu, 6 Mar 2025 00:14:06 +0100 Subject: Delink `ActorNavi` --- include/Actor/Navi/ActorNavi.hpp | 64 +++++++++++++++++++++++++++++++++++- include/Actor/Navi/ActorNaviBase.hpp | 18 ++-------- 2 files changed, 65 insertions(+), 17 deletions(-) (limited to 'include') diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index 98ebcf51..0d0b2fb5 100644 --- a/include/Actor/Navi/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp @@ -1,3 +1,65 @@ #pragma once -class ActorNavi; +#include "Actor/Navi/ActorNaviBase.hpp" +#include "Unknown/UnkStruct_ov000_020beba8.hpp" + +class UnkStruct_ov000_020b8110 : public UnkStruct_ov000_020beba8 { +public: + /* 0 (base) */ + /* c */ + + /* 00 */ virtual ~UnkStruct_ov000_020b8110() override; + /* 08 */ virtual void vfunc_08(unk16 *param1) override; + /* 14 */ virtual void vfunc_14(u16 *param1) override; + /* 18 */ virtual void vfunc_18(s32 *param1) override; + /* 1c */ + + UnkStruct_ov000_020b8110(); +}; + +class ActorNavi : public ActorNaviBase { +public: + static ActorType gType; + + /* 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 */ EquipHammer *mHammer; + /* 3b8 */ unk32 mUnk_3b8; + /* 3bc */ unk32 mUnk_3bc; + /* 3c0 */ unk8 mUnk_3c0[0x8]; + /* 3c8 */ + + /* 00 */ virtual ~ActorNavi() override; + /* 08 */ virtual bool vfunc_08() override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* 8c */ virtual bool vfunc_8c() override; + /* b4 */ virtual void vfunc_b4() override; + /* b8 */ virtual s32 vfunc_b8() override; + /* c0 */ virtual bool vfunc_c0(Vec3p *param1) override; + /* c4 */ virtual void vfunc_c4() override; + /* c8 */ virtual void vfunc_c8() override; + /* cc */ virtual bool vfunc_cc(unk32 *param1) override; + /* d0 */ virtual void vfunc_d0() override; + /* d4 */ virtual void vfunc_d4() override; + /* d8 */ virtual void vfunc_d8() override; + /* dc */ virtual void SetActive(bool active) override; + /* e0 */ virtual void vfunc_e0() override; + /* e8 */ virtual void vfunc_e8() override; + /* ec */ virtual void vfunc_ec() override; + + static ActorNavi *Create(); + void func_ov000_020b8200(); + void func_ov000_020b853c(); + + ActorNavi(); +}; diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index f3a45e8a..2af8acdf 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -10,6 +10,7 @@ class ActorNaviBase_Unk1 {}; class ActorNaviBase : public Actor { +public: /* 000 (base) */ /* 158 */ Vec3p mUnk_158; /* 164 */ unk32 mUnk_164; @@ -33,22 +34,7 @@ class ActorNaviBase : public Actor { /* 288 */ unk8 mUnk_288[0x2]; /* 28a */ unk16 mUnk_28a; /* 28c */ unk8 mUnk_28c[0x8]; - /* 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 */ EquipHammer *mHammer; - /* 3b8 */ unk32 mUnk_3b8; - /* 3bc */ unk32 mUnk_3bc; - /* 3c0 */ unk8 mUnk_3c0[0x8]; - /* 3c8 */ + /* 294 */ /* 00 */ virtual ~ActorNaviBase() override; /* 08 */ virtual bool vfunc_08() override; -- cgit v1.2.3 From 1998ff3444b3a264cdaace5b10194ca0270ce260 Mon Sep 17 00:00:00 2001 From: Aetias Date: Thu, 6 Mar 2025 20:34:34 +0100 Subject: Delink `ActorForceNavi` --- include/Actor/Navi/ActorForceNavi.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 include/Actor/Navi/ActorForceNavi.hpp (limited to 'include') diff --git a/include/Actor/Navi/ActorForceNavi.hpp b/include/Actor/Navi/ActorForceNavi.hpp new file mode 100644 index 00000000..1623e705 --- /dev/null +++ b/include/Actor/Navi/ActorForceNavi.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include "Actor/Navi/ActorNaviBase.hpp" + +class ActorForceNavi : public ActorNaviBase { +public: + static ActorType gType; + + /* 000 (base) */ + /* 294 */ + + /* 00 */ virtual ~ActorForceNavi() override; + /* b4 */ virtual void vfunc_b4() override; + + static ActorForceNavi *Create(); +}; -- cgit v1.2.3 From 656ec5779cccb3f8e2146299ab9af1d4bb95d7c4 Mon Sep 17 00:00:00 2001 From: Aetias Date: Fri, 7 Mar 2025 19:25:02 +0100 Subject: Delink `ActorWisdomNavi` --- include/Actor/Navi/ActorWisdomNavi.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 include/Actor/Navi/ActorWisdomNavi.hpp (limited to 'include') diff --git a/include/Actor/Navi/ActorWisdomNavi.hpp b/include/Actor/Navi/ActorWisdomNavi.hpp new file mode 100644 index 00000000..85bce572 --- /dev/null +++ b/include/Actor/Navi/ActorWisdomNavi.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include "Actor/Navi/ActorNaviBase.hpp" + +class ActorWisdomNavi : public ActorNaviBase { +public: + static ActorType gType; + + /* 000 (base) */ + /* 294 */ + + /* 00 */ virtual ~ActorWisdomNavi() override; + /* b4 */ virtual void vfunc_b4() override; + + static ActorWisdomNavi *Create(); +}; -- cgit v1.2.3 From 44ba14e823fd9d67fd92166f5370683fad56f428 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 8 Mar 2025 11:46:49 +0100 Subject: Decomp `ActorForceNavi` and `ActorWisdomNavi` 100% --- include/Actor/Navi/ActorForceNavi.hpp | 3 +-- include/Actor/Navi/ActorNavi.hpp | 2 +- include/Actor/Navi/ActorNaviBase.hpp | 19 +++++++++++++------ include/Actor/Navi/ActorWisdomNavi.hpp | 3 +-- include/Item/ItemManager.hpp | 15 +++------------ 5 files changed, 19 insertions(+), 23 deletions(-) (limited to 'include') diff --git a/include/Actor/Navi/ActorForceNavi.hpp b/include/Actor/Navi/ActorForceNavi.hpp index 1623e705..18a124f4 100644 --- a/include/Actor/Navi/ActorForceNavi.hpp +++ b/include/Actor/Navi/ActorForceNavi.hpp @@ -9,8 +9,7 @@ public: /* 000 (base) */ /* 294 */ - /* 00 */ virtual ~ActorForceNavi() override; - /* b4 */ virtual void vfunc_b4() override; + /* b4 */ virtual FairyId GetFairyId() override; static ActorForceNavi *Create(); }; diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index 0d0b2fb5..86774de4 100644 --- a/include/Actor/Navi/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp @@ -43,7 +43,7 @@ public: /* 08 */ virtual bool vfunc_08() override; /* 20 */ virtual void vfunc_20(bool param1) override; /* 8c */ virtual bool vfunc_8c() override; - /* b4 */ virtual void vfunc_b4() override; + /* b4 */ virtual FairyId GetFairyId() override; /* b8 */ virtual s32 vfunc_b8() override; /* c0 */ virtual bool vfunc_c0(Vec3p *param1) override; /* c4 */ virtual void vfunc_c4() override; diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index 2af8acdf..4c2a20cf 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -7,6 +7,15 @@ #include "Player/EquipHammer.hpp" #include "Render/ModelRender.hpp" +typedef s32 FairyId; +enum FairyId_ { + FairyId_None = -1, + FairyId_Courage = 0, + FairyId_Power = 1, + FairyId_Wisdom = 2, + FairyId_COUNT = 3, +}; + class ActorNaviBase_Unk1 {}; class ActorNaviBase : public Actor { @@ -16,12 +25,12 @@ public: /* 164 */ unk32 mUnk_164; /* 168 */ ModelRender mUnk_168; /* 1c4 */ unk8 mUnk_1c4[0xc]; - /* 1d0 */ void *mUnk_1d0; - /* 1d4 */ unk8 mUnk_1d4[0x30]; + /* 1d0 */ unk8 mUnk_1d0[0x24]; + /* 1f4 */ unk8 mUnk_1f4[0x20]; /* 214 */ unk16 mUnk_214; /* 216 */ unk8 mUnk_216[0xc]; /* 222 */ unk16 mUnk_222; - /* 224 */ unk8 mUnk_224[0x18]; + /* 224 */ unk8 mUnk_224[0x28]; /* 24c */ unk32 mUnk_24c; /* 250 */ unk32 mUnk_250; /* 254 */ unk32 mUnk_254; @@ -51,9 +60,7 @@ public: /* 84 */ virtual void vfunc_84() override; /* 90 */ virtual bool vfunc_90() override; /* 94 */ virtual void vfunc_94() override; - /* a0 */ virtual bool TrySetTransform(Transform *transform) override; - /* b0 */ virtual void SetTransform(Transform *transform) override; - /* b4 */ virtual void vfunc_b4() = 0; + /* b4 */ virtual FairyId GetFairyId() = 0; /* b8 */ virtual s32 vfunc_b8(); /* bc */ virtual bool vfunc_bc(unk32 param1, unk8 param2, s32 param3); /* c0 */ virtual bool vfunc_c0(Vec3p *param1); diff --git a/include/Actor/Navi/ActorWisdomNavi.hpp b/include/Actor/Navi/ActorWisdomNavi.hpp index 85bce572..fb6d2641 100644 --- a/include/Actor/Navi/ActorWisdomNavi.hpp +++ b/include/Actor/Navi/ActorWisdomNavi.hpp @@ -9,8 +9,7 @@ public: /* 000 (base) */ /* 294 */ - /* 00 */ virtual ~ActorWisdomNavi() override; - /* b4 */ virtual void vfunc_b4() override; + /* b4 */ virtual FairyId GetFairyId() override; static ActorWisdomNavi *Create(); }; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index c0a84aa7..9e473fc2 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -8,7 +8,7 @@ extern "C" { #include "nds/math.h" #include "types.h" -#include "Actor/Navi/ActorNavi.hpp" +#include "Actor/Navi/ActorNaviBase.hpp" #include "Item/Item.hpp" #include "Player/EquipItem.hpp" #include "Render/ModelRender.hpp" @@ -20,15 +20,6 @@ extern "C" { #define MAX_AMMO_UPGRADE 2 #define MAX_UNK_0BA 9 -typedef s32 FairyId; -enum FairyId_ { - FairyId_None = -1, - FairyId_Courage = 0, - FairyId_Power = 1, - FairyId_Wisdom = 2, - FairyId_COUNT = 3, -}; - typedef u32 ItemModelId; enum ItemModelId_ { ItemModelId_OshusSword, // swA @@ -66,7 +57,7 @@ private: /* 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]; @@ -114,7 +105,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; void SpawnFairies(); -- cgit v1.2.3 From a8dc7ef705f777cc725e1ec08918fc8c2d61b60a Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 8 Mar 2025 12:35:55 +0100 Subject: Delink and 81% decomp `ActorActionObject` --- include/Actor/Actor.hpp | 2 +- include/Actor/ActorType.hpp | 1 + include/Actor/Dungeon/ActorActionObject.hpp | 20 ++++++++++++++++++++ include/Player/PlayerBase.hpp | 2 +- include/Player/PlayerLinkBase.hpp | 2 +- 5 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 include/Actor/Dungeon/ActorActionObject.hpp (limited to 'include') diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 2a30a7c1..837ca862 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -227,7 +227,7 @@ public: bool func_ov00_020c195c(); bool func_ov00_020c198c(); void KillPickupItemActors(); - void func_Ov00_020c1bfc(s32 param1); + bool func_Ov00_020c1bfc(s32 param1); void func_ov00_020c1c20(s32 param1, unk32 param2); bool IsNearLink(); void func_ov00_020c1cf8(); diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp index 7842da14..f71c533b 100644 --- a/include/Actor/ActorType.hpp +++ b/include/Actor/ActorType.hpp @@ -41,6 +41,7 @@ enum ActorTypeId_ { ActorTypeId_SmallKey = 'NKEY', ActorTypeId_SwitchObject = 'SWOB', ActorTypeId_EventIcon = 'EVIC', + ActorTypeId_ActionObject = 'ACOB', ActorTypeId_Sandworm = 'MLDW', ActorTypeId_Tektite = 'TEKT', diff --git a/include/Actor/Dungeon/ActorActionObject.hpp b/include/Actor/Dungeon/ActorActionObject.hpp new file mode 100644 index 00000000..0bf35dfb --- /dev/null +++ b/include/Actor/Dungeon/ActorActionObject.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include "Actor/Actor.hpp" + +class ActorActionObject : public Actor { +public: + static ActorType gType; + + /* 000 (base) */ + /* 158 */ + + /* 00 */ virtual ~ActorActionObject() override; + /* 08 */ virtual bool vfunc_08() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* b4 */ + + static ActorActionObject *Create(); + ActorActionObject(); +}; diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp index 354e1078..ba4b3deb 100644 --- a/include/Player/PlayerBase.hpp +++ b/include/Player/PlayerBase.hpp @@ -29,7 +29,7 @@ public: /* 0c */ virtual bool CanMove(); /* 10 */ virtual void vfunc_10(Cylinder *param1) = 0; /* 14 */ virtual void vfunc_14(Cylinder *param1) = 0; - /* 18 */ virtual void vfunc_18() = 0; + /* 18 */ virtual bool vfunc_18(s32 param1) = 0; /* 1c */ virtual void Init() = 0; /* 20 */ virtual void vfunc_20() = 0; /* 24 */ virtual void UpdatePos() = 0; diff --git a/include/Player/PlayerLinkBase.hpp b/include/Player/PlayerLinkBase.hpp index 2a208365..b5bf77ed 100644 --- a/include/Player/PlayerLinkBase.hpp +++ b/include/Player/PlayerLinkBase.hpp @@ -50,7 +50,7 @@ public: /* 0c */ virtual bool CanMove() override; /* 10 */ virtual void vfunc_10(Cylinder *param1) override; /* 14 */ virtual void vfunc_14(Cylinder *param1) override; - /* 18 */ virtual void vfunc_18(s32 param1) override; + /* 18 */ virtual bool vfunc_18(s32 param1) override; /* 1c */ virtual void Init() override; /* 20 */ virtual void vfunc_20() override; /* 24 */ virtual void UpdatePos() override; -- cgit v1.2.3 From 59648074067128dbe6306b9fdb80af3f6abfa91b Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 9 Mar 2025 09:57:20 +0100 Subject: Fix accidental capital letter in `func_Ov00_020c1bfc` --- include/Actor/Actor.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 837ca862..c22f086e 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -227,7 +227,7 @@ public: bool func_ov00_020c195c(); bool func_ov00_020c198c(); void KillPickupItemActors(); - bool func_Ov00_020c1bfc(s32 param1); + bool func_ov00_020c1bfc(s32 param1); void func_ov00_020c1c20(s32 param1, unk32 param2); bool IsNearLink(); void func_ov00_020c1cf8(); -- cgit v1.2.3 From 12405715959d8cf26ee316cc4f67fcc3e3e9707e Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 26 Apr 2025 08:41:25 +0200 Subject: Add relocatable overlay IDs --- include/System/OverlayManager.hpp | 193 +++++++++++++++++++++++++------------- 1 file changed, 128 insertions(+), 65 deletions(-) (limited to 'include') diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp index 4c83bbe4..42118b57 100644 --- a/include/System/OverlayManager.hpp +++ b/include/System/OverlayManager.hpp @@ -2,74 +2,137 @@ #include "types.h" +#include + #include "Item/Item.hpp" +EXTERN_OVERLAY_ID(0); +EXTERN_OVERLAY_ID(1); +EXTERN_OVERLAY_ID(2); +EXTERN_OVERLAY_ID(3); +EXTERN_OVERLAY_ID(4); +EXTERN_OVERLAY_ID(5); +EXTERN_OVERLAY_ID(6); +EXTERN_OVERLAY_ID(7); +EXTERN_OVERLAY_ID(8); +EXTERN_OVERLAY_ID(9); +EXTERN_OVERLAY_ID(10); +EXTERN_OVERLAY_ID(11); +EXTERN_OVERLAY_ID(12); +EXTERN_OVERLAY_ID(13); +EXTERN_OVERLAY_ID(14); +EXTERN_OVERLAY_ID(15); +EXTERN_OVERLAY_ID(16); +EXTERN_OVERLAY_ID(17); +EXTERN_OVERLAY_ID(18); +EXTERN_OVERLAY_ID(19); +EXTERN_OVERLAY_ID(20); +EXTERN_OVERLAY_ID(21); +EXTERN_OVERLAY_ID(22); +EXTERN_OVERLAY_ID(23); +EXTERN_OVERLAY_ID(24); +EXTERN_OVERLAY_ID(25); +EXTERN_OVERLAY_ID(26); +EXTERN_OVERLAY_ID(27); +EXTERN_OVERLAY_ID(28); +EXTERN_OVERLAY_ID(29); +EXTERN_OVERLAY_ID(30); +EXTERN_OVERLAY_ID(31); +EXTERN_OVERLAY_ID(32); +EXTERN_OVERLAY_ID(33); +EXTERN_OVERLAY_ID(34); +EXTERN_OVERLAY_ID(35); +EXTERN_OVERLAY_ID(36); +EXTERN_OVERLAY_ID(37); +EXTERN_OVERLAY_ID(38); +EXTERN_OVERLAY_ID(39); +EXTERN_OVERLAY_ID(40); +EXTERN_OVERLAY_ID(41); +EXTERN_OVERLAY_ID(42); +EXTERN_OVERLAY_ID(43); +EXTERN_OVERLAY_ID(44); +EXTERN_OVERLAY_ID(45); +EXTERN_OVERLAY_ID(46); +EXTERN_OVERLAY_ID(47); +EXTERN_OVERLAY_ID(48); +EXTERN_OVERLAY_ID(49); +EXTERN_OVERLAY_ID(50); +EXTERN_OVERLAY_ID(51); +EXTERN_OVERLAY_ID(52); +EXTERN_OVERLAY_ID(53); +EXTERN_OVERLAY_ID(54); +EXTERN_OVERLAY_ID(55); +EXTERN_OVERLAY_ID(56); +EXTERN_OVERLAY_ID(57); +EXTERN_OVERLAY_ID(58); +EXTERN_OVERLAY_ID(59); +EXTERN_OVERLAY_ID(60); +EXTERN_OVERLAY_ID(61); + typedef u32 OverlayId; -enum OverlayId_ { - OverlayId_None = -1, - OverlayId_Core, - OverlayId_01, - OverlayId_02, - OverlayId_03, - OverlayId_Memory, - OverlayId_05, - OverlayId_06, - OverlayId_07, - OverlayId_08, - OverlayId_09, - OverlayId_10, - OverlayId_11, - OverlayId_12, - OverlayId_13, - OverlayId_Land, - OverlayId_15, - OverlayId_16, - OverlayId_17, - OverlayId_18, - OverlayId_19, - OverlayId_20, - OverlayId_21, - OverlayId_22, - OverlayId_23, - OverlayId_24, - OverlayId_25, - OverlayId_26, - OverlayId_27, - OverlayId_28, - OverlayId_29, - OverlayId_30, - OverlayId_31, - OverlayId_32, - OverlayId_33, - OverlayId_34, - OverlayId_35, - OverlayId_36, - OverlayId_37, - OverlayId_38, - OverlayId_39, - OverlayId_40, - OverlayId_41, - OverlayId_42, - OverlayId_43, - OverlayId_44, - OverlayId_45, - OverlayId_46, - OverlayId_47, - OverlayId_48, - OverlayId_49, - OverlayId_50, - OverlayId_51, - OverlayId_52, - OverlayId_PlayerBoomerang, - OverlayId_PlayerScoop, - OverlayId_PlayerBomb, - OverlayId_PlayerBow, - OverlayId_PlayerRope, - OverlayId_PlayerBombchu, - OverlayId_PlayerHammer, - OverlayId_60, - OverlayId_61, -}; +#define OverlayId_None -1 +#define OverlayId_Core OVERLAY_ID(0) +#define OverlayId_01 OVERLAY_ID(1) +#define OverlayId_02 OVERLAY_ID(2) +#define OverlayId_03 OVERLAY_ID(3) +#define OverlayId_Memory OVERLAY_ID(4) +#define OverlayId_05 OVERLAY_ID(5) +#define OverlayId_06 OVERLAY_ID(6) +#define OverlayId_07 OVERLAY_ID(7) +#define OverlayId_08 OVERLAY_ID(8) +#define OverlayId_09 OVERLAY_ID(9) +#define OverlayId_10 OVERLAY_ID(10) +#define OverlayId_11 OVERLAY_ID(11) +#define OverlayId_12 OVERLAY_ID(12) +#define OverlayId_13 OVERLAY_ID(13) +#define OverlayId_Land OVERLAY_ID(14) +#define OverlayId_15 OVERLAY_ID(15) +#define OverlayId_16 OVERLAY_ID(16) +#define OverlayId_17 OVERLAY_ID(17) +#define OverlayId_18 OVERLAY_ID(18) +#define OverlayId_19 OVERLAY_ID(19) +#define OverlayId_20 OVERLAY_ID(20) +#define OverlayId_21 OVERLAY_ID(21) +#define OverlayId_22 OVERLAY_ID(22) +#define OverlayId_23 OVERLAY_ID(23) +#define OverlayId_24 OVERLAY_ID(24) +#define OverlayId_25 OVERLAY_ID(25) +#define OverlayId_26 OVERLAY_ID(26) +#define OverlayId_27 OVERLAY_ID(27) +#define OverlayId_28 OVERLAY_ID(28) +#define OverlayId_29 OVERLAY_ID(29) +#define OverlayId_30 OVERLAY_ID(30) +#define OverlayId_31 OVERLAY_ID(31) +#define OverlayId_32 OVERLAY_ID(32) +#define OverlayId_33 OVERLAY_ID(33) +#define OverlayId_34 OVERLAY_ID(34) +#define OverlayId_35 OVERLAY_ID(35) +#define OverlayId_36 OVERLAY_ID(36) +#define OverlayId_37 OVERLAY_ID(37) +#define OverlayId_38 OVERLAY_ID(38) +#define OverlayId_39 OVERLAY_ID(39) +#define OverlayId_40 OVERLAY_ID(40) +#define OverlayId_41 OVERLAY_ID(41) +#define OverlayId_42 OVERLAY_ID(42) +#define OverlayId_43 OVERLAY_ID(43) +#define OverlayId_44 OVERLAY_ID(44) +#define OverlayId_45 OVERLAY_ID(45) +#define OverlayId_46 OVERLAY_ID(46) +#define OverlayId_47 OVERLAY_ID(47) +#define OverlayId_48 OVERLAY_ID(48) +#define OverlayId_49 OVERLAY_ID(49) +#define OverlayId_50 OVERLAY_ID(50) +#define OverlayId_51 OVERLAY_ID(51) +#define OverlayId_52 OVERLAY_ID(52) +#define OverlayId_PlayerBoomerang OVERLAY_ID(53) +#define OverlayId_PlayerScoop OVERLAY_ID(54) +#define OverlayId_PlayerBomb OVERLAY_ID(55) +#define OverlayId_PlayerBow OVERLAY_ID(56) +#define OverlayId_PlayerRope OVERLAY_ID(57) +#define OverlayId_PlayerBombchu OVERLAY_ID(58) +#define OverlayId_PlayerHammer OVERLAY_ID(59) +#define OverlayId_60 OVERLAY_ID(60) +#define OverlayId_61 OVERLAY_ID(61) typedef u32 OverlayIndex; enum OverlayIndex_ { -- cgit v1.2.3 From 5ffac795ab8e3cd6b1162e4e24b535af2bd5c52e Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 26 Apr 2025 08:42:04 +0200 Subject: Clean up ItemManager --- include/Item/ItemModelLoader.hpp | 2 ++ include/Map/MapManager.hpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/Item/ItemModelLoader.hpp b/include/Item/ItemModelLoader.hpp index 6b06893a..3eb3e157 100644 --- a/include/Item/ItemModelLoader.hpp +++ b/include/Item/ItemModelLoader.hpp @@ -27,3 +27,5 @@ public: static void Create(); static void Destroy(); }; + +extern ItemModelLoader *gItemModelLoader; diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 13ca4348..f6557c07 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -210,7 +210,7 @@ public: unk8 func_ov00_0208499c(); unk8 func_ov00_020849c0(); unk8 func_ov00_020849dc(); - static bool func_ov00_020849f8(unk32 param_1); + bool func_ov00_020849f8(); unk8 func_ov00_02084a50(); void SpawnNPC(Vec3p *param_2, unk32 param_3, unk32 param_4); bool func_ov00_02084ac4(u32 actorId); -- cgit v1.2.3 From a44372043a0f157195f0d3510dc70ca73f61bdcf Mon Sep 17 00:00:00 2001 From: mike8699 Date: Wed, 8 Jan 2025 21:59:47 -0500 Subject: Decomp `AdventureFlags::Get_FlagsUnk_49` --- include/Save/AdventureFlags.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index b076cd73..19f1d3f0 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -105,7 +105,7 @@ public: bool func_ov00_02097bcc(s32 param2); s32 func_ov00_02097c08(); bool Get_FlagsUnk_30_Flag(int index); - unk8 Get_FlagsUnk_49(int index); + u8 Get_FlagsUnk_49(s32 index); unk8 Get_FlagsUnk_48(int index); unk8 Get_FlagsUnk_4a(int index); unk16 Get_FlagsUnk_42(int index); -- cgit v1.2.3 From 382f48a3f359407ccbd78761027c2ad7cff05a5a Mon Sep 17 00:00:00 2001 From: mike8699 Date: Wed, 8 Jan 2025 22:01:50 -0500 Subject: Decomp `AdventureFlags::Get_FlagsUnk_48` --- include/Save/AdventureFlags.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index 19f1d3f0..68b21e7a 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -106,7 +106,7 @@ public: s32 func_ov00_02097c08(); bool Get_FlagsUnk_30_Flag(int index); u8 Get_FlagsUnk_49(s32 index); - unk8 Get_FlagsUnk_48(int index); + u8 Get_FlagsUnk_48(s32 index); unk8 Get_FlagsUnk_4a(int index); unk16 Get_FlagsUnk_42(int index); unk16 Get_FlagsUnk_40(int index); -- cgit v1.2.3 From ff133277c2f72480a45700f45b214dc088d7d4d1 Mon Sep 17 00:00:00 2001 From: mike8699 Date: Wed, 8 Jan 2025 22:03:46 -0500 Subject: AdventureFlags: update all `int` to `s32` --- include/Save/AdventureFlags.hpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'include') diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index 68b21e7a..22399d1e 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -104,19 +104,19 @@ public: bool func_ov00_02097bcc(); bool func_ov00_02097bcc(s32 param2); s32 func_ov00_02097c08(); - bool Get_FlagsUnk_30_Flag(int index); + bool Get_FlagsUnk_30_Flag(s32 index); u8 Get_FlagsUnk_49(s32 index); u8 Get_FlagsUnk_48(s32 index); - unk8 Get_FlagsUnk_4a(int index); - unk16 Get_FlagsUnk_42(int index); - unk16 Get_FlagsUnk_40(int index); - unk32 Get_FlagsUnk_38(int index); - unk32 Get_FlagsUnk_34(int index); - unk32 Get_FlagsUnk_44(int index); - static unk32 Get_FlagsUnk_30(int index); - static bool Get_FlagsUnk_00(int index, FlagsUnk2 *result); - bool Get_FlagsUnk_18(int index, FlagsUnk2 *result); - FlagsUnk *Get_FlagsUnk(int index); + unk8 Get_FlagsUnk_4a(s32 index); + unk16 Get_FlagsUnk_42(s32 index); + unk16 Get_FlagsUnk_40(s32 index); + unk32 Get_FlagsUnk_38(s32 index); + unk32 Get_FlagsUnk_34(s32 index); + unk32 Get_FlagsUnk_44(s32 index); + static unk32 Get_FlagsUnk_30(s32 index); + static bool Get_FlagsUnk_00(s32 index, FlagsUnk2 *result); + bool Get_FlagsUnk_18(s32 index, FlagsUnk2 *result); + FlagsUnk *Get_FlagsUnk(s32 index); bool func_ov00_02097e6c(); bool func_ov00_02097e7c(); bool func_ov00_02097ea4(); -- cgit v1.2.3 From cf82a39b0eb6fdfa8c113860e89dec1d2691920a Mon Sep 17 00:00:00 2001 From: mike8699 Date: Wed, 8 Jan 2025 22:25:07 -0500 Subject: Decomp a bunch of `AdventureFlags::Get_Flags*` --- include/Save/AdventureFlags.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index 22399d1e..0484fba8 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -107,9 +107,9 @@ public: bool Get_FlagsUnk_30_Flag(s32 index); u8 Get_FlagsUnk_49(s32 index); u8 Get_FlagsUnk_48(s32 index); - unk8 Get_FlagsUnk_4a(s32 index); - unk16 Get_FlagsUnk_42(s32 index); - unk16 Get_FlagsUnk_40(s32 index); + u8 Get_FlagsUnk_4a(s32 index); + u16 Get_FlagsUnk_42(s32 index); + u16 Get_FlagsUnk_40(s32 index); unk32 Get_FlagsUnk_38(s32 index); unk32 Get_FlagsUnk_34(s32 index); unk32 Get_FlagsUnk_44(s32 index); -- cgit v1.2.3 From 2eb989a4cf55fcf4de543f1ca89bfd391c664da5 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 10 May 2025 20:42:30 +0200 Subject: Match `LinkStateMove` --- include/Debug/DebugHierarchyBase.hpp | 5 +++-- include/Player/LinkStateMove.hpp | 5 +++-- include/Player/PlayerBase.hpp | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/Debug/DebugHierarchyBase.hpp b/include/Debug/DebugHierarchyBase.hpp index 5b4a175a..0e57c9a7 100644 --- a/include/Debug/DebugHierarchyBase.hpp +++ b/include/Debug/DebugHierarchyBase.hpp @@ -24,9 +24,10 @@ public: /* 28 */ virtual void vfunc_28(); /* 2c */ virtual void vfunc_2c(); /* 30 */ virtual void vfunc_30(); - /* 34 */ virtual bool GetChildNode(unk32 param1, const char *description, u32 parent, s32 *param4); + /* 34 */ virtual bool GetChildNode(unk32 param1, const char *description, u32 parent, s32 *param4, unk32 param5, + unk32 param6, unk32 param7, unk32 param8); /* 38 */ virtual void vfunc_38(); - /* 3c */ virtual void vfunc_3c(); + /* 3c */ virtual void vfunc_3c(unk32 param1, void *param2); /* 40 */ DebugHierarchyBase(); diff --git a/include/Player/LinkStateMove.hpp b/include/Player/LinkStateMove.hpp index 9b369e9c..0b197a27 100644 --- a/include/Player/LinkStateMove.hpp +++ b/include/Player/LinkStateMove.hpp @@ -12,8 +12,9 @@ public: /* 10 */ unk16 mUnk_10; /* 12 */ unk16 mUnk_12; /* 14 */ bool mUnk_14; - /* 14 */ bool mUnk_15; - /* 16 */ unk8 mUnk_16[2]; + /* 15 */ bool mUnk_15; + /* 16 */ bool mUnk_16; + /* 17 */ bool mUnk_17; /* 18 */ /* 00 */ virtual void vfunc_00() override; diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp index ba4b3deb..d2ffea38 100644 --- a/include/Player/PlayerBase.hpp +++ b/include/Player/PlayerBase.hpp @@ -48,8 +48,8 @@ public: void SetUpdatePos(bool updatePos); void SetVisible(bool visible); - EquipSword *GetEquipSword(); - EquipShield *GetEquipShield(); + static EquipSword *GetEquipSword(); + static EquipShield *GetEquipShield(); void LookAt(Vec3p *target); bool func_ov00_020a7c00(s32 param1); bool CollidesWith(Cylinder *cylinder); -- cgit v1.2.3 From e66cbc23e1c80e904451558317d2eba3524fcb41 Mon Sep 17 00:00:00 2001 From: Aetias Date: Thu, 22 May 2025 21:39:25 +0200 Subject: Match `LinkStateMove` in overlay 5 --- include/Player/LinkStateBase.hpp | 22 +++++++++++----------- include/Player/LinkStateDamage.hpp | 1 + include/Player/LinkStateMove.hpp | 2 ++ include/Unknown/UnkStruct_02037750.hpp | 2 +- 4 files changed, 15 insertions(+), 12 deletions(-) (limited to 'include') diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index bca6c796..14f4603d 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.hpp @@ -14,13 +14,13 @@ typedef unk32 LinkStateId; enum LinkStateId_ { - LinkStateId_Move = 0, - LinkStateId_Item = 1, - LinkStateId_Grab = 2, - LinkStateId_Unk3 = 3, - LinkStateId_Unk4 = 4, - LinkStateId_Damage = 5, - LinkStateId_ItemGet = 6, + LinkStateId_Move = 0, + LinkStateId_Item = 1, + LinkStateId_Interact = 2, + LinkStateId_Follow = 3, + LinkStateId_Roll = 4, + LinkStateId_Damage = 5, + LinkStateId_Cutscene = 6, LinkStateId_COUNT }; @@ -60,7 +60,7 @@ public: void func_ov00_020a81b8(unk32 param1, unk32 param2); LinkStateItem *GetLinkItemState(); void LookAt(Vec3p *target); - void func_ov00_020a81fc(); + void func_ov00_020a81fc(Vec3p *param1, unk32 param2); void AddHealth(s16 amount); void func_ov00_020a8224(unk32 param1); void TurnTo(s16 angle, unk32 param2, unk32 speed); @@ -82,7 +82,7 @@ public: void Clear_PlayerLinkBase_Unk48(u16 flags); void func_ov00_020a8680(unk32 param1, unk16 param2, bool param3); void PlayerLinkBase_func_ov00_020bccc8(); - bool PlayerLinkBase_vfunc_58(); + bool PlayerLinkBase_vfunc_58(unk32 param1, ActorRef *param2); bool func_ov00_020a8704(s16 *pAngle); bool func_ov00_020a8774(Vec3p *param1, s32 angle); void func_ov00_020a8844(Vec3p *param1, bool param2, bool param3); @@ -90,7 +90,7 @@ public: void func_ov00_020a8994(); void func_ov00_020a89bc(unk32 param1, unk32 param2); void func_ov00_020a8a08(unk32 param1); - void func_ov00_020a8a4c(unk32 param1, unk32 param2); + void func_ov00_020a8a4c(const void *param1, unk32 param2); void func_ov00_020a8a90(unk32 param1); void func_ov00_020a8ab0(unk32 param1); void func_ov00_020a8ad0(unk32 param1); @@ -152,6 +152,6 @@ public: void func_ov005_021113c4(bool param1); }; -LinkStateBase *GetLinkState(s32 index); +LinkStateBase *GetLinkState(LinkStateId index); extern LinkStateBase **gLinkStates; diff --git a/include/Player/LinkStateDamage.hpp b/include/Player/LinkStateDamage.hpp index 0e3a70a7..02e2c526 100644 --- a/include/Player/LinkStateDamage.hpp +++ b/include/Player/LinkStateDamage.hpp @@ -8,6 +8,7 @@ #include "Render/ModelRender.hpp" class LinkStateDamage : public LinkStateBase { +public: /* 00 (base) */ /* 0c */ void *mUnk_0c; /* 10 */ unk32 mUnk_10; diff --git a/include/Player/LinkStateMove.hpp b/include/Player/LinkStateMove.hpp index 0b197a27..a782b22d 100644 --- a/include/Player/LinkStateMove.hpp +++ b/include/Player/LinkStateMove.hpp @@ -7,6 +7,8 @@ class LinkStateMove : public LinkStateBase { public: + static unk32 data_ov000_020e56f0; + /* 00 (base) */ /* 0c */ s32 mUnk_0c; /* 10 */ unk16 mUnk_10; diff --git a/include/Unknown/UnkStruct_02037750.hpp b/include/Unknown/UnkStruct_02037750.hpp index 5fe84a89..2e5ea7b6 100644 --- a/include/Unknown/UnkStruct_02037750.hpp +++ b/include/Unknown/UnkStruct_02037750.hpp @@ -31,7 +31,7 @@ public: /* 34 */ UnkStruct_02037750(unk32 param1, unk32 param2); - LinkStateInteract *GetLinkStateInteract(); + static LinkStateInteract *GetLinkStateInteract(); void func_020385d0(s32 param1, unk32 *param2); }; -- cgit v1.2.3 From ef04313d458adf37d2e3eb83fd291e4eb9b30a7d Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 24 May 2025 12:23:03 +0200 Subject: Decomp `PlayerControl` 98% --- include/DTCM/UnkStruct_027e077c.hpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/DTCM/UnkStruct_027e077c.hpp b/include/DTCM/UnkStruct_027e077c.hpp index b0bc5f57..57ef477d 100644 --- a/include/DTCM/UnkStruct_027e077c.hpp +++ b/include/DTCM/UnkStruct_027e077c.hpp @@ -4,15 +4,26 @@ #include "types.h" struct UnkStruct_027e077c { +private: /* 0 */ unk32 mUnk_0; /* 4 */ unk32 mUnk_4; + +public: /* 8 */ unk16 mUnk_8; /* a */ unk8 mUnk_a; /* b */ UnkStruct_027e077c(unk32 param1); bool func_0202e740(unk32 param1); + + inline volatile unk32 GetUnk0() const { + return mUnk_0; + } + + inline unk32 GetUnk4() const { + return mUnk_4; + } }; extern UnkStruct_027e077c data_027e077c; -extern u8 data_02056be4[]; +extern volatile u8 data_02056be4[]; -- cgit v1.2.3 From d1acad0dd8c597b567376d253284a335a5554bee Mon Sep 17 00:00:00 2001 From: Aetias Date: Mon, 26 May 2025 23:30:28 +0200 Subject: Delink `ActorRefill` --- include/Actor/Player/ActorRefill.hpp | 102 +++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 include/Actor/Player/ActorRefill.hpp (limited to 'include') diff --git a/include/Actor/Player/ActorRefill.hpp b/include/Actor/Player/ActorRefill.hpp new file mode 100644 index 00000000..47e7d9fc --- /dev/null +++ b/include/Actor/Player/ActorRefill.hpp @@ -0,0 +1,102 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Actor/Actor.hpp" + +class ActorRefill : public Actor { +public: + /* 000 (base) */ + /* 158 */ unk32 mUnk_158; + /* 15c */ unk32 mUnk_15c; + /* 160 */ unk32 mUnk_160; + /* 164 */ unk8 mUnk_164; + /* 165 */ unk8 mUnk_165[0x3]; + /* 168 */ + +public: + ActorRefill(); + + /* 00 */ virtual ~ActorRefill() override; + /* 08 */ virtual bool vfunc_08() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* b4 */ virtual unk32 vfunc_b4() = 0; + /* b8 */ + + bool func_ov014_02135364(unk32 param1); + void func_ov014_02135474(); +}; + +class ActorRefillBombs : public ActorRefill { +public: + /* 000 (base) */ + /* 168 */ + +public: + ActorRefillBombs(); + static ActorRefillBombs *Create(); + + /* 00 */ virtual ~ActorRefillBombs() override; + /* b4 */ virtual unk32 vfunc_b4() override; + /* b8 */ +}; + +class ActorRefillBombchus : public ActorRefill { +public: + /* 000 (base) */ + /* 168 */ + +public: + ActorRefillBombchus(); + static ActorRefillBombchus *Create(); + + /* 00 */ virtual ~ActorRefillBombchus() override; + /* b4 */ virtual unk32 vfunc_b4() override; + /* b8 */ +}; + +class ActorRefillArrows : public ActorRefill { +public: + /* 000 (base) */ + /* 168 */ + +public: + ActorRefillArrows(); + static ActorRefillArrows *Create(); + + /* 00 */ virtual ~ActorRefillArrows() override; + /* b4 */ virtual unk32 vfunc_b4() override; + /* b8 */ +}; + +class ActorRefillTime : public ActorRefill { +public: + /* 000 (base) */ + /* 168 */ + +public: + ActorRefillTime(); + static ActorRefillTime *Create(); + + /* 00 */ virtual ~ActorRefillTime() override; + /* 08 */ virtual bool vfunc_08() override; + /* b4 */ virtual unk32 vfunc_b4() override; + /* b8 */ +}; + +class ActorLSTM : public ActorRefill { +public: + /* 000 (base) */ + /* 168 */ + +public: + ActorLSTM(); + static ActorLSTM *Create(); + + /* 00 */ virtual ~ActorLSTM() override; + /* 08 */ virtual bool vfunc_08() override; + /* b4 */ virtual unk32 vfunc_b4() override; + /* b8 */ +}; -- cgit v1.2.3 From 9f8ead4aebb81502160cceeccdd2259a84c82896 Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 27 May 2025 19:00:31 +0200 Subject: Add symbols for `ActorRefill` --- include/Actor/Player/ActorRefill.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'include') diff --git a/include/Actor/Player/ActorRefill.hpp b/include/Actor/Player/ActorRefill.hpp index 47e7d9fc..044a2c03 100644 --- a/include/Actor/Player/ActorRefill.hpp +++ b/include/Actor/Player/ActorRefill.hpp @@ -4,6 +4,7 @@ #include "types.h" #include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" class ActorRefill : public Actor { public: @@ -31,6 +32,8 @@ public: class ActorRefillBombs : public ActorRefill { public: + static ActorType gType; + /* 000 (base) */ /* 168 */ @@ -45,6 +48,8 @@ public: class ActorRefillBombchus : public ActorRefill { public: + static ActorType gType; + /* 000 (base) */ /* 168 */ @@ -59,6 +64,8 @@ public: class ActorRefillArrows : public ActorRefill { public: + static ActorType gType; + /* 000 (base) */ /* 168 */ @@ -73,6 +80,8 @@ public: class ActorRefillTime : public ActorRefill { public: + static ActorType gType; + /* 000 (base) */ /* 168 */ @@ -88,6 +97,8 @@ public: class ActorLSTM : public ActorRefill { public: + static ActorType gType; + /* 000 (base) */ /* 168 */ -- cgit v1.2.3 From 0b6e5d042b88229a88e48d954eb0084c6f039369 Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 27 May 2025 22:00:27 +0200 Subject: Decomp `ActorRefill` 94% --- include/Actor/Actor.hpp | 10 ++++++---- include/Actor/ActorType.hpp | 9 +++++++-- include/Actor/Player/ActorRefill.hpp | 16 ++++++++-------- include/Item/ItemManager.hpp | 2 +- 4 files changed, 22 insertions(+), 15 deletions(-) (limited to 'include') diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index c22f086e..f82d34ab 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -64,6 +64,7 @@ struct Actor_UnkStruct_0a4 { /* 14 */ Actor_UnkStruct_0a4(q20 x, q20 y, q20 z, s32 unk_10); + void func_ov000_0207a1c8(unk32 param1, Vec3p *param2); }; class KillPickupsFilter : FilterActorReturn, public FilterActorBase { @@ -83,7 +84,8 @@ enum PlayerCollide_ { PlayerCollide_Gongoron = 0x8, PlayerCollide_Hammer = 0x10, - PlayerCollide_PickupFlags = PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player, + /* 0x1b */ PlayerCollide_PickupFlags = + PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player, }; struct Knockback { @@ -136,10 +138,10 @@ public: /* 108 */ unk8 mUnk_108; /* 109 */ unk8 mUnk_109; /* 10a */ unk8 mUnk_10a[0x6]; - /* 110 */ unk8 mUnk_110; + /* 110 */ bool mUnk_110; /* 111 */ bool mUnk_111; - /* 112 */ unk8 mUnk_112; - /* 113 */ unk8 mUnk_113; + /* 112 */ bool mUnk_112; + /* 113 */ bool mUnk_113; /* 114 */ unk8 mUnk_114; /* 115 */ unk8 mUnk_115; /* 116 */ unk8 mUnk_116; diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp index f71c533b..1d7d5723 100644 --- a/include/Actor/ActorType.hpp +++ b/include/Actor/ActorType.hpp @@ -25,8 +25,13 @@ enum ActorTypeId_ { ActorTypeId_ShopItemShield = 'ITSL', ActorTypeId_ShopItemSoldOut = 'ITSO', - ActorTypeId_Heart = 'HART', - ActorTypeId_Rupee = 'RUPY', + ActorTypeId_RefillArrows = 'FLAL', + ActorTypeId_RefillBombs = 'FLBM', + ActorTypeId_RefillBombchus = 'FLBT', + ActorTypeId_RefillTime = 'FLTM', + ActorTypeId_Heart = 'HART', + ActorTypeId_LSTM = 'LSTM', + ActorTypeId_Rupee = 'RUPY', ActorTypeId_Arrow = 'ARRW', ActorTypeId_Blast = 'BLST', diff --git a/include/Actor/Player/ActorRefill.hpp b/include/Actor/Player/ActorRefill.hpp index 044a2c03..bdd334ff 100644 --- a/include/Actor/Player/ActorRefill.hpp +++ b/include/Actor/Player/ActorRefill.hpp @@ -12,18 +12,18 @@ public: /* 158 */ unk32 mUnk_158; /* 15c */ unk32 mUnk_15c; /* 160 */ unk32 mUnk_160; - /* 164 */ unk8 mUnk_164; + /* 164 */ u8 mUnk_164; /* 165 */ unk8 mUnk_165[0x3]; /* 168 */ public: - ActorRefill(); + ActorRefill(unk32 param1); /* 00 */ virtual ~ActorRefill() override; /* 08 */ virtual bool vfunc_08() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 20 */ virtual void vfunc_20(bool param1) override; - /* b4 */ virtual unk32 vfunc_b4() = 0; + /* b4 */ virtual ItemFlag vfunc_b4() = 0; /* b8 */ bool func_ov014_02135364(unk32 param1); @@ -42,7 +42,7 @@ public: static ActorRefillBombs *Create(); /* 00 */ virtual ~ActorRefillBombs() override; - /* b4 */ virtual unk32 vfunc_b4() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; /* b8 */ }; @@ -58,7 +58,7 @@ public: static ActorRefillBombchus *Create(); /* 00 */ virtual ~ActorRefillBombchus() override; - /* b4 */ virtual unk32 vfunc_b4() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; /* b8 */ }; @@ -74,7 +74,7 @@ public: static ActorRefillArrows *Create(); /* 00 */ virtual ~ActorRefillArrows() override; - /* b4 */ virtual unk32 vfunc_b4() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; /* b8 */ }; @@ -91,7 +91,7 @@ public: /* 00 */ virtual ~ActorRefillTime() override; /* 08 */ virtual bool vfunc_08() override; - /* b4 */ virtual unk32 vfunc_b4() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; /* b8 */ }; @@ -108,6 +108,6 @@ public: /* 00 */ virtual ~ActorLSTM() override; /* 08 */ virtual bool vfunc_08() override; - /* b4 */ virtual unk32 vfunc_b4() override; + /* b4 */ virtual ItemFlag vfunc_b4() override; /* b8 */ }; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 37f22457..34d5a636 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -134,7 +134,7 @@ public: // Ammo u16 GetAmmo(ItemFlag equipId) const; - void GiveAmmo(ItemFlag equipId, u16 amount); + void GiveAmmo(ItemFlag equipId, u32 amount); u16 GetMaxAmmo(ItemFlag equipId) const; void UpgradeQuiver(); void UpgradeBombBag(); -- cgit v1.2.3 From 2c27f6cb3d98b3a8fe94d631c47767dea4daeda8 Mon Sep 17 00:00:00 2001 From: Aetias Date: Thu, 29 May 2025 08:51:28 +0200 Subject: `ActorRefill` OK --- include/System/Random.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/System/Random.hpp b/include/System/Random.hpp index 4506466d..cc1f2a12 100644 --- a/include/System/Random.hpp +++ b/include/System/Random.hpp @@ -19,4 +19,4 @@ struct Random { } }; -extern Random *gRandom; +extern Random gRandom; -- cgit v1.2.3 From d29c7c377e2808686d915992ef149a8652009e98 Mon Sep 17 00:00:00 2001 From: Aetias Date: Thu, 29 May 2025 12:24:19 +0200 Subject: `ActorSpawner` 99% --- include/Actor/Actor.hpp | 7 +++---- include/Actor/ActorSpawner.hpp | 19 ++++++++++++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index f82d34ab..4d40a080 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -35,8 +35,8 @@ struct Actor_UnkStruct_020 { /* 08 */ u8 mUnk_08[2]; /* 0a */ u8 mUnk_0a[2]; /* 0c */ unk8 mUnk_0c; - /* 0d */ unk8 mUnk_0d; - /* 0e */ unk8 mUnk_0e; + /* 0d */ u8 mUnk_0d; + /* 0e */ u8 mUnk_0e; /* 0f */ unk8 mUnk_0f; /* 10 */ unk32 mUnk_10; /* 14 */ @@ -110,8 +110,7 @@ public: /* 012 */ unk16 mUnk_012; /* 014 */ Vec3p mUnk_014; /* 020 */ Actor_UnkStruct_020 mUnk_020; - /* 034 */ unk32 mUnk_034; - /* 038 */ unk32 mUnk_038; + /* 034 */ ActorRef mUnk_034; /* 03c */ unk32 mUnk_03c; /* 040 */ ActorRef mUnk_040; /* 048 */ Vec3p mPos; diff --git a/include/Actor/ActorSpawner.hpp b/include/Actor/ActorSpawner.hpp index 94047e10..e99bafb3 100644 --- a/include/Actor/ActorSpawner.hpp +++ b/include/Actor/ActorSpawner.hpp @@ -5,10 +5,23 @@ #include "global.h" #include "types.h" +#include "Actor/Actor.hpp" #include "Actor/ActorRef.hpp" #include "Actor/ActorType.hpp" +#include "System/SysNew.hpp" -class ActorSpawner { +struct ActorSpawnOptions { + /* 00 */ Actor_UnkStruct_020 mUnk_00; + /* 14 */ s16 mAngle; + /* 16 */ unk8 mUnk_16[0x2]; + /* 18 */ unk32 mUnk_18; + /* 1c */ ActorRef mUnk_1c; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2c */ +}; + +class ActorSpawner : public SysObject { public: /* 0 (empty) */ @@ -18,8 +31,8 @@ public: ~ActorSpawner(); void func_ov000_020c4014(); void func_ov000_020c4018(); - Actor *CreateActor(ActorTypeId type); - s32 Spawn(ActorTypeId type, Vec3p *pos, void *param3, ActorRef *ref); + Actor *CreateActor(ActorTypeId typeId); + s32 Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *param3, ActorRef *ref); }; extern ActorSpawner *gActorSpawner; -- cgit v1.2.3 From 5739c36160430ecb777bc5a71065d00732353cfa Mon Sep 17 00:00:00 2001 From: Aetias Date: Thu, 29 May 2025 12:38:15 +0200 Subject: `Actor::vfunc_08` -> `Actor::Init` --- include/Actor/Actor.hpp | 2 +- include/Actor/ActorRupee.hpp | 2 +- include/Actor/Dungeon/ActorActionObject.hpp | 2 +- include/Actor/Dungeon/ActorEventIcon.hpp | 2 +- include/Actor/Dungeon/ActorSwitchObject.hpp | 2 +- include/Actor/Navi/ActorNavi.hpp | 2 +- include/Actor/Navi/ActorNaviBase.hpp | 2 +- include/Actor/Player/ActorArrow.hpp | 2 +- include/Actor/Player/ActorBlast.hpp | 2 +- include/Actor/Player/ActorBomb.hpp | 2 +- include/Actor/Player/ActorRefill.hpp | 6 +++--- include/Actor/Player/ActorRope.hpp | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) (limited to 'include') diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 4d40a080..25bc9d8a 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -173,7 +173,7 @@ public: /* 158 */ /* 00 */ virtual ~Actor(); - /* 08 */ virtual bool vfunc_08(); + /* 08 */ virtual bool Init(); /* 0c */ virtual void vfunc_0c(); /* 10 */ virtual void vfunc_10(u32 param1); /* 14 */ virtual void vfunc_14(u32 param1); diff --git a/include/Actor/ActorRupee.hpp b/include/Actor/ActorRupee.hpp index a5fcbea3..983abaae 100644 --- a/include/Actor/ActorRupee.hpp +++ b/include/Actor/ActorRupee.hpp @@ -33,7 +33,7 @@ public: /* 160 */ /* 00 */ virtual ~ActorRupee() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; /* 20 */ virtual void vfunc_20(bool param1) override; diff --git a/include/Actor/Dungeon/ActorActionObject.hpp b/include/Actor/Dungeon/ActorActionObject.hpp index 0bf35dfb..c4e2add3 100644 --- a/include/Actor/Dungeon/ActorActionObject.hpp +++ b/include/Actor/Dungeon/ActorActionObject.hpp @@ -10,7 +10,7 @@ public: /* 158 */ /* 00 */ virtual ~ActorActionObject() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; /* b4 */ diff --git a/include/Actor/Dungeon/ActorEventIcon.hpp b/include/Actor/Dungeon/ActorEventIcon.hpp index ccef162d..a7a86751 100644 --- a/include/Actor/Dungeon/ActorEventIcon.hpp +++ b/include/Actor/Dungeon/ActorEventIcon.hpp @@ -17,7 +17,7 @@ public: /* 160 */ UnkStruct_02035064 mUnk_160; /* 00 */ virtual ~ActorEventIcon() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; /* 1c */ virtual void vfunc_1c(u16 *param1) override; diff --git a/include/Actor/Dungeon/ActorSwitchObject.hpp b/include/Actor/Dungeon/ActorSwitchObject.hpp index b2fa08d3..4142ff72 100644 --- a/include/Actor/Dungeon/ActorSwitchObject.hpp +++ b/include/Actor/Dungeon/ActorSwitchObject.hpp @@ -21,7 +21,7 @@ public: /* 198 */ /* 00 */ virtual ~ActorSwitchObject() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 0c */ virtual void vfunc_0c() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index 86774de4..f8a86acc 100644 --- a/include/Actor/Navi/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp @@ -40,7 +40,7 @@ public: /* 3c8 */ /* 00 */ virtual ~ActorNavi() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 20 */ virtual void vfunc_20(bool param1) override; /* 8c */ virtual bool vfunc_8c() override; /* b4 */ virtual FairyId GetFairyId() override; diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index 59db230b..c7dd7cea 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -46,7 +46,7 @@ public: /* 294 */ /* 00 */ virtual ~ActorNaviBase() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 10 */ virtual void vfunc_10(u32 param1) override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; diff --git a/include/Actor/Player/ActorArrow.hpp b/include/Actor/Player/ActorArrow.hpp index a0ced1e3..021007f6 100644 --- a/include/Actor/Player/ActorArrow.hpp +++ b/include/Actor/Player/ActorArrow.hpp @@ -36,7 +36,7 @@ public: /* 1b8 */ /* 00 */ virtual ~ActorArrow() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 10 */ virtual void vfunc_10(u32 param1) override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; diff --git a/include/Actor/Player/ActorBlast.hpp b/include/Actor/Player/ActorBlast.hpp index a1e8b5fe..431cc1d7 100644 --- a/include/Actor/Player/ActorBlast.hpp +++ b/include/Actor/Player/ActorBlast.hpp @@ -19,7 +19,7 @@ public: /* 164 */ /* 00 */ virtual ~ActorBlast() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; /* b4 */ diff --git a/include/Actor/Player/ActorBomb.hpp b/include/Actor/Player/ActorBomb.hpp index 17538bf8..3817a73e 100644 --- a/include/Actor/Player/ActorBomb.hpp +++ b/include/Actor/Player/ActorBomb.hpp @@ -54,7 +54,7 @@ public: /* 26c */ /* 00 */ virtual ~ActorBomb() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; /* 20 */ virtual void vfunc_20(bool param1) override; diff --git a/include/Actor/Player/ActorRefill.hpp b/include/Actor/Player/ActorRefill.hpp index bdd334ff..a2c7ae52 100644 --- a/include/Actor/Player/ActorRefill.hpp +++ b/include/Actor/Player/ActorRefill.hpp @@ -20,7 +20,7 @@ public: ActorRefill(unk32 param1); /* 00 */ virtual ~ActorRefill() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 20 */ virtual void vfunc_20(bool param1) override; /* b4 */ virtual ItemFlag vfunc_b4() = 0; @@ -90,7 +90,7 @@ public: static ActorRefillTime *Create(); /* 00 */ virtual ~ActorRefillTime() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* b4 */ virtual ItemFlag vfunc_b4() override; /* b8 */ }; @@ -107,7 +107,7 @@ public: static ActorLSTM *Create(); /* 00 */ virtual ~ActorLSTM() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* b4 */ virtual ItemFlag vfunc_b4() override; /* b8 */ }; diff --git a/include/Actor/Player/ActorRope.hpp b/include/Actor/Player/ActorRope.hpp index 1d70a5fd..245a7851 100644 --- a/include/Actor/Player/ActorRope.hpp +++ b/include/Actor/Player/ActorRope.hpp @@ -46,7 +46,7 @@ public: /* 1a0 */ /* 00 */ virtual ~ActorRope() override; - /* 08 */ virtual bool vfunc_08() override; + /* 08 */ virtual bool Init() override; /* 10 */ virtual void vfunc_10(u32 param1) override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; -- cgit v1.2.3 From 2bb9bf4fee393bb43be8a69a70a46189258249be Mon Sep 17 00:00:00 2001 From: Aetias Date: Fri, 30 May 2025 18:44:47 +0200 Subject: Add adventure and item flags --- include/Item/Item.hpp | 4 ++-- include/Save/AdventureFlags.hpp | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/Item/Item.hpp b/include/Item/Item.hpp index 4d70c9f1..cea5c551 100644 --- a/include/Item/Item.hpp +++ b/include/Item/Item.hpp @@ -50,7 +50,7 @@ enum ItemFlag_ { /* 0x2d */ ItemFlag_SwordsmansScroll = 45, /* 0x2e */ ItemFlag_CycloneSlate = 46, - /* 0x2f */ ItemFlag_Unk_47 = 47, + /* 0x2f */ ItemFlag_BigCatchLure = 47, /* 0x60 */ ItemFlag_TreasureChart1 = 96, /* 0x61 */ ItemFlag_TreasureChart2 = 97, @@ -224,7 +224,7 @@ enum ItemId_ { /* 0x7d */ ItemId_Unk_125 = 125, /* 0x7e */ ItemId_Unk_126 = 126, /* 0x7f */ ItemId_CycloneSlate = 127, - /* 0x80 */ ItemId_Unk_128 = 128, + /* 0x80 */ ItemId_BigCatchLure = 128, /* 0x81 */ ItemId_Rupoor10 = 129, /* 0x82 */ ItemId_Rupoor50 = 130, /* 0x83 */ ItemId_Unk_131 = 131, diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index 0484fba8..39d2e409 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -23,6 +23,10 @@ enum AdventureFlag_ { /* 0x30 */ AdventureFlag_Cannon = 48, + /* 0x33 */ AdventureFlag_RegalNecklace = 51, + + /* 0x7a */ AdventureFlag_CourageCrest = 122, + /* 0x7d */ AdventureFlag_Azurine = 125, /* 0x7e */ AdventureFlag_Crimsonine = 126, /* 0x7f */ AdventureFlag_Aquanine = 127, @@ -30,11 +34,26 @@ enum AdventureFlag_ { /* 0x8c */ AdventureFlag_SalvageArm = 140, + /* 0xa2 */ AdvantureFlag_HerosNewClothes = 162, + /* 0xa3 */ AdvantureFlag_Kaleidoscope = 163, + /* 0xa4 */ AdventureFlag_GuardNotebook = 164, + + /* 0xa7 */ AdventureFlag_WoodHeart = 167, + + /* 0xb6 */ AdventureFlag_SpawnFinalPhantoms = 182, + /* 0x126 */ AdventureFlag_ReceivedGoldenChimney = 294, /* 0x127 */ AdventureFlag_ReceivedGoldenHandrail = 295, /* 0x128 */ AdventureFlag_ReceivedGoldenCannon = 296, /* 0x129 */ AdventureFlag_ReceivedGoldenHull = 297, + /* 0x137 */ AdventureFlag_FrogGlyph_MercayIsland = 311, + /* 0x138 */ AdventureFlag_FrogGlyph_MolidaIsland = 312, + /* 0x139 */ AdventureFlag_FrogGlyph_BannanIsland = 313, + /* 0x13a */ AdventureFlag_FrogGlyph_DeeEssIsland = 314, + /* 0x13b */ AdventureFlag_FrogGlyph_IsleOfFrost = 315, + /* 0x13c */ AdventureFlag_FrogGlyph_NorthEast = 316, + /* 0x187 */ AdventureFlag_COUNT = 391, }; -- cgit v1.2.3 From fdb4f5ee3f9e1957ffdc3e175c0eb26b650e0dfa Mon Sep 17 00:00:00 2001 From: Aetias Date: Fri, 30 May 2025 18:45:04 +0200 Subject: `ActorRefill::vfunc_b4` -> `ActorRefill::GetAmmoItem` --- include/Actor/Player/ActorRefill.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/Actor/Player/ActorRefill.hpp b/include/Actor/Player/ActorRefill.hpp index a2c7ae52..eeab2793 100644 --- a/include/Actor/Player/ActorRefill.hpp +++ b/include/Actor/Player/ActorRefill.hpp @@ -23,7 +23,7 @@ public: /* 08 */ virtual bool Init() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 20 */ virtual void vfunc_20(bool param1) override; - /* b4 */ virtual ItemFlag vfunc_b4() = 0; + /* b4 */ virtual ItemFlag GetAmmoItem() = 0; /* b8 */ bool func_ov014_02135364(unk32 param1); @@ -42,7 +42,7 @@ public: static ActorRefillBombs *Create(); /* 00 */ virtual ~ActorRefillBombs() override; - /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b4 */ virtual ItemFlag GetAmmoItem() override; /* b8 */ }; @@ -58,7 +58,7 @@ public: static ActorRefillBombchus *Create(); /* 00 */ virtual ~ActorRefillBombchus() override; - /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b4 */ virtual ItemFlag GetAmmoItem() override; /* b8 */ }; @@ -74,7 +74,7 @@ public: static ActorRefillArrows *Create(); /* 00 */ virtual ~ActorRefillArrows() override; - /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b4 */ virtual ItemFlag GetAmmoItem() override; /* b8 */ }; @@ -91,7 +91,7 @@ public: /* 00 */ virtual ~ActorRefillTime() override; /* 08 */ virtual bool Init() override; - /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b4 */ virtual ItemFlag GetAmmoItem() override; /* b8 */ }; @@ -108,6 +108,6 @@ public: /* 00 */ virtual ~ActorLSTM() override; /* 08 */ virtual bool Init() override; - /* b4 */ virtual ItemFlag vfunc_b4() override; + /* b4 */ virtual ItemFlag GetAmmoItem() override; /* b8 */ }; -- cgit v1.2.3 From 0893ad86f2204eb5c45146f3798437154c39ac66 Mon Sep 17 00:00:00 2001 From: mike8699 Date: Mon, 28 Apr 2025 23:32:20 -0400 Subject: Decompile `ActorSwitchObject` `vfunc_08` and `vfunc_0c` --- include/Actor/Actor.hpp | 2 +- include/Actor/Dungeon/ActorSwitchObject.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index f82d34ab..2906b670 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -175,7 +175,7 @@ public: /* 00 */ virtual ~Actor(); /* 08 */ virtual bool vfunc_08(); - /* 0c */ virtual void vfunc_0c(); + /* 0c */ virtual bool vfunc_0c(); /* 10 */ virtual void vfunc_10(u32 param1); /* 14 */ virtual void vfunc_14(u32 param1); /* 18 */ virtual void vfunc_18(u32 param1); diff --git a/include/Actor/Dungeon/ActorSwitchObject.hpp b/include/Actor/Dungeon/ActorSwitchObject.hpp index b2fa08d3..61cc3267 100644 --- a/include/Actor/Dungeon/ActorSwitchObject.hpp +++ b/include/Actor/Dungeon/ActorSwitchObject.hpp @@ -22,7 +22,7 @@ public: /* 00 */ virtual ~ActorSwitchObject() override; /* 08 */ virtual bool vfunc_08() override; - /* 0c */ virtual void vfunc_0c() override; + /* 0c */ virtual bool vfunc_0c() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 18 */ virtual void vfunc_18(u32 param1) override; /* b4 */ -- cgit v1.2.3