Add LinkStateRoll

This commit is contained in:
Aetias
2024-03-31 10:29:33 +02:00
parent d40ff9598d
commit 42e3f78016
14 changed files with 1976 additions and 1946 deletions
+1 -1
View File
@@ -579,7 +579,7 @@
.extern func_ov00_020d2cfc
.extern data_ov00_020e57a4
.extern _ZTV13LinkStateBase
.extern data_ov00_020e60c0
.extern _ZTV13LinkStateRoll
.extern data_ov00_020dc6e0
.extern data_ov00_020e5700
.extern func_ov00_020bb1f8
+2 -2
View File
@@ -255,7 +255,7 @@
.extern _ZN13LinkStateBase18func_ov00_020a8ad0Ei
.extern _ZN13LinkStateBase18func_ov00_020a8994Ev
.extern _ZN13LinkStateBase18func_ov00_020a8b04Eib
.extern func_ov00_020aee58
.extern _ZN13LinkStateRoll18func_ov00_020aee58Est
.extern func_ov00_020bf330
.extern func_ov00_020b034c
.extern _ZN13LinkStateBase18func_ov00_020a8c64Ev
@@ -387,7 +387,7 @@
.extern func_020197bc
.extern func_0201987c
.extern _ZNK11ItemManager19GetFanfareItemScaleEP5Vec3p
.extern func_ov00_020aee84
.extern _ZN13LinkStateRoll18func_ov00_020aee84Ev
.extern _ZN13LinkStateBase15GetGrabActorRefEv
.extern _ZN13LinkStateBase23PlayerLinkBase_vfunc_58Ev
.extern func_01ff9cec
+2 -2
View File
@@ -68,7 +68,7 @@ _020a8010: ; jump table
_020a8030:
cmp r4, #0
beq _020a8048
bl func_ov00_020aeeac
bl _ZN13LinkStateRoll18func_ov00_020aeeacEv
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
@@ -83,7 +83,7 @@ _020a8050:
bl _ZN13LinkStateBase29HasFlags_PlayerLinkBase_Unk48Et
cmp r0, #0
bne _020a807c
bl func_ov00_020aeeac
bl _ZN13LinkStateRoll18func_ov00_020aeeacEv
cmp r0, #0
movne r0, #1
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
+641
View File
@@ -0,0 +1,641 @@
.include "ov00/Player/include/LinkStateRoll.inc"
.include "macros/function.inc"
.text
.global _ZN13LinkStateRoll8vfunc_00Ev
thumb_func_start _ZN13LinkStateRoll8vfunc_00Ev
_ZN13LinkStateRoll8vfunc_00Ev: ; 0x020ae790
bx lr
.align 2, 0
thumb_func_end _ZN13LinkStateRoll8vfunc_00Ev
.global _ZN13LinkStateRoll5GetIdEv
arm_func_start _ZN13LinkStateRoll5GetIdEv
_ZN13LinkStateRoll5GetIdEv: ; 0x020ae794
mov r0, #4
bx lr
arm_func_end _ZN13LinkStateRoll5GetIdEv
.global _ZN13LinkStateRoll20CreateDebugHierarchyEv
thumb_func_start _ZN13LinkStateRoll20CreateDebugHierarchyEv
_ZN13LinkStateRoll20CreateDebugHierarchyEv: ; 0x020ae79c
ldr r3, _020ae7a0 ; =_ZN13LinkStateBase18GetDebugHierarchy0Ev
bx r3
.align 2, 0
thumb_func_end _ZN13LinkStateRoll20CreateDebugHierarchyEv
_020ae7a0: .word _ZN13LinkStateBase18GetDebugHierarchy0Ev
.global _ZN13LinkStateRoll12OnStateEnterEv
arm_func_start _ZN13LinkStateRoll12OnStateEnterEv
_ZN13LinkStateRoll12OnStateEnterEv: ; 0x020ae7a4
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x14
mov r4, r0
ldr r1, [r4, #4]
cmp r1, #9
addls pc, pc, r1, lsl #2
b _020aeb08
_020ae7c0: ; jump table
b _020ae7e8 ; case 0
b _020ae94c ; case 1
b _020ae9fc ; case 2
b _020aea40 ; case 3
b _020ae9c8 ; case 4
b _020aea90 ; case 5
b _020aea9c ; case 6
b _020aeab8 ; case 7
b _020aeaf8 ; case 8
b _020aeb04 ; case 9
_020ae7e8:
bl _ZN13LinkStateBase18func_ov00_020a82acEv
mov r0, r4
bl _ZN13LinkStateBase12GetPlayerVelEv
ldr r1, [r0]
add r1, r1, r1, lsr #31
mov r1, r1, asr #0x1
str r1, [r0]
mov r0, r4
bl _ZN13LinkStateBase12GetPlayerVelEv
ldr r1, [r0, #8]
add r1, r1, r1, lsr #31
mov r1, r1, asr #0x1
str r1, [r0, #8]
mov r0, r4
bl _ZN13LinkStateBase14GetPlayerAngleEv
ldrh r5, [r0]
mov r0, r4
bl _ZN13LinkStateBase12GetPlayerVelEv
mov r1, r5, asr #0x4
mov r2, r1, lsl #0x1
mov r6, r2, lsl #0x1
ldr r5, _020aeb10 ; =data_02050f54
add r2, r2, #1
mov r2, r2, lsl #0x1
ldrsh lr, [r5, r2]
ldrsh r6, [r5, r6]
mov r2, #0x148
mov r3, #0
umull r8, r7, r6, r2
mla r7, r6, r3, r7
mov r5, r6, asr #0x1f
adds r6, r8, #0x800
mla r7, r5, r2, r7
ldr r1, [r0]
adc r5, r7, #0
mov r6, r6, lsr #0xc
orr r6, r6, r5, lsl #20
add r1, r1, r6
str r1, [r0]
umull r5, r1, lr, r2
mla r1, lr, r3, r1
mov ip, lr, asr #0x1f
mla r1, ip, r2, r1
adds r2, r5, #0x800
ldr r6, [r0, #8]
adc r1, r1, #0
mov r2, r2, lsr #0xc
orr r2, r2, r1, lsl #20
add r1, r6, r2
str r1, [r0, #8]
mov r0, r4
bl _ZN13LinkStateBase14GetPlayerAngleEv
ldrsh r1, [r0]
mov r0, r4
mov r2, #0x400
bl _ZN13LinkStateBase12ApplyImpulseEii
mov r0, r4
bl _ZN13LinkStateBase12GetPlayerVelEv
ldr r1, [r0, #4]
ldr r0, _020aeb14 ; =0x0000019a
cmp r1, r0
bge _020ae8f0
mov r0, r4
bl _ZN13LinkStateBase12GetPlayerVelEv
ldr r1, _020aeb14 ; =0x0000019a
str r1, [r0, #4]
_020ae8f0:
ldr r0, _020aeb18 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020af050
ldr r1, _020aeb1c ; =data_ov00_020e6078
mov r0, r4
mov r2, #1
bl _ZN13LinkStateBase18func_ov00_020a8a4cEii
mov r0, r4
bl _ZN13LinkStateBase12GetPlayerPosEv
mov r2, r0
ldr r0, _020aeb20 ; =data_ov00_020eec9c
mov r1, #0xd1
bl func_ov00_020d7a84
mov r1, #2
mov r0, r4
mov r2, r1
bl _ZN13LinkStateRoll18func_ov00_020aee58Est
mov r0, r4
bl _ZN13LinkStateBase12GetPlayerPosEv
ldr r0, [r0, #4]
add sp, sp, #0x14
str r0, [r4, #0x20]
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_020ae94c:
ldr r1, _020aeb24 ; =data_ov00_020e6088
mov r2, #1
bl _ZN13LinkStateBase18func_ov00_020a8a4cEii
mov r0, r4
mov r1, #1
bl _ZN13LinkStateBase18func_ov00_020a8638Ei
mov r0, #1
strh r0, [r4, #0xc]
mov r0, #0
strh r0, [r4, #0xe]
strh r0, [r4, #0x12]
ldr r1, _020aeb28 ; =data_027e0e58
mov r0, r4
ldr r5, [r1]
bl _ZN13LinkStateBase12GetPlayerPosEv
mov r3, #0x158
str r3, [sp]
add r2, r3, #1
str r2, [sp, #4]
add r2, r3, #2
str r2, [sp, #8]
sub r2, r3, #2
str r0, [sp, #0xc]
mov r3, #1
str r3, [sp, #0x10]
add r1, r4, #0x2c
mov r0, r5
rsb r3, r3, #0x158
bl func_ov00_0207c39c
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_020ae9c8:
bl func_ov05_02107c8c
mov r1, #2
mov r0, r4
strh r1, [r4, #0xc]
bl _ZN13LinkStateBase12GetPlayerPosEv
ldr r1, [r0]
add sp, sp, #0x14
str r1, [r4, #0x8c]
ldr r1, [r0, #4]
str r1, [r4, #0x90]
ldr r0, [r0, #8]
str r0, [r4, #0x94]
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_020ae9fc:
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
bl func_ov00_020b4c2c
mov r1, r0
ldr r3, _020aeb2c ; =0x00002aab
mov r0, r4
mov r2, r1
bl _ZN13LinkStateBase6TurnToEsii
mov r0, r4
bl _ZN13LinkStateBase18func_ov00_020a82acEv
mov r0, r4
bl _ZN13LinkStateBase12GetPlayerPosEv
mov r2, r0
ldr r0, _020aeb20 ; =data_ov00_020eec9c
mov r1, #0xf0
bl func_ov00_020d7a84
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_020aea40:
ldr r1, _020aeb30 ; =data_ov00_020e6098
mov r2, #1
bl _ZN13LinkStateBase18func_ov00_020a8a4cEii
mov r0, r4
bl _ZN13LinkStateBase12GetPlayerPosEv
ldr r1, [r0, #4]
mov r0, r4
str r1, [r4, #0x1c]
bl _ZN13LinkStateBase12GetPlayerPosEv
ldr r5, [r0, #4]
mov r0, r4
str r5, [r4, #0x20]
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
str r5, [r0, #0x9c]
mov r0, r4
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
mov r1, #3
strh r1, [r0, #0x5a]
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_020aea90:
bl func_ov21_02170660
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_020aea9c:
ldr r1, _020aeb34 ; =data_ov00_020e60a8
mov r3, #0
mov r2, #1
strh r3, [r4, #0x18]
bl _ZN13LinkStateBase18func_ov00_020a8a4cEii
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_020aeab8:
mov r1, #0
strb r1, [r4, #0x28]
strh r1, [r4, #0x18]
bl _ZN13LinkStateBase14GetPlayerAngleEv
mov r1, #0
strh r1, [r0]
mov r0, r4
bl _ZN13LinkStateBase18func_ov00_020a82acEv
mov r0, r4
bl _ZN13LinkStateBase18EquipItem_vfunc_28Ev
ldr r1, _020aeb34 ; =data_ov00_020e60a8
mov r0, r4
mov r2, #1
bl _ZN13LinkStateBase18func_ov00_020a8a4cEii
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_020aeaf8:
bl func_ov05_02108188
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
_020aeb04:
bl func_ov23_0217139c
_020aeb08:
add sp, sp, #0x14
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end _ZN13LinkStateRoll12OnStateEnterEv
_020aeb10: .word data_02050f54
_020aeb14: .word 0x0000019a
_020aeb18: .word data_027e0fb8
_020aeb1c: .word data_ov00_020e6078
_020aeb20: .word data_ov00_020eec9c
_020aeb24: .word data_ov00_020e6088
_020aeb28: .word data_027e0e58
_020aeb2c: .word 0x00002aab
_020aeb30: .word data_ov00_020e6098
_020aeb34: .word data_ov00_020e60a8
.global _ZN13LinkStateRoll12OnStateLeaveEi
arm_func_start _ZN13LinkStateRoll12OnStateLeaveEi
_ZN13LinkStateRoll12OnStateLeaveEi: ; 0x020aeb38
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r4, r0
bl _ZN13LinkStateBase12OnStateLeaveEi
ldr r0, [r4, #4]
cmp r0, #9
addls pc, pc, r0, lsl #2
b _020aebe4
_020aeb54: ; jump table
b _020aebe4 ; case 0
b _020aeb7c ; case 1
b _020aebe4 ; case 2
b _020aebc8 ; case 3
b _020aebe4 ; case 4
b _020aebe4 ; case 5
b _020aebb8 ; case 6
b _020aebe4 ; case 7
b _020aebe4 ; case 8
b _020aebdc ; case 9
_020aeb7c:
mov r0, r4
mov r1, #1
bl _ZN13LinkStateBase26Clear_PlayerLinkBase_Unk48Et
ldr r0, _020aec0c ; =data_027e0e58
add r7, r4, #0x2c
ldr r5, [r0]
mov r6, #0
_020aeb98:
mov r0, r5
mov r1, r7
bl func_ov00_0207c444
add r6, r6, #1
cmp r6, #5
add r7, r7, #4
blo _020aeb98
b _020aebe4
_020aebb8:
mov r0, r4
mov r1, #1
bl _ZN13LinkStateBase18func_ov00_020a84bcEi
b _020aebe4
_020aebc8:
mov r0, r4
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
mov r1, #0
strh r1, [r0, #0x5a]
b _020aebe4
_020aebdc:
mov r0, r4
bl func_ov23_021720f0
_020aebe4:
add r5, r4, #0x2c
add r4, r4, #0x40
cmp r5, r4
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
_020aebf4:
mov r0, r5
bl func_ov00_020b7e6c
add r5, r5, #4
cmp r5, r4
bne _020aebf4
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
arm_func_end _ZN13LinkStateRoll12OnStateLeaveEi
_020aec0c: .word data_027e0e58
.global _ZN13LinkStateRoll8vfunc_20Ei
arm_func_start _ZN13LinkStateRoll8vfunc_20Ei
_ZN13LinkStateRoll8vfunc_20Ei: ; 0x020aec10
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
mov r4, r1
bl _ZN13LinkStateBase12GetGrabActorEv
cmp r0, #0
bne _020aecc8
ldrsh r0, [r5, #0x12]
cmp r0, #7
movge r0, #1
strge r0, [r5, #4]
ldmgeia sp!, {r4, r5, r6, pc}
mov r0, r5
bl _ZN13LinkStateBase18func_ov00_020a8b80Ev
cmp r0, #0
beq _020aecc8
ldr r1, _020aed84 ; =data_027e0fb8
mov r0, r5
ldr r6, [r1]
bl _ZN13LinkStateBase14GetPlayerAngleEv
mov r1, r0
mov r0, r6
bl func_ov00_020b12d0
cmp r0, #0
beq _020aecc8
mov r0, r5
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
ldrsh r0, [r0, #0x5a]
cmp r0, #0
bne _020aecc8
mov r0, r5
mov r1, #0x3f
bl _ZN13LinkStateBase29HasFlags_PlayerLinkBase_Unk48Et
cmp r0, #0
bne _020aecc8
ldr r0, _020aed88 ; =data_027e0618
ldr r0, [r0]
cmp r0, #2
bne _020aecb8
mov r0, r5
bl _ZN13LinkStateBase19GetCurrentCharacterEv
cmp r0, #1
beq _020aecc8
_020aecb8:
mov r0, #0
str r0, [r5, #4]
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_020aecc8:
ldr r0, _020aed88 ; =data_027e0618
ldr r0, [r0]
cmp r0, #2
bne _020aed7c
mov r0, r5
bl _ZN13LinkStateBase12GetGrabActorEv
cmp r0, #0
bne _020aed70
mov r0, r5
bl _ZN13LinkStateBase19GetCurrentCharacterEv
cmp r0, #1
mov r0, r5
bne _020aed08
mov r1, r4
bl func_ov23_021712fc
ldmia sp!, {r4, r5, r6, pc}
_020aed08:
bl _ZN13LinkStateBase18func_ov00_020a8b80Ev
cmp r0, #0
beq _020aed70
mov r0, r5
bl _ZN13LinkStateBase18func_ov00_020a8d40Ev
ldr r1, [r0, #0xdc]
ldr r0, _020aed8c ; =0x0000099a
cmp r1, r0
blt _020aed70
ldr r0, _020aed84 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b034c
cmp r0, #0
ble _020aed70
ldr r0, _020aed84 ; =data_027e0fb8
ldr r0, [r0]
bl func_ov00_020b034c
mov r2, #0
mov r1, r0
mov r0, r5
mov r3, r2
bl func_ov05_0210f808
mov r0, #2
str r0, [r5, #4]
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_020aed70:
mov r0, r5
bl func_ov05_02108094
ldmia sp!, {r4, r5, r6, pc}
_020aed7c:
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end _ZN13LinkStateRoll8vfunc_20Ei
_020aed84: .word data_027e0fb8
_020aed88: .word data_027e0618
_020aed8c: .word 0x0000099a
.global _ZN13LinkStateRoll8vfunc_24Ei
arm_func_start _ZN13LinkStateRoll8vfunc_24Ei
_ZN13LinkStateRoll8vfunc_24Ei: ; 0x020aed90
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r5, r0
cmp r4, #7
addls pc, pc, r4, lsl #2
b _020aee40
_020aeda8: ; jump table
b _020aee40 ; case 0
b _020aedc8 ; case 1
b _020aee48 ; case 2
b _020aee48 ; case 3
b _020aede4 ; case 4
b _020aedf8 ; case 5
b _020aee40 ; case 6
b _020aee14 ; case 7
_020aedc8:
ldr r0, [r5, #4]
cmp r0, #5
cmpne r0, #6
cmpne r0, #7
bne _020aee48
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_020aede4:
ldr r0, [r5, #4]
cmp r0, #0
beq _020aee48
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_020aedf8:
ldr r0, [r5, #4]
cmp r0, #0
cmpne r0, #3
cmpne r0, #8
bne _020aee48
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_020aee14:
ldr r1, [r5, #4]
cmp r1, #0
bne _020aee48
bl func_ov05_0211139c
cmp r0, #0
bne _020aee48
bl _ZN13LinkStateRoll18func_ov00_020aeeacEv
cmp r0, #0
beq _020aee48
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_020aee40:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_020aee48:
mov r0, r5
mov r1, r4
bl _ZN13LinkStateBase8vfunc_24Ei
ldmia sp!, {r3, r4, r5, pc}
arm_func_end _ZN13LinkStateRoll8vfunc_24Ei
.global _ZN13LinkStateRoll18func_ov00_020aee58Est
arm_func_start _ZN13LinkStateRoll18func_ov00_020aee58Est
_ZN13LinkStateRoll18func_ov00_020aee58Est: ; 0x020aee58
ldrh r3, [r0, #0x16]
cmp r3, r2
movne r3, #0
strneh r3, [r0, #0x12]
ldrsh ip, [r0, #0x12]
mov r3, #0xf
add r1, ip, r1
strh r1, [r0, #0x12]
strh r3, [r0, #0x14]
strh r2, [r0, #0x16]
bx lr
arm_func_end _ZN13LinkStateRoll18func_ov00_020aee58Est
.global _ZN13LinkStateRoll18func_ov00_020aee84Ev
arm_func_start _ZN13LinkStateRoll18func_ov00_020aee84Ev
_ZN13LinkStateRoll18func_ov00_020aee84Ev: ; 0x020aee84
ldrsh r1, [r0, #0x14]
cmp r1, #0
subgt r1, r1, #1
strgth r1, [r0, #0x14]
bxgt lr
ldrsh r1, [r0, #0x12]
cmp r1, #0
subgt r1, r1, #1
strgth r1, [r0, #0x12]
bx lr
arm_func_end _ZN13LinkStateRoll18func_ov00_020aee84Ev
.global _ZN13LinkStateRoll18func_ov00_020aeeacEv
arm_func_start _ZN13LinkStateRoll18func_ov00_020aeeacEv
_ZN13LinkStateRoll18func_ov00_020aeeacEv: ; 0x020aeeac
ldr r0, _020aeef0 ; =data_027e077c
ldr r2, _020aeef4 ; =data_02056be4
ldr r1, [r0]
mov r3, r1
ldrb r1, [r2, r1]
tst r1, #1
bne _020aeed4
ldrb r1, [r2, r3]
tst r1, #4
beq _020aeedc
_020aeed4:
mov r0, #0
bx lr
_020aeedc:
ldr r0, [r0, #4]
cmp r3, r0
moveq r0, #1
movne r0, #0
bx lr
.align 2, 0
arm_func_end _ZN13LinkStateRoll18func_ov00_020aeeacEv
_020aeef0: .word data_027e077c
_020aeef4: .word data_02056be4
.data
.global data_ov00_020e6078
data_ov00_020e6078: ; 0x020e6078
.byte 0x0b, 0x00, 0x00, 0x00
.global data_ov00_020e607c
data_ov00_020e607c: ; 0x020e607c
.byte 0x9a, 0x11, 0x00, 0x00
.global data_ov00_020e6080
data_ov00_020e6080: ; 0x020e6080
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov00_020e6084
data_ov00_020e6084: ; 0x020e6084
.byte 0x00, 0x30, 0x01, 0x00
.global data_ov00_020e6088
data_ov00_020e6088: ; 0x020e6088
.byte 0x23, 0x00, 0x00, 0x00
.global data_ov00_020e608c
data_ov00_020e608c: ; 0x020e608c
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov00_020e6090
data_ov00_020e6090: ; 0x020e6090
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e6094
data_ov00_020e6094: ; 0x020e6094
.byte 0x00, 0xc0, 0x02, 0x00
.global data_ov00_020e6098
data_ov00_020e6098: ; 0x020e6098
.byte 0x45, 0x00, 0x00, 0x00
.global data_ov00_020e609c
data_ov00_020e609c: ; 0x020e609c
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov00_020e60a0
data_ov00_020e60a0: ; 0x020e60a0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e60a4
data_ov00_020e60a4: ; 0x020e60a4
.byte 0x00, 0x10, 0x00, 0x00
.global data_ov00_020e60a8
data_ov00_020e60a8: ; 0x020e60a8
.byte 0x2d, 0x00, 0x00, 0x00
.global data_ov00_020e60ac
data_ov00_020e60ac: ; 0x020e60ac
.byte 0x00, 0x30, 0x00, 0x00
.global data_ov00_020e60b0
data_ov00_020e60b0: ; 0x020e60b0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e60b4
data_ov00_020e60b4: ; 0x020e60b4
.byte 0x00, 0x10, 0x01, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global _ZTV13LinkStateRoll
_ZTV13LinkStateRoll: ; 0x020e60c0
.word _ZN13LinkStateRoll8vfunc_00Ev
.word func_ov04_0210ae80
.word func_ov04_0210aea8
.word _ZN13LinkStateRoll5GetIdEv - 1
.word _ZN13LinkStateRoll20CreateDebugHierarchyEv
.word _ZN13LinkStateRoll12OnStateEnterEv - 1
.word _ZN13LinkStateRoll12OnStateLeaveEi - 1
.word func_ov05_02106c94
.word _ZN13LinkStateRoll8vfunc_20Ei - 1
.word _ZN13LinkStateRoll8vfunc_24Ei - 1
.word _ZN13LinkStateBase8vfunc_28Ev
.word func_ov05_0210f704
.word func_ov05_0210f708
.word _ZN13LinkStateBase8vfunc_34EP5Vec3p
.word func_ov05_0210f70c
.word func_ov05_0210f714
.word func_ov05_0210f71c
+1 -1
View File
@@ -1,5 +1,5 @@
#pragma once
.extern func_ov00_020aeeac
.extern _ZN13LinkStateRoll18func_ov00_020aeeacEv
.extern func_ov00_02097bbc
.extern func_ov00_020af4a4
.extern data_027e0f74
+54
View File
@@ -0,0 +1,54 @@
#pragma once
.extern _ZN13LinkStateBase18GetDebugHierarchy0Ev
.extern _ZN13LinkStateBase18func_ov00_020a82acEv
.extern _ZN13LinkStateBase12GetPlayerVelEv
.extern _ZN13LinkStateBase14GetPlayerAngleEv
.extern _ZN13LinkStateBase12ApplyImpulseEii
.extern func_ov00_020af050
.extern _ZN13LinkStateBase18func_ov00_020a8a4cEii
.extern _ZN13LinkStateBase12GetPlayerPosEv
.extern func_ov00_020d7a84
.extern _ZN13LinkStateBase18func_ov00_020a8638Ei
.extern func_ov00_0207c39c
.extern func_ov05_02107c8c
.extern _ZN13LinkStateBase18func_ov00_020a8d40Ev
.extern func_ov00_020b4c2c
.extern _ZN13LinkStateBase6TurnToEsii
.extern func_ov21_02170660
.extern _ZN13LinkStateBase18EquipItem_vfunc_28Ev
.extern func_ov05_02108188
.extern func_ov23_0217139c
.extern data_02050f54
.extern data_027e0fb8
.extern data_ov00_020eec9c
.extern data_027e0e58
.extern _ZN13LinkStateBase12OnStateLeaveEi
.extern _ZN13LinkStateBase26Clear_PlayerLinkBase_Unk48Et
.extern func_ov00_0207c444
.extern _ZN13LinkStateBase18func_ov00_020a84bcEi
.extern func_ov23_021720f0
.extern func_ov00_020b7e6c
.extern _ZN13LinkStateBase12GetGrabActorEv
.extern _ZN13LinkStateBase18func_ov00_020a8b80Ev
.extern func_ov00_020b12d0
.extern _ZN13LinkStateBase29HasFlags_PlayerLinkBase_Unk48Et
.extern _ZN13LinkStateBase19GetCurrentCharacterEv
.extern func_ov23_021712fc
.extern func_ov00_020b034c
.extern func_ov05_0210f808
.extern func_ov05_02108094
.extern data_027e0618
.extern func_ov05_0211139c
.extern _ZN13LinkStateBase8vfunc_24Ei
.extern data_027e077c
.extern data_02056be4
.extern func_ov04_0210ae80
.extern func_ov04_0210aea8
.extern func_ov05_02106c94
.extern _ZN13LinkStateBase8vfunc_28Ev
.extern func_ov05_0210f704
.extern func_ov05_0210f708
.extern _ZN13LinkStateBase8vfunc_34EP5Vec3p
.extern func_ov05_0210f70c
.extern func_ov05_0210f714
.extern func_ov05_0210f71c
+23 -45
View File
@@ -1,40 +1,6 @@
#pragma once
.extern _ZN13LinkStateBase18GetDebugHierarchy0Ev
.extern _ZN13LinkStateBase18func_ov00_020a82acEv
.extern _ZN13LinkStateBase12GetPlayerVelEv
.extern _ZN13LinkStateBase14GetPlayerAngleEv
.extern _ZN13LinkStateBase12ApplyImpulseEii
.extern _ZN13LinkStateBase18func_ov00_020a8a4cEii
.extern _ZN13LinkStateBase12GetPlayerPosEv
.extern _ZN13LinkStateBase18func_ov00_020a8638Ei
.extern func_ov00_0207c39c
.extern func_ov05_02107c8c
.extern _ZN13LinkStateBase18func_ov00_020a8d40Ev
.extern _ZN13LinkStateBase6TurnToEsii
.extern func_ov21_02170660
.extern _ZN13LinkStateBase18EquipItem_vfunc_28Ev
.extern func_ov05_02108188
.extern func_ov23_0217139c
.extern data_02050f54
.extern data_027e0fb8
.extern data_027e0e58
.extern _ZN13LinkStateBase12OnStateLeaveEi
.extern _ZN13LinkStateBase26Clear_PlayerLinkBase_Unk48Et
.extern func_ov00_0207c444
.extern _ZN13LinkStateBase18func_ov00_020a84bcEi
.extern func_ov23_021720f0
.extern _ZN13LinkStateBase12GetGrabActorEv
.extern _ZN13LinkStateBase18func_ov00_020a8b80Ev
.extern _ZN13LinkStateBase29HasFlags_PlayerLinkBase_Unk48Et
.extern _ZN13LinkStateBase19GetCurrentCharacterEv
.extern func_ov23_021712fc
.extern func_ov05_0210f808
.extern func_ov05_02108094
.extern data_027e0618
.extern func_ov05_0211139c
.extern _ZN13LinkStateBase8vfunc_24Ei
.extern _ZN13LinkStateRoll18func_ov00_020aeeacEv
.extern data_027e077c
.extern data_02056be4
.extern func_ov00_02078b40
.extern data_027e0d0c
.extern data_027e0d38
@@ -52,6 +18,7 @@
.extern func_ov15_0213ce4c
.extern func_ov15_0213dcb0
.extern func_ov15_0213dcb8
.extern data_02056be4
.extern func_ov05_02103f4c
.extern data_027e0e2c
.extern func_ov00_02085108
@@ -79,6 +46,7 @@
.extern func_01ff992c
.extern func_01ff9bf8
.extern func_0202d95c
.extern data_02050f54
.extern func_ov00_02083c24
.extern func_ov00_02083c50
.extern func_ov00_0208b180
@@ -115,7 +83,14 @@
.extern func_02037844
.extern func_02036d30
.extern func_ov00_02097b9c
.extern _ZN13LinkStateBase18GetDebugHierarchy0Ev
.extern func_0202ab78
.extern _ZN13LinkStateBase18func_ov00_020a82acEv
.extern _ZN13LinkStateBase26Clear_PlayerLinkBase_Unk48Et
.extern _ZN13LinkStateBase12GetPlayerVelEv
.extern _ZN13LinkStateBase14GetPlayerAngleEv
.extern _ZN13LinkStateBase12GetPlayerPosEv
.extern _ZN13LinkStateBase18func_ov00_020a8d40Ev
.extern func_020385b8
.extern _ZN17LinkStateInteract15SetBombVelocityEP5Vec3p
.extern func_ov00_020872e8
@@ -126,6 +101,7 @@
.extern func_ov05_02108d08
.extern func_ov05_02108e08
.extern data_ov09_0211f5b4
.extern _ZN13LinkStateBase12OnStateLeaveEi
.extern func_ov05_02104070
.extern _ZN13LinkStateBase6LookAtEP5Vec3p
.extern _ZN13LinkStateBase15ChangeLinkStateEi
@@ -134,6 +110,8 @@
.extern _ZN17LinkStateInteract20SetGrabActorVelocityEP5Vec3p
.extern func_ov05_02100ae0
.extern func_ov05_021099dc
.extern _ZN13LinkStateBase12GetGrabActorEv
.extern func_ov05_0210f808
.extern data_02052f54
.extern data_02051f54
.extern _ZN13LinkStateBase18func_ov00_020a8b3cEi
@@ -141,15 +119,20 @@
.extern func_ov05_02110228
.extern func_ov00_02097bcc
.extern _ZN13LinkStateBase28Get_PlayerControlData_Unk120Ev
.extern _ZN13LinkStateBase8vfunc_24Ei
.extern _ZN13LinkStateBase18func_ov00_020a8a4cEii
.extern _ZN13LinkStateBase18ChangeLinkSubStateEii
.extern _ZN13LinkStateBase10GetStateIdEv
.extern func_020367ec
.extern _ZN13LinkStateBase18func_ov00_020a84bcEi
.extern func_ov00_0209a4f4
.extern func_ov00_02097810
.extern func_ov00_0209a508
.extern func_ov17_02165e48
.extern _ZN13LinkStateBase18SetPlayerCharacterEi
.extern func_ov00_02083f44
.extern data_027e0618
.extern data_027e0fb8
.extern func_0203780c
.extern func_01ffa9fc
.extern data_027e03c8
@@ -161,6 +144,8 @@
.extern data_ov00_020e9360
.extern func_ov00_02079e68
.extern func_ov00_0207c474
.extern func_ov00_0207c444
.extern data_027e0e58
.extern func_ov00_0207a1c8
.extern func_ov00_0207a1a4
.extern func_ov00_02093a1c
@@ -593,16 +578,6 @@
.extern func_0202d0cc
.extern func_0201739c
.extern func_020174a4
.extern func_ov04_0210ae80
.extern func_ov04_0210aea8
.extern func_ov05_02106c94
.extern _ZN13LinkStateBase8vfunc_28Ev
.extern func_ov05_0210f704
.extern func_ov05_0210f708
.extern _ZN13LinkStateBase8vfunc_34EP5Vec3p
.extern func_ov05_0210f70c
.extern func_ov05_0210f714
.extern func_ov05_0210f71c
.extern func_ov12_02134378
.extern func_ov05_02108e8c
.extern func_ov05_02108f38
@@ -618,7 +593,10 @@
.extern func_ov04_0210acc8
.extern func_ov04_0210ad0c
.extern _ZN13LinkStateBase8vfunc_20Ei
.extern func_ov05_0210f704
.extern func_ov05_0210a110
.extern _ZN13LinkStateBase8vfunc_34EP5Vec3p
.extern func_ov05_0210f714
.extern func_02037854
.extern func_020386b4
.extern func_020386c4
+1215 -1886
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -511,5 +511,5 @@ _020d6108:
_020d6134: .word data_ov00_020ee6e8
_020d6138: .word data_ov00_020e9308
_020d613c: .word data_ov00_020e9308
_020d6140: .word func_ov00_020d5c50 - 1
_020d6140: .word func_ov00_020d5c50
_020d6144: .word data_ov00_020ee6ec
+2 -2
View File
@@ -20975,7 +20975,7 @@ func_ov04_0210adfc: ; 0x0210adfc
sub sp, #4
add r4, r0, #0
bl func_ov04_0210add4
ldr r0, _0210ae70 ; =data_ov00_020e60c0
ldr r0, _0210ae70 ; =_ZTV13LinkStateRoll
mov r1, #0
str r0, [r4]
ldr r0, _0210ae74 ; =data_ov00_020dc6e0
@@ -21029,7 +21029,7 @@ _0210ae52:
pop {r3, r4, pc}
nop
thumb_func_end func_ov04_0210adfc
_0210ae70: .word data_ov00_020e60c0
_0210ae70: .word _ZTV13LinkStateRoll
_0210ae74: .word data_ov00_020dc6e0
_0210ae78: .word func_ov04_021079d4
_0210ae7c: .word func_ov00_020b7d74
+6 -6
View File
@@ -6389,7 +6389,7 @@ _02105e4c:
bl func_ov05_02106634
mov r1, #2
mov r2, #1
bl func_ov00_020aee58
bl _ZN13LinkStateRoll18func_ov00_020aee58Est
b _02105f4c
_02105e68:
ldrsh r1, [r4, #0x22]
@@ -6420,7 +6420,7 @@ _02105ebc:
bl func_ov05_02106634
mov r1, #5
mov r2, r5
bl func_ov00_020aee58
bl _ZN13LinkStateRoll18func_ov00_020aee58Est
b _02105f4c
_02105edc:
ldrsh r1, [r4, #0x22]
@@ -6451,7 +6451,7 @@ _02105f30:
bl func_ov05_02106634
mov r1, #5
mov r2, r5
bl func_ov00_020aee58
bl _ZN13LinkStateRoll18func_ov00_020aee58Est
_02105f4c:
mov r0, r4
mov r1, r6
@@ -11654,7 +11654,7 @@ func_ov05_0210a648: ; 0x0210a648
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov05_02106634
bl func_ov00_020aee84
bl _ZN13LinkStateRoll18func_ov00_020aee84Ev
ldr r0, [r4, #4]
ldr r1, _0210a68c ; =data_ov05_021128c4
add r1, r1, r0, lsl #3
@@ -13030,7 +13030,7 @@ func_ov05_0210b97c: ; 0x0210b97c
stmdb sp!, {r4, lr}
mov r4, r0
bl func_ov05_02106634
bl func_ov00_020aee84
bl _ZN13LinkStateRoll18func_ov00_020aee84Ev
ldr r0, [r4, #4]
ldr r1, _0210b9c0 ; =data_ov05_02112a04
add r1, r1, r0, lsl #3
@@ -17674,7 +17674,7 @@ _0210f8dc:
ldr r2, [r2, #0x64]
blx r2
bl func_ov05_02106634
bl func_ov00_020aee84
bl _ZN13LinkStateRoll18func_ov00_020aee84Ev
bl func_ov05_02106634
bl func_ov05_02107fc0
cmp sb, #0
+4
View File
@@ -39,4 +39,8 @@ public:
/* 20 */ virtual bool vfunc_20(s32 param1) override;
/* 24 */ virtual bool vfunc_24(s32 param1) override;
/* 44 */
void func_ov00_020aee58(s16 param1, u16 param2);
void func_ov00_020aee84();
bool func_ov00_020aeeac();
};
+16
View File
@@ -0,0 +1,16 @@
#include "Player/LinkStateRoll.hpp"
#ifdef STUBS
void LinkStateRoll::vfunc_00() {}
LinkStateId LinkStateRoll::GetId() {}
void LinkStateRoll::CreateDebugHierarchy() {}
void LinkStateRoll::OnStateEnter() {}
void LinkStateRoll::OnStateLeave(s32 param1) {}
bool LinkStateRoll::vfunc_20(s32 param1) {}
bool LinkStateRoll::vfunc_24(s32 param1) {}
void LinkStateRoll::func_ov00_020aee58(s16 param1, u16 param2) {}
void LinkStateRoll::func_ov00_020aee84() {}
bool LinkStateRoll::func_ov00_020aeeac() {}
#endif
+8
View File
@@ -24,14 +24,19 @@ DTCM_OBJECTS = [
ov00 = Overlay(name='ov00', after='ARM9', objects=[
'asm/ov00/ov00_020773c0.s',
'src/00_Core/Player/TouchControl.cpp',
'asm/ov00/Player/TouchControl.s',
'asm/ov00/ov00_0207af9c.s',
'src/00_Core/Player/PlayerBase.cpp',
'asm/ov00/Player/PlayerBase.s',
'src/00_Core/Player/LinkStateBase.cpp',
'asm/ov00/Player/LinkStateBase.s',
'asm/ov00/ov00_020a8e04.s',
'src/00_Core/Player/LinkStateInteract.cpp',
'asm/ov00/Player/LinkStateInteract.s',
'src/00_Core/Player/LinkStateItem.cpp',
@@ -42,6 +47,9 @@ ov00 = Overlay(name='ov00', after='ARM9', objects=[
'asm/ov00/Item/Item.s',
'src/00_Core/Item/ItemManager.cpp',
'asm/ov00/Item/ItemManager.s',
'src/00_Core/Player/LinkStateRoll.cpp',
'asm/ov00/Player/LinkStateRoll.s',
'asm/ov00/ov00_020ae7a4.s',
'asm/ov00/ov00_init.s'
])