Add LinkStateFollow

This commit is contained in:
Aetias
2024-04-06 16:11:25 +02:00
parent bcff62a8ba
commit 336defc995
17 changed files with 528 additions and 496 deletions
+1 -1
View File
@@ -26,6 +26,7 @@
.extern _ZN13LinkStateBase8vfunc_28Ev
.extern _ZN13LinkStateBase8vfunc_34EP5Vec3p
.extern _ZN13LinkStateItem15GetEquipBombchuEv
.extern _ZN15LinkStateFollow20GetLinkStateCutsceneEv
.extern _ZN17LinkStateInteract20SetGrabActorVelocityEP5Vec3p
.extern _ZNK11ItemManager15HasPurplePotionEv
.extern _ZNK11ItemManager7HasItemEi
@@ -57,7 +58,6 @@
.extern func_ov00_0209779c
.extern func_ov00_02097ff4
.extern func_ov00_020a5e9c
.extern func_ov00_020a914c
.extern func_ov00_020b7e6c
.extern func_ov00_020c0e24
.extern func_ov00_020c7764
+2 -2
View File
@@ -569,12 +569,12 @@ _020ac64c:
bne _020ac698
ldr r0, _020ac7d8 ; =data_027e0c54
ldrb r5, [r0]
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
strb r5, [r0, #0xa7]
ldr r0, _020ac7dc ; =data_ov00_020eec68
bl func_ov00_020d7424
mov r5, r0
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
str r5, [r0, #0x98]
ldr r0, _020ac7dc ; =data_ov00_020eec68
mov r1, #5
+31
View File
@@ -0,0 +1,31 @@
#pragma once
.extern _ZN10PlayerBase13GetEquipSwordEv
.extern _ZN13LinkStateBase12GetPlayerPosEv
.extern _ZN13LinkStateBase12GetPlayerVelEv
.extern _ZN13LinkStateBase12OnStateLeaveEi
.extern _ZN13LinkStateBase18func_ov00_020a8d40Ev
.extern _ZN13LinkStateBase8vfunc_24Ei
.extern _ZN13PlayerControl13StopFollowingEv
.extern _ZN13PlayerControl18func_ov00_020af01cEPc
.extern data_027e0e60
.extern data_027e0fb8
.extern func_01ff9bf8
.extern func_01ff9cec
.extern func_01fffcd8
.extern func_0202b308
.extern func_0202d95c
.extern func_ov00_02083a1c
.extern func_ov00_02083c7c
.extern func_ov00_020840c4
.extern func_ov04_0210ad94
.extern func_ov04_0210adb0
.extern func_ov04_0210adf8
.extern func_ov05_0210b57c
.extern func_ov05_0210b97c
.extern func_ov05_0210c20c
.extern func_ov05_0210c990
.extern func_ov05_0210f708
.extern func_ov05_0210f70c
.extern func_ov05_0210f714
.extern func_ov05_0210f71c
.extern func_ov14_0214bd08
+388
View File
@@ -0,0 +1,388 @@
.include "ov00/Player/LinkStateFollow.inc"
.include "macros/function.inc"
.text
.global _ZN15LinkStateFollow8vfunc_00Ev
thumb_func_start _ZN15LinkStateFollow8vfunc_00Ev
_ZN15LinkStateFollow8vfunc_00Ev: ; 0x020a8f74
bx lr
.align 2, 0
thumb_func_end _ZN15LinkStateFollow8vfunc_00Ev
.global _ZN15LinkStateFollow5GetIdEv
arm_func_start _ZN15LinkStateFollow5GetIdEv
_ZN15LinkStateFollow5GetIdEv: ; 0x020a8f78
mov r0, #3
bx lr
arm_func_end _ZN15LinkStateFollow5GetIdEv
.global _ZN15LinkStateFollow16MoveTowardTargetEv
arm_func_start _ZN15LinkStateFollow16MoveTowardTargetEv
_ZN15LinkStateFollow16MoveTowardTargetEv: ; 0x020a8f80
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
ldr r0, [r0, #0xc0]
cmp r0, #0x1e
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, pc}
mov r0, r5
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
ldr r2, _020a9020 ; =data_027e0e60
add r1, r0, #0xc4
ldr r0, [r2]
bl func_ov00_020840c4
movs r4, r0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, pc}
mov r0, r5
bl _ZN13LinkStateBase12GetPlayerPosEv
mov r1, r0
add r2, sp, #0
add r0, r4, #0x18
bl func_01ff9bf8
mov r1, #0
add r0, sp, #0
str r1, [sp, #4]
bl func_01ff9cec
ldr r1, _020a9024 ; =0x00000155
cmp r0, r1
addlt sp, sp, #0xc
ldmltia sp!, {r4, r5, pc}
add r0, sp, #0
bl func_0202d95c
mov r0, r5
bl _ZN13LinkStateBase12GetPlayerVelEv
add r1, sp, #0
mov r2, #0x2000
bl func_0202b308
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end _ZN15LinkStateFollow16MoveTowardTargetEv
_020a9020: .word data_027e0e60
_020a9024: .word 0x00000155
.global _ZN15LinkStateFollow12OnStateLeaveEi
arm_func_start _ZN15LinkStateFollow12OnStateLeaveEi
_ZN15LinkStateFollow12OnStateLeaveEi: ; 0x020a9028
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl _ZN13LinkStateBase12OnStateLeaveEi
ldr r0, _020a90a8 ; =data_027e0fb8
ldr r0, [r0]
ldrb r1, [r0, #0x80]
cmp r1, #0
beq _020a904c
bl _ZN13PlayerControl13StopFollowingEv
_020a904c:
ldr r0, [r5, #4]
cmp r0, #6
cmpne r0, #7
ldmneia sp!, {r3, r4, r5, pc}
ldr r1, _020a90ac ; =data_027e0e60
add r0, sp, #0
ldr r4, [r1]
add r2, r5, #0x24
mov r1, r4
bl func_ov00_02083a1c
add r1, sp, #0
mov r0, r4
bl func_ov00_020840c4
movs r4, r0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #0x47
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r4
bl func_ov14_0214bd08
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end _ZN15LinkStateFollow12OnStateLeaveEi
_020a90a8: .word data_027e0fb8
_020a90ac: .word data_027e0e60
.global _ZN15LinkStateFollow8vfunc_24Ei
arm_func_start _ZN15LinkStateFollow8vfunc_24Ei
_ZN15LinkStateFollow8vfunc_24Ei: ; 0x020a90b0
stmdb sp!, {r3, lr}
cmp r1, #5
addls pc, pc, r1, lsl #2
b _020a9104
_020a90c0: ; jump table
b _020a9104 ; case 0
b _020a910c ; case 1
b _020a910c ; case 2
b _020a910c ; case 3
b _020a90d8 ; case 4
b _020a90f0 ; case 5
_020a90d8:
ldr r2, [r0, #4]
cmp r2, #1
cmpne r2, #6
beq _020a910c
mov r0, #0
ldmia sp!, {r3, pc}
_020a90f0:
ldr r2, [r0, #4]
cmp r2, #5
bne _020a910c
bl _ZN13LinkStateBase8vfunc_24Ei
ldmia sp!, {r3, pc}
_020a9104:
mov r0, #0
ldmia sp!, {r3, pc}
_020a910c:
ldr r2, [r0, #4]
cmp r2, #1
cmpne r2, #6
cmpne r2, #0xa
bne _020a9128
bl _ZN13LinkStateBase8vfunc_24Ei
ldmia sp!, {r3, pc}
_020a9128:
mov r0, #0
ldmia sp!, {r3, pc}
arm_func_end _ZN15LinkStateFollow8vfunc_24Ei
.global _ZN15LinkStateFollow8vfunc_28Ev
arm_func_start _ZN15LinkStateFollow8vfunc_28Ev
_ZN15LinkStateFollow8vfunc_28Ev: ; 0x020a9130
stmdb sp!, {r3, lr}
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r0, [r0, #0x38]
cmp r0, #0
movlt r0, #1
movge r0, #0
ldmia sp!, {r3, pc}
arm_func_end _ZN15LinkStateFollow8vfunc_28Ev
.global _ZN15LinkStateFollow20GetLinkStateCutsceneEv
arm_func_start _ZN15LinkStateFollow20GetLinkStateCutsceneEv
_ZN15LinkStateFollow20GetLinkStateCutsceneEv: ; 0x020a914c
ldr ip, _020a9158 ; =func_01fffcd8
mov r0, #6
bx ip
.align 2, 0
arm_func_end _ZN15LinkStateFollow20GetLinkStateCutsceneEv
_020a9158: .word func_01fffcd8
.global _ZN15LinkStateFollow8vfunc_34EP5Vec3p
arm_func_start _ZN15LinkStateFollow8vfunc_34EP5Vec3p
_ZN15LinkStateFollow8vfunc_34EP5Vec3p: ; 0x020a915c
ldr r0, [r0, #4]
cmp r0, #2
movne r0, #0
bxne lr
ldr r2, [r1, #4]
mov r0, #1
add r2, r2, #0x1200
str r2, [r1, #4]
bx lr
arm_func_end _ZN15LinkStateFollow8vfunc_34EP5Vec3p
.global _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p
arm_func_start _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p
_ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p: ; 0x020a9180
stmdb sp!, {r3, r4, r5, lr}
ldr r2, _020a9208 ; =data_027e0fb8
mov r4, r1
ldr r3, [r2]
ldr r5, [r3, #0xa0]
cmp r5, #0
bne _020a91f0
mov r2, #0
add r1, sp, #0
mov r0, r3
strb r2, [sp]
strb r2, [sp, #1]
bl _ZN13PlayerControl18func_ov00_020af01cEPc
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, _020a920c ; =data_027e0e60
ldrb r2, [sp]
ldrb r1, [sp, #1]
ldr r0, [r0]
sub r3, sp, #4
strb r2, [r3]
strb r1, [r3, #1]
ldr r2, [r3]
mov r1, r4
bl func_ov00_02083c7c
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_020a91f0:
mov r2, r5
bl _ZN15LinkStateFollow18func_ov00_020a9210EP5Vec3pP5Actor
cmp r0, #0
ldrnesb r0, [r5, #0x12]
moveq r0, #0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p
_020a9208: .word data_027e0fb8
_020a920c: .word data_027e0e60
.global _ZN15LinkStateFollow18func_ov00_020a9210EP5Vec3pP5Actor
arm_func_start _ZN15LinkStateFollow18func_ov00_020a9210EP5Vec3pP5Actor
_ZN15LinkStateFollow18func_ov00_020a9210EP5Vec3pP5Actor: ; 0x020a9210
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r2
ldrsb r0, [r5, #0x12]
mov r4, r1
cmp r0, #8
beq _020a926c
cmp r0, #9
bne _020a9280
mov r0, r5
ldr r2, [r0]
add r1, sp, #0
ldr r2, [r2, #0x8c]
blx r2
ldr r1, [sp]
mov r0, #1
str r1, [r4]
ldr r1, [sp, #4]
str r1, [r4, #4]
ldr r1, [sp, #8]
add sp, sp, #0xc
str r1, [r4, #8]
ldmia sp!, {r4, r5, pc}
_020a926c:
bl _ZN10PlayerBase13GetEquipSwordEv
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x14]
blx r2
_020a9280:
ldr r1, [r5, #0x18]
mov r0, #1
str r1, [r4]
ldr r1, [r5, #0x1c]
str r1, [r4, #4]
ldr r1, [r5, #0x20]
str r1, [r4, #8]
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
arm_func_end _ZN15LinkStateFollow18func_ov00_020a9210EP5Vec3pP5Actor
.data
.global data_ov00_020e575c
data_ov00_020e575c: ; 0x020e575c
.ascii "brg"
.byte 0x00
.global data_ov00_020e5760
data_ov00_020e5760: ; 0x020e5760
.ascii "fnl"
.byte 0x00
.global data_ov00_020e5764
data_ov00_020e5764: ; 0x020e5764
.ascii "pdl"
.byte 0x00
.global data_ov00_020e5768
data_ov00_020e5768: ; 0x020e5768
.ascii "dco"
.byte 0x00
.global data_ov00_020e576c
data_ov00_020e576c: ; 0x020e576c
.ascii "can"
.byte 0x00
.global data_ov00_020e5770
data_ov00_020e5770: ; 0x020e5770
.ascii "hul"
.byte 0x00
.global data_ov00_020e5774
data_ov00_020e5774: ; 0x020e5774
.ascii "bow"
.byte 0x00
.global data_ov00_020e5778
data_ov00_020e5778: ; 0x020e5778
.ascii "anc"
.byte 0x00
.global data_ov00_020e577c
data_ov00_020e577c: ; 0x020e577c
.word data_ov00_020e5778
.global data_ov00_020e5780
data_ov00_020e5780: ; 0x020e5780
.word data_ov00_020e5774
.global data_ov00_020e5784
data_ov00_020e5784: ; 0x020e5784
.word data_ov00_020e5770
.global data_ov00_020e5788
data_ov00_020e5788: ; 0x020e5788
.word data_ov00_020e576c
.global data_ov00_020e578c
data_ov00_020e578c: ; 0x020e578c
.word data_ov00_020e5768
.global data_ov00_020e5790
data_ov00_020e5790: ; 0x020e5790
.word data_ov00_020e5764
.global data_ov00_020e5794
data_ov00_020e5794: ; 0x020e5794
.word data_ov00_020e5760
.global data_ov00_020e5798
data_ov00_020e5798: ; 0x020e5798
.word data_ov00_020e575c
.global data_ov00_020e579c
data_ov00_020e579c: ; 0x020e579c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e57a0
data_ov00_020e57a0: ; 0x020e57a0
.byte 0x00, 0x00, 0x00, 0x00
.global _ZTV15LinkStateFollow
_ZTV15LinkStateFollow: ; 0x020e57a4
.word _ZN15LinkStateFollow8vfunc_00Ev
.global data_ov00_020e57a8
data_ov00_020e57a8: ; 0x020e57a8
.word func_ov04_0210ad94 ; data_ov07_0210ad94
.global data_ov00_020e57ac
data_ov00_020e57ac: ; 0x020e57ac
.word func_ov04_0210adb0 ; data_ov07_0210adb0
.global data_ov00_020e57b0
data_ov00_020e57b0: ; 0x020e57b0
.word _ZN15LinkStateFollow5GetIdEv - 1
.global data_ov00_020e57b4
data_ov00_020e57b4: ; 0x020e57b4
.word func_ov04_0210adf8 ; data_ov07_0210adf8
.global data_ov00_020e57b8
data_ov00_020e57b8: ; 0x020e57b8
.word func_ov05_0210b57c ; data_ov07_0210b57c
.global data_ov00_020e57bc
data_ov00_020e57bc: ; 0x020e57bc
.word _ZN15LinkStateFollow12OnStateLeaveEi - 1
.global data_ov00_020e57c0
data_ov00_020e57c0: ; 0x020e57c0
.word func_ov05_0210b97c ; data_ov07_0210b97c
.global data_ov00_020e57c4
data_ov00_020e57c4: ; 0x020e57c4
.word func_ov05_0210c20c ; data_ov07_0210c20c
.global data_ov00_020e57c8
data_ov00_020e57c8: ; 0x020e57c8
.word _ZN15LinkStateFollow8vfunc_24Ei - 1
.global data_ov00_020e57cc
data_ov00_020e57cc: ; 0x020e57cc
.word _ZN15LinkStateFollow8vfunc_28Ev - 1
.global data_ov00_020e57d0
data_ov00_020e57d0: ; 0x020e57d0
.word func_ov05_0210c990 ; data_ov07_0210c990
.global data_ov00_020e57d4
data_ov00_020e57d4: ; 0x020e57d4
.word func_ov05_0210f708
.global data_ov00_020e57d8
data_ov00_020e57d8: ; 0x020e57d8
.word _ZN15LinkStateFollow8vfunc_34EP5Vec3p - 1
.global data_ov00_020e57dc
data_ov00_020e57dc: ; 0x020e57dc
.word func_ov05_0210f70c
.global data_ov00_020e57e0
data_ov00_020e57e0: ; 0x020e57e0
.word func_ov05_0210f714
.global data_ov00_020e57e4
data_ov00_020e57e4: ; 0x020e57e4
.word func_ov05_0210f71c
-30
View File
@@ -1,12 +1,4 @@
#pragma once
.extern _ZN10PlayerBase13GetEquipSwordEv
.extern _ZN13LinkStateBase12GetPlayerPosEv
.extern _ZN13LinkStateBase12GetPlayerVelEv
.extern _ZN13LinkStateBase12OnStateLeaveEi
.extern _ZN13LinkStateBase18func_ov00_020a8d40Ev
.extern _ZN13LinkStateBase8vfunc_24Ei
.extern _ZN13PlayerControl13StopFollowingEv
.extern _ZN13PlayerControl18func_ov00_020af01cEPc
.extern _ZN9SysObjectdlEPv
.extern data_02050f54
.extern data_027e016c
@@ -18,8 +10,6 @@
.extern data_027e0468
.extern data_027e0ce0
.extern data_027e0d78
.extern data_027e0e60
.extern data_027e0fb8
.extern data_ov00_020e9360
.extern func_01ff80d4
.extern func_01ff81f8
@@ -28,10 +18,7 @@
.extern func_01ff83a0
.extern func_01ff8690
.extern func_01ff8e84
.extern func_01ff9bf8
.extern func_01ff9cec
.extern func_01ffa9fc
.extern func_01fffcd8
.extern func_020079d8
.extern func_0201838c
.extern func_020183b4
@@ -51,14 +38,9 @@
.extern func_0201b2f8
.extern func_0201b35c
.extern func_0201e388
.extern func_0202b308
.extern func_0202d95c
.extern func_0202e9f4
.extern func_0202ea18
.extern func_ov00_02079e68
.extern func_ov00_02083a1c
.extern func_ov00_02083c7c
.extern func_ov00_020840c4
.extern func_ov00_020b3ea8
.extern func_ov00_020b3eac
.extern func_ov00_020c0c08
@@ -66,15 +48,3 @@
.extern func_ov00_020c0d70
.extern func_ov00_020c0e94
.extern func_ov00_020c0ea0
.extern func_ov04_0210ad94
.extern func_ov04_0210adb0
.extern func_ov04_0210adf8
.extern func_ov05_0210b57c
.extern func_ov05_0210b97c
.extern func_ov05_0210c20c
.extern func_ov05_0210c990
.extern func_ov05_0210f708
.extern func_ov05_0210f70c
.extern func_ov05_0210f714
.extern func_ov05_0210f71c
.extern func_ov14_0214bd08
+46 -428
View File
@@ -3,275 +3,6 @@
.text
.global func_ov00_020a8f74
thumb_func_start func_ov00_020a8f74
func_ov00_020a8f74: ; 0x020a8f74
bx lr
.align 2, 0
thumb_func_end func_ov00_020a8f74
.global func_ov00_020a8f78
arm_func_start func_ov00_020a8f78
func_ov00_020a8f78: ; 0x020a8f78
mov r0, #3
bx lr
arm_func_end func_ov00_020a8f78
.global func_ov00_020a8f80
arm_func_start func_ov00_020a8f80
func_ov00_020a8f80: ; 0x020a8f80
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
ldr r0, [r0, #0xc0]
cmp r0, #0x1e
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, pc}
mov r0, r5
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
ldr r2, _020a9020 ; =data_027e0e60
add r1, r0, #0xc4
ldr r0, [r2]
bl func_ov00_020840c4
movs r4, r0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, pc}
mov r0, r5
bl _ZN13LinkStateBase12GetPlayerPosEv
mov r1, r0
add r2, sp, #0
add r0, r4, #0x18
bl func_01ff9bf8
mov r1, #0
add r0, sp, #0
str r1, [sp, #4]
bl func_01ff9cec
ldr r1, _020a9024 ; =0x00000155
cmp r0, r1
addlt sp, sp, #0xc
ldmltia sp!, {r4, r5, pc}
add r0, sp, #0
bl func_0202d95c
mov r0, r5
bl _ZN13LinkStateBase12GetPlayerVelEv
add r1, sp, #0
mov r2, #0x2000
bl func_0202b308
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
arm_func_end func_ov00_020a8f80
_020a9020: .word data_027e0e60
_020a9024: .word 0x00000155
.global func_ov00_020a9028
arm_func_start func_ov00_020a9028
func_ov00_020a9028: ; 0x020a9028
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl _ZN13LinkStateBase12OnStateLeaveEi
ldr r0, _020a90a8 ; =data_027e0fb8
ldr r0, [r0]
ldrb r1, [r0, #0x80]
cmp r1, #0
beq _020a904c
bl _ZN13PlayerControl13StopFollowingEv
_020a904c:
ldr r0, [r5, #4]
cmp r0, #6
cmpne r0, #7
ldmneia sp!, {r3, r4, r5, pc}
ldr r1, _020a90ac ; =data_027e0e60
add r0, sp, #0
ldr r4, [r1]
add r2, r5, #0x24
mov r1, r4
bl func_ov00_02083a1c
add r1, sp, #0
mov r0, r4
bl func_ov00_020840c4
movs r4, r0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r1, [r0]
ldr r1, [r1, #0x1c]
blx r1
cmp r0, #0x47
ldmneia sp!, {r3, r4, r5, pc}
mov r0, r4
bl func_ov14_0214bd08
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov00_020a9028
_020a90a8: .word data_027e0fb8
_020a90ac: .word data_027e0e60
.global func_ov00_020a90b0
arm_func_start func_ov00_020a90b0
func_ov00_020a90b0: ; 0x020a90b0
stmdb sp!, {r3, lr}
cmp r1, #5
addls pc, pc, r1, lsl #2
b _020a9104
_020a90c0: ; jump table
b _020a9104 ; case 0
b _020a910c ; case 1
b _020a910c ; case 2
b _020a910c ; case 3
b _020a90d8 ; case 4
b _020a90f0 ; case 5
_020a90d8:
ldr r2, [r0, #4]
cmp r2, #1
cmpne r2, #6
beq _020a910c
mov r0, #0
ldmia sp!, {r3, pc}
_020a90f0:
ldr r2, [r0, #4]
cmp r2, #5
bne _020a910c
bl _ZN13LinkStateBase8vfunc_24Ei
ldmia sp!, {r3, pc}
_020a9104:
mov r0, #0
ldmia sp!, {r3, pc}
_020a910c:
ldr r2, [r0, #4]
cmp r2, #1
cmpne r2, #6
cmpne r2, #0xa
bne _020a9128
bl _ZN13LinkStateBase8vfunc_24Ei
ldmia sp!, {r3, pc}
_020a9128:
mov r0, #0
ldmia sp!, {r3, pc}
arm_func_end func_ov00_020a90b0
.global func_ov00_020a9130
arm_func_start func_ov00_020a9130
func_ov00_020a9130: ; 0x020a9130
stmdb sp!, {r3, lr}
bl func_ov00_020a914c
ldr r0, [r0, #0x38]
cmp r0, #0
movlt r0, #1
movge r0, #0
ldmia sp!, {r3, pc}
arm_func_end func_ov00_020a9130
.global func_ov00_020a914c
arm_func_start func_ov00_020a914c
func_ov00_020a914c: ; 0x020a914c
ldr ip, _020a9158 ; =func_01fffcd8
mov r0, #6
bx ip
.align 2, 0
arm_func_end func_ov00_020a914c
_020a9158: .word func_01fffcd8
.global func_ov00_020a915c
arm_func_start func_ov00_020a915c
func_ov00_020a915c: ; 0x020a915c
ldr r0, [r0, #4]
cmp r0, #2
movne r0, #0
bxne lr
ldr r2, [r1, #4]
mov r0, #1
add r2, r2, #0x1200
str r2, [r1, #4]
bx lr
arm_func_end func_ov00_020a915c
.global func_ov00_020a9180
arm_func_start func_ov00_020a9180
func_ov00_020a9180: ; 0x020a9180
stmdb sp!, {r3, r4, r5, lr}
ldr r2, _020a9208 ; =data_027e0fb8
mov r4, r1
ldr r3, [r2]
ldr r5, [r3, #0xa0]
cmp r5, #0
bne _020a91f0
mov r2, #0
add r1, sp, #0
mov r0, r3
strb r2, [sp]
strb r2, [sp, #1]
bl _ZN13PlayerControl18func_ov00_020af01cEPc
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, _020a920c ; =data_027e0e60
ldrb r2, [sp]
ldrb r1, [sp, #1]
ldr r0, [r0]
sub r3, sp, #4
strb r2, [r3]
strb r1, [r3, #1]
ldr r2, [r3]
mov r1, r4
bl func_ov00_02083c7c
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_020a91f0:
mov r2, r5
bl func_ov00_020a9210
cmp r0, #0
ldrnesb r0, [r5, #0x12]
moveq r0, #0
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
arm_func_end func_ov00_020a9180
_020a9208: .word data_027e0fb8
_020a920c: .word data_027e0e60
.global func_ov00_020a9210
arm_func_start func_ov00_020a9210
func_ov00_020a9210: ; 0x020a9210
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r2
ldrsb r0, [r5, #0x12]
mov r4, r1
cmp r0, #8
beq _020a926c
cmp r0, #9
bne _020a9280
mov r0, r5
ldr r2, [r0]
add r1, sp, #0
ldr r2, [r2, #0x8c]
blx r2
ldr r1, [sp]
mov r0, #1
str r1, [r4]
ldr r1, [sp, #4]
str r1, [r4, #4]
ldr r1, [sp, #8]
add sp, sp, #0xc
str r1, [r4, #8]
ldmia sp!, {r4, r5, pc}
_020a926c:
bl _ZN10PlayerBase13GetEquipSwordEv
ldr r2, [r0]
mov r1, #1
ldr r2, [r2, #0x14]
blx r2
_020a9280:
ldr r1, [r5, #0x18]
mov r0, #1
str r1, [r4]
ldr r1, [r5, #0x1c]
str r1, [r4, #4]
ldr r1, [r5, #0x20]
str r1, [r4, #8]
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
arm_func_end func_ov00_020a9210
.global func_ov00_020a92a4
arm_func_start func_ov00_020a92a4
func_ov00_020a92a4: ; 0x020a92a4
@@ -958,7 +689,7 @@ func_ov00_020a9998: ; 0x020a9998
ldmia sp!, {r3, pc}
.align 2, 0
arm_func_end func_ov00_020a9998
_020a99bc: .word func_ov00_020a99c0 - 1
_020a99bc: .word func_ov00_020a99c0
.global func_ov00_020a99c0
arm_func_start func_ov00_020a99c0
@@ -1832,119 +1563,6 @@ _020aa280:
_020aa328: .word data_ov00_020e9360
.data
.global data_ov00_020e575c
data_ov00_020e575c: ; 0x020e575c
.ascii "brg"
.byte 0x00
.global data_ov00_020e5760
data_ov00_020e5760: ; 0x020e5760
.ascii "fnl"
.byte 0x00
.global data_ov00_020e5764
data_ov00_020e5764: ; 0x020e5764
.ascii "pdl"
.byte 0x00
.global data_ov00_020e5768
data_ov00_020e5768: ; 0x020e5768
.ascii "dco"
.byte 0x00
.global data_ov00_020e576c
data_ov00_020e576c: ; 0x020e576c
.ascii "can"
.byte 0x00
.global data_ov00_020e5770
data_ov00_020e5770: ; 0x020e5770
.ascii "hul"
.byte 0x00
.global data_ov00_020e5774
data_ov00_020e5774: ; 0x020e5774
.ascii "bow"
.byte 0x00
.global data_ov00_020e5778
data_ov00_020e5778: ; 0x020e5778
.ascii "anc"
.byte 0x00
.global data_ov00_020e577c
data_ov00_020e577c: ; 0x020e577c
.word data_ov00_020e5778
.global data_ov00_020e5780
data_ov00_020e5780: ; 0x020e5780
.word data_ov00_020e5774
.global data_ov00_020e5784
data_ov00_020e5784: ; 0x020e5784
.word data_ov00_020e5770
.global data_ov00_020e5788
data_ov00_020e5788: ; 0x020e5788
.word data_ov00_020e576c
.global data_ov00_020e578c
data_ov00_020e578c: ; 0x020e578c
.word data_ov00_020e5768
.global data_ov00_020e5790
data_ov00_020e5790: ; 0x020e5790
.word data_ov00_020e5764
.global data_ov00_020e5794
data_ov00_020e5794: ; 0x020e5794
.word data_ov00_020e5760
.global data_ov00_020e5798
data_ov00_020e5798: ; 0x020e5798
.word data_ov00_020e575c
.global data_ov00_020e579c
data_ov00_020e579c: ; 0x020e579c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e57a0
data_ov00_020e57a0: ; 0x020e57a0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e57a4
data_ov00_020e57a4: ; 0x020e57a4
.word func_ov00_020a8f74
.global data_ov00_020e57a8
data_ov00_020e57a8: ; 0x020e57a8
.word func_ov04_0210ad94 ; data_ov07_0210ad94
.global data_ov00_020e57ac
data_ov00_020e57ac: ; 0x020e57ac
.word func_ov04_0210adb0 ; data_ov07_0210adb0
.global data_ov00_020e57b0
data_ov00_020e57b0: ; 0x020e57b0
.word func_ov00_020a8f78 - 1
.global data_ov00_020e57b4
data_ov00_020e57b4: ; 0x020e57b4
.word func_ov04_0210adf8 ; data_ov07_0210adf8
.global data_ov00_020e57b8
data_ov00_020e57b8: ; 0x020e57b8
.word func_ov05_0210b57c ; data_ov07_0210b57c
.global data_ov00_020e57bc
data_ov00_020e57bc: ; 0x020e57bc
.word func_ov00_020a9028 - 1
.global data_ov00_020e57c0
data_ov00_020e57c0: ; 0x020e57c0
.word func_ov05_0210b97c ; data_ov07_0210b97c
.global data_ov00_020e57c4
data_ov00_020e57c4: ; 0x020e57c4
.word func_ov05_0210c20c ; data_ov07_0210c20c
.global data_ov00_020e57c8
data_ov00_020e57c8: ; 0x020e57c8
.word func_ov00_020a90b0 - 1
.global data_ov00_020e57cc
data_ov00_020e57cc: ; 0x020e57cc
.word func_ov00_020a9130 - 1
.global data_ov00_020e57d0
data_ov00_020e57d0: ; 0x020e57d0
.word func_ov05_0210c990 ; data_ov07_0210c990
.global data_ov00_020e57d4
data_ov00_020e57d4: ; 0x020e57d4
.word func_ov05_0210f708
.global data_ov00_020e57d8
data_ov00_020e57d8: ; 0x020e57d8
.word func_ov00_020a915c - 1
.global data_ov00_020e57dc
data_ov00_020e57dc: ; 0x020e57dc
.word func_ov05_0210f70c
.global data_ov00_020e57e0
data_ov00_020e57e0: ; 0x020e57e0
.word func_ov05_0210f714
.global data_ov00_020e57e4
data_ov00_020e57e4: ; 0x020e57e4
.word func_ov05_0210f71c
.global data_ov00_020e57e8
data_ov00_020e57e8: ; 0x020e57e8
.byte 0x00, 0x00, 0x00, 0x00
@@ -1953,16 +1571,16 @@ data_ov00_020e57ec: ; 0x020e57ec
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e57f0
data_ov00_020e57f0: ; 0x020e57f0
.word func_ov00_020a9544 - 1
.word func_ov00_020a9544
.global data_ov00_020e57f4
data_ov00_020e57f4: ; 0x020e57f4
.word func_ov00_020a9530 - 1
.word func_ov00_020a9530
.global data_ov00_020e57f8
data_ov00_020e57f8: ; 0x020e57f8
.word func_ov00_020a92fc - 1
.word func_ov00_020a92fc
.global data_ov00_020e57fc
data_ov00_020e57fc: ; 0x020e57fc
.word func_ov00_020a9334 - 1
.word func_ov00_020a9334
.global data_ov00_020e5800
data_ov00_020e5800: ; 0x020e5800
.byte 0x00, 0x00, 0x00, 0x00
@@ -1971,13 +1589,13 @@ data_ov00_020e5804: ; 0x020e5804
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5808
data_ov00_020e5808: ; 0x020e5808
.word func_ov00_020a9548 - 1
.word func_ov00_020a9548
.global data_ov00_020e580c
data_ov00_020e580c: ; 0x020e580c
.word func_ov00_020a9558 - 1
.word func_ov00_020a9558
.global data_ov00_020e5810
data_ov00_020e5810: ; 0x020e5810
.word func_ov00_020a954c - 1
.word func_ov00_020a954c
.global data_ov00_020e5814
data_ov00_020e5814: ; 0x020e5814
.byte 0x00, 0x00, 0x00, 0x00
@@ -1989,52 +1607,52 @@ data_ov00_020e581c: ; 0x020e581c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5820
data_ov00_020e5820: ; 0x020e5820
.word func_ov00_020a95a4
.word func_ov00_020a95a4 + 1
.global data_ov00_020e5824
data_ov00_020e5824: ; 0x020e5824
.word func_ov00_020a95c4
.word func_ov00_020a95c4 + 1
.global data_ov00_020e5828
data_ov00_020e5828: ; 0x020e5828
.word func_ov00_020a960c - 1
.word func_ov00_020a960c
.global data_ov00_020e582c
data_ov00_020e582c: ; 0x020e582c
.word func_ov00_020a9614 - 1
.word func_ov00_020a9614
.global data_ov00_020e5830
data_ov00_020e5830: ; 0x020e5830
.word func_ov00_020a9650 - 1
.word func_ov00_020a9650
.global data_ov00_020e5834
data_ov00_020e5834: ; 0x020e5834
.word func_ov00_020a96d4 - 1
.word func_ov00_020a96d4
.global data_ov00_020e5838
data_ov00_020e5838: ; 0x020e5838
.word func_ov00_020a9740 - 1
.word func_ov00_020a9740
.global data_ov00_020e583c
data_ov00_020e583c: ; 0x020e583c
.word func_ov00_020a9764 - 1
.word func_ov00_020a9764
.global data_ov00_020e5840
data_ov00_020e5840: ; 0x020e5840
.word func_ov00_020a97d0 - 1
.word func_ov00_020a97d0
.global data_ov00_020e5844
data_ov00_020e5844: ; 0x020e5844
.word func_ov00_020a97e0 - 1
.word func_ov00_020a97e0
.global data_ov00_020e5848
data_ov00_020e5848: ; 0x020e5848
.word func_ov00_020a97f8 - 1
.word func_ov00_020a97f8
.global data_ov00_020e584c
data_ov00_020e584c: ; 0x020e584c
.word func_ov00_020a9864 - 1
.word func_ov00_020a9864
.global data_ov00_020e5850
data_ov00_020e5850: ; 0x020e5850
.word func_ov00_020a98bc - 1
.word func_ov00_020a98bc
.global data_ov00_020e5854
data_ov00_020e5854: ; 0x020e5854
.word func_ov00_020a9890 - 1
.word func_ov00_020a9890
.global data_ov00_020e5858
data_ov00_020e5858: ; 0x020e5858
.word func_ov00_020a9968 - 1
.word func_ov00_020a9968
.global data_ov00_020e585c
data_ov00_020e585c: ; 0x020e585c
.word func_ov00_020a9994 - 1
.word func_ov00_020a9994
.global data_ov00_020e5860
data_ov00_020e5860: ; 0x020e5860
.byte 0x00, 0x00, 0x00, 0x00
@@ -2043,10 +1661,10 @@ data_ov00_020e5864: ; 0x020e5864
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5868
data_ov00_020e5868: ; 0x020e5868
.word func_ov00_020a9a20
.word func_ov00_020a9a20 + 1
.global data_ov00_020e586c
data_ov00_020e586c: ; 0x020e586c
.word func_ov00_020a9a40
.word func_ov00_020a9a40 + 1
.global data_ov00_020e5870
data_ov00_020e5870: ; 0x020e5870
.byte 0x00, 0x00, 0x00, 0x00
@@ -2055,52 +1673,52 @@ data_ov00_020e5874: ; 0x020e5874
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5878
data_ov00_020e5878: ; 0x020e5878
.word func_ov00_020a9b8c - 1
.word func_ov00_020a9b8c
.global data_ov00_020e587c
data_ov00_020e587c: ; 0x020e587c
.word func_ov00_020a9bb8 - 1
.word func_ov00_020a9bb8
.global data_ov00_020e5880
data_ov00_020e5880: ; 0x020e5880
.word func_ov00_020a960c - 1
.word func_ov00_020a960c
.global data_ov00_020e5884
data_ov00_020e5884: ; 0x020e5884
.word func_ov00_020a9614 - 1
.word func_ov00_020a9614
.global data_ov00_020e5888
data_ov00_020e5888: ; 0x020e5888
.word func_ov00_020a9650 - 1
.word func_ov00_020a9650
.global data_ov00_020e588c
data_ov00_020e588c: ; 0x020e588c
.word func_ov00_020a96d4 - 1
.word func_ov00_020a96d4
.global data_ov00_020e5890
data_ov00_020e5890: ; 0x020e5890
.word func_ov00_020a9740 - 1
.word func_ov00_020a9740
.global data_ov00_020e5894
data_ov00_020e5894: ; 0x020e5894
.word func_ov00_020a9764 - 1
.word func_ov00_020a9764
.global data_ov00_020e5898
data_ov00_020e5898: ; 0x020e5898
.word func_ov00_020a97d0 - 1
.word func_ov00_020a97d0
.global data_ov00_020e589c
data_ov00_020e589c: ; 0x020e589c
.word func_ov00_020a97e0 - 1
.word func_ov00_020a97e0
.global data_ov00_020e58a0
data_ov00_020e58a0: ; 0x020e58a0
.word func_ov00_020a97f8 - 1
.word func_ov00_020a97f8
.global data_ov00_020e58a4
data_ov00_020e58a4: ; 0x020e58a4
.word func_ov00_020a9864 - 1
.word func_ov00_020a9864
.global data_ov00_020e58a8
data_ov00_020e58a8: ; 0x020e58a8
.word func_ov00_020a98bc - 1
.word func_ov00_020a98bc
.global data_ov00_020e58ac
data_ov00_020e58ac: ; 0x020e58ac
.word func_ov00_020a9890 - 1
.word func_ov00_020a9890
.global data_ov00_020e58b0
data_ov00_020e58b0: ; 0x020e58b0
.word func_ov00_020a9968 - 1
.word func_ov00_020a9968
.global data_ov00_020e58b4
data_ov00_020e58b4: ; 0x020e58b4
.word func_ov00_020a9f10 - 1
.word func_ov00_020a9f10
.global data_ov00_020e58b8
data_ov00_020e58b8: ; 0x020e58b8
.byte 0x00, 0x00, 0x00, 0x00
@@ -2109,7 +1727,7 @@ data_ov00_020e58bc: ; 0x020e58bc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e58c0
data_ov00_020e58c0: ; 0x020e58c0
.word func_ov00_020a9f0c - 1
.word func_ov00_020a9f0c
.global data_ov00_020e58c4
data_ov00_020e58c4: ; 0x020e58c4
.byte 0x00, 0x00, 0x00, 0x00
@@ -2118,7 +1736,7 @@ data_ov00_020e58c8: ; 0x020e58c8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e58cc
data_ov00_020e58cc: ; 0x020e58cc
.word func_ov00_020a9ed8 - 1
.word func_ov00_020a9ed8
.global data_ov00_020e58d0
data_ov00_020e58d0: ; 0x020e58d0
.byte 0x00, 0x00, 0x00, 0x00
@@ -2127,7 +1745,7 @@ data_ov00_020e58d4: ; 0x020e58d4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e58d8
data_ov00_020e58d8: ; 0x020e58d8
.word func_ov00_020a9eb8 - 1
.word func_ov00_020a9eb8
.global data_ov00_020e58dc
data_ov00_020e58dc: ; 0x020e58dc
.byte 0x00, 0x00, 0x00, 0x00
@@ -2136,4 +1754,4 @@ data_ov00_020e58e0: ; 0x020e58e0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e58e4
data_ov00_020e58e4: ; 0x020e58e4
.word func_ov00_020a9eb4 - 1
.word func_ov00_020a9eb4
+1 -1
View File
@@ -54,6 +54,7 @@
.extern _ZN13PlayerControl18func_ov00_020b034cEv
.extern _ZN15LinkStateDamage18func_ov00_020acb6cEP5Vec3pi
.extern _ZN15LinkStateDamage18func_ov00_020ace90EP5Vec3pi
.extern _ZN15LinkStateFollow20GetLinkStateCutsceneEv
.extern _ZN17LinkStateInteract15SetBombVelocityEP5Vec3p
.extern _ZN17LinkStateInteract16GetLinkStateRollEv
.extern _ZN17LinkStateInteract18func_ov00_020ab6c8Ev
@@ -499,7 +500,6 @@
.extern func_ov00_020a5e9c
.extern func_ov00_020a5ef8
.extern func_ov00_020a6110
.extern func_ov00_020a914c
.extern func_ov00_020a956c
.extern func_ov00_020a9588
.extern func_ov00_020a95a4
+22 -22
View File
@@ -13118,7 +13118,7 @@ func_ov00_020bba80: ; 0x020bba80
cmp r0, #6
movne r0, #1
ldmneia sp!, {r3, pc}
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
bl func_ov00_020b1eec
ldmia sp!, {r3, pc}
arm_func_end func_ov00_020bba80
@@ -13228,7 +13228,7 @@ func_ov00_020bbb78: ; 0x020bbb78
bl func_ov00_020bc500
cmp r0, #6
beq _020bbbb0
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r0, [r0, #0x38]
cmp r0, #0
movlt r0, #1
@@ -13823,12 +13823,12 @@ _020bc2e8: ; jump table
b _020bc2f8 ; case 2
b _020bc308 ; case 3
_020bc2f8:
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
mov r1, r4
bl func_ov05_0210a0c0
ldmia sp!, {r4, pc}
_020bc308:
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
bl func_ov22_02175958
mov r0, #1
ldmia sp!, {r4, pc}
@@ -13849,7 +13849,7 @@ func_ov00_020bc320: ; 0x020bc320
mov r5, r3
bl func_ov00_020b1d70
mov r4, r0
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
mov r1, r4
mov r2, r6
mov r3, r5
@@ -14391,7 +14391,7 @@ func_ov00_020bc960: ; 0x020bc960
ldr r0, [r0]
bl func_ov00_020c35d8
mov r4, r0
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
mov r1, r6
mov r2, r5
mov r3, r4
@@ -14511,7 +14511,7 @@ _020bcb44:
mov r0, r7
mov r1, r6
bl func_ov00_020bc8b8
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
mov r1, r5
mov r2, r4
bl func_ov00_020b38dc
@@ -14777,7 +14777,7 @@ func_ov00_020bce48: ; 0x020bce48
bl func_020385b8
bl _ZN17LinkStateInteract18func_ov00_020ab6c8Ev
_020bce9c:
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
mov r1, r4
bl func_ov05_021096bc
cmp r0, #0
@@ -14797,7 +14797,7 @@ func_ov00_020bcec8: ; 0x020bcec8
bl func_ov00_020bc500
cmp r0, #6
bne _020bcef4
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r1, [r0, #4]
mov r0, #1
cmp r1, #0xa
@@ -14817,7 +14817,7 @@ func_ov00_020bcefc: ; 0x020bcefc
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r0, [r0, #0x74]
blx _ZN4Item18func_ov00_020ad068Ei
cmp r0, #0
@@ -14834,7 +14834,7 @@ func_ov00_020bcf2c: ; 0x020bcf2c
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r0, [r0, #0x74]
blx _ZN4Item18func_ov00_020ad068Ei
ldmia sp!, {r3, pc}
@@ -14847,7 +14847,7 @@ func_ov00_020bcf50: ; 0x020bcf50
mov r5, r1
mov r4, r2
mov r6, r0
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
mov r1, r5
mov r2, r4
bl func_ov00_020b3024
@@ -14865,7 +14865,7 @@ func_ov00_020bcf84: ; 0x020bcf84
mov r5, r1
mov r4, r2
mov r6, r0
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
mov r1, r5
mov r2, r4
bl func_ov00_020b305c
@@ -14886,21 +14886,21 @@ func_ov00_020bcfb8: ; 0x020bcfb8
beq _020bd01c
cmp r4, #0
beq _020bcff4
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r1, _020bd024 ; =data_ov00_020e6298
mov r2, #0
bl func_ov00_020b2f48
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
mov r1, #1
strb r1, [r0, #0xaa]
b _020bd004
_020bcff4:
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r1, _020bd028 ; =data_ov00_020e6288
mov r2, #0
bl func_ov00_020b2f48
_020bd004:
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r1, _020bd02c ; =0x0000011d
mov r2, #3
bl func_ov00_020b2ce4
@@ -14923,7 +14923,7 @@ func_ov00_020bd030: ; 0x020bd030
mov r4, r1
bl func_020385b8
bl _ZN17LinkStateInteract18func_ov00_020ab6c8Ev
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
mov r2, r4
ldr r1, _020bd06c ; =data_ov00_020e62a8
mov r3, #0
@@ -14943,7 +14943,7 @@ func_ov00_020bd070: ; 0x020bd070
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r1, _020bd0a4 ; =data_ov00_020e62b8
mov r2, r4
mov r3, #1
@@ -14961,7 +14961,7 @@ _020bd0a4: .word data_ov00_020e62b8
arm_func_start func_ov00_020bd0a8
func_ov00_020bd0a8: ; 0x020bd0a8
stmdb sp!, {r3, lr}
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
bl func_ov00_020b2f9c
mov r0, #1
ldmia sp!, {r3, pc}
@@ -15096,7 +15096,7 @@ func_ov00_020bd268: ; 0x020bd268
ldr r0, [r0, #4]
cmp r0, #0xc
bne _020bd2b0
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r1, [r0, #4]
cmp r1, #0xc
bne _020bd2ac
@@ -15128,7 +15128,7 @@ func_ov00_020bd2bc: ; 0x020bd2bc
_020bd2e4:
cmp r5, #0
bne _020bd2fc
bl func_ov00_020a914c
bl _ZN15LinkStateFollow20GetLinkStateCutsceneEv
ldr r0, [r0, #0x38]
cmp r0, #0
movlt r4, #0
+1 -1
View File
@@ -17,6 +17,7 @@
.extern _ZTV13LinkStateItem
.extern _ZTV13LinkStateRoll
.extern _ZTV15LinkStateDamage
.extern _ZTV15LinkStateFollow
.extern _ZTV17LinkStateInteract
.extern data_02056924
.extern data_02057200
@@ -130,7 +131,6 @@
.extern data_ov00_020e5454
.extern data_ov00_020e54a4
.extern data_ov00_020e5700
.extern data_ov00_020e57a4
.extern data_ov00_020e5868
.extern data_ov00_020e5878
.extern data_ov00_020e6300
+2 -2
View File
@@ -20864,7 +20864,7 @@ func_ov04_0210ad58: ; 0x0210ad58
push {r4, lr}
add r4, r0, #0
bl func_ov04_0210add4
ldr r0, _0210ad90 ; =data_ov00_020e57a4
ldr r0, _0210ad90 ; =_ZTV15LinkStateFollow
mov r1, #0
str r0, [r4]
str r1, [r4, #0xc]
@@ -20887,7 +20887,7 @@ func_ov04_0210ad58: ; 0x0210ad58
pop {r4, pc}
nop
thumb_func_end func_ov04_0210ad58
_0210ad90: .word data_ov00_020e57a4
_0210ad90: .word _ZTV15LinkStateFollow
.global func_ov04_0210ad94
thumb_func_start func_ov04_0210ad94
+3 -3
View File
@@ -393,9 +393,9 @@
.extern func_ov00_020a4e30
.extern func_ov00_020a4f38
.extern func_ov00_020a5e9c
.extern func_ov00_020a8f80
.extern func_ov00_020a9180
.extern func_ov00_020a9210
.extern _ZN15LinkStateFollow16MoveTowardTargetEv
.extern _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p
.extern _ZN15LinkStateFollow18func_ov00_020a9210EP5Vec3pP5Actor
.extern func_ov00_020a9588
.extern func_ov00_020a95a4
.extern func_ov00_020a990c
+4 -4
View File
@@ -13482,7 +13482,7 @@ func_ov05_0210bf50: ; 0x0210bf50
bl func_ov05_02110228
bl func_ov05_0210aaf8
add r1, sp, #8
bl func_ov00_020a9180
bl _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p
mov r5, r0
bl func_020385b8
add r1, sp, #8
@@ -13761,7 +13761,7 @@ _0210c398:
add r1, sp, #0x54
mov r0, r7
mov r2, r5
bl func_ov00_020a9210
bl _ZN15LinkStateFollow18func_ov00_020a9210EP5Vec3pP5Actor
mov r0, r7
bl _ZN13LinkStateBase12GetPlayerPosEv
mov r1, r0
@@ -18069,7 +18069,7 @@ _0210fed4:
b _0210feec
_0210fee4:
bl func_ov05_0210aaf8
bl func_ov00_020a8f80
bl _ZN15LinkStateFollow16MoveTowardTargetEv
_0210feec:
mov r0, sl
bl _ZN13LinkStateBase19GetCurrentCharacterEv
@@ -19628,7 +19628,7 @@ func_ov05_021113dc: ; 0x021113dc
mov r6, r0
bl func_ov05_0210aaf8
add r1, sp, #0x4c
bl func_ov00_020a9180
bl _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p
mov r7, r0
bl func_020385b8
add r1, sp, #0x4c
+1 -1
View File
@@ -26,6 +26,7 @@
.extern _ZN13PlayerControl18func_ov00_020b034cEv
.extern _ZN13PlayerControl9SetUnk_80Ev
.extern _ZN15LinkStateDamage18func_ov00_020acb6cEP5Vec3pi
.extern _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p
.extern _ZN17LinkStateInteract18func_ov00_020ab6c8Ev
.extern _ZN17LinkStateInteract18func_ov00_020ab770EP5Vec3p
.extern _ZN9SysObjectdlEPv
@@ -238,7 +239,6 @@
.extern func_ov00_020a42cc
.extern func_ov00_020a5e9c
.extern func_ov00_020a61ac
.extern func_ov00_020a9180
.extern func_ov00_020a956c
.extern func_ov00_020a9588
.extern func_ov00_020a95a4
+1 -1
View File
@@ -5174,7 +5174,7 @@ _0217196c:
_021719b0:
bl func_ov23_021720c4
add r1, sp, #0x28
bl func_ov00_020a9180
bl _ZN15LinkStateFollow18func_ov00_020a9180EP5Vec3p
mov r5, r0
bl func_020385b8
add r1, sp, #0x28
+7
View File
@@ -5,7 +5,9 @@
#include "lib/math.h"
#include "Actor/Actor.hpp"
#include "Player/LinkStateBase.hpp"
#include "Player/LinkStateCutscene.hpp"
class LinkStateFollow : public LinkStateBase {
public:
@@ -31,4 +33,9 @@ public:
/* 2c */ virtual void vfunc_2c(u16 *param1) override;
/* 34 */ virtual bool vfunc_34(Vec3p *param1) override;
/* 44 */
void MoveTowardTarget();
LinkStateCutscene* GetLinkStateCutscene();
bool func_ov00_020a9180(Vec3p *param1);
bool func_ov00_020a9210(Vec3p *param1, Actor *param2);
};
+16
View File
@@ -0,0 +1,16 @@
#include "Player/LinkStateFollow.hpp"
#ifdef STUBS
void LinkStateFollow::vfunc_00() {}
LinkStateId LinkStateFollow::GetId() {}
void LinkStateFollow::MoveTowardTarget() {}
void LinkStateFollow::OnStateLeave(s32 param1) {}
bool LinkStateFollow::vfunc_24(s32 param1) {}
bool LinkStateFollow::vfunc_28() {}
LinkStateCutscene* LinkStateFollow::GetLinkStateCutscene() {}
bool LinkStateFollow::vfunc_34(Vec3p *param1) {}
bool LinkStateFollow::func_ov00_020a9180(Vec3p *param1) {}
bool LinkStateFollow::func_ov00_020a9210(Vec3p *param1, Actor *param2) {}
#endif
+2
View File
@@ -36,6 +36,8 @@ ov00 = Overlay(name='ov00', after='ARM9', objects=[
'asm/ov00/Player/LinkStateBase.s',
'src/00_Core/Player/LinkStateMove.cpp',
'asm/ov00/Player/LinkStateMove.s',
'src/00_Core/Player/LinkStateFollow.cpp',
'asm/ov00/Player/LinkStateFollow.s',
'asm/ov00/ov00_020a8e04.s',