From 68c6291568148ca26226540bdb0c2f59d7ab6445 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 7 Feb 2025 22:38:35 +0100 Subject: [PATCH 01/16] started EquipHammer.cpp --- config/eur/arm9/overlays/ov000/symbols.txt | 4 +- config/eur/arm9/overlays/ov059/delinks.txt | 6 + config/usa/arm9/overlays/ov000/symbols.txt | 4 +- include/Map/MapManager.hpp | 2 +- include/Player/EquipHammer.hpp | 8 +- include/Player/LinkStateBase.hpp | 2 +- include/Player/LinkStateItem.hpp | 4 +- src/00_Core/Map/MapManager.cpp | 2 +- src/00_Core/Player/LinkStateBase.cpp | 2 +- src/59_Hammer/Player/EquipHammer.cpp | 148 ++++++++++++++++++--- 10 files changed, 149 insertions(+), 33 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 539b6f97..5dca6757 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -680,7 +680,7 @@ _ZN10MapManager18func_ov00_0208527cEv kind:function(arm,size=0x180) addr:0x20852 _ZN10MapManager18func_ov00_020853fcEv kind:function(arm,size=0x198) addr:0x20853fc _ZN10MapManager18func_ov00_02085594Ev kind:function(arm,size=0x2a8) addr:0x2085594 _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi kind:function(arm,size=0x74) addr:0x208583c -_ZN10MapManager18func_ov00_020858b0Ev kind:function(arm,size=0x184) addr:0x20858b0 +_ZN10MapManager18func_ov00_020858b0EPS_P5Vec3pi kind:function(arm,size=0x184) addr:0x20858b0 _ZN10MapManager18func_ov00_02085a34Eii kind:function(arm,size=0x22c) addr:0x2085a34 _ZN10MapManager18func_ov00_02085c60Eiiii kind:function(arm,size=0x3e4) addr:0x2085c60 _ZN10MapManager18func_ov00_02086044Eiii kind:function(arm,size=0x240) addr:0x2086044 @@ -1921,7 +1921,7 @@ _ZN13LinkStateBase18func_ov00_020a8774EP5Vec3pi kind:function(arm,size=0xd0) add _ZN13LinkStateBase18func_ov00_020a8844EP5Vec3pbb kind:function(arm,size=0x110) addr:0x20a8844 _ZN13LinkStateBase18func_ov00_020a8954EbPi kind:function(arm,size=0x40) addr:0x20a8954 _ZN13LinkStateBase18func_ov00_020a8994Ev kind:function(arm,size=0x28) addr:0x20a8994 -_ZN13LinkStateBase18func_ov00_020a89bcEii kind:function(arm,size=0x4c) addr:0x20a89bc +_ZN13LinkStateBase18func_ov00_020a89bcEPii kind:function(arm,size=0x4c) addr:0x20a89bc _ZN13LinkStateBase18func_ov00_020a8a08Ei kind:function(arm,size=0x44) addr:0x20a8a08 _ZN13LinkStateBase18func_ov00_020a8a4cEii kind:function(arm,size=0x44) addr:0x20a8a4c _ZN13LinkStateBase18func_ov00_020a8a90Ei kind:function(arm,size=0x20) addr:0x20a8a90 diff --git a/config/eur/arm9/overlays/ov059/delinks.txt b/config/eur/arm9/overlays/ov059/delinks.txt index 4554202b..0bf10b3a 100644 --- a/config/eur/arm9/overlays/ov059/delinks.txt +++ b/config/eur/arm9/overlays/ov059/delinks.txt @@ -4,3 +4,9 @@ .data start:0x0219b140 end:0x0219b1c0 kind:data align:32 .bss start:0x0219b1c0 end:0x0219b1c0 kind:bss align:32 + +src/59_Hammer/Player/EquipHammer.cpp: + .text start:0x02198d00 end:0x0219933c + +src/59_Hammer/Actor/Navi/ActorNaviBase.cpp: + .text start:0x0219933c end:0x0219b110 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 6a5f320f..a8665dd1 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -680,7 +680,7 @@ _ZN10MapManager18func_ov00_0208527cEv kind:function(arm,size=0x180) addr:0x20852 _ZN10MapManager18func_ov00_020853fcEv kind:function(arm,size=0x198) addr:0x208539c _ZN10MapManager18func_ov00_02085594Ev kind:function(arm,size=0x2a8) addr:0x2085534 _ZN10MapManager18func_ov00_0208583cEiP5Vec3pi kind:function(arm,size=0x74) addr:0x20857dc -_ZN10MapManager18func_ov00_020858b0Ev kind:function(arm,size=0x184) addr:0x2085850 +_ZN10MapManager18func_ov00_020858b0EPS_P5Vec3pi kind:function(arm,size=0x184) addr:0x2085850 _ZN10MapManager18func_ov00_02085a34Eii kind:function(arm,size=0x22c) addr:0x20859d4 _ZN10MapManager18func_ov00_02085c60Eiiii kind:function(arm,size=0x3e4) addr:0x2085c00 _ZN10MapManager18func_ov00_02086044Eiii kind:function(arm,size=0x240) addr:0x2085fe4 @@ -1921,7 +1921,7 @@ _ZN13LinkStateBase18func_ov00_020a8774EP5Vec3pi kind:function(arm,size=0xd0) add _ZN13LinkStateBase18func_ov00_020a8844EP5Vec3pbb kind:function(arm,size=0x110) addr:0x20a87e4 _ZN13LinkStateBase18func_ov00_020a8954EbPi kind:function(arm,size=0x40) addr:0x20a88f4 _ZN13LinkStateBase18func_ov00_020a8994Ev kind:function(arm,size=0x28) addr:0x20a8934 -_ZN13LinkStateBase18func_ov00_020a89bcEii kind:function(arm,size=0x4c) addr:0x20a895c +_ZN13LinkStateBase18func_ov00_020a89bcEPii kind:function(arm,size=0x4c) addr:0x20a895c _ZN13LinkStateBase18func_ov00_020a8a08Ei kind:function(arm,size=0x44) addr:0x20a89a8 _ZN13LinkStateBase18func_ov00_020a8a4cEii kind:function(arm,size=0x44) addr:0x20a89ec _ZN13LinkStateBase18func_ov00_020a8a90Ei kind:function(arm,size=0x20) addr:0x20a8a30 diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 13ca4348..346d43d8 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -237,7 +237,7 @@ public: static unk8 func_ov00_020853fc(); static unk8 func_ov00_02085594(); static void func_ov00_0208583c(unk32 param_1, Vec3p *param_2, unk32 param_3); - static unk8 func_ov00_020858b0(); + static unk8 func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 param_3); s32 func_ov00_02085a34(unk32 param_2, unk32 param_3); unk8 func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); unk8 func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4); diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index 27e046c5..0ac23473 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -11,12 +11,12 @@ private: /* 00 (base) */ /* 09 */ unk8 mUnk_09[3]; /* 0c */ Vec3p mUnk_0c; - /* 18 */ unk32 mUnk_18; - /* 1c */ unk8 mUnk_1c; - /* 1d */ unk8 mUnk_1d; + /* 18 */ s32 mUnk_18; + /* 1c */ u8 mUnk_1c; + /* 1d */ u8 mUnk_1d; /* 1e */ unk8 mUnk_1e[2]; /* 20 */ unk32 mUnk_20; - /* 24 */ void *mUnk_24; + /* 24 */ unk32 mUnk_24; /* 28 */ unk32 mUnk_28; /* 2c */ diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index bca6c796..e099c021 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.hpp @@ -88,7 +88,7 @@ public: void func_ov00_020a8844(Vec3p *param1, bool param2, bool param3); void func_ov00_020a8954(bool param1, unk32 *param2); void func_ov00_020a8994(); - void func_ov00_020a89bc(unk32 param1, unk32 param2); + 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_020a8a90(unk32 param1); diff --git a/include/Player/LinkStateItem.hpp b/include/Player/LinkStateItem.hpp index cba602f8..9a5d4585 100644 --- a/include/Player/LinkStateItem.hpp +++ b/include/Player/LinkStateItem.hpp @@ -24,9 +24,7 @@ public: /* 2e */ unk8 mUnk_2e[2]; /* 30 */ void *mUnk_30; /* 34 */ unk32 mUnk_34; - /* 38 */ unk32 mUnk_38; - /* 3c */ void *mUnk_3c; - /* 40 */ unk32 mUnk_40; + /* 38 */ Vec3p mUnk_38; /* 44 */ unk32 mUnk_44; /* 48 */ void *mUnk_48; /* 4c */ unk32 mUnk_4c; diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index 9c23a95b..f3311bf5 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -192,7 +192,7 @@ unk8 MapManager::func_ov00_0208527c() {} unk8 MapManager::func_ov00_020853fc() {} unk8 MapManager::func_ov00_02085594() {} void MapManager::func_ov00_0208583c(unk32 param_1, Vec3p *param_2, unk32 param_3) {} -unk8 MapManager::func_ov00_020858b0() {} +unk8 MapManager::func_ov00_020858b0(MapManager *param_1, Vec3p *param_2, s32 param_3) {} s32 MapManager::func_ov00_02085a34(unk32 param_2, unk32 param_3) {} unk8 MapManager::func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5) {} unk8 MapManager::func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4) {} diff --git a/src/00_Core/Player/LinkStateBase.cpp b/src/00_Core/Player/LinkStateBase.cpp index 7479667e..70946bd2 100644 --- a/src/00_Core/Player/LinkStateBase.cpp +++ b/src/00_Core/Player/LinkStateBase.cpp @@ -44,7 +44,7 @@ bool LinkStateBase::func_ov00_020a8774(Vec3p *param1, s32 angle) {} void LinkStateBase::func_ov00_020a8844(Vec3p *param1, bool param2, bool param3) {} void LinkStateBase::func_ov00_020a8954(bool param1, unk32 *param2) {} void LinkStateBase::func_ov00_020a8994() {} -void LinkStateBase::func_ov00_020a89bc(unk32 param1, unk32 param2) {} +void LinkStateBase::func_ov00_020a89bc(unk32* param1, unk32 param2) {} void LinkStateBase::func_ov00_020a8a08(unk32 param1) {} void LinkStateBase::func_ov00_020a8a4c(unk32 param1, unk32 param2) {} void LinkStateBase::func_ov00_020a8a90(unk32 param1) {} diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index 00fbd208..85a024a3 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -1,21 +1,133 @@ #include "Player/EquipHammer.hpp" #include "Player/LinkStateItem.hpp" +#include "Map/MapManager.hpp" +#include "Item/ItemManager.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() {} +extern "C" void ApproachAngle_thunk(s16* src, s16* dst, u32 param3); +extern "C" void func_ov000_020b853c(void); +extern unk32 data_ov059_0219b180; + +ARM bool EquipHammer::IsUsable(unk32 param1) const {} + +ARM LinkStateItem *GetLinkStateItem() { + return (LinkStateItem*)GetLinkState(1); +} + +ARM void EquipHammer::vfunc_18() { + this->mUnk_1c = 0; + this->mUnk_1d = 0; + this->mUnk_18 = 0; + this->mUnk_28 = 0x1000; +} + +ARM void EquipHammer::vfunc_1c() { + this->mUnk_1c = 0; + this->mUnk_1d = 0; + this->mUnk_18 = 0; +} + +ARM void EquipHammer::vfunc_30() { + if (this->mUnk_24 > 0) { + this->mUnk_24--; + + if (this->mUnk_24 <= 1) { + this->mUnk_18 = 0; + } + } +} + +ARM void EquipHammer::func_ov059_02198e90() { + if (this->mUnk_24 <= 0 && this->mUnk_1c == 0) { + this->mUnk_1c = 1; + this->mUnk_20 = 0x28; + } +} + +ARM bool EquipHammer::func_ov059_02198ebc() { + if (this->mUnk_24 <= 0) { + this->mUnk_1d = 1; + } + + return true; +} + +ARM bool EquipHammer::func_ov059_02198ed4() { + if (this->mUnk_20 > 0) { + this->mUnk_18 = 0x10000; + this->mUnk_20--; + return this->mUnk_20 == 0; + } + + this->mUnk_18 = 0x20000; + return false; +} + +ARM void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) { + Vec3p local_18; + + this->mUnk_0c = *vec; + + if (this->mUnk_1d != 0) { + this->mUnk_1d = 0; + + if (param3 == 0) { + local_18 = this->mUnk_0c; + MapManager::func_ov00_020858b0(gMapManager, &local_18, this->mUnk_20 == 0x0); + } + } + + this->mUnk_1c = 0; + this->mUnk_24 = 4; + this->mUnk_28 = param2; +} + +ARM void EquipHammer::func_ov059_02198fa8(unk32 param1) { + this->mUnk_1d = 0; + this->mUnk_1c = 0; + this->mUnk_18 = 0; + this->mUnk_24 = 4; + this->mUnk_28 = param1; +} + +ARM void EquipHammer::vfunc_38(unk32 param1) { +} + +ARM u32 EquipHammer::vfunc_2c() { + //! TODO: fake? + return (this->mUnk_18 + (s32)((u32)(this->mUnk_18 >> 0xB) >> 0x14)) >> 0xC; +} + +ARM bool EquipHammer::func_ov059_02198fe0() { + return this->mUnk_18 == 0x20000 && this->mUnk_20 == 0; +} + +// non-matching +ARM void LinkStateItem::func_ov059_02198ffc() { + s16 dest; + Vec3p local_20; + Vec3p local_14; + + local_14 = this->mUnk_38; + local_20 = *this->GetPlayerPos(); + + Vec3p_Sub(&local_14, &local_20, &local_14); + dest = Atan2(local_14.x, local_14.z); + ApproachAngle_thunk(this->GetPlayerAngle(), &dest, 0x2000); +} + +ARM void LinkStateItem::func_ov059_0219907c() { + this->func_ov00_020a89bc(&data_ov059_0219b180, 1); + this->mUnk_25[2] = 0; + this->mUnk_25[3] = 0; +} + +ARM void LinkStateItem::func_ov059_021990a4() {} + +ARM EquipHammer *GetEquipHammer() { + return (EquipHammer*)ItemManager::GetEquipItemUnchecked(ItemFlag_Hammer); +} + +ARM void LinkStateItem::StopUsingHammer() { + gItemManager->GetFairy(FairyId_Courage); + func_ov000_020b853c(); +} From a9de8ab2ddd7024fa22c337fe5501e205f20a231 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 7 Feb 2025 23:39:39 +0100 Subject: [PATCH 02/16] match `EquipHammer::IsUsable` --- config/eur/arm9/overlays/ov000/symbols.txt | 4 +- config/usa/arm9/overlays/ov000/symbols.txt | 4 +- include/Actor/Navi/ActorNavi.hpp | 6 ++- include/Actor/Navi/ActorNaviBase.hpp | 5 ++- include/DTCM/UnkStruct_027e0d38.hpp | 8 +++- include/DTCM/UnkStruct_027e0fd4.hpp | 2 + include/Item/ItemManager.hpp | 5 +++ include/Player/EquipHammer.hpp | 2 + include/Player/EquipItem.hpp | 2 +- include/Player/LinkStateBase.hpp | 1 + include/Player/LinkStateItem.hpp | 2 +- src/00_Core/Player/EquipItem.cpp | 2 +- src/59_Hammer/Player/EquipHammer.cpp | 47 +++++++++++++++++++++- 13 files changed, 78 insertions(+), 12 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 5dca6757..4279427d 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1783,7 +1783,7 @@ func_ov000_020a5d50 kind:function(arm,size=0xc) addr:0x20a5d50 func_ov000_020a5d5c kind:function(arm,size=0x18) addr:0x20a5d5c func_ov000_020a5d74 kind:function(arm,size=0x94) addr:0x20a5d74 func_ov000_020a5e08 kind:function(arm,size=0x94) addr:0x20a5e08 -func_ov000_020a5e9c kind:function(arm,size=0x5c) addr:0x20a5e9c +_ZN23UnkStruct_027e0d38_UnkC19func_ov000_020a5e9cEv kind:function(arm,size=0x5c) addr:0x20a5e9c func_ov000_020a5ef8 kind:function(arm,size=0x30) addr:0x20a5ef8 func_ov000_020a5f28 kind:function(arm,size=0x30) addr:0x20a5f28 func_ov000_020a5f58 kind:function(arm,size=0x14) addr:0x20a5f58 @@ -2743,7 +2743,7 @@ _ZNK9EquipItem8vfunc_4cEv kind:function(arm,size=0x8) addr:0x20be988 _ZN9EquipItem12GetPlayerPosEv kind:function(arm,size=0xc) addr:0x20be990 _ZN9EquipItem19func_ov000_020be99cEP5Vec3p kind:function(arm,size=0x48) addr:0x20be99c _ZN9EquipItem19func_ov000_020be9e4Eiiis kind:function(arm,size=0x14c) addr:0x20be9e4 -_ZN9EquipItem7GetAmmoEv kind:function(arm,size=0x2c) addr:0x20beb30 +_ZNK9EquipItem7GetAmmoEv kind:function(arm,size=0x2c) addr:0x20beb30 _ZN9EquipItem8GiveAmmoEj kind:function(arm,size=0x34) addr:0x20beb5c _ZNK9EquipItem9GetHitboxEP8Cylinder kind:function(arm,size=0x18) addr:0x20beb90 _ZN24UnkStruct_ov000_020beba8C1Ei kind:function(arm,size=0x18) addr:0x20beba8 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index a8665dd1..bee557ee 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -1783,7 +1783,7 @@ func_ov000_020a5d50 kind:function(arm,size=0xc) addr:0x20a5cf0 func_ov000_020a5d5c kind:function(arm,size=0x18) addr:0x20a5cfc func_ov000_020a5d74 kind:function(arm,size=0x94) addr:0x20a5d14 func_ov000_020a5e08 kind:function(arm,size=0x94) addr:0x20a5da8 -func_ov000_020a5e9c kind:function(arm,size=0x5c) addr:0x20a5e3c +_ZN23UnkStruct_027e0d38_UnkC19func_ov000_020a5e9cEv kind:function(arm,size=0x5c) addr:0x20a5e3c func_ov000_020a5ef8 kind:function(arm,size=0x30) addr:0x20a5e98 func_ov000_020a5f28 kind:function(arm,size=0x30) addr:0x20a5ec8 func_ov000_020a5f58 kind:function(arm,size=0x14) addr:0x20a5ef8 @@ -2645,7 +2645,7 @@ _ZNK9EquipItem8vfunc_4cEv kind:function(arm,size=0x8) addr:0x20be928 _ZN9EquipItem12GetPlayerPosEv kind:function(arm,size=0xc) addr:0x20be930 _ZN9EquipItem19func_ov000_020be99cEP5Vec3p kind:function(arm,size=0x48) addr:0x20be93c _ZN9EquipItem19func_ov000_020be9e4Eiiis kind:function(arm,size=0x14c) addr:0x20be984 -_ZN9EquipItem7GetAmmoEv kind:function(arm,size=0x2c) addr:0x20bead0 +_ZNK9EquipItem7GetAmmoEv kind:function(arm,size=0x2c) addr:0x20bead0 _ZN9EquipItem8GiveAmmoEj kind:function(arm,size=0x34) addr:0x20beafc _ZNK9EquipItem9GetHitboxEP8Cylinder kind:function(arm,size=0x18) addr:0x20beb30 _ZN24UnkStruct_ov000_020beba8C1Ei kind:function(arm,size=0x18) addr:0x20beb48 diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index 98ebcf51..dab24701 100644 --- a/include/Actor/Navi/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp @@ -1,3 +1,7 @@ #pragma once -class ActorNavi; +#include "Actor/Navi/ActorNaviBase.hpp" + +class ActorNavi : public ActorNaviBase { + +}; diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index f3a45e8a..d42a82b3 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -10,17 +10,18 @@ class ActorNaviBase_Unk1 {}; class ActorNaviBase : public Actor { +public: /* 000 (base) */ /* 158 */ Vec3p mUnk_158; /* 164 */ unk32 mUnk_164; /* 168 */ ModelRender mUnk_168; /* 1c4 */ unk8 mUnk_1c4[0xc]; /* 1d0 */ void *mUnk_1d0; - /* 1d4 */ unk8 mUnk_1d4[0x30]; + /* 1d4 */ unk8 mUnk_1d4[0x40]; /* 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; diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp index a36af0fe..a462a6e8 100644 --- a/include/DTCM/UnkStruct_027e0d38.hpp +++ b/include/DTCM/UnkStruct_027e0d38.hpp @@ -3,12 +3,18 @@ #include "global.h" #include "types.h" +struct UnkStruct_027e0d38_UnkC { + /* 00 */ unk32 mUnk_00; + + unk32 func_ov000_020a5e9c(void); +}; + 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; + /* 0c */ UnkStruct_027e0d38_UnkC mUnk_0c; /* 10 */ unk32 mUnk_10; /* 14 */ unk32 mUnk_14; /* 18 */ unk32 mUnk_18; diff --git a/include/DTCM/UnkStruct_027e0fd4.hpp b/include/DTCM/UnkStruct_027e0fd4.hpp index 4d931bd5..42e254ea 100644 --- a/include/DTCM/UnkStruct_027e0fd4.hpp +++ b/include/DTCM/UnkStruct_027e0fd4.hpp @@ -128,3 +128,5 @@ public: void func_ov000_020b6ba4(s32 param1, s32 param2); bool func_ov000_020b6e70(); }; + +extern UnkStruct_027e0fd4* data_027e0fd4; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index c0a84aa7..3d5340ce 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -108,6 +108,11 @@ public: ~ItemManager(); void Init(); + // Access to members + inline u8 GetUnk_14d(void) { + return mUnk_14d; + } + // Save/load void Save(SaveItemManager *save); void Load(const SaveItemManager *save); diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index 0ac23473..a367090d 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -43,3 +43,5 @@ public: void func_ov059_02198fa8(unk32 param1); bool func_ov059_02198fe0(); }; + +extern LinkStateItem *GetLinkStateItem(); diff --git a/include/Player/EquipItem.hpp b/include/Player/EquipItem.hpp index 6702bc48..79165634 100644 --- a/include/Player/EquipItem.hpp +++ b/include/Player/EquipItem.hpp @@ -41,5 +41,5 @@ public: Vec3p *GetPlayerPos(); void func_ov000_020be99c(Vec3p *param1); void func_ov000_020be9e4(s32 param1, s32 param2, s32 param3, s16 param4); - u16 GetAmmo(); + s16 GetAmmo() const; }; diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index e099c021..470f6096 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.hpp @@ -154,4 +154,5 @@ public: LinkStateBase *GetLinkState(s32 index); +extern LinkStateBase *gLinkState; extern LinkStateBase **gLinkStates; diff --git a/include/Player/LinkStateItem.hpp b/include/Player/LinkStateItem.hpp index 9a5d4585..c96f75d1 100644 --- a/include/Player/LinkStateItem.hpp +++ b/include/Player/LinkStateItem.hpp @@ -19,7 +19,7 @@ public: /* 20 */ unk16 mUnk_20; /* 22 */ unk8 mUnk_22[2]; /* 24 */ s8 mUnk_24; - /* 25 */ unk8 mUnk_25[7]; + /* 25 */ u8 mUnk_25[7]; /* 2c */ unk16 mUnk_2c; /* 2e */ unk8 mUnk_2e[2]; /* 30 */ void *mUnk_30; diff --git a/src/00_Core/Player/EquipItem.cpp b/src/00_Core/Player/EquipItem.cpp index 9256b13a..8751b91d 100644 --- a/src/00_Core/Player/EquipItem.cpp +++ b/src/00_Core/Player/EquipItem.cpp @@ -14,6 +14,6 @@ s32 EquipItem::vfunc_4c() const {} Vec3p *EquipItem::GetPlayerPos() {} void EquipItem::func_ov000_020be99c(Vec3p *param1) {} void EquipItem::func_ov000_020be9e4(s32 param1, s32 param2, s32 param3, s16 param4) {} -u16 EquipItem::GetAmmo() {} +s16 EquipItem::GetAmmo() const {} void EquipItem::GiveAmmo(u32 amount) {} bool EquipItem::GetHitbox(Cylinder *hitbox) const {} diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index 85a024a3..947f3132 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -1,13 +1,58 @@ #include "Player/EquipHammer.hpp" #include "Player/LinkStateItem.hpp" +#include "Player/PlayerLink.hpp" #include "Map/MapManager.hpp" #include "Item/ItemManager.hpp" +#include "DTCM/UnkStruct_027e0fd4.hpp" +#include "DTCM/UnkStruct_027e0d38.hpp" extern "C" void ApproachAngle_thunk(s16* src, s16* dst, u32 param3); extern "C" void func_ov000_020b853c(void); extern unk32 data_ov059_0219b180; -ARM bool EquipHammer::IsUsable(unk32 param1) const {} +ARM bool EquipHammer::IsUsable(unk32 param1) const { + ActorNavi *pAVar3; + + if (this->GetAmmo() <= 0) { + return false; + } + + if (data_027e0fd4->mUnk_0f0 != 0 || data_027e0fd4->mUnk_0f8 != 0) { + return false; + } + + pAVar3 = gItemManager->GetFairy(FairyId_Courage); + + if (pAVar3 == NULL || pAVar3->mUnk_3b8 != 0) { + return false; + } + + if (gItemManager->GetUnk_14d() != 0) { + return false; + } + + if (param1 != 0) { + LinkStateItem* pLVar4 = GetLinkStateItem(); + + if (pLVar4->mUnk_25[2] != 0 && pLVar4->mUnk_25[3] == 0) { + return false; + } + + if (data_027e0fd4->mUnk_0c6 < 0 && data_027e0d38->mUnk_0c.func_ov000_020a5e9c() != 0x2f) { + bool bVar5 = false; + + if (gPlayerLink->GetStateId() == 4 && gLinkState != NULL && gLinkState->mSubState == 0) { + bVar5 = true; + } + + if (!bVar5) { + return false; + } + } + } + + return true; +} ARM LinkStateItem *GetLinkStateItem() { return (LinkStateItem*)GetLinkState(1); From f3134dbdc14805d88b3adbf32eb53e2a456db9fa Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 8 Feb 2025 00:49:06 +0100 Subject: [PATCH 03/16] match `LinkStateItem::func_ov059_021990a4` --- include/Actor/Navi/ActorNaviBase.hpp | 2 +- include/Player/EquipHammer.hpp | 9 ++++ include/Player/LinkStateBase.hpp | 2 +- src/00_Core/Player/LinkStateBase.cpp | 2 +- src/59_Hammer/Player/EquipHammer.cpp | 74 +++++++++++++++++++++++++++- 5 files changed, 85 insertions(+), 4 deletions(-) diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index d42a82b3..6fae5e7e 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -48,7 +48,7 @@ public: /* 3b4 */ EquipHammer *mHammer; /* 3b8 */ unk32 mUnk_3b8; /* 3bc */ unk32 mUnk_3bc; - /* 3c0 */ unk8 mUnk_3c0[0x8]; + /* 3c0 */ u8 mUnk_3c0[0x8]; /* 3c8 */ /* 00 */ virtual ~ActorNaviBase() override; diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index a367090d..b65bbcbf 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -42,6 +42,15 @@ public: void func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3); void func_ov059_02198fa8(unk32 param1); bool func_ov059_02198fe0(); + + inline s32 GetUnk_18(void) { + return mUnk_18; + } + + inline unk32 GetUnk_20(void) { + return mUnk_20; + } }; extern LinkStateItem *GetLinkStateItem(); +extern EquipHammer *GetEquipHammer(); diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index 470f6096..3fa02e4e 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.hpp @@ -95,7 +95,7 @@ public: void func_ov00_020a8ab0(unk32 param1); void func_ov00_020a8ad0(unk32 param1); void func_ov00_020a8b04(s32 param1, bool param2); - void func_ov00_020a8b3c(s32 param1); + unk32 func_ov00_020a8b3c(s32 param1); bool func_ov00_020a8b80(); bool HasFlags_PlayerLinkBase_Unk48(u16 flags); unk8 Get_PlayerLinkBase_Unk5e(); diff --git a/src/00_Core/Player/LinkStateBase.cpp b/src/00_Core/Player/LinkStateBase.cpp index 70946bd2..d82f334c 100644 --- a/src/00_Core/Player/LinkStateBase.cpp +++ b/src/00_Core/Player/LinkStateBase.cpp @@ -51,7 +51,7 @@ void LinkStateBase::func_ov00_020a8a90(unk32 param1) {} void LinkStateBase::func_ov00_020a8ab0(unk32 param1) {} void LinkStateBase::func_ov00_020a8ad0(unk32 param1) {} void LinkStateBase::func_ov00_020a8b04(s32 param1, bool param2) {} -void LinkStateBase::func_ov00_020a8b3c(s32 param1) {} +unk32 LinkStateBase::func_ov00_020a8b3c(s32 param1) {} bool LinkStateBase::func_ov00_020a8b80() {} bool LinkStateBase::HasFlags_PlayerLinkBase_Unk48(u16 flags) {} unk8 LinkStateBase::Get_PlayerLinkBase_Unk5e() {} diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index 947f3132..21f5696b 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -1,6 +1,7 @@ #include "Player/EquipHammer.hpp" #include "Player/LinkStateItem.hpp" #include "Player/PlayerLink.hpp" +#include "Player/PlayerControl.hpp" #include "Map/MapManager.hpp" #include "Item/ItemManager.hpp" #include "DTCM/UnkStruct_027e0fd4.hpp" @@ -8,7 +9,24 @@ extern "C" void ApproachAngle_thunk(s16* src, s16* dst, u32 param3); extern "C" void func_ov000_020b853c(void); + +struct EquipHammer_UnkStruct { + /* 00 */ unk8 mUnk_00[0x20]; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk8 mUnk_24[0xC]; + /* 30 */ unk32 mUnk_30; + /* 34 */ unk8 mUnk_34[0xC]; + /* 40 */ unk32 mUnk_40; + /* 44 */ unk8 mUnk_44[0xC]; + /* 50 */ unk32 mUnk_50; + /* 54 */ +}; + +extern EquipHammer_UnkStruct data_ov059_0219b160; extern unk32 data_ov059_0219b180; +extern unk32 data_ov059_0219b190; +extern unk32 data_ov059_0219b1a0; +extern unk32 data_ov059_0219b1b0; ARM bool EquipHammer::IsUsable(unk32 param1) const { ActorNavi *pAVar3; @@ -166,7 +184,61 @@ ARM void LinkStateItem::func_ov059_0219907c() { this->mUnk_25[3] = 0; } -ARM void LinkStateItem::func_ov059_021990a4() {} +#define CHECK_0219b160(field) ((field) == this->Get_PlayerControlData_Unk100()) + +ARM void LinkStateItem::func_ov059_021990a4() { + EquipHammer *pEVar4; + ActorNavi *pAVar5; + + if (this->mUnk_25[0x2] != 0 && this->mUnk_25[0x3] == 0) { + return; + } + + pEVar4 = GetEquipHammer(); + pAVar5 = gItemManager->GetFairy(FairyId_Courage); + + if (CHECK_0219b160(data_ov059_0219b160.mUnk_20)) { + this->mUnk_38 = gPlayerControl->mAimWorld; + + if (pAVar5->mUnk_3c0[0] != 0 && gPlayerControl->UpdateAimWorld(&this->mUnk_38) && pEVar4->GetUnk_18() <= 0) { + pEVar4->func_ov059_02198e90(); + + if (this->mUnk_25[2] != 0 && this->mUnk_25[3] != 0) { + this->LookAt(&this->mUnk_38); + } + + this->func_ov00_020a89bc(&data_ov059_0219b190, 1); + } + } else { + if (CHECK_0219b160(data_ov059_0219b160.mUnk_50)) { + if (this->func_ov00_020a8b3c(1) != 0 || gPlayerControl->UpdateAimWorld(&this->mUnk_38)) { + this->func_ov00_020a89bc(&data_ov059_0219b180, 1); + } + } else if (CHECK_0219b160(data_ov059_0219b160.mUnk_30) || CHECK_0219b160(data_ov059_0219b160.mUnk_40)) { + gPlayerControl->UpdateAimWorld(&this->mUnk_38); + pEVar4->func_ov059_02198e90(); + + if (this->mUnk_25[0x2] != 0 && this->mUnk_25[0x3] != 0) { + this->LookAt(&this->mUnk_38); + } + + if (gPlayerControl->CheckTouching(1) ? false : true) { + if (pEVar4->GetUnk_18() > 0) { + pEVar4->func_ov059_02198ebc(); + this->func_ov00_020a89bc(&data_ov059_0219b1b0, 1); + } + } else if (!CHECK_0219b160(data_ov059_0219b160.mUnk_40) && pEVar4->GetUnk_20() <= 0) { + this->func_ov00_020a89bc(&data_ov059_0219b1a0, 1); + } + } else { + this->func_ov00_020a89bc(&data_ov059_0219b180, 1); + } + } + + if (this->mUnk_25[0x2] == 0 || this->mUnk_25[0x3] == 0) { + this->func_ov059_02198ffc(); + } +} ARM EquipHammer *GetEquipHammer() { return (EquipHammer*)ItemManager::GetEquipItemUnchecked(ItemFlag_Hammer); From 0c6f9f3a44aa18ac18913ba608b0b67682cc418c Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 8 Feb 2025 01:00:54 +0100 Subject: [PATCH 04/16] match `LinkStateItem::func_ov059_02198ffc` --- src/59_Hammer/Player/EquipHammer.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index 21f5696b..3438010e 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -7,7 +7,7 @@ #include "DTCM/UnkStruct_027e0fd4.hpp" #include "DTCM/UnkStruct_027e0d38.hpp" -extern "C" void ApproachAngle_thunk(s16* src, s16* dst, u32 param3); +extern "C" void ApproachAngle_thunk(s16* src, s16 dst, u32 param3); extern "C" void func_ov000_020b853c(void); struct EquipHammer_UnkStruct { @@ -164,18 +164,17 @@ ARM bool EquipHammer::func_ov059_02198fe0() { return this->mUnk_18 == 0x20000 && this->mUnk_20 == 0; } -// non-matching ARM void LinkStateItem::func_ov059_02198ffc() { - s16 dest; - Vec3p local_20; Vec3p local_14; + Vec3p local_20; + s16 dest; local_14 = this->mUnk_38; local_20 = *this->GetPlayerPos(); Vec3p_Sub(&local_14, &local_20, &local_14); dest = Atan2(local_14.x, local_14.z); - ApproachAngle_thunk(this->GetPlayerAngle(), &dest, 0x2000); + ApproachAngle_thunk(this->GetPlayerAngle(), dest, 0x2000); } ARM void LinkStateItem::func_ov059_0219907c() { From a19141c1f0b8879a9caa2a5cb2eb4a3003e99f24 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:12:17 +0100 Subject: [PATCH 05/16] small documentation --- config/eur/arm9/overlays/ov059/symbols.txt | 2 +- config/usa/arm9/overlays/ov059/symbols.txt | 2 +- include/Player/EquipHammer.hpp | 36 +++++++----- src/59_Hammer/Player/EquipHammer.cpp | 65 +++++++++++----------- 4 files changed, 57 insertions(+), 48 deletions(-) diff --git a/config/eur/arm9/overlays/ov059/symbols.txt b/config/eur/arm9/overlays/ov059/symbols.txt index 6375ea18..6e50d6e2 100644 --- a/config/eur/arm9/overlays/ov059/symbols.txt +++ b/config/eur/arm9/overlays/ov059/symbols.txt @@ -10,7 +10,7 @@ _ZN11EquipHammer19func_ov059_02198f10EP5Vec3pii kind:function(arm,size=0x98) add _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 +_ZN11EquipHammer15IsHammerChargedEv 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 diff --git a/config/usa/arm9/overlays/ov059/symbols.txt b/config/usa/arm9/overlays/ov059/symbols.txt index 02aeeed4..246e951a 100644 --- a/config/usa/arm9/overlays/ov059/symbols.txt +++ b/config/usa/arm9/overlays/ov059/symbols.txt @@ -10,7 +10,7 @@ _ZN11EquipHammer19func_ov059_02198f10EP5Vec3pii kind:function(arm,size=0x98) add _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 +_ZN11EquipHammer15IsHammerChargedEv 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 diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index b65bbcbf..187100be 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -4,19 +4,27 @@ #include "Player/EquipItem.hpp" -class LinkStateItem; +// how long players should wait until the hammer is charged (aka bigger and more powerful) +#define HAMMER_CHARGE_TIMER 40 + +//! TODO: change "state" to "flags"? see `vfunc_2c` +typedef enum EquipHammerState { + /* 0x00000 */ EQUIP_HAMMER_STATE_IDLE = (0 << 16), + /* 0x10000 */ EQUIP_HAMMER_STATE_CHARGING = (1 << 16), + /* 0x20000 */ EQUIP_HAMMER_STATE_CHARGED = (2 << 16), +} EquipHammerState; class EquipHammer : public EquipItem { private: /* 00 (base) */ /* 09 */ unk8 mUnk_09[3]; - /* 0c */ Vec3p mUnk_0c; - /* 18 */ s32 mUnk_18; - /* 1c */ u8 mUnk_1c; - /* 1d */ u8 mUnk_1d; - /* 1e */ unk8 mUnk_1e[2]; - /* 20 */ unk32 mUnk_20; - /* 24 */ unk32 mUnk_24; + /* 0c */ Vec3p mUnk_0c; // hammer's position when it hits a surface? not updated if the hammer can't touch a surface + /* 18 */ EquipHammerState mState; + /* 1c */ bool mIsHeld; // holding the input from the touchscreen + /* 1d */ bool mIsReleased; // released the input from the touchscreen + /* 1e */ unk8 mUnk_1e[2]; // unused? + /* 20 */ s32 mChargeTimer; // charging timer to make it bigger, set to 40 frames by default + /* 24 */ unk32 mUnk_24; // timer that prevents the charge? /* 28 */ unk32 mUnk_28; /* 2c */ @@ -41,16 +49,18 @@ public: bool func_ov059_02198ed4(); void func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3); void func_ov059_02198fa8(unk32 param1); - bool func_ov059_02198fe0(); + bool IsHammerCharged(); - inline s32 GetUnk_18(void) { - return mUnk_18; + inline s32 GetState(void) { + return mState; } - inline unk32 GetUnk_20(void) { - return mUnk_20; + inline unk32 GetChargeTimer(void) { + return mChargeTimer; } }; +class LinkStateItem; + extern LinkStateItem *GetLinkStateItem(); extern EquipHammer *GetEquipHammer(); diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index 3438010e..74e36f77 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -8,7 +8,7 @@ #include "DTCM/UnkStruct_027e0d38.hpp" extern "C" void ApproachAngle_thunk(s16* src, s16 dst, u32 param3); -extern "C" void func_ov000_020b853c(void); +extern "C" void func_ov000_020b853c(ActorNavi*); struct EquipHammer_UnkStruct { /* 00 */ unk8 mUnk_00[0x20]; @@ -77,16 +77,16 @@ ARM LinkStateItem *GetLinkStateItem() { } ARM void EquipHammer::vfunc_18() { - this->mUnk_1c = 0; - this->mUnk_1d = 0; - this->mUnk_18 = 0; + this->mIsHeld = false; + this->mIsReleased = false; + this->mState = EQUIP_HAMMER_STATE_IDLE; this->mUnk_28 = 0x1000; } ARM void EquipHammer::vfunc_1c() { - this->mUnk_1c = 0; - this->mUnk_1d = 0; - this->mUnk_18 = 0; + this->mIsHeld = false; + this->mIsReleased = false; + this->mState = EQUIP_HAMMER_STATE_IDLE; } ARM void EquipHammer::vfunc_30() { @@ -94,34 +94,34 @@ ARM void EquipHammer::vfunc_30() { this->mUnk_24--; if (this->mUnk_24 <= 1) { - this->mUnk_18 = 0; + this->mState = EQUIP_HAMMER_STATE_IDLE; } } } ARM void EquipHammer::func_ov059_02198e90() { - if (this->mUnk_24 <= 0 && this->mUnk_1c == 0) { - this->mUnk_1c = 1; - this->mUnk_20 = 0x28; + if (this->mUnk_24 <= 0 && !this->mIsHeld) { + this->mIsHeld = true; + this->mChargeTimer = HAMMER_CHARGE_TIMER; } } ARM bool EquipHammer::func_ov059_02198ebc() { if (this->mUnk_24 <= 0) { - this->mUnk_1d = 1; + this->mIsReleased = true; } return true; } ARM bool EquipHammer::func_ov059_02198ed4() { - if (this->mUnk_20 > 0) { - this->mUnk_18 = 0x10000; - this->mUnk_20--; - return this->mUnk_20 == 0; + if (this->mChargeTimer > 0) { + this->mState = EQUIP_HAMMER_STATE_CHARGING; + this->mChargeTimer--; + return this->mChargeTimer == 0; } - this->mUnk_18 = 0x20000; + this->mState = EQUIP_HAMMER_STATE_CHARGED; return false; } @@ -130,24 +130,24 @@ ARM void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) this->mUnk_0c = *vec; - if (this->mUnk_1d != 0) { - this->mUnk_1d = 0; + if (this->mIsReleased) { + this->mIsReleased = false; if (param3 == 0) { local_18 = this->mUnk_0c; - MapManager::func_ov00_020858b0(gMapManager, &local_18, this->mUnk_20 == 0x0); + MapManager::func_ov00_020858b0(gMapManager, &local_18, this->mChargeTimer == 0); } } - this->mUnk_1c = 0; + this->mIsHeld = false; this->mUnk_24 = 4; this->mUnk_28 = param2; } ARM void EquipHammer::func_ov059_02198fa8(unk32 param1) { - this->mUnk_1d = 0; - this->mUnk_1c = 0; - this->mUnk_18 = 0; + this->mIsReleased = false; + this->mIsHeld = false; + this->mState = EQUIP_HAMMER_STATE_IDLE; this->mUnk_24 = 4; this->mUnk_28 = param1; } @@ -157,11 +157,11 @@ ARM void EquipHammer::vfunc_38(unk32 param1) { ARM u32 EquipHammer::vfunc_2c() { //! TODO: fake? - return (this->mUnk_18 + (s32)((u32)(this->mUnk_18 >> 0xB) >> 0x14)) >> 0xC; + return (this->mState + (s32)((u32)(this->mState >> 0xB) >> 0x14)) >> 0xC; } -ARM bool EquipHammer::func_ov059_02198fe0() { - return this->mUnk_18 == 0x20000 && this->mUnk_20 == 0; +ARM bool EquipHammer::IsHammerCharged() { + return this->mState == EQUIP_HAMMER_STATE_CHARGED && this->mChargeTimer == 0; } ARM void LinkStateItem::func_ov059_02198ffc() { @@ -183,7 +183,7 @@ ARM void LinkStateItem::func_ov059_0219907c() { this->mUnk_25[3] = 0; } -#define CHECK_0219b160(field) ((field) == this->Get_PlayerControlData_Unk100()) +#define CHECK_0219b160(value) ((value) == this->Get_PlayerControlData_Unk100()) ARM void LinkStateItem::func_ov059_021990a4() { EquipHammer *pEVar4; @@ -199,7 +199,7 @@ ARM void LinkStateItem::func_ov059_021990a4() { if (CHECK_0219b160(data_ov059_0219b160.mUnk_20)) { this->mUnk_38 = gPlayerControl->mAimWorld; - if (pAVar5->mUnk_3c0[0] != 0 && gPlayerControl->UpdateAimWorld(&this->mUnk_38) && pEVar4->GetUnk_18() <= 0) { + if (pAVar5->mUnk_3c0[0] != 0 && gPlayerControl->UpdateAimWorld(&this->mUnk_38) && pEVar4->GetState() <= 0) { pEVar4->func_ov059_02198e90(); if (this->mUnk_25[2] != 0 && this->mUnk_25[3] != 0) { @@ -222,11 +222,11 @@ ARM void LinkStateItem::func_ov059_021990a4() { } if (gPlayerControl->CheckTouching(1) ? false : true) { - if (pEVar4->GetUnk_18() > 0) { + if (pEVar4->GetState() > 0) { pEVar4->func_ov059_02198ebc(); this->func_ov00_020a89bc(&data_ov059_0219b1b0, 1); } - } else if (!CHECK_0219b160(data_ov059_0219b160.mUnk_40) && pEVar4->GetUnk_20() <= 0) { + } else if (!CHECK_0219b160(data_ov059_0219b160.mUnk_40) && pEVar4->GetChargeTimer() <= 0) { this->func_ov00_020a89bc(&data_ov059_0219b1a0, 1); } } else { @@ -244,6 +244,5 @@ ARM EquipHammer *GetEquipHammer() { } ARM void LinkStateItem::StopUsingHammer() { - gItemManager->GetFairy(FairyId_Courage); - func_ov000_020b853c(); + func_ov000_020b853c(gItemManager->GetFairy(FairyId_Courage)); } From cf757250b0b5b2f340a73ad83bbbbf7c2994d27d Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:20:52 +0100 Subject: [PATCH 06/16] format and use state enum --- src/59_Hammer/Player/EquipHammer.cpp | 51 ++++++++++++++-------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index 74e36f77..806544e1 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -1,14 +1,14 @@ #include "Player/EquipHammer.hpp" -#include "Player/LinkStateItem.hpp" -#include "Player/PlayerLink.hpp" -#include "Player/PlayerControl.hpp" -#include "Map/MapManager.hpp" -#include "Item/ItemManager.hpp" -#include "DTCM/UnkStruct_027e0fd4.hpp" #include "DTCM/UnkStruct_027e0d38.hpp" +#include "DTCM/UnkStruct_027e0fd4.hpp" +#include "Item/ItemManager.hpp" +#include "Map/MapManager.hpp" +#include "Player/LinkStateItem.hpp" +#include "Player/PlayerControl.hpp" +#include "Player/PlayerLink.hpp" -extern "C" void ApproachAngle_thunk(s16* src, s16 dst, u32 param3); -extern "C" void func_ov000_020b853c(ActorNavi*); +extern "C" void ApproachAngle_thunk(s16 *src, s16 dst, u32 param3); +extern "C" void func_ov000_020b853c(ActorNavi *); struct EquipHammer_UnkStruct { /* 00 */ unk8 mUnk_00[0x20]; @@ -50,7 +50,7 @@ ARM bool EquipHammer::IsUsable(unk32 param1) const { } if (param1 != 0) { - LinkStateItem* pLVar4 = GetLinkStateItem(); + LinkStateItem *pLVar4 = GetLinkStateItem(); if (pLVar4->mUnk_25[2] != 0 && pLVar4->mUnk_25[3] == 0) { return false; @@ -73,23 +73,23 @@ ARM bool EquipHammer::IsUsable(unk32 param1) const { } ARM LinkStateItem *GetLinkStateItem() { - return (LinkStateItem*)GetLinkState(1); + return (LinkStateItem *) GetLinkState(LinkStateId_Item); } ARM void EquipHammer::vfunc_18() { - this->mIsHeld = false; + this->mIsHeld = false; this->mIsReleased = false; - this->mState = EQUIP_HAMMER_STATE_IDLE; - this->mUnk_28 = 0x1000; + this->mState = EQUIP_HAMMER_STATE_IDLE; + this->mUnk_28 = 0x1000; } ARM void EquipHammer::vfunc_1c() { - this->mIsHeld = false; + this->mIsHeld = false; this->mIsReleased = false; - this->mState = EQUIP_HAMMER_STATE_IDLE; + this->mState = EQUIP_HAMMER_STATE_IDLE; } -ARM void EquipHammer::vfunc_30() { +ARM void EquipHammer::vfunc_30() { if (this->mUnk_24 > 0) { this->mUnk_24--; @@ -101,7 +101,7 @@ ARM void EquipHammer::vfunc_30() { ARM void EquipHammer::func_ov059_02198e90() { if (this->mUnk_24 <= 0 && !this->mIsHeld) { - this->mIsHeld = true; + this->mIsHeld = true; this->mChargeTimer = HAMMER_CHARGE_TIMER; } } @@ -127,7 +127,7 @@ ARM bool EquipHammer::func_ov059_02198ed4() { ARM void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) { Vec3p local_18; - + this->mUnk_0c = *vec; if (this->mIsReleased) { @@ -146,18 +146,17 @@ ARM void EquipHammer::func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3) ARM void EquipHammer::func_ov059_02198fa8(unk32 param1) { this->mIsReleased = false; - this->mIsHeld = false; - this->mState = EQUIP_HAMMER_STATE_IDLE; - this->mUnk_24 = 4; - this->mUnk_28 = param1; + this->mIsHeld = false; + this->mState = EQUIP_HAMMER_STATE_IDLE; + this->mUnk_24 = 4; + this->mUnk_28 = param1; } -ARM void EquipHammer::vfunc_38(unk32 param1) { -} +ARM void EquipHammer::vfunc_38(unk32 param1) {} ARM u32 EquipHammer::vfunc_2c() { //! TODO: fake? - return (this->mState + (s32)((u32)(this->mState >> 0xB) >> 0x14)) >> 0xC; + return (this->mState + (s32) ((u32) (this->mState >> 0xB) >> 0x14)) >> 0xC; } ARM bool EquipHammer::IsHammerCharged() { @@ -240,7 +239,7 @@ ARM void LinkStateItem::func_ov059_021990a4() { } ARM EquipHammer *GetEquipHammer() { - return (EquipHammer*)ItemManager::GetEquipItemUnchecked(ItemFlag_Hammer); + return (EquipHammer *) ItemManager::GetEquipItemUnchecked(ItemFlag_Hammer); } ARM void LinkStateItem::StopUsingHammer() { From bd747975ff0197043a4e2c655cd3bd9d4874d2e8 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 8 Feb 2025 12:40:01 +0100 Subject: [PATCH 07/16] cleanup actornavibase and match `ActorNavi::func_ov059_0219b020` --- config/eur/arm9/overlays/ov059/symbols.txt | 14 ++++----- include/Actor/Navi/ActorNavi.hpp | 24 +++++++++++++++ include/Actor/Navi/ActorNaviBase.hpp | 27 ++--------------- src/00_Core/Actor/Navi/ActorNaviBase.cpp | 2 +- src/59_Hammer/Actor/Navi/ActorNaviBase.cpp | 34 +++++++++++++++++----- 5 files changed, 61 insertions(+), 40 deletions(-) diff --git a/config/eur/arm9/overlays/ov059/symbols.txt b/config/eur/arm9/overlays/ov059/symbols.txt index 6e50d6e2..73a25090 100644 --- a/config/eur/arm9/overlays/ov059/symbols.txt +++ b/config/eur/arm9/overlays/ov059/symbols.txt @@ -16,13 +16,13 @@ _ZN13LinkStateItem19func_ov059_0219907cEv kind:function(arm,size=0x28) addr:0x21 _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 +_ZN9ActorNavi19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219933c +_ZN9ActorNavi19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a0ac +_ZN9ActorNavi19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219aa08 +_ZN9ActorNavi19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219aba8 +_ZN9ActorNavi19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219af14 +_ZN9ActorNavi19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219afc4 +_ZN9ActorNavi19func_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/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index dab24701..5604893c 100644 --- a/include/Actor/Navi/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp @@ -3,5 +3,29 @@ #include "Actor/Navi/ActorNaviBase.hpp" class ActorNavi : public ActorNaviBase { +public: + /* 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 */ u8 mUnk_3c0[0x8]; + /* 3c8 */ + 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/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index 6fae5e7e..7df4559f 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -34,22 +34,7 @@ public: /* 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 */ u8 mUnk_3c0[0x8]; - /* 3c8 */ + /* 294 */ /* 00 */ virtual ~ActorNaviBase() override; /* 08 */ virtual bool vfunc_08() override; @@ -78,7 +63,7 @@ public: /* d0 */ virtual void vfunc_d0(); /* d4 */ virtual void vfunc_d4(); /* d8 */ virtual void vfunc_d8(); - /* dc */ virtual void SetActive(bool active); + /* dc */ virtual void SetActive(unk32 active); /* e0 */ virtual void vfunc_e0(); /* e4 */ virtual void vfunc_e4(); /* e8 */ virtual void vfunc_e8(); @@ -103,12 +88,4 @@ public: 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/src/00_Core/Actor/Navi/ActorNaviBase.cpp b/src/00_Core/Actor/Navi/ActorNaviBase.cpp index 677d677b..0c681c70 100644 --- a/src/00_Core/Actor/Navi/ActorNaviBase.cpp +++ b/src/00_Core/Actor/Navi/ActorNaviBase.cpp @@ -12,7 +12,7 @@ void ActorNaviBase::func_ov000_020b8c50() {} void ActorNaviBase::func_ov000_020b8c98(unk32 param1, unk32 param2, unk32 param3) {} void ActorNaviBase::vfunc_d4() {} void ActorNaviBase::vfunc_d8() {} -void ActorNaviBase::SetActive(bool active) {} +void ActorNaviBase::SetActive(unk32 active) {} void ActorNaviBase::TeleportAboveLink() {} void ActorNaviBase::vfunc_e0() {} void ActorNaviBase::vfunc_e4() {} diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp index 109a14b4..f272c4e0 100644 --- a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp +++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp @@ -1,9 +1,29 @@ #include "Actor/Navi/ActorNaviBase.hpp" +#include "Actor/Navi/ActorNavi.hpp" +#include "Player/PlayerControl.hpp" +#include "Item/ItemManager.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() {} +ARM bool ActorNavi::func_ov059_0219933c(u32 param1) {} +ARM void ActorNavi::func_ov059_0219a0ac() {} +ARM void ActorNavi::func_ov059_0219aa08() {} +ARM void ActorNavi::func_ov059_0219aba8(u32 param1) {} +ARM bool ActorNavi::func_ov059_0219af14() {} +ARM bool ActorNavi::func_ov059_0219afc4() {} + +ARM void ActorNavi::func_ov059_0219b020() { + + if (gItemManager->GetEquippedFairy() != FairyId_Courage) { + ItemManager* itemMgr = gItemManager; + + this->mPrevPos = this->mUnk_158 = this->mPos = itemMgr->GetFairy(itemMgr->GetEquippedFairy())->mPos; + } else { + this->mUnk_158 = this->mPos; + } + + gPlayerControl->mAimWorld = this->mUnk_158; + + this->mHammer = GetEquipHammer(); + this->mUnk_3c0[0] = 0x0; + this->mUnk_3c0[2] = 0x0; + this->SetActive(3); +} From c81b52be8649fa4569ff404b3f33beba9686c1f6 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 8 Feb 2025 19:30:22 +0100 Subject: [PATCH 08/16] progress on ActorNaviBase.cpp --- config/eur/arm9/overlays/ov000/symbols.txt | 4 +- config/usa/arm9/overlays/ov000/symbols.txt | 4 +- include/Actor/Navi/ActorNavi.hpp | 12 +- include/Actor/Navi/ActorNaviBase.hpp | 2 +- include/Item/ItemManager.hpp | 2 + include/Map/MapManager.hpp | 2 +- include/Player/EquipHammer.hpp | 4 + src/00_Core/Actor/Navi/ActorNaviBase.cpp | 2 +- src/59_Hammer/Actor/Navi/ActorNaviBase.cpp | 310 ++++++++++++++++++++- src/59_Hammer/Player/EquipHammer.cpp | 3 +- src/ITCM/Map/MapManager.cpp | 2 +- 11 files changed, 327 insertions(+), 20 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 4279427d..e62ed97a 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -2421,7 +2421,7 @@ func_ov000_020b849c kind:function(arm,size=0x34) addr:0x20b849c func_ov000_020b84d0 kind:function(arm,size=0x8) addr:0x20b84d0 func_ov000_020b84d8 kind:function(arm,size=0x54) addr:0x20b84d8 func_ov000_020b852c kind:function(arm,size=0x10) addr:0x20b852c -func_ov000_020b853c kind:function(arm,size=0x14) addr:0x20b853c +_ZN9ActorNavi19func_ov000_020b853cEv kind:function(arm,size=0x14) addr:0x20b853c func_ov000_020b8550 kind:function(arm,size=0x48) addr:0x20b8550 func_ov000_020b8598 kind:function(arm,size=0x40) addr:0x20b8598 func_ov000_020b85d8 kind:function(thumb,size=0x28) addr:0x20b85d8 @@ -2450,7 +2450,7 @@ _ZN13ActorNaviBase8vfunc_ccEPi kind:function(arm,size=0x2cc) addr:0x20b88c4 _ZN13ActorNaviBase12GetOffsetPosEP5Vec3p kind:function(arm,size=0x1c) addr:0x20b8b90 _ZN13ActorNaviBase8vfunc_38Ev kind:function(arm,size=0x18) addr:0x20b8bac _ZN13ActorNaviBase8vfunc_d0Ev kind:function(arm,size=0x8c) addr:0x20b8bc4 -_ZN13ActorNaviBase19func_ov000_020b8c50Ev kind:function(arm,size=0x48) addr:0x20b8c50 +_ZN13ActorNaviBase19func_ov000_020b8c50Ei kind:function(arm,size=0x48) addr:0x20b8c50 _ZN13ActorNaviBase19func_ov000_020b8c98Eiii kind:function(arm,size=0x9c) addr:0x20b8c98 _ZN13ActorNaviBase8vfunc_d4Ev kind:function(arm,size=0x444) addr:0x20b8d34 _ZN13ActorNaviBase8vfunc_d8Ev kind:function(arm,size=0x4) addr:0x20b9178 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index bee557ee..59c770c6 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -2421,7 +2421,7 @@ func_ov000_020b849c kind:function(arm,size=0x34) addr:0x20b843c func_ov000_020b84d0 kind:function(arm,size=0x8) addr:0x20b8470 func_ov000_020b84d8 kind:function(arm,size=0x54) addr:0x20b8478 func_ov000_020b852c kind:function(arm,size=0x10) addr:0x20b84cc -func_ov000_020b853c kind:function(arm,size=0x14) addr:0x20b84dc +_ZN9ActorNavi19func_ov000_020b853cEv kind:function(arm,size=0x14) addr:0x20b84dc func_ov000_020b8550 kind:function(arm,size=0x48) addr:0x20b84f0 func_ov000_020b8598 kind:function(arm,size=0x40) addr:0x20b8538 func_ov000_020b85d8 kind:function(thumb,size=0x28) addr:0x20b8578 @@ -2450,7 +2450,7 @@ _ZN13ActorNaviBase8vfunc_ccEPi kind:function(arm,size=0x2cc) addr:0x20b8864 _ZN13ActorNaviBase12GetOffsetPosEP5Vec3p kind:function(arm,size=0x1c) addr:0x20b8b30 _ZN13ActorNaviBase8vfunc_38Ev kind:function(arm,size=0x18) addr:0x20b8b4c _ZN13ActorNaviBase8vfunc_d0Ev kind:function(arm,size=0x8c) addr:0x20b8b64 -_ZN13ActorNaviBase19func_ov000_020b8c50Ev kind:function(arm,size=0x48) addr:0x20b8bf0 +_ZN13ActorNaviBase19func_ov000_020b8c50Ei kind:function(arm,size=0x48) addr:0x20b8bf0 _ZN13ActorNaviBase19func_ov000_020b8c98Eiii kind:function(arm,size=0x9c) addr:0x20b8c38 _ZN13ActorNaviBase8vfunc_d4Ev kind:function(arm,size=0x444) addr:0x20b8cd4 _ZN13ActorNaviBase8vfunc_d8Ev kind:function(arm,size=0x4) addr:0x20b9118 diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index 5604893c..c2504f50 100644 --- a/include/Actor/Navi/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp @@ -7,20 +7,22 @@ public: /* 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; + /* 334 */ Vec3p mUnk_334; /* 340 */ unk16 mUnk_340; /* 342 */ unk8 mUnk_342[0x2]; - /* 344 */ unk32 mUnk_344; + /* 344 */ u32 mUnk_344; /* 348 */ unk32 mUnk_348; - /* 34c */ unk8 mUnk_34c[0x68]; + /* 34c */ unk8 mUnk_34c[0x38]; + /* 384 */ Mat3p mUnk_384; + /* 3a8 */ unk8 mUnk_3a8[0xC]; /* 3b4 */ EquipHammer *mHammer; /* 3b8 */ unk32 mUnk_3b8; /* 3bc */ unk32 mUnk_3bc; /* 3c0 */ u8 mUnk_3c0[0x8]; /* 3c8 */ + void func_ov000_020b853c(void); + bool func_ov059_0219933c(u32 param1); void func_ov059_0219a0ac(); void func_ov059_0219aa08(); diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index 7df4559f..27e12ef2 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -70,7 +70,7 @@ public: /* ec */ virtual void vfunc_ec(); /* f0 */ - void func_ov000_020b8c50(); + void func_ov000_020b8c50(unk32); void func_ov000_020b8c98(unk32 param1, unk32 param2, unk32 param3); void TeleportAboveLink(); void func_ov000_020b9770(s32 param1); diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 3d5340ce..7f9f48f8 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -215,6 +215,8 @@ public: // Unknown void func_ov00_020ae4dc(s32 param1); + void func_ov000_020c0c44(void*); + void func_ov000_020c0e5c(void*, unk32); }; extern ItemManager *gItemManager; diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 346d43d8..59506f33 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -41,7 +41,7 @@ public: /* 10 */ bool func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4); - bool func_01ffbf5c(s32 param1, Vec3p *param2, Vec3p *param3, s32 length); + bool func_01ffbf5c(struct UnkStruct* param1, Vec3p *param2, Vec3p *param3, s32 length); bool func_01ffc118(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7); bool func_01ffd1e0(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7); diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index 187100be..65fa2024 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -55,6 +55,10 @@ public: return mState; } + inline bool IsReleased(void) { + return mIsReleased; + } + inline unk32 GetChargeTimer(void) { return mChargeTimer; } diff --git a/src/00_Core/Actor/Navi/ActorNaviBase.cpp b/src/00_Core/Actor/Navi/ActorNaviBase.cpp index 0c681c70..39eb0bb5 100644 --- a/src/00_Core/Actor/Navi/ActorNaviBase.cpp +++ b/src/00_Core/Actor/Navi/ActorNaviBase.cpp @@ -8,7 +8,7 @@ bool ActorNaviBase::vfunc_cc(unk32 *param1) {} void ActorNaviBase::GetOffsetPos(Vec3p *pos) {} unk32 ActorNaviBase::vfunc_38() {} void ActorNaviBase::vfunc_d0() {} -void ActorNaviBase::func_ov000_020b8c50() {} +void ActorNaviBase::func_ov000_020b8c50(unk32) {} void ActorNaviBase::func_ov000_020b8c98(unk32 param1, unk32 param2, unk32 param3) {} void ActorNaviBase::vfunc_d4() {} void ActorNaviBase::vfunc_d8() {} diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp index f272c4e0..14f6cab8 100644 --- a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp +++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp @@ -1,17 +1,317 @@ #include "Actor/Navi/ActorNaviBase.hpp" #include "Actor/Navi/ActorNavi.hpp" #include "Player/PlayerControl.hpp" +#include "Player/PlayerBase.hpp" +#include "Player/LinkStateItem.hpp" #include "Item/ItemManager.hpp" +#include "Map/MapManager.hpp" +#include "DTCM/UnkStruct_027e0fd4.hpp" + +extern unk32 data_ov000_020dc7d0; +extern unk32 data_ov000_020dc7e4; +extern u32 data_ov000_020e9370[]; +extern "C" void Vec3p_RotateY(u32, Vec3p*); +extern "C" void func_ov005_02102c2c(u32 *param_1, int param_2, Vec3p *param_3, int param_4, int param_5, u32 param_6, int param_7, + char param_8, char param_9, char param_10); ARM bool ActorNavi::func_ov059_0219933c(u32 param1) {} ARM void ActorNavi::func_ov059_0219a0ac() {} -ARM void ActorNavi::func_ov059_0219aa08() {} -ARM void ActorNavi::func_ov059_0219aba8(u32 param1) {} -ARM bool ActorNavi::func_ov059_0219af14() {} -ARM bool ActorNavi::func_ov059_0219afc4() {} + +// non-matching +ARM void ActorNavi::func_ov059_0219aa08() { + int iVar1; + s64 lVar2; + u16 uVar3; + u32 uVar4; + Vec3p VStack_60; + Vec3p uStack_54; + Mat3p MStack_48; + Vec3p VStack_24; + + if (this->mUnk_3c0[0] != 0) { + VStack_24.x = this->mPos.x; + VStack_24.y = this->mPos.y + 0x333; // FLOAT_TO_Q20(0.2)? + VStack_24.z = this->mPos.z; + + uVar3 = this->mUnk_340 - 0x4000; // FLOAT_TO_Q20(12.0)? + Mat3p_InitYRotation(&MStack_48, SIN(uVar3), COS(uVar3)); + + uStack_54.x = uStack_54.y = uStack_54.z = this->mUnk_344; + this->mUnk_294.vfunc_38(); + this->mUnk_294.SetTransform(&uStack_54, &MStack_48, &VStack_24); + lVar2 = 0x666 * this->mUnk_344; + uVar4 = lVar2; + + this->mUnk_334.x = ROUND_Q20(uVar4) | + ((this->mUnk_344 >> 0x1F) * 0x666 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000; + + Mat3p_MultiplyVec(&this->mUnk_334, &this->mUnk_384, &this->mUnk_334); + Vec3p_RotateY(uVar3, &this->mUnk_334); + Vec3p_Add(&this->mUnk_334, &VStack_24, &this->mUnk_334); + VStack_60.z = this->mUnk_334.z; + VStack_60.x = this->mUnk_334.x; + lVar2 = 0x333 * this->mUnk_344; + uVar4 = lVar2; + VStack_60.y = this->mUnk_334.y + 0x800; + uVar4 = ROUND_Q20(uVar4) | + ((this->mUnk_344 >> 0x1F) * 0x333 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000; + func_ov005_02102c2c(&data_ov000_020e9370[0], 0, &VStack_60, uVar4, uVar4, 0, 0x10, 0, 0, 0); + } +} + +struct UnkStruct { + /* 00 */ u16 mUnk_00; + /* 02 */ unk16 mUnk_02; + /* 04 */ unk16 mUnk_04; + /* 06 */ unk16 mUnk_06; + /* 08 */ unk16 mUnk_08; + /* 09 */ unk8 mUnk_09; + /* 0a */ unk8 mUnk_0a; + /* 0b */ unk8 mUnk_0b; + /* 0c */ unk8 mUnk_0c; + /* 0d */ unk8 mUnk_0d; + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ unk8 mUnk_10; + /* 11 */ unk8 mUnk_11; + /* 12 */ unk8 mUnk_12; + /* 13 */ unk8 mUnk_13; + /* 14 */ Vec3p mUnk_14; + /* 14 */ unk8 mUnk_20[4]; + /* 24 */ +}; + +// non-matching +ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { + bool bVar1; + LinkStateItem *uVar1; + ItemManager *pIVar3; + int uVar4; + int iVar5; + int uVar6; + bool bVar7; + Vec3p local_134; + Vec3p local_128; + Vec3p local_11c; + Vec3p local_110; + Vec3p local_104; + Vec3p local_e4; + + UnkStruct auStack_e0; + u16 local_bc; + unk16 local_ba; + unk16 local_b8; + unk16 local_b6; + unk16 local_b4; + unk32 local_92; + unk32 local_91; + unk32 local_90; + unk32 local_8f; + unk32 local_88; + unk32 local_87; + unk32 local_86; + unk32 local_85; + unk32 local_84; + unk32 local_83; + UnkStruct auStack_80; + u16 local_5c; + unk16 local_5a; + unk16 local_58; + unk16 local_56; + unk16 local_54; + unk32 local_32; + unk32 local_31; + unk32 local_30; + unk32 local_2f; + unk32 local_28; + unk32 local_27; + unk32 local_26; + unk32 local_25; + unk32 local_24; + unk32 local_23; + ItemManager *puVar1; + + switch (param1) { + case 3: + uVar1 = GetLinkStateItem(); + + if (uVar1->mUnk_25[2] != 0 && uVar1->mUnk_25[3] != 0) { + break; + } + + local_11c.x = data_027e0fd4->mUnk_020.pos.x; + local_11c.z = data_027e0fd4->mUnk_020.pos.z; + + iVar5 = gPlayerPos.y + FLOAT_TO_Q20(0.5); + uVar4 = this->mPos.x; + uVar6 = this->mPos.z; + + auStack_80.mUnk_00 = -1; + auStack_80.mUnk_02 = 0; + auStack_80.mUnk_04 = 0; + auStack_80.mUnk_06 = 0; + auStack_80.mUnk_08 = 0; + auStack_80.mUnk_09 = 0; + auStack_80.mUnk_0a = 0; + auStack_80.mUnk_0b = 0; + auStack_80.mUnk_0c = 0; + auStack_80.mUnk_0d = 0; + auStack_80.mUnk_0e = 0; + auStack_80.mUnk_0f = 0; + auStack_80.mUnk_10 = 0; + auStack_80.mUnk_11 = 0; + auStack_80.mUnk_12 = 0; + local_11c.y = iVar5; + + local_110.x = uVar4; + local_110.y = iVar5; + // local_110.z = uVar6; + + local_e4.x = local_11c.x; + local_e4.y = iVar5; + local_e4.z = local_11c.z; + + local_5a = local_5c; + local_58 = local_5c; + local_56 = local_5c; + + if (gMapManager->func_01ffbf5c(&auStack_80, &local_110, &local_11c, this->mUnk_08c.size) ? false : true) { + this->mPos = local_e4; + this->mPrevPos = local_e4; + this->mUnk_158 = local_e4; + } else { + this->mUnk_158.x = uVar4; + this->mUnk_158.y = iVar5; + this->mUnk_158.z = uVar6; + } + break; + case 4: + uVar1 = GetLinkStateItem(); + + if (uVar1->mUnk_25[2] != 0 && uVar1->mUnk_25[3] != 0) { + break; + } + + auStack_e0.mUnk_14.x = data_027e0fd4->mUnk_020.pos.x; + auStack_e0.mUnk_14.y = gPlayerPos.y + FLOAT_TO_Q20(0.5); + auStack_e0.mUnk_14.z = data_027e0fd4->mUnk_020.pos.z; + + bVar1 = gPlayerControl->UpdateAimWorld(&local_104); + bVar7 = false; + local_104.y = auStack_e0.mUnk_14.y; + auStack_80.mUnk_00 = -1; + auStack_80.mUnk_02 = 0; + auStack_80.mUnk_04 = 0; + auStack_80.mUnk_06 = 0; + auStack_80.mUnk_08 = 0; + auStack_80.mUnk_09 = 0; + auStack_80.mUnk_0a = 0; + auStack_80.mUnk_0b = 0; + auStack_80.mUnk_0c = 0; + auStack_80.mUnk_0d = 0; + auStack_80.mUnk_0e = 0; + auStack_80.mUnk_0f = 0; + auStack_80.mUnk_10 = 0; + auStack_80.mUnk_11 = 0; + auStack_80.mUnk_12 = 0; + local_ba = local_bc; + local_b8 = local_bc; + local_b6 = local_bc; + + if (bVar1) { + local_128 = auStack_e0.mUnk_14; + + // local_134.x = local_104.x; + // local_134.y = auStack_e0.mUnk_14.y; + // local_134.z = local_104.z; + + if (!gMapManager->func_01ffbf5c(&auStack_e0, &local_134, &local_128, this->mUnk_08c.size)) { + bVar7 = true; + } + } + + if (!bVar7) { + this->mPos = auStack_e0.mUnk_14; + this->mPrevPos = auStack_e0.mUnk_14; + this->mUnk_158 = auStack_e0.mUnk_14; + } + break; + default: + this->func_ov000_020b853c(); + break; + } + + pIVar3 = gItemManager; + switch (param1) { + case 3: + pIVar3->func_ov00_020ad538(data_ov000_020dc7d0); + pIVar3->func_ov000_020c0c44(&this->mUnk_2f0); + pIVar3->func_ov000_020c0e5c(&this->mUnk_2f0, 0); + break; + case 4: + this->mUnk_348 = 0; + pIVar3->func_ov00_020ad538(data_ov000_020dc7e4); + pIVar3->func_ov000_020c0c44(&this->mUnk_2f0); + pIVar3->func_ov000_020c0e5c(&this->mUnk_2f0, 1); + break; + default: + break; + } +} + +ARM bool ActorNavi::func_ov059_0219af14() { + int iVar1; + + if (this->mUnk_3c0[2] != 0) { + return false; + } + + iVar1 = this->mUnk_130; + + switch (this->mUnk_130) { + case 3: + if (this->mUnk_348 > 0) { + this->mVel.x = 0; + this->mVel.y = 0; + this->mVel.z = 0; + this->mUnk_348--; + return true; + } + break; + case 4: + if (this->mHammer->IsReleased()) { + this->mVel.y = this->mUnk_158.y - this->mPos.y; + return true; + } else { + this->func_ov000_020b8c50(0x3000); + this->mVel.y = this->mUnk_158.y - this->mPos.y; + return true; + } + default: + break; + } + + return false; +} + +ARM bool ActorNavi::func_ov059_0219afc4() { + this->mUnk_3c0[2] = 0; + this->func_ov059_0219933c(0); + + switch (this->mUnk_130) { + case 3: + this->mUnk_158.y = gPlayerPos.y + 0x1666; + return true; + case 4: + return true; + default: + break; + } + + return false; +} ARM void ActorNavi::func_ov059_0219b020() { - if (gItemManager->GetEquippedFairy() != FairyId_Courage) { ItemManager* itemMgr = gItemManager; diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index 806544e1..b126f292 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -8,7 +8,6 @@ #include "Player/PlayerLink.hpp" extern "C" void ApproachAngle_thunk(s16 *src, s16 dst, u32 param3); -extern "C" void func_ov000_020b853c(ActorNavi *); struct EquipHammer_UnkStruct { /* 00 */ unk8 mUnk_00[0x20]; @@ -243,5 +242,5 @@ ARM EquipHammer *GetEquipHammer() { } ARM void LinkStateItem::StopUsingHammer() { - func_ov000_020b853c(gItemManager->GetFairy(FairyId_Courage)); + gItemManager->GetFairy(FairyId_Courage)->func_ov000_020b853c(); } diff --git a/src/ITCM/Map/MapManager.cpp b/src/ITCM/Map/MapManager.cpp index 1ed5d73e..befbe174 100644 --- a/src/ITCM/Map/MapManager.cpp +++ b/src/ITCM/Map/MapManager.cpp @@ -1,6 +1,6 @@ #include "Map/MapManager.hpp" bool MapManager::func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4) {} -bool MapManager::func_01ffbf5c(s32 param1, Vec3p *param2, Vec3p *param3, s32 length) {} +bool MapManager::func_01ffbf5c(struct UnkStruct* param1, Vec3p *param2, Vec3p *param3, s32 length) {} bool MapManager::func_01ffc118(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7) {} bool MapManager::func_01ffd1e0(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7) {} From 7d783ffb12a59965f7a288ac9e5bfc4caccf3d1a Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Wed, 12 Feb 2025 20:19:48 +0100 Subject: [PATCH 09/16] format --- include/Actor/Navi/ActorNaviBase.hpp | 2 +- include/DTCM/UnkStruct_027e0fd4.hpp | 2 +- include/Item/ItemManager.hpp | 4 +- include/Map/MapManager.hpp | 2 +- include/Player/EquipHammer.hpp | 4 +- include/Player/LinkStateBase.hpp | 2 +- src/00_Core/Player/LinkStateBase.cpp | 2 +- src/59_Hammer/Actor/Navi/ActorNaviBase.cpp | 75 ++++++++++------------ src/ITCM/Map/MapManager.cpp | 2 +- 9 files changed, 43 insertions(+), 52 deletions(-) diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp index 27e12ef2..65479d31 100644 --- a/include/Actor/Navi/ActorNaviBase.hpp +++ b/include/Actor/Navi/ActorNaviBase.hpp @@ -34,7 +34,7 @@ public: /* 288 */ unk8 mUnk_288[0x2]; /* 28a */ unk16 mUnk_28a; /* 28c */ unk8 mUnk_28c[0x8]; - /* 294 */ + /* 294 */ /* 00 */ virtual ~ActorNaviBase() override; /* 08 */ virtual bool vfunc_08() override; diff --git a/include/DTCM/UnkStruct_027e0fd4.hpp b/include/DTCM/UnkStruct_027e0fd4.hpp index 42e254ea..e8e89954 100644 --- a/include/DTCM/UnkStruct_027e0fd4.hpp +++ b/include/DTCM/UnkStruct_027e0fd4.hpp @@ -129,4 +129,4 @@ public: bool func_ov000_020b6e70(); }; -extern UnkStruct_027e0fd4* data_027e0fd4; +extern UnkStruct_027e0fd4 *data_027e0fd4; diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 7f9f48f8..8aaf5781 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -215,8 +215,8 @@ public: // Unknown void func_ov00_020ae4dc(s32 param1); - void func_ov000_020c0c44(void*); - void func_ov000_020c0e5c(void*, unk32); + void func_ov000_020c0c44(void *); + void func_ov000_020c0e5c(void *, unk32); }; extern ItemManager *gItemManager; diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 59506f33..9363d408 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -41,7 +41,7 @@ public: /* 10 */ bool func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4); - bool func_01ffbf5c(struct UnkStruct* param1, Vec3p *param2, Vec3p *param3, s32 length); + bool func_01ffbf5c(struct UnkStruct *param1, Vec3p *param2, Vec3p *param3, s32 length); bool func_01ffc118(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7); bool func_01ffd1e0(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7); diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index 65fa2024..81543dbc 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -9,9 +9,9 @@ //! TODO: change "state" to "flags"? see `vfunc_2c` typedef enum EquipHammerState { - /* 0x00000 */ EQUIP_HAMMER_STATE_IDLE = (0 << 16), + /* 0x00000 */ EQUIP_HAMMER_STATE_IDLE = (0 << 16), /* 0x10000 */ EQUIP_HAMMER_STATE_CHARGING = (1 << 16), - /* 0x20000 */ EQUIP_HAMMER_STATE_CHARGED = (2 << 16), + /* 0x20000 */ EQUIP_HAMMER_STATE_CHARGED = (2 << 16), } EquipHammerState; class EquipHammer : public EquipItem { diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index 3fa02e4e..c777fdfb 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.hpp @@ -88,7 +88,7 @@ public: void func_ov00_020a8844(Vec3p *param1, bool param2, bool param3); void func_ov00_020a8954(bool param1, unk32 *param2); void func_ov00_020a8994(); - void func_ov00_020a89bc(unk32* param1, unk32 param2); + 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_020a8a90(unk32 param1); diff --git a/src/00_Core/Player/LinkStateBase.cpp b/src/00_Core/Player/LinkStateBase.cpp index d82f334c..dce6b0d5 100644 --- a/src/00_Core/Player/LinkStateBase.cpp +++ b/src/00_Core/Player/LinkStateBase.cpp @@ -44,7 +44,7 @@ bool LinkStateBase::func_ov00_020a8774(Vec3p *param1, s32 angle) {} void LinkStateBase::func_ov00_020a8844(Vec3p *param1, bool param2, bool param3) {} void LinkStateBase::func_ov00_020a8954(bool param1, unk32 *param2) {} void LinkStateBase::func_ov00_020a8994() {} -void LinkStateBase::func_ov00_020a89bc(unk32* param1, unk32 param2) {} +void LinkStateBase::func_ov00_020a89bc(unk32 *param1, unk32 param2) {} void LinkStateBase::func_ov00_020a8a08(unk32 param1) {} void LinkStateBase::func_ov00_020a8a4c(unk32 param1, unk32 param2) {} void LinkStateBase::func_ov00_020a8a90(unk32 param1) {} diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp index 14f6cab8..d8fc5425 100644 --- a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp +++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp @@ -1,18 +1,18 @@ #include "Actor/Navi/ActorNaviBase.hpp" #include "Actor/Navi/ActorNavi.hpp" -#include "Player/PlayerControl.hpp" -#include "Player/PlayerBase.hpp" -#include "Player/LinkStateItem.hpp" +#include "DTCM/UnkStruct_027e0fd4.hpp" #include "Item/ItemManager.hpp" #include "Map/MapManager.hpp" -#include "DTCM/UnkStruct_027e0fd4.hpp" +#include "Player/LinkStateItem.hpp" +#include "Player/PlayerBase.hpp" +#include "Player/PlayerControl.hpp" extern unk32 data_ov000_020dc7d0; extern unk32 data_ov000_020dc7e4; extern u32 data_ov000_020e9370[]; -extern "C" void Vec3p_RotateY(u32, Vec3p*); -extern "C" void func_ov005_02102c2c(u32 *param_1, int param_2, Vec3p *param_3, int param_4, int param_5, u32 param_6, int param_7, - char param_8, char param_9, char param_10); +extern "C" void Vec3p_RotateY(u32, Vec3p *); +extern "C" void func_ov005_02102c2c(u32 *param_1, int param_2, Vec3p *param_3, int param_4, int param_5, u32 param_6, + int param_7, char param_8, char param_9, char param_10); ARM bool ActorNavi::func_ov059_0219933c(u32 param1) {} ARM void ActorNavi::func_ov059_0219a0ac() {} @@ -32,7 +32,7 @@ ARM void ActorNavi::func_ov059_0219aa08() { VStack_24.x = this->mPos.x; VStack_24.y = this->mPos.y + 0x333; // FLOAT_TO_Q20(0.2)? VStack_24.z = this->mPos.z; - + uVar3 = this->mUnk_340 - 0x4000; // FLOAT_TO_Q20(12.0)? Mat3p_InitYRotation(&MStack_48, SIN(uVar3), COS(uVar3)); @@ -42,19 +42,18 @@ ARM void ActorNavi::func_ov059_0219aa08() { lVar2 = 0x666 * this->mUnk_344; uVar4 = lVar2; - this->mUnk_334.x = ROUND_Q20(uVar4) | - ((this->mUnk_344 >> 0x1F) * 0x666 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000; + this->mUnk_334.x = + ROUND_Q20(uVar4) | ((this->mUnk_344 >> 0x1F) * 0x666 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000; Mat3p_MultiplyVec(&this->mUnk_334, &this->mUnk_384, &this->mUnk_334); Vec3p_RotateY(uVar3, &this->mUnk_334); Vec3p_Add(&this->mUnk_334, &VStack_24, &this->mUnk_334); VStack_60.z = this->mUnk_334.z; VStack_60.x = this->mUnk_334.x; - lVar2 = 0x333 * this->mUnk_344; - uVar4 = lVar2; + lVar2 = 0x333 * this->mUnk_344; + uVar4 = lVar2; VStack_60.y = this->mUnk_334.y + 0x800; - uVar4 = ROUND_Q20(uVar4) | - ((this->mUnk_344 >> 0x1F) * 0x333 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000; + uVar4 = ROUND_Q20(uVar4) | ((this->mUnk_344 >> 0x1F) * 0x333 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000; func_ov005_02102c2c(&data_ov000_020e9370[0], 0, &VStack_60, uVar4, uVar4, 0, 0x10, 0, 0, 0); } } @@ -161,7 +160,7 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { auStack_80.mUnk_10 = 0; auStack_80.mUnk_11 = 0; auStack_80.mUnk_12 = 0; - local_11c.y = iVar5; + local_11c.y = iVar5; local_110.x = uVar4; local_110.y = iVar5; @@ -176,7 +175,7 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { local_56 = local_5c; if (gMapManager->func_01ffbf5c(&auStack_80, &local_110, &local_11c, this->mUnk_08c.size) ? false : true) { - this->mPos = local_e4; + this->mPos = local_e4; this->mPrevPos = local_e4; this->mUnk_158 = local_e4; } else { @@ -196,9 +195,9 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { auStack_e0.mUnk_14.y = gPlayerPos.y + FLOAT_TO_Q20(0.5); auStack_e0.mUnk_14.z = data_027e0fd4->mUnk_020.pos.z; - bVar1 = gPlayerControl->UpdateAimWorld(&local_104); - bVar7 = false; - local_104.y = auStack_e0.mUnk_14.y; + bVar1 = gPlayerControl->UpdateAimWorld(&local_104); + bVar7 = false; + local_104.y = auStack_e0.mUnk_14.y; auStack_80.mUnk_00 = -1; auStack_80.mUnk_02 = 0; auStack_80.mUnk_04 = 0; @@ -214,9 +213,9 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { auStack_80.mUnk_10 = 0; auStack_80.mUnk_11 = 0; auStack_80.mUnk_12 = 0; - local_ba = local_bc; - local_b8 = local_bc; - local_b6 = local_bc; + local_ba = local_bc; + local_b8 = local_bc; + local_b6 = local_bc; if (bVar1) { local_128 = auStack_e0.mUnk_14; @@ -231,14 +230,12 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { } if (!bVar7) { - this->mPos = auStack_e0.mUnk_14; + this->mPos = auStack_e0.mUnk_14; this->mPrevPos = auStack_e0.mUnk_14; this->mUnk_158 = auStack_e0.mUnk_14; } break; - default: - this->func_ov000_020b853c(); - break; + default: this->func_ov000_020b853c(); break; } pIVar3 = gItemManager; @@ -254,14 +251,13 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { pIVar3->func_ov000_020c0c44(&this->mUnk_2f0); pIVar3->func_ov000_020c0e5c(&this->mUnk_2f0, 1); break; - default: - break; + default: break; } } ARM bool ActorNavi::func_ov059_0219af14() { int iVar1; - + if (this->mUnk_3c0[2] != 0) { return false; } @@ -287,25 +283,20 @@ ARM bool ActorNavi::func_ov059_0219af14() { this->mVel.y = this->mUnk_158.y - this->mPos.y; return true; } - default: - break; + default: break; } return false; } -ARM bool ActorNavi::func_ov059_0219afc4() { +ARM bool ActorNavi::func_ov059_0219afc4() { this->mUnk_3c0[2] = 0; this->func_ov059_0219933c(0); switch (this->mUnk_130) { - case 3: - this->mUnk_158.y = gPlayerPos.y + 0x1666; - return true; - case 4: - return true; - default: - break; + case 3: this->mUnk_158.y = gPlayerPos.y + 0x1666; return true; + case 4: return true; + default: break; } return false; @@ -313,16 +304,16 @@ ARM bool ActorNavi::func_ov059_0219afc4() { ARM void ActorNavi::func_ov059_0219b020() { if (gItemManager->GetEquippedFairy() != FairyId_Courage) { - ItemManager* itemMgr = gItemManager; + ItemManager *itemMgr = gItemManager; this->mPrevPos = this->mUnk_158 = this->mPos = itemMgr->GetFairy(itemMgr->GetEquippedFairy())->mPos; } else { this->mUnk_158 = this->mPos; } - + gPlayerControl->mAimWorld = this->mUnk_158; - this->mHammer = GetEquipHammer(); + this->mHammer = GetEquipHammer(); this->mUnk_3c0[0] = 0x0; this->mUnk_3c0[2] = 0x0; this->SetActive(3); diff --git a/src/ITCM/Map/MapManager.cpp b/src/ITCM/Map/MapManager.cpp index befbe174..467b0990 100644 --- a/src/ITCM/Map/MapManager.cpp +++ b/src/ITCM/Map/MapManager.cpp @@ -1,6 +1,6 @@ #include "Map/MapManager.hpp" bool MapManager::func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4) {} -bool MapManager::func_01ffbf5c(struct UnkStruct* param1, Vec3p *param2, Vec3p *param3, s32 length) {} +bool MapManager::func_01ffbf5c(struct UnkStruct *param1, Vec3p *param2, Vec3p *param3, s32 length) {} bool MapManager::func_01ffc118(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7) {} bool MapManager::func_01ffd1e0(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7) {} From a1316f570de599c6656faad47621b125b0c7a8be Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sun, 29 Jun 2025 22:10:20 +0200 Subject: [PATCH 10/16] fixed some issues --- include/Actor/Navi/ActorNavi.hpp | 2 +- src/00_Core/Actor/Navi/ActorNavi.cpp | 2 +- src/59_Hammer/Actor/Navi/ActorNaviBase.cpp | 22 +++++++++++----------- src/59_Hammer/Player/EquipHammer.cpp | 7 ++++--- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index c3b941a1..a4880d40 100644 --- a/include/Actor/Navi/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp @@ -52,7 +52,7 @@ public: /* 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; + /* dc */ virtual void SetActive(unk32 active) override; /* e0 */ virtual void vfunc_e0() override; /* e8 */ virtual void vfunc_e8() override; /* ec */ virtual void vfunc_ec() override; diff --git a/src/00_Core/Actor/Navi/ActorNavi.cpp b/src/00_Core/Actor/Navi/ActorNavi.cpp index 7c195178..41a2015a 100644 --- a/src/00_Core/Actor/Navi/ActorNavi.cpp +++ b/src/00_Core/Actor/Navi/ActorNavi.cpp @@ -18,7 +18,7 @@ FairyId ActorNavi::GetFairyId() {} s32 ActorNavi::vfunc_b8() {} void ActorNavi::vfunc_d4() {} void ActorNavi::vfunc_d0() {} -void ActorNavi::SetActive(bool active) {} +void ActorNavi::SetActive(unk32 active) {} void ActorNavi::vfunc_e0() {} void ActorNavi::vfunc_d8() {} void ActorNavi::vfunc_20(bool param1) {} diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp index d8fc5425..29af8f47 100644 --- a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp +++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp @@ -177,11 +177,11 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { if (gMapManager->func_01ffbf5c(&auStack_80, &local_110, &local_11c, this->mUnk_08c.size) ? false : true) { this->mPos = local_e4; this->mPrevPos = local_e4; - this->mUnk_158 = local_e4; + this->mOffsetPos = local_e4; } else { - this->mUnk_158.x = uVar4; - this->mUnk_158.y = iVar5; - this->mUnk_158.z = uVar6; + this->mOffsetPos.x = uVar4; + this->mOffsetPos.y = iVar5; + this->mOffsetPos.z = uVar6; } break; case 4: @@ -232,7 +232,7 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { if (!bVar7) { this->mPos = auStack_e0.mUnk_14; this->mPrevPos = auStack_e0.mUnk_14; - this->mUnk_158 = auStack_e0.mUnk_14; + this->mOffsetPos = auStack_e0.mUnk_14; } break; default: this->func_ov000_020b853c(); break; @@ -276,11 +276,11 @@ ARM bool ActorNavi::func_ov059_0219af14() { break; case 4: if (this->mHammer->IsReleased()) { - this->mVel.y = this->mUnk_158.y - this->mPos.y; + this->mVel.y = this->mOffsetPos.y - this->mPos.y; return true; } else { this->func_ov000_020b8c50(0x3000); - this->mVel.y = this->mUnk_158.y - this->mPos.y; + this->mVel.y = this->mOffsetPos.y - this->mPos.y; return true; } default: break; @@ -294,7 +294,7 @@ ARM bool ActorNavi::func_ov059_0219afc4() { this->func_ov059_0219933c(0); switch (this->mUnk_130) { - case 3: this->mUnk_158.y = gPlayerPos.y + 0x1666; return true; + case 3: this->mOffsetPos.y = gPlayerPos.y + 0x1666; return true; case 4: return true; default: break; } @@ -306,12 +306,12 @@ ARM void ActorNavi::func_ov059_0219b020() { if (gItemManager->GetEquippedFairy() != FairyId_Courage) { ItemManager *itemMgr = gItemManager; - this->mPrevPos = this->mUnk_158 = this->mPos = itemMgr->GetFairy(itemMgr->GetEquippedFairy())->mPos; + this->mPrevPos = this->mOffsetPos = this->mPos = itemMgr->GetFairy(itemMgr->GetEquippedFairy())->mPos; } else { - this->mUnk_158 = this->mPos; + this->mOffsetPos = this->mPos; } - gPlayerControl->mAimWorld = this->mUnk_158; + gPlayerControl->mAimWorld = this->mOffsetPos; this->mHammer = GetEquipHammer(); this->mUnk_3c0[0] = 0x0; diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index b126f292..842dff18 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -6,6 +6,7 @@ #include "Player/LinkStateItem.hpp" #include "Player/PlayerControl.hpp" #include "Player/PlayerLink.hpp" +#include "Actor/Navi/ActorNavi.hpp" extern "C" void ApproachAngle_thunk(s16 *src, s16 dst, u32 param3); @@ -38,7 +39,7 @@ ARM bool EquipHammer::IsUsable(unk32 param1) const { return false; } - pAVar3 = gItemManager->GetFairy(FairyId_Courage); + pAVar3 = (ActorNavi*)gItemManager->GetFairy(FairyId_Courage); if (pAVar3 == NULL || pAVar3->mUnk_3b8 != 0) { return false; @@ -192,7 +193,7 @@ ARM void LinkStateItem::func_ov059_021990a4() { } pEVar4 = GetEquipHammer(); - pAVar5 = gItemManager->GetFairy(FairyId_Courage); + pAVar5 = (ActorNavi*)gItemManager->GetFairy(FairyId_Courage); if (CHECK_0219b160(data_ov059_0219b160.mUnk_20)) { this->mUnk_38 = gPlayerControl->mAimWorld; @@ -242,5 +243,5 @@ ARM EquipHammer *GetEquipHammer() { } ARM void LinkStateItem::StopUsingHammer() { - gItemManager->GetFairy(FairyId_Courage)->func_ov000_020b853c(); + ((ActorNavi*)gItemManager->GetFairy(FairyId_Courage))->func_ov000_020b853c(); } From 289e9153e672d66893a7d1489da3a2cb67b38ca2 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 1 Jul 2025 01:15:32 +0200 Subject: [PATCH 11/16] format --- src/59_Hammer/Actor/Navi/ActorNaviBase.cpp | 8 ++++---- src/59_Hammer/Player/EquipHammer.cpp | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp index 29af8f47..84f4913c 100644 --- a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp +++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp @@ -175,8 +175,8 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { local_56 = local_5c; if (gMapManager->func_01ffbf5c(&auStack_80, &local_110, &local_11c, this->mUnk_08c.size) ? false : true) { - this->mPos = local_e4; - this->mPrevPos = local_e4; + this->mPos = local_e4; + this->mPrevPos = local_e4; this->mOffsetPos = local_e4; } else { this->mOffsetPos.x = uVar4; @@ -230,8 +230,8 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { } if (!bVar7) { - this->mPos = auStack_e0.mUnk_14; - this->mPrevPos = auStack_e0.mUnk_14; + this->mPos = auStack_e0.mUnk_14; + this->mPrevPos = auStack_e0.mUnk_14; this->mOffsetPos = auStack_e0.mUnk_14; } break; diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index 842dff18..a369aaa0 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -1,4 +1,5 @@ #include "Player/EquipHammer.hpp" +#include "Actor/Navi/ActorNavi.hpp" #include "DTCM/UnkStruct_027e0d38.hpp" #include "DTCM/UnkStruct_027e0fd4.hpp" #include "Item/ItemManager.hpp" @@ -6,7 +7,6 @@ #include "Player/LinkStateItem.hpp" #include "Player/PlayerControl.hpp" #include "Player/PlayerLink.hpp" -#include "Actor/Navi/ActorNavi.hpp" extern "C" void ApproachAngle_thunk(s16 *src, s16 dst, u32 param3); @@ -39,7 +39,7 @@ ARM bool EquipHammer::IsUsable(unk32 param1) const { return false; } - pAVar3 = (ActorNavi*)gItemManager->GetFairy(FairyId_Courage); + pAVar3 = (ActorNavi *) gItemManager->GetFairy(FairyId_Courage); if (pAVar3 == NULL || pAVar3->mUnk_3b8 != 0) { return false; @@ -193,7 +193,7 @@ ARM void LinkStateItem::func_ov059_021990a4() { } pEVar4 = GetEquipHammer(); - pAVar5 = (ActorNavi*)gItemManager->GetFairy(FairyId_Courage); + pAVar5 = (ActorNavi *) gItemManager->GetFairy(FairyId_Courage); if (CHECK_0219b160(data_ov059_0219b160.mUnk_20)) { this->mUnk_38 = gPlayerControl->mAimWorld; @@ -243,5 +243,5 @@ ARM EquipHammer *GetEquipHammer() { } ARM void LinkStateItem::StopUsingHammer() { - ((ActorNavi*)gItemManager->GetFairy(FairyId_Courage))->func_ov000_020b853c(); + ((ActorNavi *) gItemManager->GetFairy(FairyId_Courage))->func_ov000_020b853c(); } From 2fcadd277d2523954ed35f10e234bcfdefa341b3 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 1 Jul 2025 01:25:08 +0200 Subject: [PATCH 12/16] fix playercontrol issue --- include/DTCM/UnkStruct_027e0d38.hpp | 2 +- src/00_Core/Player/PlayerControl.cpp | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/include/DTCM/UnkStruct_027e0d38.hpp b/include/DTCM/UnkStruct_027e0d38.hpp index 352c283f..37532ba8 100644 --- a/include/DTCM/UnkStruct_027e0d38.hpp +++ b/include/DTCM/UnkStruct_027e0d38.hpp @@ -6,7 +6,7 @@ struct UnkStruct_027e0d38_UnkC { /* 00 */ unk32 mUnk_00; - unk32 func_ov000_020a5e9c(void); + s32 func_ov000_020a5e9c(void); }; struct UnkStruct_027e0d38_Unk28 { diff --git a/src/00_Core/Player/PlayerControl.cpp b/src/00_Core/Player/PlayerControl.cpp index 406fe1da..10b41064 100644 --- a/src/00_Core/Player/PlayerControl.cpp +++ b/src/00_Core/Player/PlayerControl.cpp @@ -600,12 +600,10 @@ ARM void PlayerControl::ResetAim() { mAim = gVec3p_ZERO; } -extern "C" s32 func_ov000_020a5e9c(unk32 *param1); - ARM bool PlayerControl::UpdateAimWorld(Vec3p *param1) { Vec3p pos = gPlayerPos; - s32 iVar2 = func_ov000_020a5e9c(&data_027e0d38->mUnk_0c); + s32 iVar2 = data_027e0d38->mUnk_0c.func_ov000_020a5e9c(); if (iVar2 == 0x2f && *(s32 *) (*(s32 *) ((s32) data_027e0f64 + 0x4) + 0x15c) == 0x31) { return this->func_ov024_02178348(param1); } From 57595b1cd2843a09bf1911aee5d7db70a39b1f94 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 1 Jul 2025 01:50:11 +0200 Subject: [PATCH 13/16] fixed SetActive issue --- config/eur/arm9/overlays/ov000/symbols.txt | 2 +- config/usa/arm9/overlays/ov000/symbols.txt | 2 +- include/Actor/Navi/ActorNavi.hpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 07310fd2..8253c25e 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -2454,7 +2454,7 @@ _ZN13ActorNaviBase19func_ov000_020b8c50Ei kind:function(arm,size=0x48) addr:0x20 _ZN13ActorNaviBase19func_ov000_020b8c98Eiii kind:function(arm,size=0x9c) addr:0x20b8c98 _ZN13ActorNaviBase8vfunc_d4Ev kind:function(arm,size=0x444) addr:0x20b8d34 _ZN13ActorNaviBase8vfunc_d8Ev kind:function(arm,size=0x4) addr:0x20b9178 -_ZN13ActorNaviBase9SetActiveEb kind:function(arm,size=0x15c) addr:0x20b917c +_ZN13ActorNaviBase9SetActiveEi kind:function(arm,size=0x15c) addr:0x20b917c _ZN13ActorNaviBase17TeleportAboveLinkEv kind:function(arm,size=0x58) addr:0x20b92d8 _ZN13ActorNaviBase8vfunc_e0Ev kind:function(arm,size=0x42c) addr:0x20b9330 _ZN13ActorNaviBase8vfunc_e4Ev kind:function(arm,size=0x14) addr:0x20b975c diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index a61cb97b..8b455cf0 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -2454,7 +2454,7 @@ _ZN13ActorNaviBase19func_ov000_020b8c50Ei kind:function(arm,size=0x48) addr:0x20 _ZN13ActorNaviBase19func_ov000_020b8c98Eiii kind:function(arm,size=0x9c) addr:0x20b8c38 _ZN13ActorNaviBase8vfunc_d4Ev kind:function(arm,size=0x444) addr:0x20b8cd4 _ZN13ActorNaviBase8vfunc_d8Ev kind:function(arm,size=0x4) addr:0x20b9118 -_ZN13ActorNaviBase9SetActiveEb kind:function(arm,size=0x15c) addr:0x20b911c +_ZN13ActorNaviBase9SetActiveEi kind:function(arm,size=0x15c) addr:0x20b911c _ZN13ActorNaviBase17TeleportAboveLinkEv kind:function(arm,size=0x58) addr:0x20b9278 _ZN13ActorNaviBase8vfunc_e0Ev kind:function(arm,size=0x42c) addr:0x20b92d0 _ZN13ActorNaviBase8vfunc_e4Ev kind:function(arm,size=0x14) addr:0x20b96fc diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp index a4880d40..1a15e666 100644 --- a/include/Actor/Navi/ActorNavi.hpp +++ b/include/Actor/Navi/ActorNavi.hpp @@ -59,7 +59,7 @@ public: static ActorNavi *Create(); void func_ov000_020b8200(); - void func_ov000_020b853c(void); + void func_ov000_020b853c(); bool func_ov059_0219933c(u32 param1); void func_ov059_0219a0ac(); From fc678172685705dfbbd6ce264331a14bd0b4ba9c Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 1 Jul 2025 02:18:29 +0200 Subject: [PATCH 14/16] add other sections + usa delink --- config/eur/arm9/overlays/ov059/delinks.txt | 3 +++ config/usa/arm9/overlays/ov059/delinks.txt | 8 ++++++++ src/59_Hammer/Player/EquipHammer.cpp | 2 ++ 3 files changed, 13 insertions(+) diff --git a/config/eur/arm9/overlays/ov059/delinks.txt b/config/eur/arm9/overlays/ov059/delinks.txt index e32ebbb5..69f9561e 100644 --- a/config/eur/arm9/overlays/ov059/delinks.txt +++ b/config/eur/arm9/overlays/ov059/delinks.txt @@ -7,6 +7,9 @@ src/59_Hammer/Player/EquipHammer.cpp: .text start:0x02198d00 end:0x0219933c + .data start:0x0219b140 end:0x0219b180 src/59_Hammer/Actor/Navi/ActorNaviBase.cpp: .text start:0x0219933c end:0x0219b110 + .rodata start:0x0219b110 end:0x0219b124 + .ctor start:0x0219b124 end:0x0219b128 diff --git a/config/usa/arm9/overlays/ov059/delinks.txt b/config/usa/arm9/overlays/ov059/delinks.txt index 10677e25..9e1114d5 100644 --- a/config/usa/arm9/overlays/ov059/delinks.txt +++ b/config/usa/arm9/overlays/ov059/delinks.txt @@ -4,3 +4,11 @@ .data start:0x0219b0a0 end:0x0219b120 kind:data align:32 .bss start:0x0219b120 end:0x0219b120 kind:bss align:32 +src/59_Hammer/Player/EquipHammer.cpp: + .text start:0x02198c60 end:0x0219929c + .data start:0x0219b0a0 end:0x0219b0e0 + +src/59_Hammer/Actor/Navi/ActorNaviBase.cpp: + .text start:0x0219929c end:0x0219b070 + .rodata start:0x0219b070 end:0x0219b084 + .ctor start:0x0219b084 end:0x0219b088 diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index a369aaa0..f9edd1e4 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -8,6 +8,8 @@ #include "Player/PlayerControl.hpp" #include "Player/PlayerLink.hpp" +char *gShipParts[8] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"}; + extern "C" void ApproachAngle_thunk(s16 *src, s16 dst, u32 param3); struct EquipHammer_UnkStruct { From 2aa4c6763945ac6b9d3268ff20ef8ba153ca89ab Mon Sep 17 00:00:00 2001 From: Aetias Date: Wed, 2 Jul 2025 00:17:59 +0200 Subject: [PATCH 15/16] Fix build --- config/eur/arm9/overlays/ov000/symbols.txt | 2 +- config/eur/arm9/overlays/ov005/relocs.txt | 2 +- config/eur/arm9/overlays/ov005/symbols.txt | 2 +- config/eur/arm9/overlays/ov014/relocs.txt | 116 ++++++++++----------- config/eur/arm9/overlays/ov059/delinks.txt | 4 +- config/eur/arm9/overlays/ov059/symbols.txt | 28 ++--- config/usa/arm9/overlays/ov000/symbols.txt | 2 +- config/usa/arm9/overlays/ov005/relocs.txt | 2 +- config/usa/arm9/overlays/ov005/symbols.txt | 2 +- config/usa/arm9/overlays/ov014/relocs.txt | 112 ++++++++++---------- config/usa/arm9/overlays/ov059/delinks.txt | 4 +- config/usa/arm9/overlays/ov059/symbols.txt | 28 ++--- include/Player/EquipHammer.hpp | 6 +- include/Player/LinkStateBase.hpp | 8 +- src/00_Core/Player/LinkStateBase.cpp | 2 +- src/59_Hammer/Actor/Navi/ActorNaviBase.cpp | 4 +- src/59_Hammer/Player/EquipHammer.cpp | 35 ++----- 17 files changed, 176 insertions(+), 183 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 3a9aa5ef..29f2daa7 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1921,7 +1921,7 @@ _ZN13LinkStateBase18func_ov00_020a8774EP5Vec3pi kind:function(arm,size=0xd0) add _ZN13LinkStateBase18func_ov00_020a8844EP5Vec3pbb kind:function(arm,size=0x110) addr:0x20a8844 _ZN13LinkStateBase18func_ov00_020a8954EbPi kind:function(arm,size=0x40) addr:0x20a8954 _ZN13LinkStateBase18func_ov00_020a8994Ev kind:function(arm,size=0x28) addr:0x20a8994 -_ZN13LinkStateBase18func_ov00_020a89bcEPii kind:function(arm,size=0x4c) addr:0x20a89bc +_ZN13LinkStateBase18func_ov00_020a89bcEP24LinkStateBase_UnkStruct1i kind:function(arm,size=0x4c) addr:0x20a89bc _ZN13LinkStateBase18func_ov00_020a8a08Ei kind:function(arm,size=0x44) addr:0x20a8a08 _ZN13LinkStateBase18func_ov00_020a8a4cEPKvi kind:function(arm,size=0x44) addr:0x20a8a4c _ZN13LinkStateBase18func_ov00_020a8a90Ei kind:function(arm,size=0x20) addr:0x20a8a90 diff --git a/config/eur/arm9/overlays/ov005/relocs.txt b/config/eur/arm9/overlays/ov005/relocs.txt index aaf7b5ff..3c32e51f 100644 --- a/config/eur/arm9/overlays/ov005/relocs.txt +++ b/config/eur/arm9/overlays/ov005/relocs.txt @@ -2519,7 +2519,7 @@ from:0x0211266c kind:load to:0x02199020 module:overlays(40,53,55) from:0x02112674 kind:load to:0x0219911c module:overlays(40,56) from:0x0211267c kind:load to:0x02199edc module:overlays(40,57) from:0x02112684 kind:load to:0x0219a47c module:overlays(53,58) -from:0x0211268c kind:load to:0x021990a4 module:overlays(40,59) +from:0x0211268c kind:load to:0x021990a4 module:overlay(59) from:0x02112694 kind:load to:0x02199654 module:overlays(40,55) from:0x0211269c kind:load to:0x02199654 module:overlays(40,55) from:0x021126a4 kind:load to:0x02105dac module:overlay(5) diff --git a/config/eur/arm9/overlays/ov005/symbols.txt b/config/eur/arm9/overlays/ov005/symbols.txt index a0c2e66b..05f10939 100644 --- a/config/eur/arm9/overlays/ov005/symbols.txt +++ b/config/eur/arm9/overlays/ov005/symbols.txt @@ -154,7 +154,7 @@ _ZN13LinkStateRoll19func_ov005_02107208Ej kind:function(arm,size=0xc) addr:0x210 _ZN13LinkStateRoll19func_ov005_02107214Ev kind:function(arm,size=0x1a4) addr:0x2107214 _ZN13LinkStateRoll19func_ov005_021073b8Ev kind:function(arm,size=0x204) addr:0x21073b8 _ZN13LinkStateRoll19func_ov005_021075bcEv kind:function(arm,size=0x2b4) addr:0x21075bc -_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2107870 +_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2107870 local _ZN13LinkStateRoll19func_ov005_02107880Ev kind:function(arm,size=0xd4) addr:0x2107880 _ZN13LinkStateRoll19func_ov005_02107954Eiii kind:function(arm,size=0x220) addr:0x2107954 _ZN13LinkStateRoll19func_ov005_02107b74EPiss kind:function(arm,size=0x60) addr:0x2107b74 diff --git a/config/eur/arm9/overlays/ov014/relocs.txt b/config/eur/arm9/overlays/ov014/relocs.txt index 32eaed4d..99f8055c 100644 --- a/config/eur/arm9/overlays/ov014/relocs.txt +++ b/config/eur/arm9/overlays/ov014/relocs.txt @@ -5848,7 +5848,7 @@ from:0x02150524 kind:arm_call to:0x0208ccdc module:overlay(0) from:0x02150604 kind:load to:0x02050f54 module:main from:0x02150608 kind:load to:0x027e0f68 module:dtcm from:0x02150624 kind:load to:0x027e1058 module:dtcm -from:0x02150628 kind:load to:0x0211c0a4 module:overlays(9,12) +from:0x02150628 kind:load to:0x0211c0a4 module:overlay(9) from:0x02150632 kind:thumb_call to:0x020fab28 module:overlay(3) from:0x02150648 kind:thumb_call_arm to:0x0204f614 module:main from:0x02150654 kind:thumb_call to:0x0211cebc module:overlay(9) @@ -7145,7 +7145,7 @@ from:0x02155cec kind:load to:0x02155cb8 module:overlay(14) from:0x02155cf0 kind:load to:0x02155cb4 module:overlay(14) from:0x02155cfc kind:load to:0x0212319c module:overlay(14) from:0x02155d00 kind:load to:0x0212315c module:overlay(14) -from:0x02155d04 kind:load to:0x02199b94 module:overlays(40,53) +from:0x02155d04 kind:load to:0x02199b94 module:overlay(53) from:0x02155d08 kind:load to:0x020c173c module:overlay(0) from:0x02155d0c kind:load to:0x021237ec module:overlay(14) from:0x02155d10 kind:load to:0x02123254 module:overlay(14) @@ -7198,7 +7198,7 @@ from:0x02155de8 kind:load to:0x02155db4 module:overlay(14) from:0x02155dec kind:load to:0x02155db0 module:overlay(14) from:0x02155df8 kind:load to:0x021238a8 module:overlay(14) from:0x02155dfc kind:load to:0x02123858 module:overlay(14) -from:0x02155e00 kind:load to:0x0219a568 module:overlays(53,57) +from:0x02155e00 kind:load to:0x0219a568 module:overlay(57) from:0x02155e04 kind:load to:0x020c173c module:overlay(0) from:0x02155e08 kind:load to:0x02123ff1 module:overlay(14) from:0x02155e0c kind:load to:0x02123994 module:overlay(14) @@ -9888,25 +9888,25 @@ from:0x02158d40 kind:load to:0x0211bd14 module:overlay(9) from:0x02158d44 kind:load to:0x0211bd58 module:overlay(9) from:0x02158d48 kind:load to:0x0213c505 module:overlay(14) from:0x02158d4c kind:load to:0x0213c5bc module:overlay(14) -from:0x02158d58 kind:load to:0x02198d00 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158d58 kind:load to:0x02198d00 module:overlay(54) from:0x02158d5c kind:load to:0x0213cf9d module:overlay(14) from:0x02158d60 kind:load to:0x0213cfa9 module:overlay(14) from:0x02158d64 kind:load to:0x0213cfbc module:overlay(14) -from:0x02158d68 kind:load to:0x0210ba89 module:overlays(4,7) -from:0x02158d6c kind:load to:0x02198d68 module:overlays(40,54) -from:0x02158d70 kind:load to:0x02198d2c module:overlays(40,54,55) +from:0x02158d68 kind:load to:0x0210ba89 module:overlay(4) +from:0x02158d6c kind:load to:0x02198d68 module:overlay(54) +from:0x02158d70 kind:load to:0x02198d2c module:overlay(54) from:0x02158d74 kind:load to:0x020be8e0 module:overlay(0) from:0x02158d78 kind:load to:0x020beb5c module:overlay(0) from:0x02158d7c kind:load to:0x020be8fc module:overlay(0) from:0x02158d80 kind:load to:0x020be904 module:overlay(0) from:0x02158d84 kind:load to:0x020be964 module:overlay(0) -from:0x02158d88 kind:load to:0x02198e04 module:overlays(40,54) +from:0x02158d88 kind:load to:0x02198e04 module:overlay(54) from:0x02158d8c kind:load to:0x020be96c module:overlay(0) -from:0x02158d90 kind:load to:0x02198e4c module:overlays(40,54) +from:0x02158d90 kind:load to:0x02198e4c module:overlay(54) from:0x02158d94 kind:load to:0x020beb90 module:overlay(0) -from:0x02158d98 kind:load to:0x02198d30 module:overlays(40,54) +from:0x02158d98 kind:load to:0x02198d30 module:overlay(54) from:0x02158d9c kind:load to:0x02198d38 module:overlays(40,54) -from:0x02158da0 kind:load to:0x02198d48 module:overlays(40,54) +from:0x02158da0 kind:load to:0x02198d48 module:overlay(54) from:0x02158da4 kind:load to:0x020be988 module:overlay(0) from:0x02158dc8 kind:load to:0x02158dc4 module:overlay(14) from:0x02158dcc kind:load to:0x02158dc0 module:overlay(14) @@ -9921,36 +9921,36 @@ from:0x02158df4 kind:load to:0x0213d011 module:overlay(14) from:0x02158df8 kind:load to:0x0213d03d module:overlay(14) from:0x02158dfc kind:load to:0x0213d17c module:overlay(14) from:0x02158e00 kind:load to:0x0213d079 module:overlay(14) -from:0x02158e04 kind:load to:0x021993e8 module:overlays(40,53,56) -from:0x02158e08 kind:load to:0x02199064 module:overlays(40,53) -from:0x02158e0c kind:load to:0x021990d0 module:overlays(40,53) +from:0x02158e04 kind:load to:0x021993e8 module:overlay(53) +from:0x02158e08 kind:load to:0x02199064 module:overlay(53) +from:0x02158e0c kind:load to:0x021990d0 module:overlay(53) from:0x02158e10 kind:load to:0x020beb5c module:overlay(0) from:0x02158e14 kind:load to:0x020be8fc module:overlay(0) from:0x02158e18 kind:load to:0x0213d06c module:overlay(14) from:0x02158e1c kind:load to:0x020be964 module:overlay(0) -from:0x02158e20 kind:load to:0x0219913c module:overlays(40,53) +from:0x02158e20 kind:load to:0x0219913c module:overlay(53) from:0x02158e24 kind:load to:0x020be96c module:overlay(0) -from:0x02158e28 kind:load to:0x02199318 module:overlays(40,53) +from:0x02158e28 kind:load to:0x02199318 module:overlay(53) from:0x02158e2c kind:load to:0x020beb90 module:overlay(0) from:0x02158e30 kind:load to:0x020be970 module:overlay(0) from:0x02158e34 kind:load to:0x020be978 module:overlay(0) from:0x02158e38 kind:load to:0x020be980 module:overlay(0) from:0x02158e3c kind:load to:0x020be988 module:overlay(0) -from:0x02158e48 kind:load to:0x02198d00 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158e48 kind:load to:0x02198d00 module:overlay(55) from:0x02158e4c kind:load to:0x0213d214 module:overlay(14) from:0x02158e50 kind:load to:0x0213d1f8 module:overlay(14) from:0x02158e54 kind:load to:0x0213d1f0 module:overlay(14) -from:0x02158e58 kind:load to:0x0210ba89 module:overlays(4,7) -from:0x02158e5c kind:load to:0x02198d2c module:overlays(40,54,55) -from:0x02158e60 kind:load to:0x02198d8c module:overlays(40,55) +from:0x02158e58 kind:load to:0x0210ba89 module:overlay(4) +from:0x02158e5c kind:load to:0x02198d2c module:overlay(55) +from:0x02158e60 kind:load to:0x02198d8c module:overlay(55) from:0x02158e64 kind:load to:0x020be8e0 module:overlay(0) from:0x02158e68 kind:load to:0x020beb5c module:overlay(0) from:0x02158e6c kind:load to:0x020be8fc module:overlay(0) from:0x02158e70 kind:load to:0x020be904 module:overlay(0) from:0x02158e74 kind:load to:0x020be964 module:overlay(0) -from:0x02158e78 kind:load to:0x02198da4 module:overlays(40,55) +from:0x02158e78 kind:load to:0x02198da4 module:overlay(55) from:0x02158e7c kind:load to:0x020be96c module:overlay(0) -from:0x02158e80 kind:load to:0x02198df8 module:overlays(40,55,56) +from:0x02158e80 kind:load to:0x02198df8 module:overlay(55) from:0x02158e84 kind:load to:0x020beb90 module:overlay(0) from:0x02158e88 kind:load to:0x020be970 module:overlay(0) from:0x02158e8c kind:load to:0x020be978 module:overlay(0) @@ -9970,36 +9970,36 @@ from:0x02158ee8 kind:load to:0x0213d315 module:overlay(14) from:0x02158eec kind:load to:0x0213d359 module:overlay(14) from:0x02158ef0 kind:load to:0x0213d3cc module:overlay(14) from:0x02158ef4 kind:load to:0x0213d3a1 module:overlay(14) -from:0x02158ef8 kind:load to:0x021990b4 module:overlays(40,57) -from:0x02158efc kind:load to:0x021992f4 module:overlays(40,57) -from:0x02158f00 kind:load to:0x0219935c module:overlays(40,57) +from:0x02158ef8 kind:load to:0x021990b4 module:overlay(57) +from:0x02158efc kind:load to:0x021992f4 module:overlay(57) +from:0x02158f00 kind:load to:0x0219935c module:overlay(57) from:0x02158f04 kind:load to:0x020beb5c module:overlay(0) from:0x02158f08 kind:load to:0x020be8fc module:overlay(0) from:0x02158f0c kind:load to:0x020be904 module:overlay(0) from:0x02158f10 kind:load to:0x020be964 module:overlay(0) -from:0x02158f14 kind:load to:0x02199744 module:overlays(40,57) +from:0x02158f14 kind:load to:0x02199744 module:overlay(57) from:0x02158f18 kind:load to:0x020be96c module:overlay(0) -from:0x02158f1c kind:load to:0x021998f0 module:overlays(40,55,57) +from:0x02158f1c kind:load to:0x021998f0 module:overlay(57) from:0x02158f20 kind:load to:0x020beb90 module:overlay(0) from:0x02158f24 kind:load to:0x020be970 module:overlay(0) from:0x02158f28 kind:load to:0x020be978 module:overlay(0) from:0x02158f2c kind:load to:0x020be980 module:overlay(0) from:0x02158f30 kind:load to:0x020be988 module:overlay(0) -from:0x02158f3c kind:load to:0x02198d00 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158f3c kind:load to:0x02198d00 module:overlay(56) from:0x02158f40 kind:load to:0x0213ead5 module:overlay(14) from:0x02158f44 kind:load to:0x0213eae1 module:overlay(14) from:0x02158f48 kind:load to:0x0213eaf4 module:overlay(14) -from:0x02158f4c kind:load to:0x0210ba89 module:overlays(4,7) -from:0x02158f50 kind:load to:0x02198d4c module:overlays(40,56) -from:0x02158f54 kind:load to:0x02198d84 module:overlays(40,56) +from:0x02158f4c kind:load to:0x0210ba89 module:overlay(4) +from:0x02158f50 kind:load to:0x02198d4c module:overlay(56) +from:0x02158f54 kind:load to:0x02198d84 module:overlay(56) from:0x02158f58 kind:load to:0x020be8e0 module:overlay(0) from:0x02158f5c kind:load to:0x020beb5c module:overlay(0) from:0x02158f60 kind:load to:0x020be8fc module:overlay(0) from:0x02158f64 kind:load to:0x020be904 module:overlay(0) from:0x02158f68 kind:load to:0x020be964 module:overlay(0) -from:0x02158f6c kind:load to:0x02198de4 module:overlays(40,53,56) +from:0x02158f6c kind:load to:0x02198de4 module:overlay(56) from:0x02158f70 kind:load to:0x020be96c module:overlay(0) -from:0x02158f74 kind:load to:0x02198df8 module:overlays(40,55,56) +from:0x02158f74 kind:load to:0x02198df8 module:overlay(56) from:0x02158f78 kind:load to:0x020beb90 module:overlay(0) from:0x02158f7c kind:load to:0x020be970 module:overlay(0) from:0x02158f80 kind:load to:0x020be978 module:overlay(0) @@ -10009,10 +10009,10 @@ from:0x02158f94 kind:load to:0x02198fc1 module:overlay(58) from:0x02158f98 kind:load to:0x0213eb5d module:overlay(14) from:0x02158f9c kind:load to:0x0213eb7d module:overlay(14) from:0x02158fa0 kind:load to:0x0213ecac module:overlay(14) -from:0x02158fa4 kind:load to:0x0210ba89 module:overlays(4,7) -from:0x02158fa8 kind:load to:0x02199284 module:overlays(40,58) -from:0x02158fac kind:load to:0x0219903d module:overlays(40,58) -from:0x02158fb0 kind:load to:0x02199061 module:overlays(40,58) +from:0x02158fa4 kind:load to:0x0210ba89 module:overlay(4) +from:0x02158fa8 kind:load to:0x02199284 module:overlay(58) +from:0x02158fac kind:load to:0x0219903d module:overlay(58) +from:0x02158fb0 kind:load to:0x02199061 module:overlay(58) from:0x02158fb4 kind:load to:0x020beb5c module:overlay(0) from:0x02158fb8 kind:load to:0x020be8fc module:overlay(0) from:0x02158fbc kind:load to:0x020be904 module:overlay(0) @@ -10030,16 +10030,16 @@ from:0x02158ff0 kind:load to:0x0213ede5 module:overlay(14) from:0x02158ff4 kind:load to:0x0213edf1 module:overlay(14) from:0x02158ff8 kind:load to:0x0213ee08 module:overlay(14) from:0x02158ffc kind:load to:0x0213ee05 module:overlay(14) -from:0x02159000 kind:load to:0x02198d00 module:overlays(40,53,54,55,56,57,58,59) -from:0x02159004 kind:load to:0x02198e3c module:overlays(40,59) -from:0x02159008 kind:load to:0x02198e58 module:overlays(40,59) +from:0x02159000 kind:load to:0x02198d00 module:overlay(59) +from:0x02159004 kind:load to:0x02198e3c module:overlay(59) +from:0x02159008 kind:load to:0x02198e58 module:overlay(59) from:0x0215900c kind:load to:0x020beb5c module:overlay(0) from:0x02159010 kind:load to:0x020be8fc module:overlay(0) from:0x02159014 kind:load to:0x020be904 module:overlay(0) -from:0x02159018 kind:load to:0x02198fcc module:overlays(40,59) -from:0x0215901c kind:load to:0x02198e6c module:overlays(40,59) +from:0x02159018 kind:load to:0x02198fcc module:overlay(59) +from:0x0215901c kind:load to:0x02198e6c module:overlay(59) from:0x02159020 kind:load to:0x020be96c module:overlay(0) -from:0x02159024 kind:load to:0x02198fc8 module:overlays(40,59) +from:0x02159024 kind:load to:0x02198fc8 module:overlay(59) from:0x02159028 kind:load to:0x0213ee10 module:overlay(14) from:0x0215902c kind:load to:0x020be970 module:overlay(0) from:0x02159030 kind:load to:0x020be978 module:overlay(0) @@ -10061,9 +10061,9 @@ from:0x02159094 kind:load to:0x020bb46c module:overlay(0) from:0x02159098 kind:load to:0x020bb4dc module:overlay(0) from:0x0215909c kind:load to:0x020bba60 module:overlay(0) from:0x021590a0 kind:load to:0x0213efd1 module:overlay(14) -from:0x021590a4 kind:load to:0x0210ab21 module:overlays(4,7) +from:0x021590a4 kind:load to:0x0210ab21 module:overlay(4) from:0x021590a8 kind:load to:0x0213f334 module:overlay(14) -from:0x021590ac kind:load to:0x0210eaa0 module:overlays(5,7) +from:0x021590ac kind:load to:0x0210eaa0 module:overlay(5) from:0x021590b0 kind:load to:0x0213f104 module:overlay(14) from:0x021590b4 kind:load to:0x020bbed4 module:overlay(0) from:0x021590b8 kind:load to:0x020bcad8 module:overlay(0) @@ -10107,7 +10107,7 @@ from:0x021591ac kind:load to:0x02183744 module:overlay(40) from:0x021591b0 kind:load to:0x02141b30 module:overlay(14) from:0x021591b4 kind:load to:0x0213ff34 module:overlay(14) from:0x021591b8 kind:load to:0x0213fee5 module:overlay(14) -from:0x021591bc kind:load to:0x0210b679 module:overlays(4,7) +from:0x021591bc kind:load to:0x0210b679 module:overlay(4) from:0x021591c0 kind:load to:0x021400c0 module:overlay(14) from:0x021591c4 kind:load to:0x020b471c module:overlay(0) from:0x021591c8 kind:load to:0x021402c0 module:overlay(14) @@ -11338,41 +11338,41 @@ from:0x0215a7b0 kind:load to:0x0215a78c module:overlay(14) from:0x0215a7b4 kind:load to:0x0215a788 module:overlay(14) from:0x0215a7b8 kind:load to:0x0215a784 module:overlay(14) from:0x0215a7bc kind:load to:0x0215a780 module:overlay(14) -from:0x0215a7c8 kind:load to:0x021991a8 module:overlays(40,55) +from:0x0215a7c8 kind:load to:0x021991a8 module:overlay(55) from:0x0215a7cc kind:load to:0x021515e9 module:overlay(14) from:0x0215a7d0 kind:load to:0x021515f5 module:overlay(14) from:0x0215a7d4 kind:load to:0x02151608 module:overlay(14) -from:0x0215a7d8 kind:load to:0x0210ba89 module:overlays(4,7) +from:0x0215a7d8 kind:load to:0x0210ba89 module:overlay(4) from:0x0215a7dc kind:load to:0x02151610 module:overlay(14) -from:0x0215a7e0 kind:load to:0x021991ac module:overlays(40,55) -from:0x0215a7e4 kind:load to:0x021991b0 module:overlays(40,55) +from:0x0215a7e0 kind:load to:0x021991ac module:overlay(55) +from:0x0215a7e4 kind:load to:0x021991b0 module:overlay(55) from:0x0215a7e8 kind:load to:0x020beb5c module:overlay(0) from:0x0215a7ec kind:load to:0x020be8fc module:overlay(0) from:0x0215a7f0 kind:load to:0x020be904 module:overlay(0) from:0x0215a7f4 kind:load to:0x020be964 module:overlay(0) -from:0x0215a7f8 kind:load to:0x02199274 module:overlays(40,55) +from:0x0215a7f8 kind:load to:0x02199274 module:overlay(55) from:0x0215a7fc kind:load to:0x020be96c module:overlay(0) -from:0x0215a800 kind:load to:0x02199278 module:overlays(40,55) +from:0x0215a800 kind:load to:0x02199278 module:overlay(55) from:0x0215a804 kind:load to:0x020beb90 module:overlay(0) from:0x0215a808 kind:load to:0x020be970 module:overlay(0) from:0x0215a80c kind:load to:0x020be978 module:overlay(0) from:0x0215a810 kind:load to:0x020be980 module:overlay(0) from:0x0215a814 kind:load to:0x020be988 module:overlay(0) -from:0x0215a820 kind:load to:0x021991a8 module:overlays(40,55) +from:0x0215a820 kind:load to:0x021991a8 module:overlay(55) from:0x0215a824 kind:load to:0x021515a9 module:overlay(14) from:0x0215a828 kind:load to:0x021515b5 module:overlay(14) from:0x0215a82c kind:load to:0x021515c8 module:overlay(14) -from:0x0215a830 kind:load to:0x0210ba89 module:overlays(4,7) +from:0x0215a830 kind:load to:0x0210ba89 module:overlay(4) from:0x0215a834 kind:load to:0x02151610 module:overlay(14) -from:0x0215a838 kind:load to:0x021991ac module:overlays(40,55) -from:0x0215a83c kind:load to:0x021991b0 module:overlays(40,55) +from:0x0215a838 kind:load to:0x021991ac module:overlay(55) +from:0x0215a83c kind:load to:0x021991b0 module:overlay(55) from:0x0215a840 kind:load to:0x020beb5c module:overlay(0) from:0x0215a844 kind:load to:0x020be8fc module:overlay(0) from:0x0215a848 kind:load to:0x020be904 module:overlay(0) from:0x0215a84c kind:load to:0x020be964 module:overlay(0) -from:0x0215a850 kind:load to:0x02199274 module:overlays(40,55) +from:0x0215a850 kind:load to:0x02199274 module:overlay(55) from:0x0215a854 kind:load to:0x020be96c module:overlay(0) -from:0x0215a858 kind:load to:0x02199278 module:overlays(40,55) +from:0x0215a858 kind:load to:0x02199278 module:overlay(55) from:0x0215a85c kind:load to:0x020beb90 module:overlay(0) from:0x0215a860 kind:load to:0x020be970 module:overlay(0) from:0x0215a864 kind:load to:0x020be978 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov059/delinks.txt b/config/eur/arm9/overlays/ov059/delinks.txt index 69f9561e..630335cc 100644 --- a/config/eur/arm9/overlays/ov059/delinks.txt +++ b/config/eur/arm9/overlays/ov059/delinks.txt @@ -6,10 +6,10 @@ src/59_Hammer/Player/EquipHammer.cpp: + complete .text start:0x02198d00 end:0x0219933c - .data start:0x0219b140 end:0x0219b180 + .data start:0x0219b140 end:0x0219b1c0 src/59_Hammer/Actor/Navi/ActorNaviBase.cpp: .text start:0x0219933c end:0x0219b110 .rodata start:0x0219b110 end:0x0219b124 - .ctor start:0x0219b124 end:0x0219b128 diff --git a/config/eur/arm9/overlays/ov059/symbols.txt b/config/eur/arm9/overlays/ov059/symbols.txt index 73a25090..6cb01a6f 100644 --- a/config/eur/arm9/overlays/ov059/symbols.txt +++ b/config/eur/arm9/overlays/ov059/symbols.txt @@ -1,5 +1,5 @@ _ZNK11EquipHammer8IsUsableEi kind:function(arm,size=0x12c) addr:0x2198d00 -_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2198e2c local +_ZN11EquipHammer16GetLinkStateItemEv kind:function(arm,size=0x10) addr:0x2198e2c _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 @@ -24,16 +24,16 @@ _ZN9ActorNavi19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219af14 _ZN9ActorNavi19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219afc4 _ZN9ActorNavi19func_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 -data_ov059_0219b148 kind:data(any) addr:0x219b148 -data_ov059_0219b14c kind:data(any) addr:0x219b14c -data_ov059_0219b150 kind:data(any) addr:0x219b150 -data_ov059_0219b154 kind:data(any) addr:0x219b154 -data_ov059_0219b158 kind:data(any) addr:0x219b158 -data_ov059_0219b15c kind:data(any) addr:0x219b15c -data_ov059_0219b160 kind:data(any) addr:0x219b160 -data_ov059_0219b180 kind:data(any) addr:0x219b180 -data_ov059_0219b190 kind:data(any) addr:0x219b190 -data_ov059_0219b1a0 kind:data(any) addr:0x219b1a0 -data_ov059_0219b1b0 kind:data(any) addr:0x219b1b0 +@1761 kind:data(any) addr:0x219b140 local +@1760 kind:data(any) addr:0x219b144 local +@1759 kind:data(any) addr:0x219b148 local +@1758 kind:data(any) addr:0x219b14c local +@1757 kind:data(any) addr:0x219b150 local +@1756 kind:data(any) addr:0x219b154 local +@1755 kind:data(any) addr:0x219b158 local +@1754 kind:data(any) addr:0x219b15c local +gShipParts kind:data(any) addr:0x219b160 local +data_ov059_0219b180 kind:data(any) addr:0x219b180 local +data_ov059_0219b190 kind:data(any) addr:0x219b190 local +data_ov059_0219b1a0 kind:data(any) addr:0x219b1a0 local +data_ov059_0219b1b0 kind:data(any) addr:0x219b1b0 local diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 5448d534..0ed21e2d 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -1921,7 +1921,7 @@ _ZN13LinkStateBase18func_ov00_020a8774EP5Vec3pi kind:function(arm,size=0xd0) add _ZN13LinkStateBase18func_ov00_020a8844EP5Vec3pbb kind:function(arm,size=0x110) addr:0x20a87e4 _ZN13LinkStateBase18func_ov00_020a8954EbPi kind:function(arm,size=0x40) addr:0x20a88f4 _ZN13LinkStateBase18func_ov00_020a8994Ev kind:function(arm,size=0x28) addr:0x20a8934 -_ZN13LinkStateBase18func_ov00_020a89bcEPii kind:function(arm,size=0x4c) addr:0x20a895c +_ZN13LinkStateBase18func_ov00_020a89bcEP24LinkStateBase_UnkStruct1i kind:function(arm,size=0x4c) addr:0x20a895c _ZN13LinkStateBase18func_ov00_020a8a08Ei kind:function(arm,size=0x44) addr:0x20a89a8 _ZN13LinkStateBase18func_ov00_020a8a4cEPKvi kind:function(arm,size=0x44) addr:0x20a89ec _ZN13LinkStateBase18func_ov00_020a8a90Ei kind:function(arm,size=0x20) addr:0x20a8a30 diff --git a/config/usa/arm9/overlays/ov005/relocs.txt b/config/usa/arm9/overlays/ov005/relocs.txt index eeed1b5e..fe57d0e2 100644 --- a/config/usa/arm9/overlays/ov005/relocs.txt +++ b/config/usa/arm9/overlays/ov005/relocs.txt @@ -2519,7 +2519,7 @@ from:0x021125ec kind:load to:0x02198f80 module:overlays(40,53,55) from:0x021125f4 kind:load to:0x0219907c module:overlays(40,56) from:0x021125fc kind:load to:0x02199e3c module:overlays(40,57) from:0x02112604 kind:load to:0x0219a3dc module:overlays(53,58) -from:0x0211260c kind:load to:0x02199004 module:overlays(40,59) +from:0x0211260c kind:load to:0x02199004 module:overlay(59) from:0x02112614 kind:load to:0x021995b4 module:overlays(40,55) from:0x0211261c kind:load to:0x021995b4 module:overlays(40,55) from:0x02112624 kind:load to:0x02105d2c module:overlay(5) diff --git a/config/usa/arm9/overlays/ov005/symbols.txt b/config/usa/arm9/overlays/ov005/symbols.txt index 26670bd8..603d9a2e 100644 --- a/config/usa/arm9/overlays/ov005/symbols.txt +++ b/config/usa/arm9/overlays/ov005/symbols.txt @@ -154,7 +154,7 @@ _ZN13LinkStateRoll19func_ov005_02107208Ej kind:function(arm,size=0xc) addr:0x210 _ZN13LinkStateRoll19func_ov005_02107214Ev kind:function(arm,size=0x1a4) addr:0x2107194 _ZN13LinkStateRoll19func_ov005_021073b8Ev kind:function(arm,size=0x204) addr:0x2107338 _ZN13LinkStateRoll19func_ov005_021075bcEv kind:function(arm,size=0x2b4) addr:0x210753c -_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x21077f0 +_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x21077f0 local _ZN13LinkStateRoll19func_ov005_02107880Ev kind:function(arm,size=0xd4) addr:0x2107800 _ZN13LinkStateRoll19func_ov005_02107954Eiii kind:function(arm,size=0x220) addr:0x21078d4 _ZN13LinkStateRoll19func_ov005_02107b74EPiss kind:function(arm,size=0x60) addr:0x2107af4 diff --git a/config/usa/arm9/overlays/ov014/relocs.txt b/config/usa/arm9/overlays/ov014/relocs.txt index 46843a25..42a2431a 100644 --- a/config/usa/arm9/overlays/ov014/relocs.txt +++ b/config/usa/arm9/overlays/ov014/relocs.txt @@ -5848,7 +5848,7 @@ from:0x02150480 kind:arm_call to:0x0208cc7c module:overlay(0) from:0x02150560 kind:load to:0x02050f10 module:main from:0x02150564 kind:load to:0x027e0f68 module:dtcm from:0x02150580 kind:load to:0x027e1058 module:dtcm -from:0x02150584 kind:load to:0x0211c024 module:overlays(9,12) +from:0x02150584 kind:load to:0x0211c024 module:overlay(9) from:0x0215058e kind:thumb_call to:0x020faa9c module:overlay(3) from:0x021505a4 kind:thumb_call_arm to:0x0204f5d0 module:main from:0x021505b0 kind:thumb_call to:0x0211ce3c module:overlay(9) @@ -7145,7 +7145,7 @@ from:0x02155c4c kind:load to:0x02155c18 module:overlay(14) from:0x02155c50 kind:load to:0x02155c14 module:overlay(14) from:0x02155c5c kind:load to:0x0212311c module:overlay(14) from:0x02155c60 kind:load to:0x021230dc module:overlay(14) -from:0x02155c64 kind:load to:0x02199af4 module:overlays(40,53) +from:0x02155c64 kind:load to:0x02199af4 module:overlay(53) from:0x02155c68 kind:load to:0x020c16dc module:overlay(0) from:0x02155c6c kind:load to:0x0212376c module:overlay(14) from:0x02155c70 kind:load to:0x021231d4 module:overlay(14) @@ -7198,7 +7198,7 @@ from:0x02155d48 kind:load to:0x02155d14 module:overlay(14) from:0x02155d4c kind:load to:0x02155d10 module:overlay(14) from:0x02155d58 kind:load to:0x02123828 module:overlay(14) from:0x02155d5c kind:load to:0x021237d8 module:overlay(14) -from:0x02155d60 kind:load to:0x0219a4c8 module:overlays(53,57) +from:0x02155d60 kind:load to:0x0219a4c8 module:overlay(57) from:0x02155d64 kind:load to:0x020c16dc module:overlay(0) from:0x02155d68 kind:load to:0x02123f71 module:overlay(14) from:0x02155d6c kind:load to:0x02123914 module:overlay(14) @@ -9888,25 +9888,25 @@ from:0x02158ca0 kind:load to:0x0211bc94 module:overlay(9) from:0x02158ca4 kind:load to:0x0211bcd8 module:overlay(9) from:0x02158ca8 kind:load to:0x0213c461 module:overlay(14) from:0x02158cac kind:load to:0x0213c518 module:overlay(14) -from:0x02158cb8 kind:load to:0x02198c60 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158cb8 kind:load to:0x02198c60 module:overlay(54) from:0x02158cbc kind:load to:0x0213cef9 module:overlay(14) from:0x02158cc0 kind:load to:0x0213cf05 module:overlay(14) from:0x02158cc4 kind:load to:0x0213cf18 module:overlay(14) -from:0x02158cc8 kind:load to:0x0210ba09 module:overlays(4,7) -from:0x02158ccc kind:load to:0x02198cc8 module:overlays(40,54) -from:0x02158cd0 kind:load to:0x02198c8c module:overlays(40,54,55) +from:0x02158cc8 kind:load to:0x0210ba09 module:overlay(4) +from:0x02158ccc kind:load to:0x02198cc8 module:overlay(54) +from:0x02158cd0 kind:load to:0x02198c8c module:overlay(54) from:0x02158cd4 kind:load to:0x020be880 module:overlay(0) from:0x02158cd8 kind:load to:0x020beafc module:overlay(0) from:0x02158cdc kind:load to:0x020be89c module:overlay(0) from:0x02158ce0 kind:load to:0x020be8a4 module:overlay(0) from:0x02158ce4 kind:load to:0x020be904 module:overlay(0) -from:0x02158ce8 kind:load to:0x02198d64 module:overlays(40,54) +from:0x02158ce8 kind:load to:0x02198d64 module:overlay(54) from:0x02158cec kind:load to:0x020be90c module:overlay(0) -from:0x02158cf0 kind:load to:0x02198dac module:overlays(40,54) +from:0x02158cf0 kind:load to:0x02198dac module:overlay(54) from:0x02158cf4 kind:load to:0x020beb30 module:overlay(0) -from:0x02158cf8 kind:load to:0x02198c90 module:overlays(40,54) +from:0x02158cf8 kind:load to:0x02198c90 module:overlay(54) from:0x02158cfc kind:load to:0x02198c98 module:overlays(40,54) -from:0x02158d00 kind:load to:0x02198ca8 module:overlays(40,54) +from:0x02158d00 kind:load to:0x02198ca8 module:overlay(54) from:0x02158d04 kind:load to:0x020be928 module:overlay(0) from:0x02158d28 kind:load to:0x02158d24 module:overlay(14) from:0x02158d2c kind:load to:0x02158d20 module:overlay(14) @@ -9921,36 +9921,36 @@ from:0x02158d54 kind:load to:0x0213cf6d module:overlay(14) from:0x02158d58 kind:load to:0x0213cf99 module:overlay(14) from:0x02158d5c kind:load to:0x0213d0d8 module:overlay(14) from:0x02158d60 kind:load to:0x0213cfd5 module:overlay(14) -from:0x02158d64 kind:load to:0x02199348 module:overlays(40,53,56) -from:0x02158d68 kind:load to:0x02198fc4 module:overlays(40,53) -from:0x02158d6c kind:load to:0x02199030 module:overlays(40,53) +from:0x02158d64 kind:load to:0x02199348 module:overlay(53) +from:0x02158d68 kind:load to:0x02198fc4 module:overlay(53) +from:0x02158d6c kind:load to:0x02199030 module:overlay(53) from:0x02158d70 kind:load to:0x020beafc module:overlay(0) from:0x02158d74 kind:load to:0x020be89c module:overlay(0) from:0x02158d78 kind:load to:0x0213cfc8 module:overlay(14) from:0x02158d7c kind:load to:0x020be904 module:overlay(0) -from:0x02158d80 kind:load to:0x0219909c module:overlays(40,53) +from:0x02158d80 kind:load to:0x0219909c module:overlay(53) from:0x02158d84 kind:load to:0x020be90c module:overlay(0) -from:0x02158d88 kind:load to:0x02199278 module:overlays(40,53) +from:0x02158d88 kind:load to:0x02199278 module:overlay(53) from:0x02158d8c kind:load to:0x020beb30 module:overlay(0) from:0x02158d90 kind:load to:0x020be910 module:overlay(0) from:0x02158d94 kind:load to:0x020be918 module:overlay(0) from:0x02158d98 kind:load to:0x020be920 module:overlay(0) from:0x02158d9c kind:load to:0x020be928 module:overlay(0) -from:0x02158da8 kind:load to:0x02198c60 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158da8 kind:load to:0x02198c60 module:overlay(55) from:0x02158dac kind:load to:0x0213d170 module:overlay(14) from:0x02158db0 kind:load to:0x0213d154 module:overlay(14) from:0x02158db4 kind:load to:0x0213d14c module:overlay(14) -from:0x02158db8 kind:load to:0x0210ba09 module:overlays(4,7) -from:0x02158dbc kind:load to:0x02198c8c module:overlays(40,54,55) -from:0x02158dc0 kind:load to:0x02198cec module:overlays(40,55) +from:0x02158db8 kind:load to:0x0210ba09 module:overlay(4) +from:0x02158dbc kind:load to:0x02198c8c module:overlay(55) +from:0x02158dc0 kind:load to:0x02198cec module:overlay(55) from:0x02158dc4 kind:load to:0x020be880 module:overlay(0) from:0x02158dc8 kind:load to:0x020beafc module:overlay(0) from:0x02158dcc kind:load to:0x020be89c module:overlay(0) from:0x02158dd0 kind:load to:0x020be8a4 module:overlay(0) from:0x02158dd4 kind:load to:0x020be904 module:overlay(0) -from:0x02158dd8 kind:load to:0x02198d04 module:overlays(40,55) +from:0x02158dd8 kind:load to:0x02198d04 module:overlay(55) from:0x02158ddc kind:load to:0x020be90c module:overlay(0) -from:0x02158de0 kind:load to:0x02198d58 module:overlays(40,55,56) +from:0x02158de0 kind:load to:0x02198d58 module:overlay(55) from:0x02158de4 kind:load to:0x020beb30 module:overlay(0) from:0x02158de8 kind:load to:0x020be910 module:overlay(0) from:0x02158dec kind:load to:0x020be918 module:overlay(0) @@ -9970,36 +9970,36 @@ from:0x02158e48 kind:load to:0x0213d271 module:overlay(14) from:0x02158e4c kind:load to:0x0213d2b5 module:overlay(14) from:0x02158e50 kind:load to:0x0213d328 module:overlay(14) from:0x02158e54 kind:load to:0x0213d2fd module:overlay(14) -from:0x02158e58 kind:load to:0x02199014 module:overlays(40,57) -from:0x02158e5c kind:load to:0x02199254 module:overlays(40,57) -from:0x02158e60 kind:load to:0x021992bc module:overlays(40,57) +from:0x02158e58 kind:load to:0x02199014 module:overlay(57) +from:0x02158e5c kind:load to:0x02199254 module:overlay(57) +from:0x02158e60 kind:load to:0x021992bc module:overlay(57) from:0x02158e64 kind:load to:0x020beafc module:overlay(0) from:0x02158e68 kind:load to:0x020be89c module:overlay(0) from:0x02158e6c kind:load to:0x020be8a4 module:overlay(0) from:0x02158e70 kind:load to:0x020be904 module:overlay(0) -from:0x02158e74 kind:load to:0x021996a4 module:overlays(40,57) +from:0x02158e74 kind:load to:0x021996a4 module:overlay(57) from:0x02158e78 kind:load to:0x020be90c module:overlay(0) -from:0x02158e7c kind:load to:0x02199850 module:overlays(40,55,57) +from:0x02158e7c kind:load to:0x02199850 module:overlay(57) from:0x02158e80 kind:load to:0x020beb30 module:overlay(0) from:0x02158e84 kind:load to:0x020be910 module:overlay(0) from:0x02158e88 kind:load to:0x020be918 module:overlay(0) from:0x02158e8c kind:load to:0x020be920 module:overlay(0) from:0x02158e90 kind:load to:0x020be928 module:overlay(0) -from:0x02158e9c kind:load to:0x02198c60 module:overlays(40,53,54,55,56,57,58,59) +from:0x02158e9c kind:load to:0x02198c60 module:overlay(56) from:0x02158ea0 kind:load to:0x0213ea31 module:overlay(14) from:0x02158ea4 kind:load to:0x0213ea3d module:overlay(14) from:0x02158ea8 kind:load to:0x0213ea50 module:overlay(14) -from:0x02158eac kind:load to:0x0210ba09 module:overlays(4,7) -from:0x02158eb0 kind:load to:0x02198cac module:overlays(40,56) -from:0x02158eb4 kind:load to:0x02198ce4 module:overlays(40,56) +from:0x02158eac kind:load to:0x0210ba09 module:overlay(4) +from:0x02158eb0 kind:load to:0x02198cac module:overlay(56) +from:0x02158eb4 kind:load to:0x02198ce4 module:overlay(56) from:0x02158eb8 kind:load to:0x020be880 module:overlay(0) from:0x02158ebc kind:load to:0x020beafc module:overlay(0) from:0x02158ec0 kind:load to:0x020be89c module:overlay(0) from:0x02158ec4 kind:load to:0x020be8a4 module:overlay(0) from:0x02158ec8 kind:load to:0x020be904 module:overlay(0) -from:0x02158ecc kind:load to:0x02198d44 module:overlays(40,53,56) +from:0x02158ecc kind:load to:0x02198d44 module:overlay(56) from:0x02158ed0 kind:load to:0x020be90c module:overlay(0) -from:0x02158ed4 kind:load to:0x02198d58 module:overlays(40,55,56) +from:0x02158ed4 kind:load to:0x02198d58 module:overlay(56) from:0x02158ed8 kind:load to:0x020beb30 module:overlay(0) from:0x02158edc kind:load to:0x020be910 module:overlay(0) from:0x02158ee0 kind:load to:0x020be918 module:overlay(0) @@ -10009,8 +10009,8 @@ from:0x02158ef4 kind:load to:0x02198f21 module:overlay(58) from:0x02158ef8 kind:load to:0x0213eab9 module:overlay(14) from:0x02158efc kind:load to:0x0213ead9 module:overlay(14) from:0x02158f00 kind:load to:0x0213ec08 module:overlay(14) -from:0x02158f04 kind:load to:0x0210ba09 module:overlays(4,7) -from:0x02158f08 kind:load to:0x021991e4 module:overlays(40,58) +from:0x02158f04 kind:load to:0x0210ba09 module:overlay(4) +from:0x02158f08 kind:load to:0x021991e4 module:overlay(58) from:0x02158f0c kind:load to:0x02198f9d module:overlay(58) from:0x02158f10 kind:load to:0x02198fc1 module:overlay(58) from:0x02158f14 kind:load to:0x020beafc module:overlay(0) @@ -10030,16 +10030,16 @@ from:0x02158f50 kind:load to:0x0213ed41 module:overlay(14) from:0x02158f54 kind:load to:0x0213ed4d module:overlay(14) from:0x02158f58 kind:load to:0x0213ed64 module:overlay(14) from:0x02158f5c kind:load to:0x0213ed61 module:overlay(14) -from:0x02158f60 kind:load to:0x02198c60 module:overlays(40,53,54,55,56,57,58,59) -from:0x02158f64 kind:load to:0x02198d9c module:overlays(40,59) -from:0x02158f68 kind:load to:0x02198db8 module:overlays(40,59) +from:0x02158f60 kind:load to:0x02198c60 module:overlay(59) +from:0x02158f64 kind:load to:0x02198d9c module:overlay(59) +from:0x02158f68 kind:load to:0x02198db8 module:overlay(59) from:0x02158f6c kind:load to:0x020beafc module:overlay(0) from:0x02158f70 kind:load to:0x020be89c module:overlay(0) from:0x02158f74 kind:load to:0x020be8a4 module:overlay(0) -from:0x02158f78 kind:load to:0x02198f2c module:overlays(40,59) -from:0x02158f7c kind:load to:0x02198dcc module:overlays(40,59) +from:0x02158f78 kind:load to:0x02198f2c module:overlay(59) +from:0x02158f7c kind:load to:0x02198dcc module:overlay(59) from:0x02158f80 kind:load to:0x020be90c module:overlay(0) -from:0x02158f84 kind:load to:0x02198f28 module:overlays(40,59) +from:0x02158f84 kind:load to:0x02198f28 module:overlay(59) from:0x02158f88 kind:load to:0x0213ed6c module:overlay(14) from:0x02158f8c kind:load to:0x020be910 module:overlay(0) from:0x02158f90 kind:load to:0x020be918 module:overlay(0) @@ -10061,9 +10061,9 @@ from:0x02158ff4 kind:load to:0x020bb40c module:overlay(0) from:0x02158ff8 kind:load to:0x020bb47c module:overlay(0) from:0x02158ffc kind:load to:0x020bba00 module:overlay(0) from:0x02159000 kind:load to:0x0213ef2d module:overlay(14) -from:0x02159004 kind:load to:0x0210aaa1 module:overlays(4,7) +from:0x02159004 kind:load to:0x0210aaa1 module:overlay(4) from:0x02159008 kind:load to:0x0213f290 module:overlay(14) -from:0x0215900c kind:load to:0x0210ea20 module:overlays(5,7) +from:0x0215900c kind:load to:0x0210ea20 module:overlay(5) from:0x02159010 kind:load to:0x0213f060 module:overlay(14) from:0x02159014 kind:load to:0x020bbe74 module:overlay(0) from:0x02159018 kind:load to:0x020bca78 module:overlay(0) @@ -10107,7 +10107,7 @@ from:0x0215910c kind:load to:0x021836a4 module:overlay(40) from:0x02159110 kind:load to:0x02141a8c module:overlay(14) from:0x02159114 kind:load to:0x0213fe90 module:overlay(14) from:0x02159118 kind:load to:0x0213fe41 module:overlay(14) -from:0x0215911c kind:load to:0x0210b5f9 module:overlays(4,7) +from:0x0215911c kind:load to:0x0210b5f9 module:overlay(4) from:0x02159120 kind:load to:0x0214001c module:overlay(14) from:0x02159124 kind:load to:0x020b46bc module:overlay(0) from:0x02159128 kind:load to:0x0214021c module:overlay(14) @@ -11338,41 +11338,41 @@ from:0x0215a710 kind:load to:0x0215a6ec module:overlay(14) from:0x0215a714 kind:load to:0x0215a6e8 module:overlay(14) from:0x0215a718 kind:load to:0x0215a6e4 module:overlay(14) from:0x0215a71c kind:load to:0x0215a6e0 module:overlay(14) -from:0x0215a728 kind:load to:0x02199108 module:overlays(40,55) +from:0x0215a728 kind:load to:0x02199108 module:overlay(55) from:0x0215a72c kind:load to:0x02151545 module:overlay(14) from:0x0215a730 kind:load to:0x02151551 module:overlay(14) from:0x0215a734 kind:load to:0x02151564 module:overlay(14) -from:0x0215a738 kind:load to:0x0210ba09 module:overlays(4,7) +from:0x0215a738 kind:load to:0x0210ba09 module:overlay(4) from:0x0215a73c kind:load to:0x0215156c module:overlay(14) -from:0x0215a740 kind:load to:0x0219910c module:overlays(40,55) -from:0x0215a744 kind:load to:0x02199110 module:overlays(40,55) +from:0x0215a740 kind:load to:0x0219910c module:overlay(55) +from:0x0215a744 kind:load to:0x02199110 module:overlay(55) from:0x0215a748 kind:load to:0x020beafc module:overlay(0) from:0x0215a74c kind:load to:0x020be89c module:overlay(0) from:0x0215a750 kind:load to:0x020be8a4 module:overlay(0) from:0x0215a754 kind:load to:0x020be904 module:overlay(0) -from:0x0215a758 kind:load to:0x021991d4 module:overlays(40,55) +from:0x0215a758 kind:load to:0x021991d4 module:overlay(55) from:0x0215a75c kind:load to:0x020be90c module:overlay(0) -from:0x0215a760 kind:load to:0x021991d8 module:overlays(40,55) +from:0x0215a760 kind:load to:0x021991d8 module:overlay(55) from:0x0215a764 kind:load to:0x020beb30 module:overlay(0) from:0x0215a768 kind:load to:0x020be910 module:overlay(0) from:0x0215a76c kind:load to:0x020be918 module:overlay(0) from:0x0215a770 kind:load to:0x020be920 module:overlay(0) from:0x0215a774 kind:load to:0x020be928 module:overlay(0) -from:0x0215a780 kind:load to:0x02199108 module:overlays(40,55) +from:0x0215a780 kind:load to:0x02199108 module:overlay(55) from:0x0215a784 kind:load to:0x02151505 module:overlay(14) from:0x0215a788 kind:load to:0x02151511 module:overlay(14) from:0x0215a78c kind:load to:0x02151524 module:overlay(14) -from:0x0215a790 kind:load to:0x0210ba09 module:overlays(4,7) +from:0x0215a790 kind:load to:0x0210ba09 module:overlay(4) from:0x0215a794 kind:load to:0x0215156c module:overlay(14) -from:0x0215a798 kind:load to:0x0219910c module:overlays(40,55) -from:0x0215a79c kind:load to:0x02199110 module:overlays(40,55) +from:0x0215a798 kind:load to:0x0219910c module:overlay(55) +from:0x0215a79c kind:load to:0x02199110 module:overlay(55) from:0x0215a7a0 kind:load to:0x020beafc module:overlay(0) from:0x0215a7a4 kind:load to:0x020be89c module:overlay(0) from:0x0215a7a8 kind:load to:0x020be8a4 module:overlay(0) from:0x0215a7ac kind:load to:0x020be904 module:overlay(0) -from:0x0215a7b0 kind:load to:0x021991d4 module:overlays(40,55) +from:0x0215a7b0 kind:load to:0x021991d4 module:overlay(55) from:0x0215a7b4 kind:load to:0x020be90c module:overlay(0) -from:0x0215a7b8 kind:load to:0x021991d8 module:overlays(40,55) +from:0x0215a7b8 kind:load to:0x021991d8 module:overlay(55) from:0x0215a7bc kind:load to:0x020beb30 module:overlay(0) from:0x0215a7c0 kind:load to:0x020be910 module:overlay(0) from:0x0215a7c4 kind:load to:0x020be918 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov059/delinks.txt b/config/usa/arm9/overlays/ov059/delinks.txt index 9e1114d5..febe3396 100644 --- a/config/usa/arm9/overlays/ov059/delinks.txt +++ b/config/usa/arm9/overlays/ov059/delinks.txt @@ -5,10 +5,10 @@ .bss start:0x0219b120 end:0x0219b120 kind:bss align:32 src/59_Hammer/Player/EquipHammer.cpp: + complete .text start:0x02198c60 end:0x0219929c - .data start:0x0219b0a0 end:0x0219b0e0 + .data start:0x0219b0a0 end:0x0219b120 src/59_Hammer/Actor/Navi/ActorNaviBase.cpp: .text start:0x0219929c end:0x0219b070 .rodata start:0x0219b070 end:0x0219b084 - .ctor start:0x0219b084 end:0x0219b088 diff --git a/config/usa/arm9/overlays/ov059/symbols.txt b/config/usa/arm9/overlays/ov059/symbols.txt index 246e951a..849721d4 100644 --- a/config/usa/arm9/overlays/ov059/symbols.txt +++ b/config/usa/arm9/overlays/ov059/symbols.txt @@ -1,5 +1,5 @@ _ZNK11EquipHammer8IsUsableEi kind:function(arm,size=0x12c) addr:0x2198c60 -_Z16GetLinkStateItemv kind:function(arm,size=0x10) addr:0x2198d8c local +_ZN11EquipHammer16GetLinkStateItemEv kind:function(arm,size=0x10) addr:0x2198d8c _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 @@ -24,16 +24,16 @@ _ZN13ActorNaviBase19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x21 _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 -data_ov059_0219b148 kind:data(any) addr:0x219b0a8 -data_ov059_0219b14c kind:data(any) addr:0x219b0ac -data_ov059_0219b150 kind:data(any) addr:0x219b0b0 -data_ov059_0219b154 kind:data(any) addr:0x219b0b4 -data_ov059_0219b158 kind:data(any) addr:0x219b0b8 -data_ov059_0219b15c kind:data(any) addr:0x219b0bc -data_ov059_0219b160 kind:data(any) addr:0x219b0c0 -data_ov059_0219b180 kind:data(any) addr:0x219b0e0 -data_ov059_0219b190 kind:data(any) addr:0x219b0f0 -data_ov059_0219b1a0 kind:data(any) addr:0x219b100 -data_ov059_0219b1b0 kind:data(any) addr:0x219b110 +@1761 kind:data(any) addr:0x219b0a0 local +@1760 kind:data(any) addr:0x219b0a4 local +@1759 kind:data(any) addr:0x219b0a8 local +@1758 kind:data(any) addr:0x219b0ac local +@1757 kind:data(any) addr:0x219b0b0 local +@1756 kind:data(any) addr:0x219b0b4 local +@1755 kind:data(any) addr:0x219b0b8 local +@1754 kind:data(any) addr:0x219b0bc local +gShipParts kind:data(any) addr:0x219b0c0 local +data_ov059_0219b180 kind:data(any) addr:0x219b0e0 local +data_ov059_0219b190 kind:data(any) addr:0x219b0f0 local +data_ov059_0219b1a0 kind:data(any) addr:0x219b100 local +data_ov059_0219b1b0 kind:data(any) addr:0x219b110 local diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index 81543dbc..2ac0322a 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -14,6 +14,8 @@ typedef enum EquipHammerState { /* 0x20000 */ EQUIP_HAMMER_STATE_CHARGED = (2 << 16), } EquipHammerState; +class LinkStateItem; + class EquipHammer : public EquipItem { private: /* 00 (base) */ @@ -44,6 +46,7 @@ public: EquipHammer(); + static LinkStateItem *GetLinkStateItem(); void func_ov059_02198e90(); bool func_ov059_02198ebc(); bool func_ov059_02198ed4(); @@ -64,7 +67,4 @@ public: } }; -class LinkStateItem; - -extern LinkStateItem *GetLinkStateItem(); extern EquipHammer *GetEquipHammer(); diff --git a/include/Player/LinkStateBase.hpp b/include/Player/LinkStateBase.hpp index 2c3891db..8f5ebd6c 100644 --- a/include/Player/LinkStateBase.hpp +++ b/include/Player/LinkStateBase.hpp @@ -24,6 +24,12 @@ enum LinkStateId_ { LinkStateId_COUNT }; +struct LinkStateBase_UnkStruct1 { + /* 00 */ unk32 mUnk_00; + /* 04 */ Vec3p mUnk_04; + /* 10 */ +}; + class LinkStateItem; class LinkStateBase : public SysObject { @@ -88,7 +94,7 @@ public: void func_ov00_020a8844(Vec3p *param1, bool param2, bool param3); void func_ov00_020a8954(bool param1, unk32 *param2); void func_ov00_020a8994(); - void func_ov00_020a89bc(unk32 *param1, unk32 param2); + void func_ov00_020a89bc(LinkStateBase_UnkStruct1 *param1, unk32 param2); void func_ov00_020a8a08(unk32 param1); void func_ov00_020a8a4c(const void *param1, unk32 param2); void func_ov00_020a8a90(unk32 param1); diff --git a/src/00_Core/Player/LinkStateBase.cpp b/src/00_Core/Player/LinkStateBase.cpp index 5db80967..a750d276 100644 --- a/src/00_Core/Player/LinkStateBase.cpp +++ b/src/00_Core/Player/LinkStateBase.cpp @@ -44,7 +44,7 @@ bool LinkStateBase::func_ov00_020a8774(Vec3p *param1, s32 angle) {} void LinkStateBase::func_ov00_020a8844(Vec3p *param1, bool param2, bool param3) {} void LinkStateBase::func_ov00_020a8954(bool param1, unk32 *param2) {} void LinkStateBase::func_ov00_020a8994() {} -void LinkStateBase::func_ov00_020a89bc(unk32 *param1, unk32 param2) {} +void LinkStateBase::func_ov00_020a89bc(LinkStateBase_UnkStruct1 *param1, unk32 param2) {} void LinkStateBase::func_ov00_020a8a08(unk32 param1) {} void LinkStateBase::func_ov00_020a8a4c(const void *param1, unk32 param2) {} void LinkStateBase::func_ov00_020a8a90(unk32 param1) {} diff --git a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp index 84f4913c..840da600 100644 --- a/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp +++ b/src/59_Hammer/Actor/Navi/ActorNaviBase.cpp @@ -132,7 +132,7 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { switch (param1) { case 3: - uVar1 = GetLinkStateItem(); + uVar1 = EquipHammer::GetLinkStateItem(); if (uVar1->mUnk_25[2] != 0 && uVar1->mUnk_25[3] != 0) { break; @@ -185,7 +185,7 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) { } break; case 4: - uVar1 = GetLinkStateItem(); + uVar1 = EquipHammer::GetLinkStateItem(); if (uVar1->mUnk_25[2] != 0 && uVar1->mUnk_25[3] != 0) { break; diff --git a/src/59_Hammer/Player/EquipHammer.cpp b/src/59_Hammer/Player/EquipHammer.cpp index f9edd1e4..cfccec9b 100644 --- a/src/59_Hammer/Player/EquipHammer.cpp +++ b/src/59_Hammer/Player/EquipHammer.cpp @@ -8,28 +8,10 @@ #include "Player/PlayerControl.hpp" #include "Player/PlayerLink.hpp" -char *gShipParts[8] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"}; +static char *gShipParts[8] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"}; extern "C" void ApproachAngle_thunk(s16 *src, s16 dst, u32 param3); -struct EquipHammer_UnkStruct { - /* 00 */ unk8 mUnk_00[0x20]; - /* 20 */ unk32 mUnk_20; - /* 24 */ unk8 mUnk_24[0xC]; - /* 30 */ unk32 mUnk_30; - /* 34 */ unk8 mUnk_34[0xC]; - /* 40 */ unk32 mUnk_40; - /* 44 */ unk8 mUnk_44[0xC]; - /* 50 */ unk32 mUnk_50; - /* 54 */ -}; - -extern EquipHammer_UnkStruct data_ov059_0219b160; -extern unk32 data_ov059_0219b180; -extern unk32 data_ov059_0219b190; -extern unk32 data_ov059_0219b1a0; -extern unk32 data_ov059_0219b1b0; - ARM bool EquipHammer::IsUsable(unk32 param1) const { ActorNavi *pAVar3; @@ -74,7 +56,12 @@ ARM bool EquipHammer::IsUsable(unk32 param1) const { return true; } -ARM LinkStateItem *GetLinkStateItem() { +static LinkStateBase_UnkStruct1 data_ov059_0219b180 = {0x39, {FLOAT_TO_Q20(1.0), 0, FLOAT_TO_Q20(64.0)}}; +static LinkStateBase_UnkStruct1 data_ov059_0219b190 = {0x3c, {FLOAT_TO_Q20(1.0), 0, FLOAT_TO_Q20(5.0)}}; +static LinkStateBase_UnkStruct1 data_ov059_0219b1a0 = {0x3d, {FLOAT_TO_Q20(1.0), 0, FLOAT_TO_Q20(3.0)}}; +static LinkStateBase_UnkStruct1 data_ov059_0219b1b0 = {0x3e, {FLOAT_TO_Q20(1.2), 0, FLOAT_TO_Q20(6.0)}}; + +ARM LinkStateItem *EquipHammer::GetLinkStateItem() { return (LinkStateItem *) GetLinkState(LinkStateId_Item); } @@ -197,7 +184,7 @@ ARM void LinkStateItem::func_ov059_021990a4() { pEVar4 = GetEquipHammer(); pAVar5 = (ActorNavi *) gItemManager->GetFairy(FairyId_Courage); - if (CHECK_0219b160(data_ov059_0219b160.mUnk_20)) { + if (CHECK_0219b160(data_ov059_0219b180.mUnk_00)) { this->mUnk_38 = gPlayerControl->mAimWorld; if (pAVar5->mUnk_3c0[0] != 0 && gPlayerControl->UpdateAimWorld(&this->mUnk_38) && pEVar4->GetState() <= 0) { @@ -210,11 +197,11 @@ ARM void LinkStateItem::func_ov059_021990a4() { this->func_ov00_020a89bc(&data_ov059_0219b190, 1); } } else { - if (CHECK_0219b160(data_ov059_0219b160.mUnk_50)) { + if (CHECK_0219b160(data_ov059_0219b1b0.mUnk_00)) { if (this->func_ov00_020a8b3c(1) != 0 || gPlayerControl->UpdateAimWorld(&this->mUnk_38)) { this->func_ov00_020a89bc(&data_ov059_0219b180, 1); } - } else if (CHECK_0219b160(data_ov059_0219b160.mUnk_30) || CHECK_0219b160(data_ov059_0219b160.mUnk_40)) { + } else if (CHECK_0219b160(data_ov059_0219b190.mUnk_00) || CHECK_0219b160(data_ov059_0219b1a0.mUnk_00)) { gPlayerControl->UpdateAimWorld(&this->mUnk_38); pEVar4->func_ov059_02198e90(); @@ -227,7 +214,7 @@ ARM void LinkStateItem::func_ov059_021990a4() { pEVar4->func_ov059_02198ebc(); this->func_ov00_020a89bc(&data_ov059_0219b1b0, 1); } - } else if (!CHECK_0219b160(data_ov059_0219b160.mUnk_40) && pEVar4->GetChargeTimer() <= 0) { + } else if (!CHECK_0219b160(data_ov059_0219b1a0.mUnk_00) && pEVar4->GetChargeTimer() <= 0) { this->func_ov00_020a89bc(&data_ov059_0219b1a0, 1); } } else { From 4ee3525025dad0f8b033fc1d1928ffa5403921cc Mon Sep 17 00:00:00 2001 From: Aetias Date: Wed, 2 Jul 2025 00:21:27 +0200 Subject: [PATCH 16/16] Sync symbol names from eur to usa --- config/usa/arm9/overlays/ov059/symbols.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/usa/arm9/overlays/ov059/symbols.txt b/config/usa/arm9/overlays/ov059/symbols.txt index 849721d4..20717913 100644 --- a/config/usa/arm9/overlays/ov059/symbols.txt +++ b/config/usa/arm9/overlays/ov059/symbols.txt @@ -16,13 +16,13 @@ _ZN13LinkStateItem19func_ov059_0219907cEv kind:function(arm,size=0x28) addr:0x21 _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 +_ZN9ActorNavi19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x219929c +_ZN9ActorNavi19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x219a00c +_ZN9ActorNavi19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x219a968 +_ZN9ActorNavi19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x219ab08 +_ZN9ActorNavi19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x219ae74 +_ZN9ActorNavi19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x219af24 +_ZN9ActorNavi19func_ov059_0219b020Ev kind:function(arm,size=0xf0) addr:0x219af80 data_ov059_0219b110 kind:data(any) addr:0x219b070 @1761 kind:data(any) addr:0x219b0a0 local @1760 kind:data(any) addr:0x219b0a4 local