From 80478f5485bea03eae75668b454d61ccfdf90b9c Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 18 May 2024 17:12:48 +0200 Subject: [PATCH] Mangle `PlayerLinkBase::func_ov00_020bbd80` --- asm/ov00/Item/ItemManager_func_ov00_020ad790.inc | 2 +- asm/ov00/ov00_020b1498.s | 8 ++++---- include/Player/PlayerLinkBase.hpp | 1 + src/00_Core/Item/ItemManager.cpp | 6 +++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/asm/ov00/Item/ItemManager_func_ov00_020ad790.inc b/asm/ov00/Item/ItemManager_func_ov00_020ad790.inc index 2d103d2c..c03241aa 100644 --- a/asm/ov00/Item/ItemManager_func_ov00_020ad790.inc +++ b/asm/ov00/Item/ItemManager_func_ov00_020ad790.inc @@ -51,7 +51,7 @@ _020ad840: cmp r0, #0 beq _020ad860 mov r1, r5 - bl func_ov00_020bbd80 + bl _ZN14PlayerLinkBase18func_ov00_020bbd80Ei cmp r0, #0 beq _020ad874 _020ad860: diff --git a/asm/ov00/ov00_020b1498.s b/asm/ov00/ov00_020b1498.s index 6484e75f..f5143fcb 100644 --- a/asm/ov00/ov00_020b1498.s +++ b/asm/ov00/ov00_020b1498.s @@ -13389,9 +13389,9 @@ func_ov00_020bbd60: ; 0x020bbd60 _020bbd7c: .word data_027e0fd4 arm_func_end func_ov00_020bbd60 - .global func_ov00_020bbd80 - arm_func_start func_ov00_020bbd80 -func_ov00_020bbd80: ; 0x020bbd80 + .global _ZN14PlayerLinkBase18func_ov00_020bbd80Ei + arm_func_start _ZN14PlayerLinkBase18func_ov00_020bbd80Ei +_ZN14PlayerLinkBase18func_ov00_020bbd80Ei: ; 0x020bbd80 stmdb sp!, {r3, r4, r5, lr} ldr r2, _020bbe80 ; =gOverlayManager ldr r3, _020bbe84 ; =0x00000005 @@ -13467,7 +13467,7 @@ _020bbe84: .word 0x00000005 _020bbe88: .word data_027e0fd4 _020bbe8c: .word data_027e0fe4 _020bbe90: .word 0x424f4d42 - arm_func_end func_ov00_020bbd80 + arm_func_end _ZN14PlayerLinkBase18func_ov00_020bbd80Ei .global func_ov00_020bbe94 arm_func_start func_ov00_020bbe94 diff --git a/include/Player/PlayerLinkBase.hpp b/include/Player/PlayerLinkBase.hpp index e96ed00b..0d4dc1e3 100644 --- a/include/Player/PlayerLinkBase.hpp +++ b/include/Player/PlayerLinkBase.hpp @@ -75,6 +75,7 @@ public: /* 84 */ virtual void ResetUnk_5e(); /* 88 */ + bool func_ov00_020bbd80(s32 param1); void func_ov00_020bc854(Vec3p *param1); }; diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp index d34e9a40..df4dbf53 100644 --- a/src/00_Core/Item/ItemManager.cpp +++ b/src/00_Core/Item/ItemManager.cpp @@ -1,4 +1,5 @@ #include "Item/ItemManager.hpp" +#include "Player/PlayerLinkBase.hpp" static const char *sShipPartTypes[] = { "anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg" }; @@ -237,8 +238,7 @@ extern void *data_027e10a4; extern "C" bool func_ov15_02136670(void *param1); extern unk8 data_ov29_0217a4ac[]; extern "C" bool _ZN10MapManager18func_ov00_020849f8Ei(void *param1); -extern unk32 data_027e0fc8; -extern "C" bool func_ov00_020bbd80(unk32 param1, unk32 param2); +extern "C" bool _ZN14PlayerLinkBase18func_ov00_020bbd80Ei(unk32 param1, unk32 param2); extern "C" bool _ZNK11ItemManager7HasItemEi(); extern "C" void _ZN11ItemManager12GetEquipItemEi(); ARM bool NONMATCH(ItemManager::func_ov00_020ad790)(unk32 param1) { @@ -258,7 +258,7 @@ ARM bool NONMATCH(ItemManager::func_ov00_020ad790)(unk32 param1) { if ( mEquippedItem != ItemFlag_None && (unk2 || (u32) mEquippedItem - 9 <= 1) && - (data_027e0fc8 == 0 || func_ov00_020bbd80(data_027e0fc8, param1)) && + (gPlayerLink == 0 || gPlayerLink->func_ov00_020bbd80(param1)) && this->HasItem(mEquippedItem) ) { equipId = mEquippedItem;