From f6bd180b8b4e7f7320dc6c86ad3c888215a95f09 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 2 Feb 2025 13:09:35 +0100 Subject: [PATCH] Move ov059 documentation from Ghidra --- config/eur/arm9/overlays/ov059/symbols.txt | 50 +++++++++++----------- config/usa/arm9/overlays/ov059/symbols.txt | 50 +++++++++++----------- include/Actor/Navi/ActorNaviBase.hpp | 11 ++++- include/Player/EquipHammer.hpp | 11 +++-- include/Player/LinkStateItem.hpp | 5 +++ src/00_Core/Player/LinkStateItem.cpp | 2 +- src/59_Hammer/Actor/Navi/ActorNaviBase.cpp | 9 ++++ src/59_Hammer/Player/EquipHammer.cpp | 21 +++++++++ 8 files changed, 104 insertions(+), 55 deletions(-) create mode 100644 src/59_Hammer/Actor/Navi/ActorNaviBase.cpp create mode 100644 src/59_Hammer/Player/EquipHammer.cpp diff --git a/config/eur/arm9/overlays/ov059/symbols.txt b/config/eur/arm9/overlays/ov059/symbols.txt index 754f0f57..6375ea18 100644 --- a/config/eur/arm9/overlays/ov059/symbols.txt +++ b/config/eur/arm9/overlays/ov059/symbols.txt @@ -1,28 +1,28 @@ -func_ov059_02198d00 kind:function(arm,size=0x12c) addr:0x2198d00 -func_ov059_02198e2c kind:function(arm,size=0x10) addr:0x2198e2c -func_ov059_02198e3c kind:function(arm,size=0x1c) addr:0x2198e3c -func_ov059_02198e58 kind:function(arm,size=0x14) addr:0x2198e58 -func_ov059_02198e6c kind:function(arm,size=0x24) addr:0x2198e6c -func_ov059_02198e90 kind:function(arm,size=0x2c) addr:0x2198e90 -func_ov059_02198ebc kind:function(arm,size=0x18) addr:0x2198ebc -func_ov059_02198ed4 kind:function(arm,size=0x3c) addr:0x2198ed4 -func_ov059_02198f10 kind:function(arm,size=0x98) addr:0x2198f10 -func_ov059_02198fa8 kind:function(arm,size=0x20) addr:0x2198fa8 -func_ov059_02198fc8 kind:function(arm,size=0x4) addr:0x2198fc8 -func_ov059_02198fcc kind:function(arm,size=0x14) addr:0x2198fcc -func_ov059_02198fe0 kind:function(arm,size=0x1c) addr:0x2198fe0 -func_ov059_02198ffc kind:function(arm,size=0x80) addr:0x2198ffc -func_ov059_0219907c kind:function(arm,size=0x28) addr:0x219907c -func_ov059_021990a4 kind:function(arm,size=0x268) addr:0x21990a4 -func_ov059_0219930c kind:function(arm,size=0x10) addr:0x219930c -_ZN11EquipHammer9StopUsingEP13LinkStateItem kind:function(arm,size=0x20) addr:0x219931c -func_ov059_0219933c kind:function(arm,size=0xd70) addr:0x219933c -func_ov059_0219a0ac kind:function(arm,size=0x95c) addr:0x219a0ac -func_ov059_0219aa08 kind:function(arm,size=0x1a0) addr:0x219aa08 -func_ov059_0219aba8 kind:function(arm,size=0x36c) addr:0x219aba8 -func_ov059_0219af14 kind:function(arm,size=0xb0) addr:0x219af14 -func_ov059_0219afc4 kind:function(arm,size=0x5c) addr:0x219afc4 -func_ov059_0219b020 kind:function(arm,size=0xf0) addr:0x219b020 +_ZNK11EquipHammer8IsUsableEi kind:function(arm,size=0x12c) addr:0x2198d00 +_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2198e2c local +_ZN11EquipHammer8vfunc_18Ev kind:function(arm,size=0x1c) addr:0x2198e3c +_ZN11EquipHammer8vfunc_1cEv kind:function(arm,size=0x14) addr:0x2198e58 +_ZN11EquipHammer8vfunc_30Ev kind:function(arm,size=0x24) addr:0x2198e6c +_ZN11EquipHammer19func_ov059_02198e90Ev kind:function(arm,size=0x2c) addr:0x2198e90 +_ZN11EquipHammer19func_ov059_02198ebcEv kind:function(arm,size=0x18) addr:0x2198ebc +_ZN11EquipHammer19func_ov059_02198ed4Ev kind:function(arm,size=0x3c) addr:0x2198ed4 +_ZN11EquipHammer19func_ov059_02198f10EP5Vec3pii kind:function(arm,size=0x98) addr:0x2198f10 +_ZN11EquipHammer19func_ov059_02198fa8Ei kind:function(arm,size=0x20) addr:0x2198fa8 +_ZN11EquipHammer8vfunc_38Ei kind:function(arm,size=0x4) addr:0x2198fc8 +_ZN11EquipHammer8vfunc_2cEv kind:function(arm,size=0x14) addr:0x2198fcc +_ZN11EquipHammer19func_ov059_02198fe0Ev kind:function(arm,size=0x1c) addr:0x2198fe0 +_ZN13LinkStateItem19func_ov059_02198ffcEv kind:function(arm,size=0x80) addr:0x2198ffc +_ZN13LinkStateItem19func_ov059_0219907cEv kind:function(arm,size=0x28) addr:0x219907c +_ZN13LinkStateItem19func_ov059_021990a4Ev kind:function(arm,size=0x268) addr:0x21990a4 +_Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x219930c +_ZN13LinkStateItem15StopUsingHammerEv kind:function(arm,size=0x20) addr:0x219931c +_ZN13ActorNaviBase19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219933c +_ZN13ActorNaviBase19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a0ac +_ZN13ActorNaviBase19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219aa08 +_ZN13ActorNaviBase19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219aba8 +_ZN13ActorNaviBase19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219af14 +_ZN13ActorNaviBase19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219afc4 +_ZN13ActorNaviBase19func_ov059_0219b020Ev kind:function(arm,size=0xf0) addr:0x219b020 data_ov059_0219b110 kind:data(any) addr:0x219b110 data_ov059_0219b140 kind:data(any) addr:0x219b140 data_ov059_0219b144 kind:data(any) addr:0x219b144 diff --git a/config/usa/arm9/overlays/ov059/symbols.txt b/config/usa/arm9/overlays/ov059/symbols.txt index 58b1b5f3..02aeeed4 100644 --- a/config/usa/arm9/overlays/ov059/symbols.txt +++ b/config/usa/arm9/overlays/ov059/symbols.txt @@ -1,28 +1,28 @@ -func_ov059_02198d00 kind:function(arm,size=0x12c) addr:0x2198c60 -func_ov059_02198e2c kind:function(arm,size=0x10) addr:0x2198d8c -func_ov059_02198e3c kind:function(arm,size=0x1c) addr:0x2198d9c -func_ov059_02198e58 kind:function(arm,size=0x14) addr:0x2198db8 -func_ov059_02198e6c kind:function(arm,size=0x24) addr:0x2198dcc -func_ov059_02198e90 kind:function(arm,size=0x2c) addr:0x2198df0 -func_ov059_02198ebc kind:function(arm,size=0x18) addr:0x2198e1c -func_ov059_02198ed4 kind:function(arm,size=0x3c) addr:0x2198e34 -func_ov059_02198f10 kind:function(arm,size=0x98) addr:0x2198e70 -func_ov059_02198fa8 kind:function(arm,size=0x20) addr:0x2198f08 -func_ov059_02198fc8 kind:function(arm,size=0x4) addr:0x2198f28 -func_ov059_02198fcc kind:function(arm,size=0x14) addr:0x2198f2c -func_ov059_02198fe0 kind:function(arm,size=0x1c) addr:0x2198f40 -func_ov059_02198ffc kind:function(arm,size=0x80) addr:0x2198f5c -func_ov059_0219907c kind:function(arm,size=0x28) addr:0x2198fdc -func_ov059_021990a4 kind:function(arm,size=0x268) addr:0x2199004 -func_ov059_0219930c kind:function(arm,size=0x10) addr:0x219926c -_ZN11EquipHammer9StopUsingEP13LinkStateItem kind:function(arm,size=0x20) addr:0x219927c -func_ov059_0219933c kind:function(arm,size=0xd70) addr:0x219929c -func_ov059_0219a0ac kind:function(arm,size=0x95c) addr:0x219a00c -func_ov059_0219aa08 kind:function(arm,size=0x1a0) addr:0x219a968 -func_ov059_0219aba8 kind:function(arm,size=0x36c) addr:0x219ab08 -func_ov059_0219af14 kind:function(arm,size=0xb0) addr:0x219ae74 -func_ov059_0219afc4 kind:function(arm,size=0x5c) addr:0x219af24 -func_ov059_0219b020 kind:function(arm,size=0xf0) addr:0x219af80 +_ZNK11EquipHammer8IsUsableEi kind:function(arm,size=0x12c) addr:0x2198c60 +_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2198d8c local +_ZN11EquipHammer8vfunc_18Ev kind:function(arm,size=0x1c) addr:0x2198d9c +_ZN11EquipHammer8vfunc_1cEv kind:function(arm,size=0x14) addr:0x2198db8 +_ZN11EquipHammer8vfunc_30Ev kind:function(arm,size=0x24) addr:0x2198dcc +_ZN11EquipHammer19func_ov059_02198e90Ev kind:function(arm,size=0x2c) addr:0x2198df0 +_ZN11EquipHammer19func_ov059_02198ebcEv kind:function(arm,size=0x18) addr:0x2198e1c +_ZN11EquipHammer19func_ov059_02198ed4Ev kind:function(arm,size=0x3c) addr:0x2198e34 +_ZN11EquipHammer19func_ov059_02198f10EP5Vec3pii kind:function(arm,size=0x98) addr:0x2198e70 +_ZN11EquipHammer19func_ov059_02198fa8Ei kind:function(arm,size=0x20) addr:0x2198f08 +_ZN11EquipHammer8vfunc_38Ei kind:function(arm,size=0x4) addr:0x2198f28 +_ZN11EquipHammer8vfunc_2cEv kind:function(arm,size=0x14) addr:0x2198f2c +_ZN11EquipHammer19func_ov059_02198fe0Ev kind:function(arm,size=0x1c) addr:0x2198f40 +_ZN13LinkStateItem19func_ov059_02198ffcEv kind:function(arm,size=0x80) addr:0x2198f5c +_ZN13LinkStateItem19func_ov059_0219907cEv kind:function(arm,size=0x28) addr:0x2198fdc +_ZN13LinkStateItem19func_ov059_021990a4Ev kind:function(arm,size=0x268) addr:0x2199004 +_Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x219926c +_ZN13LinkStateItem15StopUsingHammerEv kind:function(arm,size=0x20) addr:0x219927c +_ZN13ActorNaviBase19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219929c +_ZN13ActorNaviBase19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a00c +_ZN13ActorNaviBase19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219a968 +_ZN13ActorNaviBase19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219ab08 +_ZN13ActorNaviBase19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219ae74 +_ZN13ActorNaviBase19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219af24 +_ZN13ActorNaviBase19func_ov059_0219b020Ev kind:function(arm,size=0xf0) addr:0x219af80 data_ov059_0219b110 kind:data(any) addr:0x219b070 data_ov059_0219b140 kind:data(any) addr:0x219b0a0 data_ov059_0219b144 kind:data(any) addr:0x219b0a4 diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index e0c7c120..62e74c16 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -4,6 +4,7 @@ #include "types.h" #include "Actor/Actor.hpp" +#include "Player/EquipHammer.hpp" #include "Render/ModelRender.hpp" class ActorNaviBase_Unk1 {}; @@ -43,7 +44,7 @@ class ActorNaviBase : public Actor { /* 344 */ unk32 mUnk_344; /* 348 */ unk32 mUnk_348; /* 34c */ unk8 mUnk_34c[0x68]; - /* 3b4 */ unk32 mUnk_3b4; + /* 3b4 */ EquipHammer *mHammer; /* 3b8 */ unk32 mUnk_3b8; /* 3bc */ unk32 mUnk_3bc; /* 3c0 */ unk8 mUnk_3c0[0x8]; @@ -101,4 +102,12 @@ class ActorNaviBase : public Actor { static void func_ov000_020bb0e0(); ActorNaviBase(); + + bool func_ov059_0219933c(u32 param1); + void func_ov059_0219a0ac(); + void func_ov059_0219aa08(); + void func_ov059_0219aba8(u32 param1); + bool func_ov059_0219af14(); + bool func_ov059_0219afc4(); + void func_ov059_0219b020(); }; diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index 76149bee..27e046c5 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -10,7 +10,7 @@ class EquipHammer : public EquipItem { private: /* 00 (base) */ /* 09 */ unk8 mUnk_09[3]; - /* 0c */ unk8 mUnk_0c[0xc]; + /* 0c */ Vec3p mUnk_0c; /* 18 */ unk32 mUnk_18; /* 1c */ unk8 mUnk_1c; /* 1d */ unk8 mUnk_1d; @@ -34,7 +34,12 @@ public: /* 4c */ virtual s32 vfunc_4c() const override; /* 50 */ - static void StopUsing(LinkStateItem *param1); - EquipHammer(); + + void func_ov059_02198e90(); + bool func_ov059_02198ebc(); + bool func_ov059_02198ed4(); + void func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3); + void func_ov059_02198fa8(unk32 param1); + bool func_ov059_02198fe0(); }; diff --git a/include/Player/LinkStateItem.hpp b/include/Player/LinkStateItem.hpp index 6946f736..cba602f8 100644 --- a/include/Player/LinkStateItem.hpp +++ b/include/Player/LinkStateItem.hpp @@ -88,4 +88,9 @@ public: void func_ov058_0219a454(); void func_ov058_0219a47c(); + + void func_ov059_02198ffc(); + void func_ov059_0219907c(); + void func_ov059_021990a4(); + void StopUsingHammer(); }; diff --git a/src/00_Core/Player/LinkStateItem.cpp b/src/00_Core/Player/LinkStateItem.cpp index 30c5a5e0..240b94c8 100644 --- a/src/00_Core/Player/LinkStateItem.cpp +++ b/src/00_Core/Player/LinkStateItem.cpp @@ -50,7 +50,7 @@ ARM void LinkStateItem::OnStateLeave(s32 param1) { case ItemFlag_BombBag: this->StopUsingBomb(param1); break; case ItemFlag_Bow: break; case ItemFlag_GrapplingHook: this->StopUsingRope(); break; - case ItemFlag_Hammer: EquipHammer::StopUsing(this); break; + case ItemFlag_Hammer: this->StopUsingHammer(); break; case ItemFlag_PotionA: case ItemFlag_PotionB: UnkStruct_027e103c *pData_027e103c = data_027e103c; diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp new file mode 100644 index 00000000..109a14b4 --- /dev/null +++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp @@ -0,0 +1,9 @@ +#include "Actor/Navi/ActorNaviBase.hpp" + +bool ActorNaviBase::func_ov059_0219933c(u32 param1) {} +void ActorNaviBase::func_ov059_0219a0ac() {} +void ActorNaviBase::func_ov059_0219aa08() {} +void ActorNaviBase::func_ov059_0219aba8(u32 param1) {} +bool ActorNaviBase::func_ov059_0219af14() {} +bool ActorNaviBase::func_ov059_0219afc4() {} +void ActorNaviBase::func_ov059_0219b020() {} diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp new file mode 100644 index 00000000..00fbd208 --- /dev/null +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -0,0 +1,21 @@ +#include "Player/EquipHammer.hpp" +#include "Player/LinkStateItem.hpp" + +bool EquipHammer::IsUsable(unk32 param1) const {} +LinkStateItem *GetLinkStateItem() {} +void EquipHammer::vfunc_18() {} +void EquipHammer::vfunc_1c() {} +void EquipHammer::vfunc_30() {} +void EquipHammer::func_ov059_02198e90() {} +bool EquipHammer::func_ov059_02198ebc() {} +bool EquipHammer::func_ov059_02198ed4() {} +void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) {} +void EquipHammer::func_ov059_02198fa8(unk32 param1) {} +void EquipHammer::vfunc_38(unk32 param1) {} +u32 EquipHammer::vfunc_2c() {} +bool EquipHammer::func_ov059_02198fe0() {} +void LinkStateItem::func_ov059_02198ffc() {} +void LinkStateItem::func_ov059_0219907c() {} +void LinkStateItem::func_ov059_021990a4() {} +EquipHammer *GetEquipHammer() {} +void LinkStateItem::StopUsingHammer() {}