From dd111d8555a6c1138347e468e4c94bf67c9cab44 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 25 May 2024 09:57:07 +0200 Subject: [PATCH] Mangle `EquipSword::GetEquipRope` --- asm/ov00/Actor/Actor.inc | 4 ++-- asm/ov00/Actor/Actor.s | 14 +++++++------- asm/ov00/ov00_020b1498.s | 12 ++++++------ asm/ov14/ov14_0213b778.s | 12 ++++++------ asm/ov29.inc | 2 +- asm/ov29.s | 2 +- asm/ov32.inc | 2 +- asm/ov32.s | 2 +- asm/ov34.inc | 2 +- asm/ov34.s | 2 +- asm/ov38.inc | 2 +- asm/ov38.s | 2 +- include/Player/EquipRope.hpp | 2 ++ include/Player/EquipSword.hpp | 3 +++ 14 files changed, 34 insertions(+), 29 deletions(-) diff --git a/asm/ov00/Actor/Actor.inc b/asm/ov00/Actor/Actor.inc index f6793343..6ff8a929 100644 --- a/asm/ov00/Actor/Actor.inc +++ b/asm/ov00/Actor/Actor.inc @@ -58,7 +58,7 @@ .extern _ZN14PlayerLinkBase18func_ov00_020bc854EP5Vec3p .extern _ZN14PlayerLinkBase20GongoronCollidesWithEP8Cylinder .extern func_ov00_020bd304 -.extern func_ov00_020bff70 +.extern _ZN10EquipSword12GetEquipRopeEv .extern func_ov00_020c1500 .extern func_ov00_020c5924 .extern func_ov00_020c8398 @@ -66,7 +66,7 @@ .extern _ZN14EquipBoomerang8GetActorEv .extern func_ov14_0213d420 .extern func_ov14_0213d440 -.extern func_ov14_0213d480 +.extern _ZN9EquipRope18func_ov14_0213d480Ei .extern func_ov14_0213d81c .extern func_ov14_0213d91c .extern func_ov14_0213dadc diff --git a/asm/ov00/Actor/Actor.s b/asm/ov00/Actor/Actor.s index 69d0a48a..ac48c156 100644 --- a/asm/ov00/Actor/Actor.s +++ b/asm/ov00/Actor/Actor.s @@ -2064,9 +2064,9 @@ _ZN5Actor18func_ov00_020c2d54Ev: ; 0x020c2d54 bl _ZN12ActorManager18func_ov00_020c39acEjPjb movs r5, r0 beq _020c2dd0 - bl func_ov00_020bff70 + bl _ZN10EquipSword12GetEquipRopeEv ldr r1, [r4, #8] - bl func_ov14_0213d480 + bl _ZN9EquipRope18func_ov14_0213d480Ei cmp r0, #0 bge _020c2dd0 ldr r1, [r4, #8] @@ -2091,7 +2091,7 @@ _ZN5Actor18func_ov00_020c2de4Ev: ; 0x020c2de4 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r5, r0 - bl func_ov00_020bff70 + bl _ZN10EquipSword12GetEquipRopeEv bl func_ov14_0213d420 movs r4, r0 add r2, sp, #0 @@ -2137,7 +2137,7 @@ _ZN5Actor18func_ov00_020c2e7cEv: ; 0x020c2e7c stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, #0 - bl func_ov00_020bff70 + bl _ZN10EquipSword12GetEquipRopeEv ldrb r1, [r6, #0x11d] mov r4, r0 cmp r1, #0 @@ -2158,7 +2158,7 @@ _020c2eb4: _ZN5Actor18func_ov00_020c2ebcEv: ; 0x020c2ebc stmdb sp!, {r4, lr} mov r4, r0 - bl func_ov00_020bff70 + bl _ZN10EquipSword12GetEquipRopeEv mov r1, r4 bl func_ov14_0213defc ldmia sp!, {r4, pc} @@ -2170,7 +2170,7 @@ _ZN5Actor18func_ov00_020c2ed4Ev: ; 0x020c2ed4 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x1c mov r4, r0 - bl func_ov00_020bff70 + bl _ZN10EquipSword12GetEquipRopeEv ldr r1, [r4, #8] mov r5, r0 bl func_ov14_0213d440 @@ -2227,7 +2227,7 @@ _020c2fa4: _020c2fb0: ldr r1, [r4, #8] mov r0, r5 - bl func_ov14_0213d480 + bl _ZN9EquipRope18func_ov14_0213d480Ei cmp r0, #0 addge sp, sp, #0x1c movge r0, #1 diff --git a/asm/ov00/ov00_020b1498.s b/asm/ov00/ov00_020b1498.s index 5a7352d6..847cc872 100644 --- a/asm/ov00/ov00_020b1498.s +++ b/asm/ov00/ov00_020b1498.s @@ -18461,7 +18461,7 @@ _020bfc80: str r2, [sp, #0x4c] str r1, [sp, #0x50] str r0, [sp, #0x54] - bl func_ov00_020bff70 + bl _ZN10EquipSword12GetEquipRopeEv ldrsh r2, [r4, #4] add r1, sp, #0x48 add r3, sp, #0x58 @@ -18476,7 +18476,7 @@ _020bfc80: cmp r1, r0 bgt _020bfd10 _020bfcfc: - bl func_ov00_020bff70 + bl _ZN10EquipSword12GetEquipRopeEv add r1, sp, #0x48 add r2, sp, #0x58 mov r3, #0 @@ -18651,15 +18651,15 @@ _020bff68: .word 0x00000b33 _020bff6c: .word data_027e0d38 arm_func_end func_ov00_020bf538 - .global func_ov00_020bff70 - arm_func_start func_ov00_020bff70 -func_ov00_020bff70: ; 0x020bff70 + .global _ZN10EquipSword12GetEquipRopeEv + arm_func_start _ZN10EquipSword12GetEquipRopeEv +_ZN10EquipSword12GetEquipRopeEv: ; 0x020bff70 ldr ip, _020bff7c ; =_ZN11ItemManager21GetEquipItemUncheckedEi mov r0, #6 bx ip .align 2, 0 _020bff7c: .word _ZN11ItemManager21GetEquipItemUncheckedEi - arm_func_end func_ov00_020bff70 + arm_func_end _ZN10EquipSword12GetEquipRopeEv .global func_ov00_020bff80 arm_func_start func_ov00_020bff80 diff --git a/asm/ov14/ov14_0213b778.s b/asm/ov14/ov14_0213b778.s index 38c3680a..51069bca 100644 --- a/asm/ov14/ov14_0213b778.s +++ b/asm/ov14/ov14_0213b778.s @@ -2586,9 +2586,9 @@ _0213d478: bx lr arm_func_end func_ov14_0213d440 - .global func_ov14_0213d480 - arm_func_start func_ov14_0213d480 -func_ov14_0213d480: ; 0x0213d480 + .global _ZN9EquipRope18func_ov14_0213d480Ei + arm_func_start _ZN9EquipRope18func_ov14_0213d480Ei +_ZN9EquipRope18func_ov14_0213d480Ei: ; 0x0213d480 ldrb r2, [r0, #0x68] cmp r2, #0 beq _0213d4c0 @@ -2610,7 +2610,7 @@ _0213d4b0: _0213d4c0: mvn r0, #0 bx lr - arm_func_end func_ov14_0213d480 + arm_func_end _ZN9EquipRope18func_ov14_0213d480Ei .global func_ov14_0213d4c8 arm_func_start func_ov14_0213d4c8 @@ -3333,7 +3333,7 @@ func_ov14_0213ddd4: ; 0x0213ddd4 mvneq r0, #0 ldmeqia sp!, {r3, r4, r5, r6, pc} ldr r1, [r4, #8] - bl func_ov14_0213d480 + bl _ZN9EquipRope18func_ov14_0213d480Ei cmp r0, #0 addge sp, sp, #0x2c ldmgeia sp!, {r3, r4, r5, r6, pc} @@ -3391,7 +3391,7 @@ func_ov14_0213ddd4: ; 0x0213ddd4 ldmeqia sp!, {r3, r4, r5, r6, pc} ldr r1, [sp, #0xc] mov r0, r5 - bl func_ov14_0213d480 + bl _ZN9EquipRope18func_ov14_0213d480Ei add sp, sp, #0x2c ldmia sp!, {r3, r4, r5, r6, pc} _0213def0: diff --git a/asm/ov29.inc b/asm/ov29.inc index 9d4fa55c..38ab57ed 100644 --- a/asm/ov29.inc +++ b/asm/ov29.inc @@ -339,7 +339,7 @@ .extern func_ov14_02122e98 .extern func_ov14_0213d420 .extern func_ov14_0213d440 -.extern func_ov14_0213d480 +.extern _ZN9EquipRope18func_ov14_0213d480Ei .extern func_ov14_0213d5d0 .extern func_ov14_0213dadc .extern func_ov14_0213ddd4 diff --git a/asm/ov29.s b/asm/ov29.s index 083b1e8e..48a69bdd 100644 --- a/asm/ov29.s +++ b/asm/ov29.s @@ -9748,7 +9748,7 @@ _02175a88: _02175a94: ldr r1, [r6, #8] mov r0, r4 - bl func_ov14_0213d480 + bl _ZN9EquipRope18func_ov14_0213d480Ei cmp r0, #0 addge sp, sp, #0x18 movge r0, #1 diff --git a/asm/ov32.inc b/asm/ov32.inc index 8a0466c5..e39cfe11 100644 --- a/asm/ov32.inc +++ b/asm/ov32.inc @@ -344,7 +344,7 @@ .extern func_ov14_02127ac4 .extern func_ov14_0213b904 .extern func_ov14_0213b984 -.extern func_ov14_0213d480 +.extern _ZN9EquipRope18func_ov14_0213d480Ei .extern gAdventureFlags .extern gMapManager .extern strncpy diff --git a/asm/ov32.s b/asm/ov32.s index 236d0e51..6514d69e 100644 --- a/asm/ov32.s +++ b/asm/ov32.s @@ -3702,7 +3702,7 @@ _0217eca0: beq _0217ecf4 bl func_ov32_0217edcc ldr r1, [r4, #8] - bl func_ov14_0213d480 + bl _ZN9EquipRope18func_ov14_0213d480Ei cmp r0, #0 ldr r1, [r4, #0x4b8] movge r2, #1 diff --git a/asm/ov34.inc b/asm/ov34.inc index 73a9e77f..e1c29446 100644 --- a/asm/ov34.inc +++ b/asm/ov34.inc @@ -233,7 +233,7 @@ .extern func_ov14_02123904 .extern func_ov14_0213d420 .extern func_ov14_0213d440 -.extern func_ov14_0213d480 +.extern _ZN9EquipRope18func_ov14_0213d480Ei .extern func_ov14_0213d594 .extern func_ov14_0213d5d0 .extern func_ov14_0213d91c diff --git a/asm/ov34.s b/asm/ov34.s index 91135a5d..cab2aaed 100644 --- a/asm/ov34.s +++ b/asm/ov34.s @@ -9288,7 +9288,7 @@ _02184084: _02184104: ldr r1, [r6, #8] mov r0, r4 - bl func_ov14_0213d480 + bl _ZN9EquipRope18func_ov14_0213d480Ei cmp r0, #0 addge sp, sp, #0x18 movge r0, #1 diff --git a/asm/ov38.inc b/asm/ov38.inc index 9d705b5a..5eece539 100644 --- a/asm/ov38.inc +++ b/asm/ov38.inc @@ -233,7 +233,7 @@ .extern func_ov14_02123904 .extern func_ov14_0213d420 .extern func_ov14_0213d440 -.extern func_ov14_0213d480 +.extern _ZN9EquipRope18func_ov14_0213d480Ei .extern func_ov14_0213d81c .extern func_ov14_0213d91c .extern func_ov14_0213dadc diff --git a/asm/ov38.s b/asm/ov38.s index 94f31ddf..d73ebb4d 100644 --- a/asm/ov38.s +++ b/asm/ov38.s @@ -2969,7 +2969,7 @@ func_ov38_0217e688: ; 0x0217e688 _0217e71c: ldr r1, [r4, #8] mov r0, r5 - bl func_ov14_0213d480 + bl _ZN9EquipRope18func_ov14_0213d480Ei cmp r0, #0 blt _0217e768 add sp, sp, #0x10 diff --git a/include/Player/EquipRope.hpp b/include/Player/EquipRope.hpp index 994cc1b2..0bb1b16c 100644 --- a/include/Player/EquipRope.hpp +++ b/include/Player/EquipRope.hpp @@ -36,4 +36,6 @@ public: /* 30 */ virtual void vfunc_30() override; // func_ov57_02199744 /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov57_021998f0 /* 50 */ + + s32 func_ov14_0213d480(s32 actorId); }; diff --git a/include/Player/EquipSword.hpp b/include/Player/EquipSword.hpp index 19bb4779..988ccdda 100644 --- a/include/Player/EquipSword.hpp +++ b/include/Player/EquipSword.hpp @@ -2,6 +2,7 @@ #include "types.h" #include "Player/EquipItem.hpp" +#include "Player/EquipRope.hpp" class EquipSword : public EquipItem { private: @@ -55,4 +56,6 @@ public: /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov00_020bff94 /* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override; // func_ov00_020c01dc /* 50 */ + + static EquipRope* GetEquipRope(); };