From 526b6b8d72756c1da47dbe1916a6fda4698e6b36 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 1 Feb 2025 09:44:08 +0100 Subject: [PATCH] Move ov055 documentation from Ghidra --- config/eur/arm9/overlays/ov055/symbols.txt | 40 +++++++++++----------- config/usa/arm9/overlays/ov055/symbols.txt | 40 +++++++++++----------- include/Player/EquipBomb.hpp | 19 ++++++---- include/Player/LinkStateItem.hpp | 6 ++++ src/00_Core/Player/LinkStateItem.cpp | 2 +- src/55_Bomb/Player/EquipBomb.cpp | 15 ++++++++ src/55_Bomb/Player/EquipPotion.cpp | 10 ++++++ 7 files changed, 84 insertions(+), 48 deletions(-) create mode 100644 src/55_Bomb/Player/EquipBomb.cpp create mode 100644 src/55_Bomb/Player/EquipPotion.cpp diff --git a/config/eur/arm9/overlays/ov055/symbols.txt b/config/eur/arm9/overlays/ov055/symbols.txt index ed710a37..de07b23b 100644 --- a/config/eur/arm9/overlays/ov055/symbols.txt +++ b/config/eur/arm9/overlays/ov055/symbols.txt @@ -1,24 +1,24 @@ -func_ov055_02198d00 kind:function(arm,size=0x2c) addr:0x2198d00 -func_ov055_02198d2c kind:function(arm,size=0x60) addr:0x2198d2c -func_ov055_02198d8c kind:function(arm,size=0x18) addr:0x2198d8c -func_ov055_02198da4 kind:function(arm,size=0x54) addr:0x2198da4 -func_ov055_02198df8 kind:function(arm,size=0x68) addr:0x2198df8 -func_ov055_02198e60 kind:function(arm,size=0x118) addr:0x2198e60 -func_ov055_02198f78 kind:function(arm,size=0x18) addr:0x2198f78 -_ZN9EquipBomb9StopUsingEP13LinkStateItemi kind:function(arm,size=0x80) addr:0x2198f90 -func_ov055_02199010 kind:function(arm,size=0x10) addr:0x2199010 -func_ov055_02199020 kind:function(arm,size=0x188) addr:0x2199020 -func_ov055_021991a8 kind:function(arm,size=0x4) addr:0x21991a8 -func_ov055_021991ac kind:function(arm,size=0x4) addr:0x21991ac -func_ov055_021991b0 kind:function(arm,size=0xc4) addr:0x21991b0 -func_ov055_02199274 kind:function(arm,size=0x4) addr:0x2199274 -func_ov055_02199278 kind:function(arm,size=0x140) addr:0x2199278 -func_ov055_021993b8 kind:function(arm,size=0x29c) addr:0x21993b8 -func_ov055_02199654 kind:function(arm,size=0x15c) addr:0x2199654 +_ZN9EquipBomb8vfunc_00Ev kind:function(arm,size=0x2c) addr:0x2198d00 +_ZNK9EquipBomb8IsUsableEi kind:function(arm,size=0x60) addr:0x2198d2c +_ZN9EquipBomb8vfunc_18Ev kind:function(arm,size=0x18) addr:0x2198d8c +_ZN9EquipBomb8vfunc_30Ev kind:function(arm,size=0x54) addr:0x2198da4 +_ZN9EquipBomb8vfunc_38Ei kind:function(arm,size=0x68) addr:0x2198df8 +_ZN9EquipBomb19func_ov055_02198e60Ev kind:function(arm,size=0x118) addr:0x2198e60 +_ZN13LinkStateItem19func_ov055_02198f78Ev kind:function(arm,size=0x18) addr:0x2198f78 +_ZN13LinkStateItem13StopUsingBombEi kind:function(arm,size=0x80) addr:0x2198f90 +_Z12GetEquipBombv kind:function(arm,size=0x10) addr:0x2199010 +_ZN13LinkStateItem19func_ov055_02199020Ev kind:function(arm,size=0x188) addr:0x2199020 +_ZN11EquipPotion8vfunc_00Ev kind:function(arm,size=0x4) addr:0x21991a8 +_ZN11EquipPotion8vfunc_18Ev kind:function(arm,size=0x4) addr:0x21991ac +_ZN11EquipPotion8vfunc_1cEv kind:function(arm,size=0xc4) addr:0x21991b0 +_ZN11EquipPotion8vfunc_30Ev kind:function(arm,size=0x4) addr:0x2199274 +_ZN11EquipPotion8vfunc_38Ei kind:function(arm,size=0x140) addr:0x2199278 +_ZN13LinkStateItem19func_ov055_021993b8Ev kind:function(arm,size=0x29c) addr:0x21993b8 +_ZN13LinkStateItem19func_ov055_02199654Ev kind:function(arm,size=0x15c) addr:0x2199654 data_ov055_021997b0 kind:data(any) addr:0x21997b0 data_ov055_021997c4 kind:data(any) addr:0x21997c4 data_ov055_021997d8 kind:data(any) addr:0x21997d8 -__sinit_ov055_021997ec kind:function(arm,size=0x30) addr:0x21997ec +__sinit_EquipBomb.cpp kind:function(arm,size=0x30) addr:0x21997ec data_ov055_02199840 kind:data(any) addr:0x2199840 data_ov055_02199850 kind:data(any) addr:0x2199850 data_ov055_02199854 kind:data(any) addr:0x2199854 @@ -29,6 +29,6 @@ data_ov055_02199864 kind:data(any) addr:0x2199864 data_ov055_02199868 kind:data(any) addr:0x2199868 data_ov055_0219986c kind:data(any) addr:0x219986c data_ov055_02199890 kind:data(any) addr:0x2199890 -data_ov055_021998a0 kind:bss addr:0x21998a0 -data_ov055_021998ac kind:bss addr:0x21998ac +@859 kind:bss addr:0x21998a0 local +_ZN9EquipBomb12gModelRenderE kind:bss addr:0x21998ac data_ov055_021998f0 kind:bss addr:0x21998f0 ambiguous diff --git a/config/usa/arm9/overlays/ov055/symbols.txt b/config/usa/arm9/overlays/ov055/symbols.txt index 09527f72..932efd58 100644 --- a/config/usa/arm9/overlays/ov055/symbols.txt +++ b/config/usa/arm9/overlays/ov055/symbols.txt @@ -1,24 +1,24 @@ -func_ov055_02198d00 kind:function(arm,size=0x2c) addr:0x2198c60 -func_ov055_02198d2c kind:function(arm,size=0x60) addr:0x2198c8c -func_ov055_02198d8c kind:function(arm,size=0x18) addr:0x2198cec -func_ov055_02198da4 kind:function(arm,size=0x54) addr:0x2198d04 -func_ov055_02198df8 kind:function(arm,size=0x68) addr:0x2198d58 -func_ov055_02198e60 kind:function(arm,size=0x118) addr:0x2198dc0 -func_ov055_02198f78 kind:function(arm,size=0x18) addr:0x2198ed8 -_ZN9EquipBomb9StopUsingEP13LinkStateItemi kind:function(arm,size=0x80) addr:0x2198ef0 -func_ov055_02199010 kind:function(arm,size=0x10) addr:0x2198f70 -func_ov055_02199020 kind:function(arm,size=0x188) addr:0x2198f80 -func_ov055_021991a8 kind:function(arm,size=0x4) addr:0x2199108 -func_ov055_021991ac kind:function(arm,size=0x4) addr:0x219910c -func_ov055_021991b0 kind:function(arm,size=0xc4) addr:0x2199110 -func_ov055_02199274 kind:function(arm,size=0x4) addr:0x21991d4 -func_ov055_02199278 kind:function(arm,size=0x140) addr:0x21991d8 -func_ov055_021993b8 kind:function(arm,size=0x29c) addr:0x2199318 -func_ov055_02199654 kind:function(arm,size=0x15c) addr:0x21995b4 +_ZN9EquipBomb8vfunc_00Ev kind:function(arm,size=0x2c) addr:0x2198c60 +_ZNK9EquipBomb8IsUsableEi kind:function(arm,size=0x60) addr:0x2198c8c +_ZN9EquipBomb8vfunc_18Ev kind:function(arm,size=0x18) addr:0x2198cec +_ZN9EquipBomb8vfunc_30Ev kind:function(arm,size=0x54) addr:0x2198d04 +_ZN9EquipBomb8vfunc_38Ei kind:function(arm,size=0x68) addr:0x2198d58 +_ZN9EquipBomb19func_ov055_02198e60Ev kind:function(arm,size=0x118) addr:0x2198dc0 +_ZN13LinkStateItem19func_ov055_02198f78Ev kind:function(arm,size=0x18) addr:0x2198ed8 +_ZN13LinkStateItem13StopUsingBombEi kind:function(arm,size=0x80) addr:0x2198ef0 +_Z12GetEquipBombv kind:function(arm,size=0x10) addr:0x2198f70 +_ZN13LinkStateItem19func_ov055_02199020Ev kind:function(arm,size=0x188) addr:0x2198f80 +_ZN11EquipPotion8vfunc_00Ev kind:function(arm,size=0x4) addr:0x2199108 +_ZN11EquipPotion8vfunc_18Ev kind:function(arm,size=0x4) addr:0x219910c +_ZN11EquipPotion8vfunc_1cEv kind:function(arm,size=0xc4) addr:0x2199110 +_ZN11EquipPotion8vfunc_30Ev kind:function(arm,size=0x4) addr:0x21991d4 +_ZN11EquipPotion8vfunc_38Ei kind:function(arm,size=0x140) addr:0x21991d8 +_ZN13LinkStateItem19func_ov055_021993b8Ev kind:function(arm,size=0x29c) addr:0x2199318 +_ZN13LinkStateItem19func_ov055_02199654Ev kind:function(arm,size=0x15c) addr:0x21995b4 data_ov055_021997b0 kind:data(any) addr:0x2199710 data_ov055_021997c4 kind:data(any) addr:0x2199724 data_ov055_021997d8 kind:data(any) addr:0x2199738 -__sinit_ov055_021997ec kind:function(arm,size=0x30) addr:0x219974c +__sinit_EquipBomb.cpp kind:function(arm,size=0x30) addr:0x219974c data_ov055_02199840 kind:data(any) addr:0x21997a0 data_ov055_02199850 kind:data(any) addr:0x21997b0 data_ov055_02199854 kind:data(any) addr:0x21997b4 @@ -29,6 +29,6 @@ data_ov055_02199864 kind:data(any) addr:0x21997c4 data_ov055_02199868 kind:data(any) addr:0x21997c8 data_ov055_0219986c kind:data(any) addr:0x21997cc data_ov055_02199890 kind:data(any) addr:0x21997f0 -data_ov055_021998a0 kind:bss addr:0x2199800 -data_ov055_021998ac kind:bss addr:0x219980c +@859 kind:bss addr:0x2199800 local +_ZN9EquipBomb12gModelRenderE kind:bss addr:0x219980c data_ov055_021998f0 kind:bss addr:0x2199850 ambiguous diff --git a/include/Player/EquipBomb.hpp b/include/Player/EquipBomb.hpp index 4223adde..43689dc4 100644 --- a/include/Player/EquipBomb.hpp +++ b/include/Player/EquipBomb.hpp @@ -2,19 +2,24 @@ #include "types.h" +#include "Actor/Actor.hpp" +#include "Actor/ActorRef.hpp" #include "Player/EquipItem.hpp" +#include "Render/ModelRender.hpp" + +#define MAX_BOMB_ACTORS 3 class LinkStateItem; class EquipBomb : public EquipItem { -private: +public: + static ModelRender gModelRender; + /* 00 (base) */ - /* 09 */ unk8 mUnk_09[3]; - /* 0c */ unk32 mUnk_0c; - /* 10 */ unk8 mUnk_10[0x14]; + /* 09 */ unk8 mUnk_09[0x3]; + /* 0c */ ActorRef mBombs[MAX_BOMB_ACTORS]; /* 24 */ -public: /* 00 */ virtual void vfunc_00() override; /* 04 */ virtual ~EquipBomb() override; /* 0c */ virtual ItemFlag GetId() const override; @@ -25,7 +30,7 @@ public: /* 50 */ virtual unk32 vfunc_50(); /* 54 */ - static void StopUsing(LinkStateItem *param1, unk32 param2); - EquipBomb(); + + Actor *func_ov055_02198e60(); }; diff --git a/include/Player/LinkStateItem.hpp b/include/Player/LinkStateItem.hpp index 104c764c..a961b4f7 100644 --- a/include/Player/LinkStateItem.hpp +++ b/include/Player/LinkStateItem.hpp @@ -66,4 +66,10 @@ public: bool func_ov005_02106bbc(Vec3p *param1, unk32 param2, u32 param3); void StopUsingScoop(); + + void func_ov055_02198f78(); + void StopUsingBomb(s32 param1); + void func_ov055_02199020(); + void func_ov055_021993b8(); + void func_ov055_02199654(); }; diff --git a/src/00_Core/Player/LinkStateItem.cpp b/src/00_Core/Player/LinkStateItem.cpp index c5926856..9000a8c6 100644 --- a/src/00_Core/Player/LinkStateItem.cpp +++ b/src/00_Core/Player/LinkStateItem.cpp @@ -47,7 +47,7 @@ ARM void LinkStateItem::OnStateLeave(s32 param1) { case ItemFlag_OshusSword: break; case ItemFlag_WoodenShield: break; case ItemFlag_Boomerang: break; - case ItemFlag_BombBag: EquipBomb::StopUsing(this, param1); break; + case ItemFlag_BombBag: this->StopUsingBomb(param1); break; case ItemFlag_Bow: break; case ItemFlag_GrapplingHook: EquipRope::StopUsing(this); break; case ItemFlag_Hammer: EquipHammer::StopUsing(this); break; diff --git a/src/55_Bomb/Player/EquipBomb.cpp b/src/55_Bomb/Player/EquipBomb.cpp new file mode 100644 index 00000000..fcfb30c6 --- /dev/null +++ b/src/55_Bomb/Player/EquipBomb.cpp @@ -0,0 +1,15 @@ +#include "Player/EquipBomb.hpp" +#include "Player/LinkStateItem.hpp" + +ModelRender EquipBomb::gModelRender; + +void EquipBomb::vfunc_00() {} +bool EquipBomb::IsUsable(unk32 param1) const {} +void EquipBomb::vfunc_18() {} +void EquipBomb::vfunc_30() {} +void EquipBomb::vfunc_38(unk32 param1) {} +Actor *EquipBomb::func_ov055_02198e60() {} +void LinkStateItem::func_ov055_02198f78() {} +void LinkStateItem::StopUsingBomb(s32 param1) {} +EquipBomb *GetEquipBomb() {} +void LinkStateItem::func_ov055_02199020() {} diff --git a/src/55_Bomb/Player/EquipPotion.cpp b/src/55_Bomb/Player/EquipPotion.cpp new file mode 100644 index 00000000..47fefea9 --- /dev/null +++ b/src/55_Bomb/Player/EquipPotion.cpp @@ -0,0 +1,10 @@ +#include "Player/EquipPotion.hpp" +#include "Player/LinkStateItem.hpp" + +void EquipPotion::vfunc_00() {} +void EquipPotion::vfunc_18() {} +void EquipPotion::vfunc_1c() {} +void EquipPotion::vfunc_30() {} +void EquipPotion::vfunc_38(unk32 param1) {} +void LinkStateItem::func_ov055_021993b8() {} +void LinkStateItem::func_ov055_02199654() {}