summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2025-02-02 12:13:20 +0100
committerAetias <aetias@outlook.com>2025-02-02 12:13:20 +0100
commitbaa870cbc090f56286ae3f2f44cd84ba7165e484 (patch)
treef877dcee4a011c09b4ecac2d6f492ddf4a9ae360
parentd5376fc903f3677a4f9c97bd3abd85c229f1ceb6 (diff)
Move ov057 documentation from Ghidra
-rw-r--r--config/eur/arm9/overlays/ov057/symbols.txt104
-rw-r--r--config/usa/arm9/overlays/ov057/symbols.txt104
-rw-r--r--include/Actor/Player/ActorRope.hpp26
-rw-r--r--include/Player/EquipRope.hpp34
-rw-r--r--include/Player/LinkStateItem.hpp6
-rw-r--r--src/00_Core/Player/LinkStateItem.cpp2
-rw-r--r--src/57_Rope/Actor/Player/ActorRope.cpp12
-rw-r--r--src/57_Rope/Player/EquipRope.cpp39
8 files changed, 219 insertions, 108 deletions
diff --git a/config/eur/arm9/overlays/ov057/symbols.txt b/config/eur/arm9/overlays/ov057/symbols.txt
index 7205f818..1da23918 100644
--- a/config/eur/arm9/overlays/ov057/symbols.txt
+++ b/config/eur/arm9/overlays/ov057/symbols.txt
@@ -1,51 +1,51 @@
-func_ov057_02198d00 kind:function(arm,size=0xb8) addr:0x2198d00
-func_ov057_02198db8 kind:function(arm,size=0x8) addr:0x2198db8
-func_ov057_02198dc0 kind:function(arm,size=0x8) addr:0x2198dc0
-func_ov057_02198dc8 kind:function(arm,size=0x8) addr:0x2198dc8
-func_ov057_02198dd0 kind:function(arm,size=0x18) addr:0x2198dd0
-func_ov057_02198de8 kind:function(arm,size=0x98) addr:0x2198de8
-func_ov057_02198e80 kind:function(arm,size=0x140) addr:0x2198e80
-func_ov057_02198fc0 kind:function(arm,size=0x68) addr:0x2198fc0
-func_ov057_02199028 kind:function(arm,size=0x8c) addr:0x2199028
-func_ov057_021990b4 kind:function(arm,size=0x38) addr:0x21990b4
-func_ov057_021990ec kind:function(arm,size=0xc) addr:0x21990ec
-func_ov057_021990f8 kind:function(arm,size=0xc) addr:0x21990f8
-func_ov057_02199104 kind:function(arm,size=0x128) addr:0x2199104
-func_ov057_0219922c kind:function(arm,size=0x88) addr:0x219922c
-func_ov057_021992b4 kind:function(arm,size=0x40) addr:0x21992b4
-func_ov057_021992f4 kind:function(arm,size=0x68) addr:0x21992f4
-func_ov057_0219935c kind:function(arm,size=0x40) addr:0x219935c
-func_ov057_0219939c kind:function(arm,size=0xb8) addr:0x219939c
-func_ov057_02199454 kind:function(arm,size=0x6c) addr:0x2199454
-func_ov057_021994c0 kind:function(arm,size=0x1f0) addr:0x21994c0
-func_ov057_021996b0 kind:function(arm,size=0x94) addr:0x21996b0
-func_ov057_02199744 kind:function(arm,size=0x1ac) addr:0x2199744
-func_ov057_021998f0 kind:function(arm,size=0x1e8) addr:0x21998f0
-func_ov057_02199ad8 kind:function(arm,size=0x1a0) addr:0x2199ad8
-func_ov057_02199c78 kind:function(arm,size=0xdc) addr:0x2199c78
-func_ov057_02199d54 kind:function(arm,size=0xd0) addr:0x2199d54
-func_ov057_02199e24 kind:function(arm,size=0x10) addr:0x2199e24
-func_ov057_02199e34 kind:function(arm,size=0x1c) addr:0x2199e34
-func_ov057_02199e50 kind:function(arm,size=0x14) addr:0x2199e50
-func_ov057_02199e64 kind:function(arm,size=0x68) addr:0x2199e64
-func_ov057_02199ecc kind:function(arm,size=0x10) addr:0x2199ecc
-func_ov057_02199edc kind:function(arm,size=0x32c) addr:0x2199edc
-func_ov057_0219a208 kind:function(arm,size=0x124) addr:0x219a208
-_ZN9EquipRope9StopUsingEP13LinkStateItem kind:function(arm,size=0x38) addr:0x219a32c
-func_ov057_0219a364 kind:function(arm,size=0x4c) addr:0x219a364
-func_ov057_0219a3b0 kind:function(arm,size=0x4c) addr:0x219a3b0
-func_ov057_0219a3fc kind:function(arm,size=0x64) addr:0x219a3fc
-func_ov057_0219a460 kind:function(arm,size=0x108) addr:0x219a460
-func_ov057_0219a568 kind:function(arm,size=0x44) addr:0x219a568
-func_ov057_0219a5ac kind:function(arm,size=0x10c) addr:0x219a5ac
-func_ov057_0219a6b8 kind:function(arm,size=0x198) addr:0x219a6b8
-func_ov057_0219a850 kind:function(arm,size=0x114) addr:0x219a850
-func_ov057_0219a964 kind:function(arm,size=0x1c) addr:0x219a964
-func_ov057_0219a980 kind:function(arm,size=0x14) addr:0x219a980
+_Z19func_ov057_02198d00P5Vec3pS0_i kind:function(arm,size=0xb8) addr:0x2198d00 local
+_ZN22EquipRope_Unk_02198dd08vfunc_08Ev kind:function(arm,size=0x8) addr:0x2198db8
+_ZN22EquipRope_Unk_02198dd08vfunc_0cEv kind:function(arm,size=0x8) addr:0x2198dc0
+_ZN22EquipRope_Unk_02198dd08vfunc_14Ev kind:function(arm,size=0x8) addr:0x2198dc8
+_ZN22EquipRope_Unk_02198dd0C2Ev kind:function(arm,size=0x18) addr:0x2198dd0
+_ZN22EquipRope_Unk_02198dd08vfunc_10EPi kind:function(arm,size=0x98) addr:0x2198de8
+_ZN16EquipRope_Unk_1819func_ov057_02198e80Ev kind:function(arm,size=0x140) addr:0x2198e80
+_ZN16EquipRope_Unk_1819func_ov057_02198fc0Ej kind:function(arm,size=0x68) addr:0x2198fc0
+_ZN16EquipRope_Unk_1819func_ov057_02199028Ei kind:function(arm,size=0x8c) addr:0x2199028
+_ZNK9EquipRope8IsUsableEi kind:function(arm,size=0x38) addr:0x21990b4
+_ZN9EquipRope19func_ov057_021990ecEv kind:function(arm,size=0xc) addr:0x21990ec
+_ZN9EquipRope19func_ov057_021990f8Ev kind:function(arm,size=0xc) addr:0x21990f8
+_ZN16EquipRope_Unk_1819func_ov057_02199104EPS_ kind:function(arm,size=0x128) addr:0x2199104
+_ZN9EquipRope19func_ov057_0219922cEj kind:function(arm,size=0x88) addr:0x219922c
+_ZN9EquipRope19func_ov057_021992b4Ei kind:function(arm,size=0x40) addr:0x21992b4
+_ZN9EquipRope8vfunc_18Ev kind:function(arm,size=0x68) addr:0x21992f4
+_ZN9EquipRope8vfunc_1cEv kind:function(arm,size=0x40) addr:0x219935c
+_ZN9EquipRope19func_ov057_0219939cEPii kind:function(arm,size=0xb8) addr:0x219939c
+_ZN9EquipRope19func_ov057_02199454Ei kind:function(arm,size=0x6c) addr:0x2199454
+_ZN9EquipRope19func_ov057_021994c0EPi kind:function(arm,size=0x1f0) addr:0x21994c0
+_ZN9EquipRope19func_ov057_021996b0EP5Vec3p kind:function(arm,size=0x94) addr:0x21996b0
+_ZN9EquipRope8vfunc_30Ev kind:function(arm,size=0x1ac) addr:0x2199744
+_ZN9EquipRope8vfunc_38Ei kind:function(arm,size=0x1e8) addr:0x21998f0
+_ZN9EquipRope19func_ov057_02199ad8Ev kind:function(arm,size=0x1a0) addr:0x2199ad8
+_ZN9EquipRope19func_ov057_02199c78Ev kind:function(arm,size=0xdc) addr:0x2199c78
+_ZN9EquipRope19func_ov057_02199d54Ev kind:function(arm,size=0xd0) addr:0x2199d54
+_ZN9EquipRope19func_ov057_02199e24Ev kind:function(arm,size=0x10) addr:0x2199e24
+_ZN22EquipRope_Unk_02198dd0D1Ev kind:function(arm,size=0x1c) addr:0x2199e34
+_ZN22EquipRope_Unk_02198dd0D0Ev kind:function(arm,size=0x14) addr:0x2199e50
+_ZN22EquipRope_Unk_02198dd0D2Ev kind:function(arm,size=0x68) addr:0x2199e64
+_ZN13LinkStateItem19func_ov057_02199e64Ev kind:function(arm,size=0x10) addr:0x2199ecc
+_ZN13LinkStateItem19func_ov057_02199edcEv kind:function(arm,size=0x32c) addr:0x2199edc
+_ZN13LinkStateItem19func_ov057_0219a208Ev kind:function(arm,size=0x124) addr:0x219a208
+_ZN13LinkStateItem13StopUsingRopeEv kind:function(arm,size=0x38) addr:0x219a32c
+_ZN13LinkStateItem19func_ov057_0219a364Ev kind:function(arm,size=0x4c) addr:0x219a364
+_ZN22ActorRope_Unk_0219a3b08vfunc_08EPs kind:function(arm,size=0x4c) addr:0x219a3b0
+_ZN22ActorRope_Unk_0219a3b08vfunc_10EPi kind:function(arm,size=0x64) addr:0x219a3fc
+_ZN9ActorRopeC2Ev kind:function(arm,size=0x108) addr:0x219a460
+_ZN9ActorRope8vfunc_08Ev kind:function(arm,size=0x44) addr:0x219a568
+_ZN9ActorRope19func_ov057_0219a5acEv kind:function(arm,size=0x10c) addr:0x219a5ac
+_ZN9ActorRope19func_ov057_0219a6b8Ev kind:function(arm,size=0x198) addr:0x219a6b8
+_ZN9ActorRope19func_ov057_0219a850Ev kind:function(arm,size=0x114) addr:0x219a850
+_ZN22ActorRope_Unk_0219a3b0D1Ev kind:function(arm,size=0x1c) addr:0x219a964
+_ZN22ActorRope_Unk_0219a3b0D0Ev kind:function(arm,size=0x14) addr:0x219a980
data_ov057_0219a994 kind:data(any) addr:0x219a994
-__sinit_ov057_0219a9a0 kind:function(arm,size=0x2c) addr:0x219a9a0
-__sinit_ov057_0219a9cc kind:function(arm,size=0x44) addr:0x219a9cc
-data_ov057_0219aa28 kind:data(any) addr:0x219aa28
+__sinit_EquipRope.cpp kind:function(arm,size=0x2c) addr:0x219a9a0 local
+__sinit_ActorRope.cpp kind:function(arm,size=0x44) addr:0x219a9cc local
+_ZTV22EquipRope_Unk_02198dd0 kind:data(any) addr:0x219aa28
data_ov057_0219aa40 kind:data(any) addr:0x219aa40
data_ov057_0219aa50 kind:data(any) addr:0x219aa50
data_ov057_0219aa60 kind:data(any) addr:0x219aa60
@@ -58,9 +58,9 @@ data_ov057_0219aa90 kind:data(any) addr:0x219aa90
data_ov057_0219aa94 kind:data(any) addr:0x219aa94
data_ov057_0219aa98 kind:data(any) addr:0x219aa98
data_ov057_0219aa9c kind:data(any) addr:0x219aa9c
-data_ov057_0219aac8 kind:data(any) addr:0x219aac8
-data_ov057_0219ab00 kind:bss addr:0x219ab00
-data_ov057_0219ab0c kind:bss addr:0x219ab0c
+_ZTV22ActorRope_Unk_0219a3b0 kind:data(any) addr:0x219aac8
+@890 kind:bss addr:0x219ab00
+sUnk_02198dd0 kind:bss addr:0x219ab0c
data_ov057_0219ab14 kind:bss addr:0x219ab14
-data_ov057_0219ab1c kind:bss addr:0x219ab1c
-data_ov057_0219ab28 kind:bss addr:0x219ab28
+@380 kind:bss addr:0x219ab1c
+gUnk_0219a3b0 kind:bss addr:0x219ab28
diff --git a/config/usa/arm9/overlays/ov057/symbols.txt b/config/usa/arm9/overlays/ov057/symbols.txt
index 0588950b..190088e2 100644
--- a/config/usa/arm9/overlays/ov057/symbols.txt
+++ b/config/usa/arm9/overlays/ov057/symbols.txt
@@ -1,51 +1,51 @@
-func_ov057_02198d00 kind:function(arm,size=0xb8) addr:0x2198c60
-func_ov057_02198db8 kind:function(arm,size=0x8) addr:0x2198d18
-func_ov057_02198dc0 kind:function(arm,size=0x8) addr:0x2198d20
-func_ov057_02198dc8 kind:function(arm,size=0x8) addr:0x2198d28
-func_ov057_02198dd0 kind:function(arm,size=0x18) addr:0x2198d30
-func_ov057_02198de8 kind:function(arm,size=0x98) addr:0x2198d48
-func_ov057_02198e80 kind:function(arm,size=0x140) addr:0x2198de0
-func_ov057_02198fc0 kind:function(arm,size=0x68) addr:0x2198f20
-func_ov057_02199028 kind:function(arm,size=0x8c) addr:0x2198f88
-func_ov057_021990b4 kind:function(arm,size=0x38) addr:0x2199014
-func_ov057_021990ec kind:function(arm,size=0xc) addr:0x219904c
-func_ov057_021990f8 kind:function(arm,size=0xc) addr:0x2199058
-func_ov057_02199104 kind:function(arm,size=0x128) addr:0x2199064
-func_ov057_0219922c kind:function(arm,size=0x88) addr:0x219918c
-func_ov057_021992b4 kind:function(arm,size=0x40) addr:0x2199214
-func_ov057_021992f4 kind:function(arm,size=0x68) addr:0x2199254
-func_ov057_0219935c kind:function(arm,size=0x40) addr:0x21992bc
-func_ov057_0219939c kind:function(arm,size=0xb8) addr:0x21992fc
-func_ov057_02199454 kind:function(arm,size=0x6c) addr:0x21993b4
-func_ov057_021994c0 kind:function(arm,size=0x1f0) addr:0x2199420
-func_ov057_021996b0 kind:function(arm,size=0x94) addr:0x2199610
-func_ov057_02199744 kind:function(arm,size=0x1ac) addr:0x21996a4
-func_ov057_021998f0 kind:function(arm,size=0x1e8) addr:0x2199850
-func_ov057_02199ad8 kind:function(arm,size=0x1a0) addr:0x2199a38
-func_ov057_02199c78 kind:function(arm,size=0xdc) addr:0x2199bd8
-func_ov057_02199d54 kind:function(arm,size=0xd0) addr:0x2199cb4
-func_ov057_02199e24 kind:function(arm,size=0x10) addr:0x2199d84
-func_ov057_02199e34 kind:function(arm,size=0x1c) addr:0x2199d94
-func_ov057_02199e50 kind:function(arm,size=0x14) addr:0x2199db0
-func_ov057_02199e64 kind:function(arm,size=0x68) addr:0x2199dc4
-func_ov057_02199ecc kind:function(arm,size=0x10) addr:0x2199e2c
-func_ov057_02199edc kind:function(arm,size=0x32c) addr:0x2199e3c
-func_ov057_0219a208 kind:function(arm,size=0x124) addr:0x219a168
-_ZN9EquipRope9StopUsingEP13LinkStateItem kind:function(arm,size=0x38) addr:0x219a28c
-func_ov057_0219a364 kind:function(arm,size=0x4c) addr:0x219a2c4
-func_ov057_0219a3b0 kind:function(arm,size=0x4c) addr:0x219a310
-func_ov057_0219a3fc kind:function(arm,size=0x64) addr:0x219a35c
-func_ov057_0219a460 kind:function(arm,size=0x108) addr:0x219a3c0
-func_ov057_0219a568 kind:function(arm,size=0x44) addr:0x219a4c8
-func_ov057_0219a5ac kind:function(arm,size=0x10c) addr:0x219a50c
-func_ov057_0219a6b8 kind:function(arm,size=0x198) addr:0x219a618
-func_ov057_0219a850 kind:function(arm,size=0x114) addr:0x219a7b0
-func_ov057_0219a964 kind:function(arm,size=0x1c) addr:0x219a8c4
-func_ov057_0219a980 kind:function(arm,size=0x14) addr:0x219a8e0
+_Z19func_ov057_02198d00P5Vec3pS0_i kind:function(arm,size=0xb8) addr:0x2198c60
+_ZN22EquipRope_Unk_02198dd08vfunc_08Ev kind:function(arm,size=0x8) addr:0x2198d18
+_ZN22EquipRope_Unk_02198dd08vfunc_0cEv kind:function(arm,size=0x8) addr:0x2198d20
+_ZN22EquipRope_Unk_02198dd08vfunc_14Ev kind:function(arm,size=0x8) addr:0x2198d28
+_ZN22EquipRope_Unk_02198dd0C2Ev kind:function(arm,size=0x18) addr:0x2198d30
+_ZN22EquipRope_Unk_02198dd08vfunc_10EPi kind:function(arm,size=0x98) addr:0x2198d48
+_ZN16EquipRope_Unk_1819func_ov057_02198e80Ev kind:function(arm,size=0x140) addr:0x2198de0
+_ZN16EquipRope_Unk_1819func_ov057_02198fc0Ej kind:function(arm,size=0x68) addr:0x2198f20
+_ZN16EquipRope_Unk_1819func_ov057_02199028Ei kind:function(arm,size=0x8c) addr:0x2198f88
+_ZNK9EquipRope8IsUsableEi kind:function(arm,size=0x38) addr:0x2199014
+_ZN9EquipRope19func_ov057_021990ecEv kind:function(arm,size=0xc) addr:0x219904c
+_ZN9EquipRope19func_ov057_021990f8Ev kind:function(arm,size=0xc) addr:0x2199058
+_ZN16EquipRope_Unk_1819func_ov057_02199104EPS_ kind:function(arm,size=0x128) addr:0x2199064
+_ZN9EquipRope19func_ov057_0219922cEj kind:function(arm,size=0x88) addr:0x219918c
+_ZN9EquipRope19func_ov057_021992b4Ei kind:function(arm,size=0x40) addr:0x2199214
+_ZN9EquipRope8vfunc_18Ev kind:function(arm,size=0x68) addr:0x2199254
+_ZN9EquipRope8vfunc_1cEv kind:function(arm,size=0x40) addr:0x21992bc
+_ZN9EquipRope19func_ov057_0219939cEPii kind:function(arm,size=0xb8) addr:0x21992fc
+_ZN9EquipRope19func_ov057_02199454Ei kind:function(arm,size=0x6c) addr:0x21993b4
+_ZN9EquipRope19func_ov057_021994c0EPi kind:function(arm,size=0x1f0) addr:0x2199420
+_ZN9EquipRope19func_ov057_021996b0EP5Vec3p kind:function(arm,size=0x94) addr:0x2199610
+_ZN9EquipRope8vfunc_30Ev kind:function(arm,size=0x1ac) addr:0x21996a4
+_ZN9EquipRope8vfunc_38Ei kind:function(arm,size=0x1e8) addr:0x2199850
+_ZN9EquipRope19func_ov057_02199ad8Ev kind:function(arm,size=0x1a0) addr:0x2199a38
+_ZN9EquipRope19func_ov057_02199c78Ev kind:function(arm,size=0xdc) addr:0x2199bd8
+_ZN9EquipRope19func_ov057_02199d54Ev kind:function(arm,size=0xd0) addr:0x2199cb4
+_ZN9EquipRope19func_ov057_02199e24Ev kind:function(arm,size=0x10) addr:0x2199d84
+_ZN22EquipRope_Unk_02198dd0D1Ev kind:function(arm,size=0x1c) addr:0x2199d94
+_ZN22EquipRope_Unk_02198dd0D0Ev kind:function(arm,size=0x14) addr:0x2199db0
+_ZN22EquipRope_Unk_02198dd0D2Ev kind:function(arm,size=0x68) addr:0x2199dc4
+_ZN13LinkStateItem19func_ov057_02199e64Ev kind:function(arm,size=0x10) addr:0x2199e2c
+_ZN13LinkStateItem19func_ov057_02199edcEv kind:function(arm,size=0x32c) addr:0x2199e3c
+_ZN13LinkStateItem19func_ov057_0219a208Ev kind:function(arm,size=0x124) addr:0x219a168
+_ZN13LinkStateItem13StopUsingRopeEv kind:function(arm,size=0x38) addr:0x219a28c
+_ZN13LinkStateItem19func_ov057_0219a364Ev kind:function(arm,size=0x4c) addr:0x219a2c4
+_ZN22ActorRope_Unk_0219a3b08vfunc_08EPs kind:function(arm,size=0x4c) addr:0x219a310
+_ZN22ActorRope_Unk_0219a3b08vfunc_10EPi kind:function(arm,size=0x64) addr:0x219a35c
+_ZN9ActorRopeC2Ev kind:function(arm,size=0x108) addr:0x219a3c0
+_ZN9ActorRope8vfunc_08Ev kind:function(arm,size=0x44) addr:0x219a4c8
+_ZN9ActorRope19func_ov057_0219a5acEv kind:function(arm,size=0x10c) addr:0x219a50c
+_ZN9ActorRope19func_ov057_0219a6b8Ev kind:function(arm,size=0x198) addr:0x219a618
+_ZN9ActorRope19func_ov057_0219a850Ev kind:function(arm,size=0x114) addr:0x219a7b0
+_ZN22ActorRope_Unk_0219a3b0D1Ev kind:function(arm,size=0x1c) addr:0x219a8c4
+_ZN22ActorRope_Unk_0219a3b0D0Ev kind:function(arm,size=0x14) addr:0x219a8e0
data_ov057_0219a994 kind:data(any) addr:0x219a8f4
-__sinit_ov057_0219a9a0 kind:function(arm,size=0x2c) addr:0x219a900
-__sinit_ov057_0219a9cc kind:function(arm,size=0x44) addr:0x219a92c
-data_ov057_0219aa28 kind:data(any) addr:0x219a988
+__sinit_EquipRope.cpp kind:function(arm,size=0x2c) addr:0x219a900 local
+__sinit_ActorRope.cpp kind:function(arm,size=0x44) addr:0x219a92c local
+_ZTV22EquipRope_Unk_02198dd0 kind:data(any) addr:0x219a988
data_ov057_0219aa40 kind:data(any) addr:0x219a9a0
data_ov057_0219aa50 kind:data(any) addr:0x219a9b0
data_ov057_0219aa60 kind:data(any) addr:0x219a9c0
@@ -58,9 +58,9 @@ data_ov057_0219aa90 kind:data(any) addr:0x219a9f0
data_ov057_0219aa94 kind:data(any) addr:0x219a9f4
data_ov057_0219aa98 kind:data(any) addr:0x219a9f8
data_ov057_0219aa9c kind:data(any) addr:0x219a9fc
-data_ov057_0219aac8 kind:data(any) addr:0x219aa28
-data_ov057_0219ab00 kind:bss addr:0x219aa60
-data_ov057_0219ab0c kind:bss addr:0x219aa6c
+_ZTV22ActorRope_Unk_0219a3b0 kind:data(any) addr:0x219aa28
+@890 kind:bss addr:0x219aa60
+sUnk_02198dd0 kind:bss addr:0x219aa6c
data_ov057_0219ab14 kind:bss addr:0x219aa74
-data_ov057_0219ab1c kind:bss addr:0x219aa7c
-data_ov057_0219ab28 kind:bss addr:0x219aa88
+@380 kind:bss addr:0x219aa7c
+gUnk_0219a3b0 kind:bss addr:0x219aa88
diff --git a/include/Actor/Player/ActorRope.hpp b/include/Actor/Player/ActorRope.hpp
index ce6051ec..1d70a5fd 100644
--- a/include/Actor/Player/ActorRope.hpp
+++ b/include/Actor/Player/ActorRope.hpp
@@ -6,6 +6,21 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
+#include "Unknown/UnkStruct_ov000_020beba8.hpp"
+
+class ActorRope_Unk_0219a3b0 : public UnkStruct_ov000_020beba8 {
+public:
+ /* 0 (base) */
+ /* c */
+
+ /* 00 */ virtual ~ActorRope_Unk_0219a3b0() override;
+ /* 08 */ virtual void vfunc_08(unk16 *param1) override;
+ /* 10 */ virtual void vfunc_10(s32 *param1) override;
+ /* 1c */
+
+ inline ActorRope_Unk_0219a3b0() :
+ UnkStruct_ov000_020beba8(6) {}
+};
class ActorRope : public Actor {
public:
@@ -15,12 +30,14 @@ public:
/* 158 */ unk8 mUnk_158[0xc];
/* 164 */ unk16 mUnk_164;
/* 166 */ unk16 mUnk_166;
- /* 168 */ unk8 mUnk_168[0x3];
+ /* 168 */ s16 mUnk_168;
+ /* 16a */ unk8 mUnk_16a;
/* 16b */ unk8 mUnk_16b;
/* 16c */ unk8 mUnk_16c;
/* 16d */ unk8 mUnk_16d;
/* 16e */ unk16 mUnk_16e;
- /* 170 */ unk8 mUnk_170[0x4];
+ /* 170 */ u16 mUnk_170;
+ /* 172 */ unk8 mUnk_172[0x2];
/* 174 */ Vec3p mUnk_174;
/* 180 */ Vec3p mUnk_180;
/* 18c */ unk8 mUnk_18c[0x4];
@@ -46,4 +63,9 @@ public:
bool func_ov014_02123cd0(Vec3p *param1, s32 param2);
bool func_ov014_02123e1c();
bool func_ov014_02123e48(unk32 param1);
+
+ ActorRope();
+ q20 func_ov057_0219a5ac();
+ void func_ov057_0219a6b8();
+ void func_ov057_0219a850();
};
diff --git a/include/Player/EquipRope.hpp b/include/Player/EquipRope.hpp
index 4d3117f6..ba157678 100644
--- a/include/Player/EquipRope.hpp
+++ b/include/Player/EquipRope.hpp
@@ -13,6 +13,27 @@ struct EquipRope_Unk_18 {
/* 00 */ Vec3p vec;
/* 0c */ unk8 mUnk_0c[0x10];
/* 1c */
+
+ bool func_ov057_02198e80();
+ void func_ov057_02198fc0(u32 param1);
+ void func_ov057_02199028(s32 param1);
+ bool func_ov057_02199104(EquipRope_Unk_18 *other);
+};
+
+class EquipRope_Unk_02198dd0 {
+public:
+ /* 0 (vtable) */
+ /* 4 */ unk32 mUnk_4;
+ /* 8 */
+
+ /* 00 */ virtual ~EquipRope_Unk_02198dd0();
+ /* 08 */ unk32 vfunc_08();
+ /* 0c */ unk32 vfunc_0c();
+ /* 10 */ unk32 vfunc_10(s32 *param1);
+ /* 14 */ unk32 vfunc_14();
+ /* 18 */
+
+ EquipRope_Unk_02198dd0();
};
class Actor;
@@ -80,5 +101,16 @@ public:
bool func_ov014_0213e20c(s32 param1, Vec3p *param2);
bool func_ov014_0213e328();
- static void StopUsing(LinkStateItem *param1);
+ void func_ov057_021990ec();
+ void func_ov057_021990f8();
+ bool func_ov057_0219922c(u32 param1);
+ void func_ov057_021992b4(s32 param1);
+ bool func_ov057_0219939c(s32 *param1, s32 param2);
+ bool func_ov057_02199454(s32 param1);
+ bool func_ov057_021994c0(unk32 *param1);
+ s32 func_ov057_021996b0(Vec3p *param1);
+ void func_ov057_02199ad8();
+ void func_ov057_02199c78();
+ void func_ov057_02199d54();
+ void func_ov057_02199e24();
};
diff --git a/include/Player/LinkStateItem.hpp b/include/Player/LinkStateItem.hpp
index be160ae0..f8c424b2 100644
--- a/include/Player/LinkStateItem.hpp
+++ b/include/Player/LinkStateItem.hpp
@@ -79,4 +79,10 @@ public:
void func_ov056_021990c0();
void func_ov056_0219911c();
bool func_ov056_021992f8();
+
+ void func_ov057_02199e64();
+ void func_ov057_02199edc();
+ void func_ov057_0219a208();
+ void StopUsingRope();
+ bool func_ov057_0219a364();
};
diff --git a/src/00_Core/Player/LinkStateItem.cpp b/src/00_Core/Player/LinkStateItem.cpp
index 9000a8c6..30c5a5e0 100644
--- a/src/00_Core/Player/LinkStateItem.cpp
+++ b/src/00_Core/Player/LinkStateItem.cpp
@@ -49,7 +49,7 @@ ARM void LinkStateItem::OnStateLeave(s32 param1) {
case ItemFlag_Boomerang: break;
case ItemFlag_BombBag: this->StopUsingBomb(param1); break;
case ItemFlag_Bow: break;
- case ItemFlag_GrapplingHook: EquipRope::StopUsing(this); break;
+ case ItemFlag_GrapplingHook: this->StopUsingRope(); break;
case ItemFlag_Hammer: EquipHammer::StopUsing(this); break;
case ItemFlag_PotionA:
case ItemFlag_PotionB:
diff --git a/src/57_Rope/Actor/Player/ActorRope.cpp b/src/57_Rope/Actor/Player/ActorRope.cpp
new file mode 100644
index 00000000..023f134b
--- /dev/null
+++ b/src/57_Rope/Actor/Player/ActorRope.cpp
@@ -0,0 +1,12 @@
+#include "Actor/Player/ActorRope.hpp"
+
+ActorRope_Unk_0219a3b0 gUnk_0219a3b0;
+
+void ActorRope_Unk_0219a3b0::vfunc_08(unk16 *param1) {}
+void ActorRope_Unk_0219a3b0::vfunc_10(s32 *param1) {}
+ActorRope::ActorRope() {}
+bool ActorRope::vfunc_08() {}
+q20 ActorRope::func_ov057_0219a5ac() {}
+void ActorRope::func_ov057_0219a6b8() {}
+void ActorRope::func_ov057_0219a850() {}
+ActorRope_Unk_0219a3b0::~ActorRope_Unk_0219a3b0() {}
diff --git a/src/57_Rope/Player/EquipRope.cpp b/src/57_Rope/Player/EquipRope.cpp
new file mode 100644
index 00000000..42acf1d9
--- /dev/null
+++ b/src/57_Rope/Player/EquipRope.cpp
@@ -0,0 +1,39 @@
+#include "Player/EquipRope.hpp"
+#include "Player/LinkStateItem.hpp"
+
+EquipRope_Unk_02198dd0 sUnk_02198dd0;
+
+bool func_ov057_02198d00(Vec3p *vec, Vec3p *dest, q20 step) {}
+unk32 EquipRope_Unk_02198dd0::vfunc_08() {}
+unk32 EquipRope_Unk_02198dd0::vfunc_0c() {}
+unk32 EquipRope_Unk_02198dd0::vfunc_14() {}
+EquipRope_Unk_02198dd0::EquipRope_Unk_02198dd0() {}
+unk32 EquipRope_Unk_02198dd0::vfunc_10(s32 *param1) {}
+bool EquipRope_Unk_18::func_ov057_02198e80() {}
+void EquipRope_Unk_18::func_ov057_02198fc0(u32 param1) {}
+void EquipRope_Unk_18::func_ov057_02199028(s32 param1) {}
+bool EquipRope::IsUsable(unk32 param1) const {}
+void EquipRope::func_ov057_021990ec() {}
+void EquipRope::func_ov057_021990f8() {}
+bool EquipRope_Unk_18::func_ov057_02199104(EquipRope_Unk_18 *other) {}
+bool EquipRope::func_ov057_0219922c(u32 param1) {}
+void EquipRope::func_ov057_021992b4(s32 param1) {}
+void EquipRope::vfunc_18() {}
+void EquipRope::vfunc_1c() {}
+bool EquipRope::func_ov057_0219939c(s32 *param1, s32 param2) {}
+bool EquipRope::func_ov057_02199454(s32 param1) {}
+bool EquipRope::func_ov057_021994c0(unk32 *param1) {}
+s32 EquipRope::func_ov057_021996b0(Vec3p *param1) {}
+void EquipRope::vfunc_30() {}
+void EquipRope::vfunc_38(unk32 param1) {}
+void EquipRope::func_ov057_02199ad8() {}
+void EquipRope::func_ov057_02199c78() {}
+void EquipRope::func_ov057_02199d54() {}
+void EquipRope::func_ov057_02199e24() {}
+EquipRope_Unk_02198dd0::~EquipRope_Unk_02198dd0() {}
+void LinkStateItem::func_ov057_02199e64() {}
+EquipRope *GetEquipRope();
+void LinkStateItem::func_ov057_02199edc() {}
+void LinkStateItem::func_ov057_0219a208() {}
+void LinkStateItem::StopUsingRope() {}
+bool LinkStateItem::func_ov057_0219a364() {} \ No newline at end of file