diff --git a/config/eur/arm9/overlays/ov058/symbols.txt b/config/eur/arm9/overlays/ov058/symbols.txt index aad60108..a9eeb6c0 100644 --- a/config/eur/arm9/overlays/ov058/symbols.txt +++ b/config/eur/arm9/overlays/ov058/symbols.txt @@ -1,30 +1,30 @@ -func_ov058_02198d00 kind:function(arm,size=0x1f4) addr:0x2198d00 -func_ov058_02198ef4 kind:function(arm,size=0x4) addr:0x2198ef4 -func_ov058_02198ef8 kind:function(arm,size=0x4) addr:0x2198ef8 -func_ov058_02198efc kind:function(arm,size=0x78) addr:0x2198efc -func_ov058_02198f74 kind:function(arm,size=0x4c) addr:0x2198f74 -func_ov058_02198fc0 kind:function(thumb,size=0x7c) addr:0x2198fc0 -func_ov058_0219903c kind:function(thumb,size=0x24) addr:0x219903c -func_ov058_02199060 kind:function(thumb,size=0xc) addr:0x2199060 -func_ov058_0219906c kind:function(thumb,size=0x104) addr:0x219906c -func_ov058_02199170 kind:function(thumb,size=0xb0) addr:0x2199170 -func_ov058_02199220 kind:function(thumb,size=0x8) addr:0x2199220 -func_ov058_02199228 kind:function(thumb,size=0x3c) addr:0x2199228 -func_ov058_02199264 kind:function(thumb,size=0x8) addr:0x2199264 -func_ov058_0219926c kind:function(thumb,size=0x18) addr:0x219926c -func_ov058_02199284 kind:function(arm,size=0x40) addr:0x2199284 -func_ov058_021992c4 kind:function(arm,size=0x13c) addr:0x21992c4 -func_ov058_02199400 kind:function(thumb,size=0x98) addr:0x2199400 -func_ov058_02199498 kind:function(thumb,size=0xa58) addr:0x2199498 -func_ov058_02199ef0 kind:function(arm,size=0xe8) addr:0x2199ef0 -func_ov058_02199fd8 kind:function(arm,size=0xac) addr:0x2199fd8 -func_ov058_0219a084 kind:function(arm,size=0x330) addr:0x219a084 -func_ov058_0219a3b4 kind:function(arm,size=0x70) addr:0x219a3b4 -func_ov058_0219a424 kind:function(arm,size=0x1c) addr:0x219a424 -func_ov058_0219a440 kind:function(arm,size=0x14) addr:0x219a440 -func_ov058_0219a454 kind:function(arm,size=0x28) addr:0x219a454 -func_ov058_0219a47c kind:function(arm,size=0x13c) addr:0x219a47c -func_ov058_0219a5b8 kind:function(arm,size=0x10) addr:0x219a5b8 +_ZN25EquipBombchu_Unk_02198d008vfunc_08EPs kind:function(arm,size=0x1f4) addr:0x2198d00 +_Z19func_ov058_02198ef4v kind:function(arm,size=0x4) addr:0x2198ef4 +_Z19func_ov058_02198ef8v kind:function(arm,size=0x4) addr:0x2198ef8 +_ZN25EquipBombchu_Unk_02198d008vfunc_14EPt kind:function(arm,size=0x78) addr:0x2198efc +_ZN25EquipBombchu_Unk_02198d008vfunc_10EPi kind:function(arm,size=0x4c) addr:0x2198f74 +_ZN12EquipBombchu8vfunc_00Ev kind:function(thumb,size=0x7c) addr:0x2198fc0 +_ZN12EquipBombchu8vfunc_18Ev kind:function(thumb,size=0x24) addr:0x219903c +_ZN12EquipBombchu8vfunc_1cEv kind:function(thumb,size=0xc) addr:0x2199060 +_ZN12EquipBombchu8vfunc_30Ev kind:function(thumb,size=0x104) addr:0x219906c +_ZN12EquipBombchu8vfunc_38Ei kind:function(thumb,size=0xb0) addr:0x2199170 +_ZN12EquipBombchu19func_ov058_02199220Ev kind:function(thumb,size=0x8) addr:0x2199220 +_ZN12EquipBombchu19func_ov058_02199228Ev kind:function(thumb,size=0x3c) addr:0x2199228 +_ZN12EquipBombchu19func_ov058_02199264Ev kind:function(thumb,size=0x8) addr:0x2199264 +_ZN12EquipBombchu19func_ov058_0219926cEv kind:function(thumb,size=0x18) addr:0x219926c +_ZNK12EquipBombchu8IsUsableEi kind:function(arm,size=0x40) addr:0x2199284 +_ZNK12EquipBombchu11CheckUsableEi kind:function(arm,size=0x13c) addr:0x21992c4 +_ZN12EquipBombchu19func_ov058_02199400Ev kind:function(thumb,size=0x98) addr:0x2199400 +_ZN12EquipBombchu19func_ov058_02199498EP5Vec3p kind:function(thumb,size=0xa58) addr:0x2199498 +_ZN12EquipBombchu19func_ov058_02199ef0Es kind:function(arm,size=0xe8) addr:0x2199ef0 +_ZN12EquipBombchu19func_ov058_02199fd8Ej kind:function(arm,size=0xac) addr:0x2199fd8 +_ZN12EquipBombchu19func_ov058_0219a084Es kind:function(arm,size=0x330) addr:0x219a084 +_ZN12EquipBombchu19func_ov058_0219a3b4Es kind:function(arm,size=0x70) addr:0x219a3b4 +_ZN25EquipBombchu_Unk_02198d00D1Ev kind:function(arm,size=0x1c) addr:0x219a424 +_ZN25EquipBombchu_Unk_02198d00D0Ev kind:function(arm,size=0x14) addr:0x219a440 +_ZN13LinkStateItem19func_ov058_0219a454Ev kind:function(arm,size=0x28) addr:0x219a454 +_ZN13LinkStateItem19func_ov058_0219a47cEv kind:function(arm,size=0x13c) addr:0x219a47c +_Z15GetEquipBombchuv kind:function(arm,size=0x10) addr:0x219a5b8 local func_ov058_0219a5c8 kind:function(arm,size=0xd4) addr:0x219a5c8 func_ov058_0219a69c kind:function(arm,size=0xd0) addr:0x219a69c func_ov058_0219a76c kind:function(arm,size=0xb4) addr:0x219a76c @@ -35,7 +35,7 @@ func_ov058_0219ab28 kind:function(thumb,size=0x184) addr:0x219ab28 func_ov058_0219acac kind:function(thumb,size=0x88) addr:0x219acac func_ov058_0219ad34 kind:function(thumb,size=0x34) addr:0x219ad34 data_ov058_0219ad68 kind:data(any) addr:0x219ad68 -__sinit_ov058_0219ad80 kind:function(arm,size=0xfc) addr:0x219ad80 +__sinit_EquipBombchu.cpp kind:function(arm,size=0xfc) addr:0x219ad80 data_ov058_0219aea0 kind:data(any) addr:0x219aea0 data_ov058_0219aea4 kind:data(any) addr:0x219aea4 data_ov058_0219aea8 kind:data(any) addr:0x219aea8 @@ -45,7 +45,7 @@ data_ov058_0219aeb4 kind:data(any) addr:0x219aeb4 data_ov058_0219aeb8 kind:data(any) addr:0x219aeb8 data_ov058_0219aebc kind:data(any) addr:0x219aebc data_ov058_0219aec0 kind:data(any) addr:0x219aec0 -data_ov058_0219aeec kind:data(any) addr:0x219aeec +_ZTV25EquipBombchu_Unk_02198d00 kind:data(any) addr:0x219aeec data_ov058_0219af10 kind:data(any) addr:0x219af10 data_ov058_0219af18 kind:data(any) addr:0x219af18 data_ov058_0219af1c kind:data(any) addr:0x219af1c @@ -65,16 +65,16 @@ data_ov058_0219af7c kind:data(any) addr:0x219af7c data_ov058_0219af80 kind:data(any) addr:0x219af80 data_ov058_0219af84 kind:data(any) addr:0x219af84 data_ov058_0219afb0 kind:data(any) addr:0x219afb0 -data_ov058_0219afc0 kind:bss addr:0x219afc0 -data_ov058_0219afcc kind:bss addr:0x219afcc -data_ov058_0219b028 kind:bss addr:0x219b028 -data_ov058_0219b034 kind:bss addr:0x219b034 +@911 kind:bss addr:0x219afc0 +_ZN12EquipBombchu19gModelRenderBombchuE kind:bss addr:0x219afcc +@912 kind:bss addr:0x219b028 +_ZN12EquipBombchu21gModelRenderBombchuPtE kind:bss addr:0x219b034 data_ov058_0219b040 kind:bss addr:0x219b040 data_ov058_0219b080 kind:bss addr:0x219b080 data_ov058_0219b094 kind:bss addr:0x219b094 data_ov058_0219b0a0 kind:bss addr:0x219b0a0 data_ov058_0219b0c0 kind:bss addr:0x219b0c0 data_ov058_0219b0c4 kind:bss addr:0x219b0c4 -data_ov058_0219b0e4 kind:bss addr:0x219b0e4 -data_ov058_0219b0f0 kind:bss addr:0x219b0f0 +@913 kind:bss addr:0x219b0e4 +sUnk_02198d00 kind:bss addr:0x219b0f0 data_ov058_0219b100 kind:bss addr:0x219b100 diff --git a/config/usa/arm9/overlays/ov058/symbols.txt b/config/usa/arm9/overlays/ov058/symbols.txt index 1e276c5c..3e7e428c 100644 --- a/config/usa/arm9/overlays/ov058/symbols.txt +++ b/config/usa/arm9/overlays/ov058/symbols.txt @@ -1,30 +1,30 @@ -func_ov058_02198d00 kind:function(arm,size=0x1f4) addr:0x2198c60 -func_ov058_02198ef4 kind:function(arm,size=0x4) addr:0x2198e54 -func_ov058_02198ef8 kind:function(arm,size=0x4) addr:0x2198e58 -func_ov058_02198efc kind:function(arm,size=0x78) addr:0x2198e5c -func_ov058_02198f74 kind:function(arm,size=0x4c) addr:0x2198ed4 -func_ov058_02198fc0 kind:function(thumb,size=0x7c) addr:0x2198f20 -func_ov058_0219903c kind:function(thumb,size=0x24) addr:0x2198f9c -func_ov058_02199060 kind:function(thumb,size=0xc) addr:0x2198fc0 -func_ov058_0219906c kind:function(thumb,size=0x104) addr:0x2198fcc -func_ov058_02199170 kind:function(thumb,size=0xb0) addr:0x21990d0 -func_ov058_02199220 kind:function(thumb,size=0x8) addr:0x2199180 -func_ov058_02199228 kind:function(thumb,size=0x3c) addr:0x2199188 -func_ov058_02199264 kind:function(thumb,size=0x8) addr:0x21991c4 -func_ov058_0219926c kind:function(thumb,size=0x18) addr:0x21991cc -func_ov058_02199284 kind:function(arm,size=0x40) addr:0x21991e4 -func_ov058_021992c4 kind:function(arm,size=0x13c) addr:0x2199224 -func_ov058_02199400 kind:function(thumb,size=0x98) addr:0x2199360 -func_ov058_02199498 kind:function(thumb,size=0xa58) addr:0x21993f8 -func_ov058_02199ef0 kind:function(arm,size=0xe8) addr:0x2199e50 -func_ov058_02199fd8 kind:function(arm,size=0xac) addr:0x2199f38 -func_ov058_0219a084 kind:function(arm,size=0x330) addr:0x2199fe4 -func_ov058_0219a3b4 kind:function(arm,size=0x70) addr:0x219a314 -func_ov058_0219a424 kind:function(arm,size=0x1c) addr:0x219a384 -func_ov058_0219a440 kind:function(arm,size=0x14) addr:0x219a3a0 -func_ov058_0219a454 kind:function(arm,size=0x28) addr:0x219a3b4 -func_ov058_0219a47c kind:function(arm,size=0x13c) addr:0x219a3dc -func_ov058_0219a5b8 kind:function(arm,size=0x10) addr:0x219a518 +_ZN25EquipBombchu_Unk_02198d008vfunc_08EPs kind:function(arm,size=0x1f4) addr:0x2198c60 +_Z19func_ov058_02198ef4v kind:function(arm,size=0x4) addr:0x2198e54 +_Z19func_ov058_02198ef8v kind:function(arm,size=0x4) addr:0x2198e58 +_ZN25EquipBombchu_Unk_02198d008vfunc_14EPt kind:function(arm,size=0x78) addr:0x2198e5c +_ZN25EquipBombchu_Unk_02198d008vfunc_10EPi kind:function(arm,size=0x4c) addr:0x2198ed4 +_ZN12EquipBombchu8vfunc_00Ev kind:function(thumb,size=0x7c) addr:0x2198f20 +_ZN12EquipBombchu8vfunc_18Ev kind:function(thumb,size=0x24) addr:0x2198f9c +_ZN12EquipBombchu8vfunc_1cEv kind:function(thumb,size=0xc) addr:0x2198fc0 +_ZN12EquipBombchu8vfunc_30Ev kind:function(thumb,size=0x104) addr:0x2198fcc +_ZN12EquipBombchu8vfunc_38Ei kind:function(thumb,size=0xb0) addr:0x21990d0 +_ZN12EquipBombchu19func_ov058_02199220Ev kind:function(thumb,size=0x8) addr:0x2199180 +_ZN12EquipBombchu19func_ov058_02199228Ev kind:function(thumb,size=0x3c) addr:0x2199188 +_ZN12EquipBombchu19func_ov058_02199264Ev kind:function(thumb,size=0x8) addr:0x21991c4 +_ZN12EquipBombchu19func_ov058_0219926cEv kind:function(thumb,size=0x18) addr:0x21991cc +_ZNK12EquipBombchu8IsUsableEi kind:function(arm,size=0x40) addr:0x21991e4 +_ZNK12EquipBombchu11CheckUsableEi kind:function(arm,size=0x13c) addr:0x2199224 +_ZN12EquipBombchu19func_ov058_02199400Ev kind:function(thumb,size=0x98) addr:0x2199360 +_ZN12EquipBombchu19func_ov058_02199498EP5Vec3p kind:function(thumb,size=0xa58) addr:0x21993f8 +_ZN12EquipBombchu19func_ov058_02199ef0Es kind:function(arm,size=0xe8) addr:0x2199e50 +_ZN12EquipBombchu19func_ov058_02199fd8Ej kind:function(arm,size=0xac) addr:0x2199f38 +_ZN12EquipBombchu19func_ov058_0219a084Es kind:function(arm,size=0x330) addr:0x2199fe4 +_ZN12EquipBombchu19func_ov058_0219a3b4Es kind:function(arm,size=0x70) addr:0x219a314 +_ZN25EquipBombchu_Unk_02198d00D1Ev kind:function(arm,size=0x1c) addr:0x219a384 +_ZN25EquipBombchu_Unk_02198d00D0Ev kind:function(arm,size=0x14) addr:0x219a3a0 +_ZN13LinkStateItem19func_ov058_0219a454Ev kind:function(arm,size=0x28) addr:0x219a3b4 +_ZN13LinkStateItem19func_ov058_0219a47cEv kind:function(arm,size=0x13c) addr:0x219a3dc +_Z15GetEquipBombchuv kind:function(arm,size=0x10) addr:0x219a518 local func_ov058_0219a5c8 kind:function(arm,size=0xd4) addr:0x219a528 func_ov058_0219a69c kind:function(arm,size=0xd0) addr:0x219a5fc func_ov058_0219a76c kind:function(arm,size=0xb4) addr:0x219a6cc @@ -35,7 +35,7 @@ func_ov058_0219ab28 kind:function(thumb,size=0x184) addr:0x219aa88 func_ov058_0219acac kind:function(thumb,size=0x88) addr:0x219ac0c func_ov058_0219ad34 kind:function(thumb,size=0x34) addr:0x219ac94 data_ov058_0219ad68 kind:data(any) addr:0x219acc8 -__sinit_ov058_0219ad80 kind:function(arm,size=0xfc) addr:0x219ace0 +__sinit_EquipBombchu.cpp kind:function(arm,size=0xfc) addr:0x219ace0 data_ov058_0219aea0 kind:data(any) addr:0x219ae00 data_ov058_0219aea4 kind:data(any) addr:0x219ae04 data_ov058_0219aea8 kind:data(any) addr:0x219ae08 @@ -45,7 +45,7 @@ data_ov058_0219aeb4 kind:data(any) addr:0x219ae14 data_ov058_0219aeb8 kind:data(any) addr:0x219ae18 data_ov058_0219aebc kind:data(any) addr:0x219ae1c data_ov058_0219aec0 kind:data(any) addr:0x219ae20 -data_ov058_0219aeec kind:data(any) addr:0x219ae4c +_ZTV25EquipBombchu_Unk_02198d00 kind:data(any) addr:0x219ae4c data_ov058_0219af10 kind:data(any) addr:0x219ae70 data_ov058_0219af18 kind:data(any) addr:0x219ae78 data_ov058_0219af1c kind:data(any) addr:0x219ae7c @@ -65,16 +65,16 @@ data_ov058_0219af7c kind:data(any) addr:0x219aedc data_ov058_0219af80 kind:data(any) addr:0x219aee0 data_ov058_0219af84 kind:data(any) addr:0x219aee4 data_ov058_0219afb0 kind:data(any) addr:0x219af10 -data_ov058_0219afc0 kind:bss addr:0x219af20 -data_ov058_0219afcc kind:bss addr:0x219af2c -data_ov058_0219b028 kind:bss addr:0x219af88 -data_ov058_0219b034 kind:bss addr:0x219af94 +@911 kind:bss addr:0x219af20 +_ZN12EquipBombchu19gModelRenderBombchuE kind:bss addr:0x219af2c +@912 kind:bss addr:0x219af88 +_ZN12EquipBombchu21gModelRenderBombchuPtE kind:bss addr:0x219af94 data_ov058_0219b040 kind:bss addr:0x219afa0 data_ov058_0219b080 kind:bss addr:0x219afe0 data_ov058_0219b094 kind:bss addr:0x219aff4 data_ov058_0219b0a0 kind:bss addr:0x219b000 data_ov058_0219b0c0 kind:bss addr:0x219b020 data_ov058_0219b0c4 kind:bss addr:0x219b024 -data_ov058_0219b0e4 kind:bss addr:0x219b044 -data_ov058_0219b0f0 kind:bss addr:0x219b050 +@913 kind:bss addr:0x219b044 +sUnk_02198d00 kind:bss addr:0x219b050 data_ov058_0219b100 kind:bss addr:0x219b060 diff --git a/include/Player/EquipBombchu.hpp b/include/Player/EquipBombchu.hpp index eba684fb..c2e924b5 100644 --- a/include/Player/EquipBombchu.hpp +++ b/include/Player/EquipBombchu.hpp @@ -4,6 +4,8 @@ #include "Actor/Actor.hpp" #include "Player/EquipItem.hpp" +#include "Render/ModelRender.hpp" +#include "Unknown/UnkStruct_ov000_020beba8.hpp" struct EquipBombchu_Unk1 { /* 0 */ unk8 mUnk_0; @@ -13,20 +15,38 @@ struct EquipBombchu_Unk1 { EquipBombchu_Unk1(); }; +class EquipBombchu_Unk_02198d00 : public UnkStruct_ov000_020beba8 { +public: + /* 0 (base) */ + /* c */ + + /* 00 */ virtual ~EquipBombchu_Unk_02198d00() override; + /* 08 */ virtual void vfunc_08(unk16 *param1) override; + /* 0c */ virtual void vfunc_0c(unk16 *param1) override; + /* 10 */ virtual void vfunc_10(s32 *param1) override; + /* 14 */ virtual void vfunc_14(u16 *param1) override; + /* 1c */ + + inline EquipBombchu_Unk_02198d00() : + UnkStruct_ov000_020beba8(3) {} +}; + class EquipBombchu : public EquipItem { -private: +public: + static ModelRender gModelRenderBombchu; + static ModelRender gModelRenderBombchuPt; + /* 00 (base) */ /* 09 */ u8 mUnk_09[3]; - /* 0c */ u8 mUnk_0c[0x0c]; + /* 0c */ ActorRef mUnk_0c; + /* 0c */ u8 mUnk_14[0x4]; /* 18 */ u32 mUnk_18; /* 1c */ EquipBombchu_Unk1 *mUnk_1c; - /* 20 */ void *mUnk_20; - /* 24 */ u32 mUnk_24; - /* 28 */ u32 mUnk_28; + /* 20 */ Vec3p mUnk_20; /* 2c */ void *mUnk_2c; /* 30 */ u32 mUnk_30; /* 34 */ u32 mUnk_34; - /* 38 */ u8 mUnk_38[0xc]; + /* 38 */ Vec3p mUnk_38; /* 44 */ u16 mUnk_44; /* 46 */ u8 mUnk_46; /* 47 */ char mUnk_47; @@ -34,7 +54,6 @@ private: /* 49 */ unk8 mUnk_49[3]; /* 4c */ -public: /* 00 */ virtual void vfunc_00() override; /* 04 */ virtual ~EquipBombchu() override; /* 0c */ virtual ItemFlag GetId() const override; @@ -46,8 +65,6 @@ public: /* 38 */ virtual void vfunc_38(unk32 param1) override; /* 50 */ - bool CheckUsable(unk32 param1) const; - EquipBombchu(); void func_ov014_0213eba4(); void func_ov014_0213ec40(); @@ -55,4 +72,16 @@ public: Actor *func_ov014_0213ed74(); void *func_ov014_0213ed94(s32 param1); void func_ov014_0213eda0(); + + void func_ov058_02199220(); + void func_ov058_02199228(); + void func_ov058_02199264(); + void func_ov058_0219926c(); + bool CheckUsable(unk32 param1) const; + Actor *func_ov058_02199400(); + bool func_ov058_02199498(Vec3p *vec); + void func_ov058_02199ef0(unk16 param1); + void func_ov058_02199fd8(u32 param1); + unk32 func_ov058_0219a084(unk16 param1); + bool func_ov058_0219a3b4(unk16 param1); }; diff --git a/include/Player/LinkStateItem.hpp b/include/Player/LinkStateItem.hpp index f8c424b2..6946f736 100644 --- a/include/Player/LinkStateItem.hpp +++ b/include/Player/LinkStateItem.hpp @@ -85,4 +85,7 @@ public: void func_ov057_0219a208(); void StopUsingRope(); bool func_ov057_0219a364(); + + void func_ov058_0219a454(); + void func_ov058_0219a47c(); }; diff --git a/src/58_Bombchu/Player/EquipBombchu.cpp b/src/58_Bombchu/Player/EquipBombchu.cpp new file mode 100644 index 00000000..7e6c0742 --- /dev/null +++ b/src/58_Bombchu/Player/EquipBombchu.cpp @@ -0,0 +1,33 @@ +#include "Player/EquipBombchu.hpp" +#include "Player/LinkStateItem.hpp" + +ModelRender EquipBombchu::gModelRenderBombchu; +ModelRender EquipBombchu::gModelRenderBombchuPt; +EquipBombchu_Unk_02198d00 sUnk_02198d00; + +void EquipBombchu_Unk_02198d00::vfunc_08(unk16 *param1) {} +void func_ov058_02198ef4() {} +void func_ov058_02198ef8() {} +void EquipBombchu_Unk_02198d00::vfunc_14(u16 *param1) {} +void EquipBombchu_Unk_02198d00::vfunc_10(s32 *param1) {} +void EquipBombchu::vfunc_00() {} +void EquipBombchu::vfunc_18() {} +void EquipBombchu::vfunc_1c() {} +void EquipBombchu::vfunc_30() {} +void EquipBombchu::vfunc_38(unk32 param1) {} +void EquipBombchu::func_ov058_02199220() {} +void EquipBombchu::func_ov058_02199228() {} +void EquipBombchu::func_ov058_02199264() {} +void EquipBombchu::func_ov058_0219926c() {} +bool EquipBombchu::IsUsable(unk32 param1) const {} +bool EquipBombchu::CheckUsable(unk32 param1) const {} +Actor *EquipBombchu::func_ov058_02199400() {} +bool EquipBombchu::func_ov058_02199498(Vec3p *vec) {} +void EquipBombchu::func_ov058_02199ef0(unk16 param1) {} +void EquipBombchu::func_ov058_02199fd8(u32 param1) {} +unk32 EquipBombchu::func_ov058_0219a084(unk16 param1) {} +bool EquipBombchu::func_ov058_0219a3b4(unk16 param1) {} +EquipBombchu_Unk_02198d00::~EquipBombchu_Unk_02198d00() {} +void LinkStateItem::func_ov058_0219a454() {} +void LinkStateItem::func_ov058_0219a47c() {} +EquipBombchu *GetEquipBombchu() {}