mirror of
https://github.com/zeldaret/ph
synced 2026-05-26 07:38:52 -04:00
2960 lines
61 KiB
ArmAsm
2960 lines
61 KiB
ArmAsm
.include "ov00/Player/PlayerControl.inc"
|
|
.include "macros/function.inc"
|
|
|
|
.text
|
|
|
|
.global _ZN13PlayerControl18_ZN13PlayerControl18func_ov00_020aeeacEvEv
|
|
arm_func_start _ZN13PlayerControl18_ZN13PlayerControl18func_ov00_020aeeacEvEv
|
|
_ZN13PlayerControl18_ZN13PlayerControl18func_ov00_020aeeacEvEv: ; 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 _ZN13PlayerControl18_ZN13PlayerControl18func_ov00_020aeeacEvEv
|
|
_020aeef0: .word data_027e077c
|
|
_020aeef4: .word data_02056be4
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
_ZN13PlayerControl18func_ov00_020aeef8Ev: ; 0x020aeef8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _020aef2c ; =data_027e077c
|
|
ldr r1, [r0]
|
|
mov r0, r1
|
|
cmp r1, #0x37
|
|
cmpne r0, #0x3b
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
cmp r0, #0x3d
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl _ZN13PlayerControl18_ZN13PlayerControl18func_ov00_020aeeacEvEv
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
_020aef2c: .word data_027e077c
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020aef30Ev
|
|
thumb_func_start _ZN13PlayerControl18func_ov00_020aef30Ev
|
|
_ZN13PlayerControl18func_ov00_020aef30Ev: ; 0x020aef30
|
|
push {r3, r4, lr}
|
|
sub sp, #0xc
|
|
add r4, r0, #0
|
|
blx func_ov00_020b78a0
|
|
add r4, #0xd4
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _020aef56
|
|
ldr r1, _020aef5c ; =0x504c5952
|
|
ldr r2, _020aef60 ; =data_ov00_020e6148
|
|
str r1, [sp]
|
|
mov r1, #0
|
|
str r1, [sp, #4]
|
|
str r1, [sp, #8]
|
|
ldr r4, [r0]
|
|
ldr r3, _020aef64 ; =0x5043544c
|
|
ldr r4, [r4, #0x20]
|
|
blx r4
|
|
_020aef56:
|
|
add sp, #0xc
|
|
pop {r3, r4, pc}
|
|
nop
|
|
thumb_func_end _ZN13PlayerControl18func_ov00_020aef30Ev
|
|
_020aef5c: .word 0x504c5952
|
|
_020aef60: .word data_ov00_020e6148
|
|
_020aef64: .word 0x5043544c
|
|
|
|
.global _ZN13PlayerControl9UpdateAimEv
|
|
thumb_func_start _ZN13PlayerControl9UpdateAimEv
|
|
_ZN13PlayerControl9UpdateAimEv: ; 0x020aef68
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
blx func_ov00_020b78a0
|
|
add r1, r4, #0
|
|
mov r0, #0
|
|
add r1, #0xbc
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xc0
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0xc4
|
|
str r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x80
|
|
strb r0, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x82
|
|
strb r0, [r1]
|
|
add r1, r4, #0
|
|
sub r2, r0, #1
|
|
add r1, #0x84
|
|
str r2, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x88
|
|
str r2, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x8c
|
|
str r2, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x90
|
|
str r2, [r1]
|
|
add r1, r4, #0
|
|
add r1, #0x81
|
|
strb r0, [r1]
|
|
ldr r1, _020aeff0 ; =data_027e0d0c
|
|
add r0, r4, #0
|
|
ldr r2, [r1]
|
|
add r0, #0xb0
|
|
str r2, [r0]
|
|
add r0, r4, #0
|
|
ldr r2, [r1, #4]
|
|
add r0, #0xb4
|
|
str r2, [r0]
|
|
add r0, r4, #0
|
|
ldr r1, [r1, #8]
|
|
add r0, #0xb8
|
|
str r1, [r0]
|
|
ldr r0, _020aeff4 ; =data_027e0d38
|
|
ldr r0, [r0]
|
|
blx func_ov00_02078b40
|
|
cmp r0, #2
|
|
bne _020aefde
|
|
ldr r0, _020aeff8 ; =data_027e103c
|
|
ldr r0, [r0]
|
|
blx func_ov00_020cf2b8
|
|
_020aefde:
|
|
add r0, r4, #0
|
|
mov r1, #0
|
|
mvn r1, r1
|
|
add r0, #0xc8
|
|
str r1, [r0]
|
|
add r4, #0xcc
|
|
str r1, [r4]
|
|
pop {r4, pc}
|
|
nop
|
|
thumb_func_end _ZN13PlayerControl9UpdateAimEv
|
|
_020aeff0: .word data_027e0d0c
|
|
_020aeff4: .word data_027e0d38
|
|
_020aeff8: .word data_027e103c
|
|
|
|
.global _ZN13PlayerControl14GetFollowActorEv
|
|
arm_func_start _ZN13PlayerControl14GetFollowActorEv
|
|
_ZN13PlayerControl14GetFollowActorEv: ; 0x020aeffc
|
|
ldr r1, _020af014 ; =data_027e0fe4
|
|
mov r2, r0
|
|
ldr r0, [r1]
|
|
ldr ip, _020af018 ; =_ZN12ActorManager8GetActorEP8ActorRef
|
|
add r1, r2, #0x84
|
|
bx ip
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl14GetFollowActorEv
|
|
_020af014: .word data_027e0fe4
|
|
_020af018: .word _ZN12ActorManager8GetActorEP8ActorRef
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020af01cEPc
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020af01cEPc
|
|
_ZN13PlayerControl18func_ov00_020af01cEPc: ; 0x020af01c
|
|
ldrb r2, [r0, #0x81]
|
|
cmp r2, #0
|
|
moveq r0, #0
|
|
bxeq lr
|
|
ldrb r2, [r0, #0x9c]
|
|
strb r2, [r1]
|
|
ldrb r2, [r0, #0x9d]
|
|
mov r0, #1
|
|
strb r2, [r1, #1]
|
|
bx lr
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020af01cEPc
|
|
|
|
.global _ZN13PlayerControl9SetUnk_80Ev
|
|
arm_func_start _ZN13PlayerControl9SetUnk_80Ev
|
|
_ZN13PlayerControl9SetUnk_80Ev: ; 0x020af044
|
|
mov r1, #1
|
|
strb r1, [r0, #0x80]
|
|
bx lr
|
|
arm_func_end _ZN13PlayerControl9SetUnk_80Ev
|
|
|
|
.global _ZN13PlayerControl13StopFollowingEv
|
|
arm_func_start _ZN13PlayerControl13StopFollowingEv
|
|
_ZN13PlayerControl13StopFollowingEv: ; 0x020af050
|
|
mvn r1, #0
|
|
str r1, [r0, #0x84]
|
|
str r1, [r0, #0x88]
|
|
mov r1, #0
|
|
strb r1, [r0, #0x81]
|
|
str r1, [r0, #0xa0]
|
|
bx lr
|
|
arm_func_end _ZN13PlayerControl13StopFollowingEv
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020af06cEv
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020af06cEv
|
|
_ZN13PlayerControl18func_ov00_020af06cEv: ; 0x020af06c
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
ldrb r0, [r6, #0x78]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
streqb r0, [r6, #0x79]
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
ldrb r0, [r6, #0x7a]
|
|
ldrb r5, [r6, #0x79]
|
|
cmp r0, #0
|
|
ldr r0, _020af27c ; =gAdventureFlags
|
|
strneb r5, [r6, #0x7b]
|
|
ldr r0, [r0]
|
|
bl _ZN14AdventureFlags18func_ov00_02097738Ev
|
|
cmp r0, #0
|
|
ldreq r0, _020af280 ; =data_027e0c68
|
|
ldreqb r0, [r0, #4]
|
|
cmpeq r0, #0
|
|
beq _020af0d4
|
|
ldr r0, _020af284 ; =data_027e0d38
|
|
ldr r0, [r0]
|
|
bl func_ov00_02078b40
|
|
cmp r0, #2
|
|
movne r0, #0
|
|
strneb r0, [r6, #0x79]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_020af0d4:
|
|
ldr r0, _020af288 ; =gItemManager
|
|
ldr r0, [r0]
|
|
ldr r4, [r0]
|
|
cmp r4, #9
|
|
bne _020af104
|
|
mov r1, #0
|
|
bl _ZNK11ItemManager9HasPotionEj
|
|
cmp r0, #0
|
|
beq _020af124
|
|
mov r0, #1
|
|
strb r0, [r6, #0x79]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_020af104:
|
|
cmp r4, #0xa
|
|
bne _020af124
|
|
mov r1, #1
|
|
bl _ZNK11ItemManager9HasPotionEj
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
strneb r0, [r6, #0x79]
|
|
ldmneia sp!, {r4, r5, r6, pc}
|
|
_020af124:
|
|
ldr r0, _020af284 ; =data_027e0d38
|
|
ldr r0, [r0]
|
|
bl func_ov00_02078b40
|
|
cmp r0, #2
|
|
bne _020af164
|
|
mov r1, #1
|
|
ldr r0, _020af288 ; =gItemManager
|
|
strb r1, [r6, #0x7b]
|
|
ldr r0, [r0]
|
|
bl _ZN11ItemManager18func_ov00_020ad790Ei
|
|
ldrb r1, [r6, #0x7b]
|
|
tst r1, r0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
strb r0, [r6, #0x7b]
|
|
b _020af268
|
|
_020af164:
|
|
ldr r0, _020af28c ; =data_027e05f8
|
|
ldrh r0, [r0]
|
|
tst r0, #0x300
|
|
ldrneb r0, [r6, #0x7e]
|
|
cmpne r0, #0
|
|
beq _020af190
|
|
bl _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
strneb r0, [r6, #0x7b]
|
|
bne _020af1f8
|
|
_020af190:
|
|
ldr r0, _020af28c ; =data_027e05f8
|
|
ldrh r0, [r0]
|
|
tst r0, #0x300
|
|
bne _020af1b4
|
|
ldrb r0, [r6, #0x83]
|
|
cmp r0, #0
|
|
movne r0, #0
|
|
strneb r0, [r6, #0x7b]
|
|
bne _020af1f8
|
|
_020af1b4:
|
|
ldr r0, _020af290 ; =data_027e103c
|
|
ldr r0, [r0]
|
|
ldrsh r0, [r0, #0x20]
|
|
cmp r0, #2
|
|
ldreqb r0, [r6, #0xc]
|
|
cmpeq r0, #0
|
|
bne _020af1f8
|
|
bl _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
cmp r0, #0
|
|
beq _020af1f8
|
|
ldrb r0, [r6, #0x7b]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
strb r0, [r6, #0x7b]
|
|
mov r0, #0
|
|
strb r0, [r6, #0x7c]
|
|
_020af1f8:
|
|
ldr r0, _020af288 ; =gItemManager
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
bl _ZN11ItemManager18func_ov00_020ad790Ei
|
|
ldrb r1, [r6, #0x7b]
|
|
tst r1, r0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
cmp r4, #8
|
|
strb r0, [r6, #0x7b]
|
|
cmpeq r5, #0
|
|
ldreqb r0, [r6, #0x7b]
|
|
cmpeq r0, #1
|
|
bne _020af268
|
|
ldr r0, _020af288 ; =gItemManager
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
bl _ZNK11ItemManager8GetFairyEi
|
|
cmp r0, #0
|
|
beq _020af268
|
|
ldr r1, _020af294 ; =data_027e0f94
|
|
ldr r2, [r0, #0x50]
|
|
ldr r1, [r1, #4]
|
|
ldr r0, [r0, #0x48]
|
|
add r1, r1, #0x800
|
|
str r0, [r6, #0xbc]
|
|
str r1, [r6, #0xc0]
|
|
str r2, [r6, #0xc4]
|
|
_020af268:
|
|
ldrb r0, [r6, #0x7a]
|
|
cmp r0, #0
|
|
ldrneb r0, [r6, #0x7b]
|
|
strneb r0, [r6, #0x79]
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020af06cEv
|
|
_020af27c: .word gAdventureFlags
|
|
_020af280: .word data_027e0c68
|
|
_020af284: .word data_027e0d38
|
|
_020af288: .word gItemManager
|
|
_020af28c: .word data_027e05f8
|
|
_020af290: .word data_027e103c
|
|
_020af294: .word data_027e0f94
|
|
|
|
.global _ZN13PlayerControl20UpdateUsingEquipItemEv
|
|
arm_func_start _ZN13PlayerControl20UpdateUsingEquipItemEv
|
|
_ZN13PlayerControl20UpdateUsingEquipItemEv: ; 0x020af298
|
|
stmdb sp!, {r4, lr}
|
|
ldr r1, _020af2d0 ; =data_027e05f8
|
|
mov r4, r0
|
|
ldrh r0, [r1]
|
|
tst r0, #0x300
|
|
beq _020af2c4
|
|
bl _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
strneb r0, [r4, #0x79]
|
|
ldmneia sp!, {r4, pc}
|
|
_020af2c4:
|
|
mov r0, #0
|
|
strb r0, [r4, #0x79]
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl20UpdateUsingEquipItemEv
|
|
_020af2d0: .word data_027e05f8
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
_ZN13PlayerControl18func_ov00_020af2d4Ejb: ; 0x020af2d4
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r3, _020af3bc ; =data_027e0d38
|
|
mov r6, r0
|
|
ldr r0, [r3]
|
|
mov r5, r1
|
|
mov r4, r2
|
|
bl func_ov00_02078b40
|
|
cmp r0, #2
|
|
bne _020af33c
|
|
cmp r4, #0
|
|
beq _020af33c
|
|
bl func_ov15_0213ce4c
|
|
ldrb r0, [r0, #0x3d]
|
|
cmp r0, #0
|
|
movne r0, #0
|
|
ldmneia sp!, {r4, r5, r6, pc}
|
|
bl func_ov15_0213ce4c
|
|
bl func_ov15_0213dcb0
|
|
cmp r0, #0
|
|
bne _020af334
|
|
bl func_ov15_0213ce4c
|
|
bl func_ov15_0213dcb8
|
|
cmp r0, #0
|
|
beq _020af33c
|
|
_020af334:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_020af33c:
|
|
ldrb r0, [r6, #0x7c]
|
|
cmp r0, #0
|
|
beq _020af3ac
|
|
tst r5, #2
|
|
mov r4, #1
|
|
mov r2, #0
|
|
beq _020af370
|
|
ldr r0, _020af3c0 ; =data_027e077c
|
|
ldr r1, _020af3c4 ; =data_02056be4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r1, r0]
|
|
tst r0, #1
|
|
movne r2, r4
|
|
_020af370:
|
|
cmp r2, #0
|
|
bne _020af3a4
|
|
tst r5, #1
|
|
beq _020af3a0
|
|
bl _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
cmp r0, #0
|
|
beq _020af3a0
|
|
ldr r0, _020af3c8 ; =data_027e103c
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
bne _020af3a4
|
|
_020af3a0:
|
|
mov r4, #0
|
|
_020af3a4:
|
|
mov r0, r4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_020af3ac:
|
|
tst r5, #4
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
_020af3bc: .word data_027e0d38
|
|
_020af3c0: .word data_027e077c
|
|
_020af3c4: .word data_02056be4
|
|
_020af3c8: .word data_027e103c
|
|
|
|
.global _ZN13PlayerControl15CheckTouchedNowEj
|
|
arm_func_start _ZN13PlayerControl15CheckTouchedNowEj
|
|
_ZN13PlayerControl15CheckTouchedNowEj: ; 0x020af3cc
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r2, #1
|
|
mov r5, r0
|
|
mov r4, #0
|
|
bl _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
cmp r0, #0
|
|
beq _020af3f4
|
|
ldrh r0, [r5, #0x34]
|
|
tst r0, #1
|
|
movne r4, #1
|
|
_020af3f4:
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end _ZN13PlayerControl15CheckTouchedNowEj
|
|
|
|
.global _ZN13PlayerControl17CheckUntouchedNowEj
|
|
arm_func_start _ZN13PlayerControl17CheckUntouchedNowEj
|
|
_ZN13PlayerControl17CheckUntouchedNowEj: ; 0x020af3fc
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r2, #1
|
|
mov r5, r0
|
|
mov r4, #0
|
|
bl _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
cmp r0, #0
|
|
beq _020af424
|
|
ldrh r0, [r5, #0x34]
|
|
tst r0, #2
|
|
movne r4, #1
|
|
_020af424:
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end _ZN13PlayerControl17CheckUntouchedNowEj
|
|
|
|
.global _ZN13PlayerControl13CheckTouchingEj
|
|
arm_func_start _ZN13PlayerControl13CheckTouchingEj
|
|
_ZN13PlayerControl13CheckTouchingEj: ; 0x020af42c
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #1
|
|
mov r4, r0
|
|
bl _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
cmp r0, #0
|
|
ldrneb r0, [r4, #0xc]
|
|
cmpne r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end _ZN13PlayerControl13CheckTouchingEj
|
|
|
|
.global _ZN13PlayerControl14CheckTouchFastEj
|
|
arm_func_start _ZN13PlayerControl14CheckTouchFastEj
|
|
_ZN13PlayerControl14CheckTouchFastEj: ; 0x020af454
|
|
stmdb sp!, {r4, lr}
|
|
mov r2, #1
|
|
mov r4, r0
|
|
bl _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
cmp r0, #0
|
|
beq _020af49c
|
|
ldr r0, [r4, #0x5c]
|
|
cmp r0, #0x800
|
|
ldrgtsh r0, [r4, #0x64]
|
|
cmpgt r0, #0
|
|
ble _020af49c
|
|
ldrsh r1, [r4, #0x60]
|
|
cmp r0, r1
|
|
bgt _020af49c
|
|
add r0, r0, #0xf
|
|
cmp r1, r0
|
|
movlt r0, #1
|
|
ldmltia sp!, {r4, pc}
|
|
_020af49c:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end _ZN13PlayerControl14CheckTouchFastEj
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020af4a4Ev
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020af4a4Ev
|
|
_ZN13PlayerControl18func_ov00_020af4a4Ev: ; 0x020af4a4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _020af528 ; =data_027e0d38
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x28]
|
|
ldrb r0, [r0, #0x34]
|
|
cmp r0, #0
|
|
bne _020af520
|
|
ldr r1, _020af52c ; =data_027e0e2c
|
|
mvn r0, #0
|
|
ldr r1, [r1, #4]
|
|
cmp r1, r0
|
|
bne _020af520
|
|
ldr r0, _020af530 ; =data_027e103c
|
|
ldr r0, [r0]
|
|
bl func_ov05_02103f4c
|
|
cmp r0, #0
|
|
bne _020af520
|
|
bl _ZN13PlayerControl18_ZN13PlayerControl18func_ov00_020aeeacEvEv
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _020af534 ; =data_027e077c
|
|
ldr r0, [r0]
|
|
cmp r0, #0x1a
|
|
cmpne r0, #0x1b
|
|
cmpne r0, #0x1c
|
|
bne _020af518
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
_020af518:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
_020af520:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020af4a4Ev
|
|
_020af528: .word data_027e0d38
|
|
_020af52c: .word data_027e0e2c
|
|
_020af530: .word data_027e103c
|
|
_020af534: .word data_027e077c
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020af538Ev
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020af538Ev
|
|
_ZN13PlayerControl18func_ov00_020af538Ev: ; 0x020af538
|
|
stmdb sp!, {r4, r5, lr}
|
|
sub sp, sp, #0xc
|
|
mov r4, r0
|
|
strb r1, [r4, #0x7c]
|
|
strb r2, [r4, #0x7e]
|
|
strb r1, [r4, #0x7d]
|
|
ldrb r0, [r4, #0x78]
|
|
cmp r0, #0
|
|
beq _020af57c
|
|
ldr r0, _020af6c4 ; =gAdventureFlags
|
|
ldr r0, [r0]
|
|
bl _ZN14AdventureFlags18func_ov00_02097738Ev
|
|
cmp r0, #0
|
|
ldreq r0, _020af6c8 ; =data_027e0c68
|
|
ldreqb r0, [r0, #4]
|
|
cmpeq r0, #0
|
|
beq _020af584
|
|
_020af57c:
|
|
mov r5, #1
|
|
b _020af588
|
|
_020af584:
|
|
mov r5, #0
|
|
_020af588:
|
|
cmp r5, #0
|
|
bne _020af5a0
|
|
mov r0, r4
|
|
bl _ZN13PlayerControl18func_ov00_020af4a4Ev
|
|
cmp r0, #0
|
|
bne _020af5a8
|
|
_020af5a0:
|
|
mov r0, #0
|
|
strb r0, [r4, #0x7c]
|
|
_020af5a8:
|
|
cmp r5, #0
|
|
bne _020af5bc
|
|
bl _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
cmp r0, #0
|
|
bne _020af5c4
|
|
_020af5bc:
|
|
mov r0, #0
|
|
strb r0, [r4, #0x7d]
|
|
_020af5c4:
|
|
ldrb r1, [r4, #0x7c]
|
|
mov r0, r4
|
|
bl func_ov00_020b7924
|
|
ldrb r0, [r4, #0x7c]
|
|
cmp r0, #0
|
|
beq _020af644
|
|
ldrsh r0, [r4, #0x60]
|
|
cmp r0, #0
|
|
bne _020af644
|
|
mov r0, r4
|
|
bl _ZN13PlayerControl14GetFollowActorEv
|
|
cmp r0, #0
|
|
ldreqb r0, [r4, #0x81]
|
|
cmpeq r0, #0
|
|
beq _020af620
|
|
ldr r1, _020af6cc ; =data_027e0fac
|
|
ldr r0, _020af6d0 ; =data_027e0ffc
|
|
ldrsh r2, [r1]
|
|
ldr r1, _020af6d4 ; =0x0000010a
|
|
mov r3, #0
|
|
bl func_ov00_020cebcc
|
|
mov r0, r4
|
|
bl _ZN13PlayerControl13StopFollowingEv
|
|
_020af620:
|
|
ldr r0, _020af6d8 ; =data_027e0e60
|
|
add r1, sp, #0
|
|
ldr r0, [r0]
|
|
bl func_ov00_02085108
|
|
cmp r0, #3
|
|
cmpne r0, #7
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
strb r0, [r4, #0x82]
|
|
_020af644:
|
|
ldrb r5, [r4, #0x79]
|
|
mov r0, r4
|
|
bl _ZN13PlayerControl18func_ov00_020af06cEv
|
|
cmp r5, #0
|
|
beq _020af670
|
|
ldrb r0, [r4, #0x79]
|
|
cmp r0, #0
|
|
bne _020af670
|
|
ldr r0, _020af6dc ; =data_027e103c
|
|
ldr r0, [r0]
|
|
bl func_ov00_020cf20c
|
|
_020af670:
|
|
mov r5, #0
|
|
_020af674:
|
|
ldr r0, [r4, #0xd0]
|
|
ldr r0, [r0, r5, lsl #2]
|
|
cmp r0, #0
|
|
beq _020af694
|
|
ldr r2, [r0]
|
|
mov r1, r4
|
|
ldr r2, [r2, #0xc]
|
|
blx r2
|
|
_020af694:
|
|
add r5, r5, #1
|
|
cmp r5, #2
|
|
blt _020af674
|
|
mov r1, #0
|
|
ldr r0, _020af6e0 ; =data_027e05f8
|
|
strb r1, [r4, #0x7f]
|
|
ldrh r0, [r0]
|
|
tst r0, #0x300
|
|
movne r1, #1
|
|
strb r1, [r4, #0x83]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020af538Ev
|
|
_020af6c4: .word gAdventureFlags
|
|
_020af6c8: .word data_027e0c68
|
|
_020af6cc: .word data_027e0fac
|
|
_020af6d0: .word data_027e0ffc
|
|
_020af6d4: .word 0x0000010a
|
|
_020af6d8: .word data_027e0e60
|
|
_020af6dc: .word data_027e103c
|
|
_020af6e0: .word data_027e05f8
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020af6e4EP5Vec3pii
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020af6e4EP5Vec3pii
|
|
_ZN13PlayerControl18func_ov00_020af6e4EP5Vec3pii: ; 0x020af6e4
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
cmp r3, #4
|
|
mov r4, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
addeq sp, sp, #4
|
|
ldmeqia sp!, {r3, r4, r5, r6, pc}
|
|
cmp r5, #0
|
|
ble _020af72c
|
|
ldr r0, _020af770 ; =data_027e0f94
|
|
bl func_01ff9ec0
|
|
cmp r0, r5
|
|
addge sp, sp, #4
|
|
ldmgeia sp!, {r3, r4, r5, r6, pc}
|
|
mvn r0, #0
|
|
str r0, [r4, #0x84]
|
|
str r0, [r4, #0x88]
|
|
_020af72c:
|
|
ldr r1, _020af774 ; =data_027e0e60
|
|
add r0, sp, #0
|
|
ldr r1, [r1]
|
|
mov r2, r6
|
|
bl func_ov00_02083a1c
|
|
ldrb r0, [sp]
|
|
mov r2, #1
|
|
mov r1, #0
|
|
strb r0, [r4, #0x9c]
|
|
ldrb r3, [sp, #1]
|
|
mov r0, #0xf
|
|
strb r3, [r4, #0x9d]
|
|
strb r2, [r4, #0x81]
|
|
strb r1, [r4, #0x80]
|
|
strh r0, [r4, #0xa8]
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020af6e4EP5Vec3pii
|
|
_020af770: .word data_027e0f94
|
|
_020af774: .word data_027e0e60
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020af778Ev
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020af778Ev
|
|
_ZN13PlayerControl18func_ov00_020af778Ev: ; 0x020af778
|
|
stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
|
|
sub sp, sp, #0x14
|
|
mov r9, r0
|
|
ldrb r0, [r9, #0x78]
|
|
cmp r0, #0
|
|
beq _020af7b8
|
|
ldr r0, _020afabc ; =gAdventureFlags
|
|
ldr r0, [r0]
|
|
bl _ZN14AdventureFlags18func_ov00_02097738Ev
|
|
cmp r0, #0
|
|
bne _020af7b8
|
|
ldr r0, _020afabc ; =gAdventureFlags
|
|
ldr r0, [r0]
|
|
bl _ZN14AdventureFlags18func_ov00_02097750Ev
|
|
cmp r0, #0
|
|
beq _020af7cc
|
|
_020af7b8:
|
|
mov r0, #0xf
|
|
strh r0, [r9, #0xaa]
|
|
add sp, sp, #0x14
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, r7, r8, r9, pc}
|
|
_020af7cc:
|
|
ldrsh r0, [r9, #0xaa]
|
|
cmp r0, #0
|
|
ble _020af7ec
|
|
sub r0, r0, #1
|
|
strh r0, [r9, #0xaa]
|
|
add sp, sp, #0x14
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, r7, r8, r9, pc}
|
|
_020af7ec:
|
|
bl _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
cmp r0, #0
|
|
bne _020af810
|
|
mvn r0, #0
|
|
str r0, [r9, #0x8c]
|
|
str r0, [r9, #0x90]
|
|
add sp, sp, #0x14
|
|
mov r0, #0
|
|
ldmia sp!, {r4, r5, r6, r7, r8, r9, pc}
|
|
_020af810:
|
|
ldrh r0, [r9, #0x34]
|
|
mov r4, #0
|
|
mov r5, r4
|
|
tst r0, #2
|
|
beq _020af8b0
|
|
ldrsh r0, [r9, #0x60]
|
|
cmp r0, #0x15
|
|
bge _020af8b0
|
|
ldrsh r0, [r9, #0x68]
|
|
ldr r1, [r9, #0x28]
|
|
ldrsh r2, [r9, #0x66]
|
|
sub r1, r1, r0
|
|
mul r0, r1, r1
|
|
ldr r1, [r9, #0x24]
|
|
sub r1, r1, r2
|
|
mla r0, r1, r1, r0
|
|
cmp r0, #0x64
|
|
bge _020af8b0
|
|
mov r0, r9
|
|
mov r1, #7
|
|
mov r2, #1
|
|
bl _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
cmp r0, #0
|
|
ldrneb r0, [r9, #0x79]
|
|
movne r4, #1
|
|
cmpne r0, #0
|
|
beq _020af8b0
|
|
ldr r0, _020afac0 ; =data_027e0f90
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
ldr r1, [r1, #8]
|
|
blx r1
|
|
mov r1, r0
|
|
mvn r0, #0
|
|
cmp r1, r0
|
|
beq _020af8b0
|
|
ldr r0, _020afac4 ; =gItemManager
|
|
ldr r0, [r0]
|
|
bl _ZN11ItemManager12GetEquipItemEi
|
|
mov r5, r0
|
|
_020af8b0:
|
|
ldr r0, _020afac8 ; =data_027e0fc8
|
|
mov r8, #0
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _020af8dc
|
|
ldr r0, _020afacc ; =data_027e0fe4
|
|
add r1, r1, #0x3c
|
|
ldr r0, [r0]
|
|
bl _ZN12ActorManager8GetActorEP8ActorRef
|
|
cmp r0, #0
|
|
movne r8, #1
|
|
_020af8dc:
|
|
cmp r4, #0
|
|
mov r4, #0
|
|
beq _020afa68
|
|
ldr r0, _020afacc ; =data_027e0fe4
|
|
add r1, r9, #0x8c
|
|
ldr r0, [r0]
|
|
bl _ZN12ActorManager8GetActorEP8ActorRef
|
|
movs r6, r0
|
|
mov r7, r4
|
|
beq _020af97c
|
|
ldr r7, [r6, #0x12c]
|
|
mov r0, r9
|
|
mov r1, r7
|
|
mov r2, r8
|
|
bl _ZN13PlayerControl18func_ov00_020afe88Eib
|
|
cmp r0, #0
|
|
beq _020af97c
|
|
cmp r5, #0
|
|
beq _020af944
|
|
mov r0, r5
|
|
ldr r2, [r0]
|
|
mov r1, r7
|
|
ldr r2, [r2, #0x44]
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _020af97c
|
|
_020af944:
|
|
ldr r1, [r9, #0x8c]
|
|
mvn r0, #0
|
|
str r1, [r9, #0x84]
|
|
ldr r2, [r9, #0x90]
|
|
mov r1, #0
|
|
str r2, [r9, #0x88]
|
|
str r0, [r9, #0x8c]
|
|
str r0, [r9, #0x90]
|
|
mov r0, r6
|
|
strb r1, [r9, #0x80]
|
|
mov r1, #0xf
|
|
strh r1, [r9, #0xa8]
|
|
bl _ZN5Actor16XzDistanceToLinkEv
|
|
mov r4, r0
|
|
_020af97c:
|
|
ldr r0, _020afad0 ; =data_027e0e60
|
|
add r1, sp, #8
|
|
ldr r0, [r0]
|
|
bl func_ov00_02085108
|
|
ldr r2, _020afad4 ; =data_027e0f94
|
|
mov r1, r0
|
|
ldr r0, [r2, #4]
|
|
cmp r5, #0
|
|
str r0, [sp, #0xc]
|
|
bne _020af9e0
|
|
cmp r1, #0
|
|
beq _020afaa8
|
|
mov r0, r9
|
|
mov r2, r8
|
|
bl _ZN13PlayerControl18func_ov00_020afeecEib
|
|
cmp r0, #0
|
|
beq _020afaa8
|
|
add r1, sp, #8
|
|
mov r0, r9
|
|
mov r2, r4
|
|
mov r3, r7
|
|
bl _ZN13PlayerControl18func_ov00_020af6e4EP5Vec3pii
|
|
add sp, sp, #0x14
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, r7, r8, r9, pc}
|
|
_020af9e0:
|
|
mov r0, r5
|
|
ldr r2, [r0]
|
|
ldr r2, [r2, #0x48]
|
|
blx r2
|
|
cmp r0, #0
|
|
beq _020afa18
|
|
add r1, sp, #8
|
|
mov r0, r9
|
|
mov r2, r4
|
|
mov r3, r7
|
|
bl _ZN13PlayerControl18func_ov00_020af6e4EP5Vec3pii
|
|
add sp, sp, #0x14
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, r7, r8, r9, pc}
|
|
_020afa18:
|
|
cmp r4, #0
|
|
bne _020afaa8
|
|
mov r0, r5
|
|
ldr r1, [r0]
|
|
ldr r1, [r1, #0x40]
|
|
blx r1
|
|
cmp r0, #0
|
|
beq _020afaa8
|
|
add r1, sp, #8
|
|
mov r0, r9
|
|
mov r2, #0
|
|
bl func_ov00_020b7d4c
|
|
add r1, sp, #8
|
|
mov r0, r9
|
|
mov r2, r4
|
|
mov r3, r7
|
|
bl _ZN13PlayerControl18func_ov00_020af6e4EP5Vec3pii
|
|
add sp, sp, #0x14
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, r7, r8, r9, pc}
|
|
_020afa68:
|
|
ldr r1, _020afacc ; =data_027e0fe4
|
|
add r0, sp, #0
|
|
ldr r1, [r1]
|
|
mov r2, r4
|
|
bl _ZN12ActorManager18func_ov00_020c3484EP8ActorRefP5Actori
|
|
ldr r0, [sp]
|
|
str r0, [r9, #0x8c]
|
|
ldr r0, [sp, #4]
|
|
str r0, [r9, #0x90]
|
|
ldrsh r0, [r9, #0x60]
|
|
cmp r0, #0
|
|
bne _020afaa8
|
|
ldr r0, [r9, #0x8c]
|
|
str r0, [r9, #0x94]
|
|
ldr r0, [r9, #0x90]
|
|
str r0, [r9, #0x98]
|
|
_020afaa8:
|
|
cmp r4, #0
|
|
movgt r0, #1
|
|
movle r0, #0
|
|
add sp, sp, #0x14
|
|
ldmia sp!, {r4, r5, r6, r7, r8, r9, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020af778Ev
|
|
_020afabc: .word gAdventureFlags
|
|
_020afac0: .word data_027e0f90
|
|
_020afac4: .word gItemManager
|
|
_020afac8: .word data_027e0fc8
|
|
_020afacc: .word data_027e0fe4
|
|
_020afad0: .word data_027e0e60
|
|
_020afad4: .word data_027e0f94
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020afad8EP5Vec3p
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020afad8EP5Vec3p
|
|
_ZN13PlayerControl18func_ov00_020afad8EP5Vec3p: ; 0x020afad8
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
ldr r2, _020afb60 ; =data_027e0f94
|
|
ldr r3, [r1, #4]
|
|
ldr r1, [r2, #4]
|
|
cmp r3, r1
|
|
addge sp, sp, #0xc
|
|
movge r0, #0
|
|
ldmgeia sp!, {pc}
|
|
ldrb r0, [r0, #0x79]
|
|
cmp r0, #0
|
|
beq _020afb54
|
|
ldr r0, _020afb64 ; =data_027e0f90
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
ldr r1, [r1, #8]
|
|
blx r1
|
|
cmp r0, #3
|
|
bne _020afb48
|
|
ldr r0, _020afb68 ; =data_027e0e60
|
|
add r1, sp, #0
|
|
ldr r0, [r0]
|
|
bl func_ov00_02085594
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
add sp, sp, #0xc
|
|
moveq r0, #0
|
|
ldmia sp!, {pc}
|
|
_020afb48:
|
|
add sp, sp, #0xc
|
|
mov r0, #0
|
|
ldmia sp!, {pc}
|
|
_020afb54:
|
|
mov r0, #0
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020afad8EP5Vec3p
|
|
_020afb60: .word data_027e0f94
|
|
_020afb64: .word data_027e0f90
|
|
_020afb68: .word data_027e0e60
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020afb6cEv
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020afb6cEv
|
|
_ZN13PlayerControl18func_ov00_020afb6cEv: ; 0x020afb6c
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
|
|
sub sp, sp, #0x20
|
|
mov r9, r0
|
|
bl _ZN13PlayerControl18func_ov00_020af778Ev
|
|
ldr r1, _020afe70 ; =data_027e0fe4
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
add r1, r9, #0x84
|
|
bl _ZN12ActorManager8GetActorEP8ActorRef
|
|
ldr r1, _020afe74 ; =gItemManager
|
|
mov r5, r0
|
|
ldr r6, [r1]
|
|
mov r0, r6
|
|
bl _ZNK11ItemManager16GetEquippedFairyEv
|
|
mov r1, r0
|
|
mov r0, r6
|
|
bl _ZNK11ItemManager8GetFairyEi
|
|
cmp r5, #0
|
|
ldreqb r1, [r9, #0x81]
|
|
cmpeq r1, #0
|
|
bne _020afbcc
|
|
cmp r0, #0
|
|
beq _020afbcc
|
|
bl func_ov00_020bad18
|
|
_020afbcc:
|
|
cmp r5, #0
|
|
ldr r6, [r9, #0xa4]
|
|
beq _020afce8
|
|
ldr r0, _020afe78 ; =data_027e0f94
|
|
add r1, r5, #0x48
|
|
bl func_01ff9ec0
|
|
mov r6, r0
|
|
add r1, sp, #0x10
|
|
mov r0, r5
|
|
bl _ZN5Actor9GetHitboxEP8Cylinder
|
|
ldr r0, [sp, #0x14]
|
|
mov r1, #0
|
|
add r0, r0, #0x66
|
|
add r2, r0, #0x600
|
|
str r2, [sp, #0x14]
|
|
ldr r0, [r5, #0x12c]
|
|
mov r7, r1
|
|
cmp r0, #5
|
|
mov r8, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _020afc84
|
|
_020afc20: ; jump table
|
|
b _020afc38 ; case 0
|
|
b _020afc48 ; case 1
|
|
b _020afc6c ; case 2
|
|
b _020afc84 ; case 3
|
|
b _020afc84 ; case 4
|
|
b _020afc50 ; case 5
|
|
_020afc38:
|
|
sub r0, r8, #4
|
|
str r0, [r9, #0x84]
|
|
str r0, [r9, #0x88]
|
|
b _020afc9c
|
|
_020afc48:
|
|
mov r7, #1
|
|
b _020afc9c
|
|
_020afc50:
|
|
add r0, r5, #0x100
|
|
ldrsh r0, [r0, #0x1e]
|
|
mov r7, #2
|
|
mov r8, #1
|
|
add r0, r2, r0
|
|
str r0, [sp, #0x14]
|
|
b _020afc9c
|
|
_020afc6c:
|
|
ldr r0, [sp, #0x1c]
|
|
mov r7, r8
|
|
add r0, r2, r0
|
|
mov r8, r1
|
|
str r0, [sp, #0x14]
|
|
b _020afc9c
|
|
_020afc84:
|
|
ldr r1, [sp, #0x14]
|
|
ldr r0, [sp, #0x1c]
|
|
mov r7, #2
|
|
add r0, r1, r0
|
|
mov r8, r7
|
|
str r0, [sp, #0x14]
|
|
_020afc9c:
|
|
cmp r7, #0
|
|
beq _020afcf4
|
|
ldr r0, _020afe7c ; =data_027e0fc8
|
|
ldr r0, [r0]
|
|
bl func_ov00_020bc46c
|
|
cmp r0, #0
|
|
bne _020afcf4
|
|
add r1, sp, #0x10
|
|
mov r0, r9
|
|
mov r2, r7
|
|
bl _ZN13PlayerControl18func_ov00_020aff90Eii
|
|
cmp r4, #0
|
|
beq _020afcf4
|
|
ldr r2, [r5, #8]
|
|
ldr r0, _020afe80 ; =data_027e0ffc
|
|
add r1, sp, #0x10
|
|
mov r3, r8
|
|
bl func_ov00_020ced64
|
|
b _020afcf4
|
|
_020afce8:
|
|
mvn r0, #0
|
|
str r0, [r9, #0x84]
|
|
str r0, [r9, #0x88]
|
|
_020afcf4:
|
|
ldrb r0, [r9, #0x81]
|
|
cmp r0, #0
|
|
beq _020afe24
|
|
ldr r0, _020afe84 ; =data_027e0e60
|
|
add r1, r9, #0x9c
|
|
ldr r0, [r0]
|
|
bl func_ov00_020840c4
|
|
str r0, [r9, #0xa0]
|
|
cmp r0, #0
|
|
beq _020afd88
|
|
ldr r1, [r0, #0x18]
|
|
str r1, [sp, #4]
|
|
ldr r1, [r0, #0x1c]
|
|
str r1, [sp, #8]
|
|
ldr r0, [r0, #0x20]
|
|
str r0, [sp, #0xc]
|
|
ldr r0, [r9, #0xa0]
|
|
ldr r1, [r0]
|
|
ldr r1, [r1, #0x54]
|
|
blx r1
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
beq _020afd5c
|
|
ldr r1, [r0]
|
|
ldr r1, [r1, #0x44]
|
|
blx r1
|
|
_020afd5c:
|
|
ldr r1, [sp, #8]
|
|
add r0, r1, r0
|
|
str r0, [sp, #8]
|
|
ldr r0, [r9, #0xa0]
|
|
ldrsb r0, [r0, #0x12]
|
|
cmp r0, #1
|
|
moveq r5, #1
|
|
moveq r6, #3
|
|
movne r5, #2
|
|
movne r6, r5
|
|
b _020afdc4
|
|
_020afd88:
|
|
ldr r1, _020afe78 ; =data_027e0f94
|
|
ldr r0, _020afe84 ; =data_027e0e60
|
|
ldr r1, [r1, #4]
|
|
ldr r0, [r0]
|
|
str r1, [sp, #8]
|
|
ldrb r3, [r9, #0x9c]
|
|
ldrb r2, [r9, #0x9d]
|
|
sub r5, sp, #4
|
|
add r1, sp, #4
|
|
strb r3, [r5]
|
|
strb r2, [r5, #1]
|
|
ldr r2, [r5]
|
|
bl func_ov00_02083c7c
|
|
mov r5, #2
|
|
mov r6, #3
|
|
_020afdc4:
|
|
cmp r5, #0
|
|
beq _020afe10
|
|
ldr r0, _020afe7c ; =data_027e0fc8
|
|
ldr r0, [r0]
|
|
bl func_ov00_020bc46c
|
|
cmp r0, #0
|
|
bne _020afe10
|
|
add r1, sp, #4
|
|
mov r0, r9
|
|
mov r2, r5
|
|
bl _ZN13PlayerControl18func_ov00_020aff90Eii
|
|
cmp r4, #0
|
|
beq _020afe10
|
|
str r6, [sp]
|
|
ldrb r2, [r9, #0x9c]
|
|
ldrb r3, [r9, #0x9d]
|
|
ldr r0, _020afe80 ; =data_027e0ffc
|
|
add r1, sp, #4
|
|
bl func_ov00_020ced7c
|
|
_020afe10:
|
|
ldr r0, _020afe78 ; =data_027e0f94
|
|
add r1, sp, #4
|
|
bl func_01ff9ec0
|
|
mov r6, r0
|
|
b _020afe2c
|
|
_020afe24:
|
|
mov r0, #0
|
|
str r0, [r9, #0xa0]
|
|
_020afe2c:
|
|
ldrsh r1, [r9, #0xa8]
|
|
cmp r1, #0
|
|
ble _020afe64
|
|
ldr r0, [r9, #0xa4]
|
|
sub r0, r0, r6
|
|
cmp r0, #0x29
|
|
bgt _020afe64
|
|
sub r0, r1, #1
|
|
strh r0, [r9, #0xa8]
|
|
ldrsh r0, [r9, #0xa8]
|
|
cmp r0, #0
|
|
bgt _020afe64
|
|
mov r0, r9
|
|
bl _ZN13PlayerControl13StopFollowingEv
|
|
_020afe64:
|
|
str r6, [r9, #0xa4]
|
|
add sp, sp, #0x20
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020afb6cEv
|
|
_020afe70: .word data_027e0fe4
|
|
_020afe74: .word gItemManager
|
|
_020afe78: .word data_027e0f94
|
|
_020afe7c: .word data_027e0fc8
|
|
_020afe80: .word data_027e0ffc
|
|
_020afe84: .word data_027e0e60
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020afe88Eib
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020afe88Eib
|
|
_ZN13PlayerControl18func_ov00_020afe88Eib: ; 0x020afe88
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldrb r0, [r0, #0x7d]
|
|
mov r5, r1
|
|
mov r4, r2
|
|
cmp r0, #0
|
|
beq _020afebc
|
|
ldr r0, _020afee8 ; =data_027e0fcc
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldr r2, [r2, #0x74]
|
|
blx r2
|
|
cmp r0, #0
|
|
bne _020afec4
|
|
_020afebc:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020afec4:
|
|
cmp r4, #0
|
|
beq _020afee0
|
|
cmp r5, #2
|
|
cmpne r5, #6
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020afee0:
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020afe88Eib
|
|
_020afee8: .word data_027e0fcc
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020afeecEib
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020afeecEib
|
|
_ZN13PlayerControl18func_ov00_020afeecEib: ; 0x020afeec
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldrb r0, [r0, #0x7d]
|
|
mov r5, r1
|
|
mov r4, r2
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r0, _020aff8c ; =data_027e0fcc
|
|
ldr r0, [r0]
|
|
ldr r2, [r0]
|
|
ldr r2, [r2, #0x78]
|
|
blx r2
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
cmp r5, #0xd
|
|
addls pc, pc, r5, lsl #2
|
|
b _020aff7c
|
|
_020aff34: ; jump table
|
|
b _020aff7c ; case 0
|
|
b _020aff6c ; case 1
|
|
b _020aff6c ; case 2
|
|
b _020aff7c ; case 3
|
|
b _020aff7c ; case 4
|
|
b _020aff7c ; case 5
|
|
b _020aff7c ; case 6
|
|
b _020aff6c ; case 7
|
|
b _020aff7c ; case 8
|
|
b _020aff7c ; case 9
|
|
b _020aff74 ; case 10
|
|
b _020aff74 ; case 11
|
|
b _020aff7c ; case 12
|
|
b _020aff6c ; case 13
|
|
_020aff6c:
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020aff74:
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020aff7c:
|
|
cmp r4, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020afeecEib
|
|
_020aff8c: .word data_027e0fcc
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020aff90Eii
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020aff90Eii
|
|
_ZN13PlayerControl18func_ov00_020aff90Eii: ; 0x020aff90
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
ldr r0, _020affe4 ; =data_027e0d38
|
|
mov r6, r1
|
|
ldr r0, [r0]
|
|
mov r5, r2
|
|
bl func_ov00_02078b40
|
|
cmp r0, #2
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
ldr r0, _020affe8 ; =gItemManager
|
|
ldr r4, [r0]
|
|
mov r0, r4
|
|
bl _ZNK11ItemManager16GetEquippedFairyEv
|
|
mov r1, r0
|
|
mov r0, r4
|
|
bl _ZNK11ItemManager8GetFairyEi
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
mov r1, r6
|
|
mov r2, r5
|
|
bl func_ov00_020baca8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020aff90Eii
|
|
_020affe4: .word data_027e0d38
|
|
_020affe8: .word gItemManager
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020affecEP5Vec3piiS1_
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020affecEP5Vec3piiS1_
|
|
_ZN13PlayerControl18func_ov00_020affecEP5Vec3piiS1_: ; 0x020affec
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x30
|
|
mov r7, r0
|
|
ldr r0, [r7, #0x44]
|
|
mov r6, r1
|
|
cmp r0, #0
|
|
ldreq r0, [r7, #0x4c]
|
|
mov r5, r3
|
|
ldr r4, [sp, #0x48]
|
|
cmpeq r0, #0
|
|
beq _020b0134
|
|
mov r0, r2
|
|
add r3, sp, #0x24
|
|
add r1, r7, #0x44
|
|
add r2, r7, #0x38
|
|
bl func_01ff9e64
|
|
add r0, sp, #0x18
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
str r1, [r0, #4]
|
|
str r1, [r0, #8]
|
|
ldr r3, [r4]
|
|
ldr r2, [sp, #0x24]
|
|
ldr r1, [sp, #0x2c]
|
|
sub r2, r3, r2
|
|
str r2, [sp, #0x18]
|
|
ldr r2, [r4, #8]
|
|
sub r1, r2, r1
|
|
str r1, [sp, #0x20]
|
|
bl func_01ff9cec
|
|
cmp r0, r5
|
|
bgt _020b008c
|
|
ldr r0, [sp, #0x24]
|
|
str r0, [r6]
|
|
ldr r0, [sp, #0x28]
|
|
str r0, [r6, #4]
|
|
ldr r0, [sp, #0x2c]
|
|
add sp, sp, #0x30
|
|
str r0, [r6, #8]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_020b008c:
|
|
add r0, sp, #0xc
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
str r1, [r0, #4]
|
|
str r1, [r0, #8]
|
|
ldr r1, [r7, #0x44]
|
|
str r1, [sp, #0xc]
|
|
ldr r1, [r7, #0x4c]
|
|
str r1, [sp, #0x14]
|
|
bl func_01ff9cec
|
|
bl func_01ff991c
|
|
mov r4, r0
|
|
ldr r1, [sp, #0xc]
|
|
ldr r0, [sp, #0x14]
|
|
smull r2, r3, r1, r4
|
|
adds r7, r2, #0x800
|
|
smull r2, r1, r0, r4
|
|
adc r0, r3, #0
|
|
mov r3, r7, lsr #0xc
|
|
orr r3, r3, r0, lsl #20
|
|
adds r2, r2, #0x800
|
|
adc r0, r1, #0
|
|
mov r1, r2, lsr #0xc
|
|
orr r1, r1, r0, lsl #20
|
|
str r1, [sp, #0x14]
|
|
add r0, sp, #0x18
|
|
add r1, sp, #0xc
|
|
str r3, [sp, #0xc]
|
|
bl func_01ff9c2c
|
|
mov r3, r6
|
|
mov r7, r0
|
|
add r0, sp, #0xc
|
|
add r6, sp, #0
|
|
ldmia r0, {r0, r1, r2}
|
|
stmia r6, {r0, r1, r2}
|
|
sub r0, r7, r5
|
|
mov r1, r6
|
|
add r2, sp, #0x24
|
|
str r4, [sp, #4]
|
|
bl func_01ff9e64
|
|
add sp, sp, #0x30
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_020b0134:
|
|
ldr r0, [r7, #0x38]
|
|
stmia r6, {r0, r2}
|
|
ldr r0, [r7, #0x40]
|
|
str r0, [r6, #8]
|
|
add sp, sp, #0x30
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020affecEP5Vec3piiS1_
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b014cEv
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b014cEv
|
|
_ZN13PlayerControl18func_ov00_020b014cEv: ; 0x020b014c
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x10
|
|
ldr r2, _020b0210 ; =data_ov00_020ee198
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
mov r4, r1
|
|
tst r0, #1
|
|
orreq r0, r0, #1
|
|
streq r0, [r2]
|
|
ldr r0, _020b0214 ; =data_027e0f64
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x15c]
|
|
cmp r0, #0x16
|
|
addeq sp, sp, #0x10
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
bl _ZN13PlayerControl18func_ov00_020aeef8Ev
|
|
cmp r0, #0
|
|
addeq sp, sp, #0x10
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
ldrsh r0, [r5, #0x60]
|
|
cmp r0, #0
|
|
addle sp, sp, #0x10
|
|
ldmleia sp!, {r4, r5, r6, pc}
|
|
ldr r0, _020b0218 ; =gItemManager
|
|
ldr r6, [r0]
|
|
mov r0, r6
|
|
bl _ZNK11ItemManager16GetEquippedFairyEv
|
|
mov r1, r0
|
|
mov r0, r6
|
|
bl _ZNK11ItemManager8GetFairyEi
|
|
movs r6, r0
|
|
addeq sp, sp, #0x10
|
|
ldmeqia sp!, {r4, r5, r6, pc}
|
|
add r1, sp, #4
|
|
mov r0, r5
|
|
str r4, [sp]
|
|
mov r2, #0x800
|
|
mov r3, #0x8000
|
|
bl _ZN13PlayerControl18func_ov00_020affecEP5Vec3piiS1_
|
|
ldr r0, [r5, #0x3c]
|
|
add r1, sp, #4
|
|
add r3, r0, #0x33
|
|
mov r0, r6
|
|
add r2, r5, #0x44
|
|
add r3, r3, #0x4300
|
|
bl func_ov00_020ba204
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b014cEv
|
|
_020b0210: .word data_ov00_020ee198
|
|
_020b0214: .word data_027e0f64
|
|
_020b0218: .word gItemManager
|
|
|
|
.global _ZN13PlayerControl6SetAimEv
|
|
arm_func_start _ZN13PlayerControl6SetAimEv
|
|
_ZN13PlayerControl6SetAimEv: ; 0x020b021c
|
|
ldr r1, _020b023c ; =data_027e0d0c
|
|
ldr r2, [r1]
|
|
str r2, [r0, #0xb0]
|
|
ldr r2, [r1, #4]
|
|
str r2, [r0, #0xb4]
|
|
ldr r1, [r1, #8]
|
|
str r1, [r0, #0xb8]
|
|
bx lr
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl6SetAimEv
|
|
_020b023c: .word data_027e0d0c
|
|
|
|
.global _ZN13PlayerControl14UpdateAimWorldEP5Vec3p
|
|
arm_func_start _ZN13PlayerControl14UpdateAimWorldEP5Vec3p
|
|
_ZN13PlayerControl14UpdateAimWorldEP5Vec3p: ; 0x020b0240
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
sub sp, sp, #0x10
|
|
ldr r2, _020b031c ; =data_027e0d38
|
|
ldr lr, _020b0320 ; =data_027e0f94
|
|
ldr r3, [r2]
|
|
add ip, sp, #4
|
|
mov r5, r0
|
|
mov r4, r1
|
|
ldmia lr, {r0, r1, r2}
|
|
stmia ip, {r0, r1, r2}
|
|
add r0, r3, #0xc
|
|
bl func_ov00_020a5e9c
|
|
cmp r0, #0x2f
|
|
bne _020b02a4
|
|
ldr r0, _020b0324 ; =data_027e0f64
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
ldr r0, [r0, #0x15c]
|
|
cmp r0, #0x31
|
|
bne _020b02a4
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl func_ov24_02178348
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020b02a4:
|
|
mov r0, r5
|
|
mov r1, #1
|
|
bl _ZN13PlayerControl13CheckTouchingEj
|
|
cmp r0, #0
|
|
beq _020b02f8
|
|
add r2, sp, #4
|
|
str r2, [sp]
|
|
mov r0, r5
|
|
mov r1, r4
|
|
mov r2, #0
|
|
mov r3, #0x8000
|
|
bl _ZN13PlayerControl18func_ov00_020affecEP5Vec3piiS1_
|
|
ldr r1, [r4]
|
|
add sp, sp, #0x10
|
|
str r1, [r5, #0xbc]
|
|
ldr r1, [r4, #4]
|
|
mov r0, #1
|
|
str r1, [r5, #0xc0]
|
|
ldr r1, [r4, #8]
|
|
str r1, [r5, #0xc4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020b02f8:
|
|
ldr r1, [r5, #0xbc]
|
|
mov r0, #0
|
|
str r1, [r4]
|
|
ldr r1, [r5, #0xc0]
|
|
str r1, [r4, #4]
|
|
ldr r1, [r5, #0xc4]
|
|
str r1, [r4, #8]
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl14UpdateAimWorldEP5Vec3p
|
|
_020b031c: .word data_027e0d38
|
|
_020b0320: .word data_027e0f94
|
|
_020b0324: .word data_027e0f64
|
|
|
|
.global _ZN13PlayerControl13GetTouchAngleEv
|
|
arm_func_start _ZN13PlayerControl13GetTouchAngleEv
|
|
_ZN13PlayerControl13GetTouchAngleEv: ; 0x020b0328
|
|
ldrsh r1, [r0, #0x60]
|
|
cmp r1, #0
|
|
ldrgesh r0, [r0, #0x6a]
|
|
bxge lr
|
|
ldrb r1, [r0, #0x7f]
|
|
cmp r1, #0
|
|
ldrnesh r0, [r0, #0xac]
|
|
moveq r0, #0
|
|
bx lr
|
|
arm_func_end _ZN13PlayerControl13GetTouchAngleEv
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b034cEv
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b034cEv
|
|
_ZN13PlayerControl18func_ov00_020b034cEv: ; 0x020b034c
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrsh r1, [r4, #0x60]
|
|
cmp r1, #0
|
|
blt _020b03e8
|
|
mov r1, #1
|
|
mov r2, r1
|
|
bl _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
cmp r0, #0
|
|
beq _020b03e8
|
|
ldr r0, _020b0410 ; =data_ov00_020e6124
|
|
ldr r0, [r0, #0x20]
|
|
bl func_01ff992c
|
|
ldr ip, [r4, #0x58]
|
|
ldrsh r2, [r4, #0x60]
|
|
umull r4, lr, r0, ip
|
|
mov r3, ip, asr #0x1f
|
|
mla lr, r0, r3, lr
|
|
mla lr, r1, ip, lr
|
|
adds r0, r4, #0x80000000
|
|
adc r3, lr, #0
|
|
smull r1, r0, r3, r3
|
|
adds r3, r1, #0x800
|
|
adc r1, r0, #0
|
|
mov r0, r3, lsr #0xc
|
|
cmp r2, #4
|
|
orr r0, r0, r1, lsl #20
|
|
bge _020b03d0
|
|
rsb r1, r2, #4
|
|
mov r2, r1, lsl #0xc
|
|
mov r1, r2, asr #0x1
|
|
add r1, r2, r1, lsr #30
|
|
sub r0, r0, r1, asr #2
|
|
_020b03d0:
|
|
cmp r0, #0
|
|
movlt r0, #0
|
|
ldmltia sp!, {r4, pc}
|
|
cmp r0, #0x1000
|
|
movgt r0, #0x1000
|
|
ldmia sp!, {r4, pc}
|
|
_020b03e8:
|
|
ldrb r0, [r4, #0x7f]
|
|
cmp r0, #0
|
|
beq _020b0408
|
|
ldr r0, _020b0414 ; =data_027e05f8
|
|
ldrh r0, [r0]
|
|
tst r0, #0xf0
|
|
movne r0, #0x1000
|
|
ldmneia sp!, {r4, pc}
|
|
_020b0408:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b034cEv
|
|
_020b0410: .word data_ov00_020e6124
|
|
_020b0414: .word data_027e05f8
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b0418Ev
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b0418Ev
|
|
_ZN13PlayerControl18func_ov00_020b0418Ev: ; 0x020b0418
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _020b0488 ; =data_ov00_020eec60
|
|
bl func_ov00_020d6be4
|
|
cmp r0, #0xa
|
|
movlt r0, #0
|
|
ldmltia sp!, {r3, pc}
|
|
cmp r0, #0x19
|
|
bge _020b0454
|
|
ldr r1, _020b048c ; =0x00000aaa
|
|
ldr r2, _020b0490 ; =0x51eb851f
|
|
mul r3, r0, r1
|
|
smull r1, r0, r2, r3
|
|
mov r1, r3, lsr #0x1f
|
|
add r0, r1, r0, asr #3
|
|
ldmia sp!, {r3, pc}
|
|
_020b0454:
|
|
cmp r0, #0x96
|
|
movge r0, #0x1000
|
|
ldmgeia sp!, {r3, pc}
|
|
ldr r1, _020b0494 ; =0x00000556
|
|
sub r0, r0, #0x19
|
|
mul r1, r0, r1
|
|
ldr r2, _020b0498 ; =0x10624dd3
|
|
mov r0, r1, lsr #0x1f
|
|
smull r1, r3, r2, r1
|
|
add r3, r0, r3, asr #3
|
|
add r0, r3, #0xaa
|
|
add r0, r0, #0xa00
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b0418Ev
|
|
_020b0488: .word data_ov00_020eec60
|
|
_020b048c: .word 0x00000aaa
|
|
_020b0490: .word 0x51eb851f
|
|
_020b0494: .word 0x00000556
|
|
_020b0498: .word 0x10624dd3
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b049cEP5Vec3pb
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b049cEP5Vec3pb
|
|
_ZN13PlayerControl18func_ov00_020b049cEP5Vec3pb: ; 0x020b049c
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r1
|
|
mov r1, #1
|
|
mov r6, r0
|
|
mov r5, r2
|
|
bl _ZN13PlayerControl17CheckUntouchedNowEj
|
|
cmp r0, #0
|
|
beq _020b05d0
|
|
ldrsh r0, [r6, #0x60]
|
|
cmp r0, #0
|
|
blt _020b05d0
|
|
cmp r0, #0x15
|
|
bge _020b05d0
|
|
mov r0, r6
|
|
mov r1, r4
|
|
mov r2, #0x400
|
|
bl func_ov00_020b7d4c
|
|
ldr r1, _020b05d8 ; =data_027e0f94
|
|
mov r0, r4
|
|
mov r2, r4
|
|
bl func_01ff9bf8
|
|
mov r0, r4
|
|
bl func_01ff9cec
|
|
cmp r0, #0x1400
|
|
movge r0, #1
|
|
ldmgeia sp!, {r3, r4, r5, r6, r7, pc}
|
|
cmp r5, #0
|
|
beq _020b05d0
|
|
cmp r0, #0x400
|
|
bge _020b05bc
|
|
ldr r1, _020b05dc ; =data_027e0d0c
|
|
ldr r0, _020b05e0 ; =data_027e0fac
|
|
ldr r2, [r1]
|
|
ldr ip, _020b05e4 ; =data_02050f54
|
|
str r2, [r4]
|
|
ldr r3, [r1, #4]
|
|
mov r2, #0
|
|
str r3, [r4, #4]
|
|
ldr r3, [r1, #8]
|
|
mov r1, #0x1400
|
|
str r3, [r4, #8]
|
|
ldrh r3, [r0]
|
|
ldr r0, [r4]
|
|
mov r3, r3, asr #0x4
|
|
mov r6, r3, lsl #0x1
|
|
mov r3, r6, lsl #0x1
|
|
ldrsh r5, [ip, r3]
|
|
add r3, r6, #1
|
|
mov r3, r3, lsl #0x1
|
|
umull r7, r6, r5, r1
|
|
ldrsh r3, [ip, r3]
|
|
mla r6, r5, r2, r6
|
|
umull lr, ip, r3, r1
|
|
mov r5, r5, asr #0x1f
|
|
adds r7, r7, #0x800
|
|
mla r6, r5, r1, r6
|
|
adc r5, r6, #0
|
|
mov r6, r7, lsr #0xc
|
|
orr r6, r6, r5, lsl #20
|
|
add r0, r0, r6
|
|
str r0, [r4]
|
|
adds lr, lr, #0x800
|
|
mla ip, r3, r2, ip
|
|
mov r0, r3, asr #0x1f
|
|
mla ip, r0, r1, ip
|
|
adc r0, ip, #0
|
|
mov r1, lr, lsr #0xc
|
|
ldr r2, [r4, #8]
|
|
orr r1, r1, r0, lsl #20
|
|
add r0, r2, r1
|
|
str r0, [r4, #8]
|
|
b _020b05c8
|
|
_020b05bc:
|
|
mov r0, r4
|
|
mov r1, #0x1400
|
|
bl func_0202d95c
|
|
_020b05c8:
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_020b05d0:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b049cEP5Vec3pb
|
|
_020b05d8: .word data_027e0f94
|
|
_020b05dc: .word data_027e0d0c
|
|
_020b05e0: .word data_027e0fac
|
|
_020b05e4: .word data_02050f54
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b05e8EP5Vec3p
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b05e8EP5Vec3p
|
|
_ZN13PlayerControl18func_ov00_020b05e8EP5Vec3p: ; 0x020b05e8
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x10
|
|
mov r5, r1
|
|
mov r1, #1
|
|
mov r4, r0
|
|
bl _ZN13PlayerControl17CheckUntouchedNowEj
|
|
cmp r0, #0
|
|
beq _020b0758
|
|
ldrsh r0, [r4, #0x60]
|
|
cmp r0, #0
|
|
blt _020b0758
|
|
cmp r0, #0x15
|
|
bge _020b0758
|
|
mov r0, r4
|
|
ldr r2, _020b0764 ; =0x00000333
|
|
ldr r4, _020b0768 ; =data_027e0f94
|
|
add r1, sp, #4
|
|
bl func_ov00_020b7d4c
|
|
mov r1, r4
|
|
ldr r2, [r1, #4]
|
|
add r0, sp, #4
|
|
str r2, [sp, #8]
|
|
bl func_01ff9ec0
|
|
cmp r0, #0x1400
|
|
addgt sp, sp, #0x10
|
|
movgt r0, #0
|
|
ldmgtia sp!, {r4, r5, r6, pc}
|
|
cmp r0, #0x400
|
|
bge _020b06e0
|
|
ldr r1, _020b076c ; =data_027e0fac
|
|
ldr r0, [r4, #4]
|
|
ldrh r2, [r1]
|
|
ldr r3, _020b0770 ; =data_02050f54
|
|
mov r1, #0x800
|
|
mov r2, r2, asr #0x4
|
|
mov r6, r2, lsl #0x1
|
|
mov r2, r6, lsl #0x1
|
|
ldrsh ip, [r3, r2]
|
|
add r2, r6, #1
|
|
mov r2, r2, lsl #0x1
|
|
ldrsh r3, [r3, r2]
|
|
mov r2, ip, asr #0x1f
|
|
mov lr, r2, lsl #0xa
|
|
mov r2, r3, asr #0x1f
|
|
mov r2, r2, lsl #0xa
|
|
adds r6, r1, ip, lsl #10
|
|
orr lr, lr, ip, lsr #22
|
|
adc lr, lr, #0
|
|
adds ip, r1, r3, lsl #10
|
|
orr r2, r2, r3, lsr #22
|
|
mov r3, r6, lsr #0xc
|
|
adc r1, r2, #0
|
|
mov r2, ip, lsr #0xc
|
|
ldr r6, [r4]
|
|
orr r3, r3, lr, lsl #20
|
|
add r3, r6, r3
|
|
ldr r6, [r4, #8]
|
|
orr r2, r2, r1, lsl #20
|
|
add r1, r6, r2
|
|
str r0, [sp, #8]
|
|
str r3, [sp, #4]
|
|
str r1, [sp, #0xc]
|
|
_020b06e0:
|
|
ldr r1, _020b0774 ; =data_027e0e60
|
|
add r0, sp, #0
|
|
ldr r1, [r1]
|
|
add r2, sp, #4
|
|
bl func_ov00_02083a1c
|
|
ldr r0, _020b0774 ; =data_027e0e60
|
|
ldrb r1, [sp]
|
|
ldr r0, [r0]
|
|
bl func_ov00_02083c24
|
|
ldr r1, [sp, #4]
|
|
ldr r2, _020b0774 ; =data_027e0e60
|
|
sub r0, r0, r1
|
|
add r0, r0, r0, lsr #31
|
|
add r3, r1, r0, asr #1
|
|
ldrb r1, [sp, #1]
|
|
ldr r0, [r2]
|
|
str r3, [sp, #4]
|
|
bl func_ov00_02083c50
|
|
ldr r2, [sp, #0xc]
|
|
mov r1, r4
|
|
sub r0, r0, r2
|
|
add r0, r0, r0, lsr #31
|
|
add r3, r2, r0, asr #1
|
|
add r0, sp, #4
|
|
mov r2, r5
|
|
str r3, [sp, #0xc]
|
|
bl func_01ff9bf8
|
|
add sp, sp, #0x10
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
_020b0758:
|
|
mov r0, #0
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b05e8EP5Vec3p
|
|
_020b0764: .word 0x00000333
|
|
_020b0768: .word data_027e0f94
|
|
_020b076c: .word data_027e0fac
|
|
_020b0770: .word data_02050f54
|
|
_020b0774: .word data_027e0e60
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b0778EP5Vec3pji
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b0778EP5Vec3pji
|
|
_ZN13PlayerControl18func_ov00_020b0778EP5Vec3pji: ; 0x020b0778
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
|
|
sub sp, sp, #0x18
|
|
mov r8, r3
|
|
mov r3, #0
|
|
str r3, [r8]
|
|
ldr r4, [r1]
|
|
ldr r3, _020b0aac ; =data_027e0f64
|
|
str r4, [sp, #0xc]
|
|
ldr r4, [r1, #4]
|
|
mov r9, r0
|
|
str r4, [sp, #0x10]
|
|
ldr r1, [r1, #8]
|
|
ldr r0, [r3]
|
|
mov r4, r2
|
|
str r1, [sp, #0x14]
|
|
bl func_ov00_0208b180
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r1, sp, #0xc
|
|
add r2, sp, #8
|
|
add r3, sp, #4
|
|
bl func_01ffe468
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
cmp r0, #0
|
|
addne sp, sp, #0x18
|
|
movne r0, #0
|
|
ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, lsr #0x10
|
|
mov r0, r0, asr #0x4
|
|
mov r1, r0, lsl #0x1
|
|
add r0, r1, #1
|
|
ldr r3, _020b0ab0 ; =data_02050f54
|
|
mov r2, r1, lsl #0x1
|
|
mov r1, r0, lsl #0x1
|
|
ldrsh r2, [r3, r2]
|
|
mov r0, #0x30
|
|
ldrsh r1, [r3, r1]
|
|
smulbb r2, r2, r0
|
|
smulbb r3, r1, r0
|
|
mov r0, r2, asr #0xb
|
|
mov r1, r3, asr #0xb
|
|
add r2, r2, r0, lsr #20
|
|
add r3, r3, r1, lsr #20
|
|
ldr lr, [r9, #0x10]
|
|
ldr r4, [sp, #8]
|
|
ldr ip, [r9, #0x14]
|
|
ldr r5, [sp, #4]
|
|
mov r0, r9
|
|
mov r1, #1
|
|
mov r6, r2, asr #0xc
|
|
mov r7, r3, asr #0xc
|
|
sub r4, lr, r4
|
|
sub r5, ip, r5
|
|
bl _ZN13PlayerControl15CheckTouchedNowEj
|
|
cmp r0, #0
|
|
beq _020b0948
|
|
sub r0, r6, #0x18
|
|
cmp r0, r4
|
|
addle r0, r6, #0x18
|
|
cmple r4, r0
|
|
suble r0, r7, #0x18
|
|
cmple r0, r5
|
|
addle r0, r7, #0x18
|
|
cmple r5, r0
|
|
bgt _020b089c
|
|
mov r0, #0x1000
|
|
str r0, [r8]
|
|
add sp, sp, #0x18
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
|
|
_020b089c:
|
|
mvn r0, #0x17
|
|
sub r1, r0, r6
|
|
cmp r1, r4
|
|
rsble r1, r6, #0x18
|
|
cmple r4, r1
|
|
suble r0, r0, r7
|
|
cmple r0, r5
|
|
rsble r0, r7, #0x18
|
|
cmple r5, r0
|
|
bgt _020b08dc
|
|
mov r0, #0x1000
|
|
rsb r0, r0, #0
|
|
str r0, [r8]
|
|
add sp, sp, #0x18
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
|
|
_020b08dc:
|
|
rsb r1, r6, #0
|
|
cmp r6, r1
|
|
movlt r0, r6
|
|
movge r0, r1
|
|
sub r0, r0, #0x18
|
|
cmp r4, r0
|
|
blt _020b093c
|
|
cmp r6, r1
|
|
movle r6, r1
|
|
add r0, r6, #0x18
|
|
cmp r0, r4
|
|
blt _020b093c
|
|
rsb r1, r7, #0
|
|
cmp r7, r1
|
|
movlt r0, r7
|
|
movge r0, r1
|
|
sub r0, r0, #0x18
|
|
cmp r5, r0
|
|
blt _020b093c
|
|
cmp r7, r1
|
|
movle r7, r1
|
|
add r0, r7, #0x18
|
|
cmp r0, r5
|
|
bge _020b0aa0
|
|
_020b093c:
|
|
add sp, sp, #0x18
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
|
|
_020b0948:
|
|
mov r0, r9
|
|
mov r1, #1
|
|
bl _ZN13PlayerControl13CheckTouchingEj
|
|
cmp r0, #0
|
|
beq _020b0a20
|
|
cmp r6, #0
|
|
addlt r0, r6, #0x18
|
|
cmplt r4, r0
|
|
blt _020b099c
|
|
cmp r6, #0
|
|
subgt r0, r6, #0x18
|
|
cmpgt r4, r0
|
|
bgt _020b099c
|
|
cmp r7, #0
|
|
addlt r0, r7, #0x18
|
|
cmplt r5, r0
|
|
blt _020b099c
|
|
cmp r7, #0
|
|
subgt r0, r7, #0x18
|
|
cmpgt r5, r0
|
|
ble _020b09b0
|
|
_020b099c:
|
|
mov r0, #0x1000
|
|
str r0, [r8]
|
|
add sp, sp, #0x18
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
|
|
_020b09b0:
|
|
cmp r6, #0
|
|
ble _020b09c4
|
|
rsb r0, r6, #0x18
|
|
cmp r4, r0
|
|
blt _020b0a08
|
|
_020b09c4:
|
|
cmp r6, #0
|
|
bge _020b09dc
|
|
mvn r0, #0x17
|
|
sub r0, r0, r6
|
|
cmp r4, r0
|
|
bgt _020b0a08
|
|
_020b09dc:
|
|
cmp r7, #0
|
|
ble _020b09f0
|
|
rsb r0, r7, #0x18
|
|
cmp r5, r0
|
|
blt _020b0a08
|
|
_020b09f0:
|
|
cmp r7, #0
|
|
bge _020b0aa0
|
|
mvn r0, #0x17
|
|
sub r0, r0, r7
|
|
cmp r5, r0
|
|
ble _020b0aa0
|
|
_020b0a08:
|
|
mov r0, #0x1000
|
|
rsb r0, r0, #0
|
|
str r0, [r8]
|
|
add sp, sp, #0x18
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
|
|
_020b0a20:
|
|
mov r0, r9
|
|
mov r1, #1
|
|
bl _ZN13PlayerControl17CheckUntouchedNowEj
|
|
cmp r0, #0
|
|
beq _020b0aa0
|
|
ldr r3, [r9, #0x1c]
|
|
ldr r2, [sp, #8]
|
|
cmp r6, #0
|
|
rsblt r6, r6, #0
|
|
cmp r7, #0
|
|
rsblt r7, r7, #0
|
|
ldr r1, [r9, #0x20]
|
|
ldr r0, [sp, #4]
|
|
sub r2, r3, r2
|
|
sub r1, r1, r0
|
|
cmp r6, #0x18
|
|
ble _020b0a78
|
|
cmp r2, #0
|
|
rsblt r2, r2, #0
|
|
sub r0, r6, #0x18
|
|
cmp r2, r0
|
|
bgt _020b0a94
|
|
_020b0a78:
|
|
cmp r7, #0x18
|
|
ble _020b0aa0
|
|
cmp r1, #0
|
|
rsblt r1, r1, #0
|
|
sub r0, r7, #0x18
|
|
cmp r1, r0
|
|
ble _020b0aa0
|
|
_020b0a94:
|
|
add sp, sp, #0x18
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
|
|
_020b0aa0:
|
|
mov r0, #1
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b0778EP5Vec3pji
|
|
_020b0aac: .word data_027e0f64
|
|
_020b0ab0: .word data_02050f54
|
|
|
|
.global _ZN13PlayerControl16CheckNotTouchingEv
|
|
arm_func_start _ZN13PlayerControl16CheckNotTouchingEv
|
|
_ZN13PlayerControl16CheckNotTouchingEv: ; 0x020b0ab4
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
bl _ZN13PlayerControl13CheckTouchingEj
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end _ZN13PlayerControl16CheckNotTouchingEv
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b0ad0EP5Actor
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b0ad0EP5Actor
|
|
_ZN13PlayerControl18func_ov00_020b0ad0EP5Actor: ; 0x020b0ad0
|
|
cmp r1, #0
|
|
beq _020b0b04
|
|
ldr r2, [r1, #8]
|
|
ldr r1, [r0, #0x94]
|
|
cmp r2, r1
|
|
bne _020b0b04
|
|
ldrsh r1, [r0, #0x60]
|
|
mov r0, #0
|
|
cmp r1, #0xf
|
|
bxlt lr
|
|
cmp r1, #0x1e
|
|
movlt r0, #1
|
|
bx lr
|
|
_020b0b04:
|
|
mov r0, #0
|
|
bx lr
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b0ad0EP5Actor
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b0b0cEPsPiS1_Pb
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b0b0cEPsPiS1_Pb
|
|
_ZN13PlayerControl18func_ov00_020b0b0cEPsPiS1_Pb: ; 0x020b0b0c
|
|
stmdb sp!, {r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x24
|
|
mov r7, r0
|
|
ldrb r0, [r7, #0x79]
|
|
mov r6, r1
|
|
mov r4, r2
|
|
mov r5, r3
|
|
cmp r0, #0
|
|
beq _020b0b80
|
|
ldr r0, _020b0de0 ; =gItemManager
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
bl _ZN11ItemManager18func_ov00_020ad790Ei
|
|
cmp r0, #0
|
|
beq _020b0b80
|
|
ldr r0, _020b0de0 ; =gItemManager
|
|
ldr r0, [r0]
|
|
bl _ZNK11ItemManager15GetEquippedItemEv
|
|
ldr r1, _020b0de4 ; =data_027e103c
|
|
str r0, [r4]
|
|
ldr r0, [r1]
|
|
bl func_ov00_020cf330
|
|
ldr r1, [r4]
|
|
mvn r0, #0
|
|
cmp r1, r0
|
|
movne r0, #1
|
|
add sp, sp, #0x24
|
|
moveq r0, #0
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
_020b0b80:
|
|
mov r2, #0
|
|
mov r0, r7
|
|
mov r1, r5
|
|
str r2, [r4]
|
|
bl _ZN13PlayerControl18func_ov00_020b1248EPi
|
|
cmp r0, #0
|
|
beq _020b0bb0
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
add sp, sp, #0x24
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
_020b0bb0:
|
|
mov r0, r7
|
|
mov r1, #1
|
|
bl _ZN13PlayerControl17CheckUntouchedNowEj
|
|
cmp r0, #0
|
|
beq _020b0bd8
|
|
ldrsh r0, [r7, #0x60]
|
|
cmp r0, #0
|
|
blt _020b0bd8
|
|
cmp r0, #0x15
|
|
blt _020b0bf8
|
|
_020b0bd8:
|
|
mov r0, r7
|
|
mov r1, #1
|
|
bl _ZN13PlayerControl14CheckTouchFastEj
|
|
cmp r0, #0
|
|
beq _020b0dd4
|
|
ldrsh r0, [r7, #0x62]
|
|
cmp r0, #0x15
|
|
ble _020b0dd4
|
|
_020b0bf8:
|
|
ldrsh r2, [r7, #0x68]
|
|
ldr r3, [r7, #0x28]
|
|
ldrsh r0, [r7, #0x66]
|
|
ldr r1, [r7, #0x24]
|
|
sub r2, r3, r2
|
|
sub r0, r1, r0
|
|
mov r3, r2, lsl #0xc
|
|
mov r2, r0, lsl #0xc
|
|
mov r1, #0
|
|
add r0, sp, #0x18
|
|
str r2, [sp, #0x18]
|
|
str r1, [sp, #0x1c]
|
|
str r3, [sp, #0x20]
|
|
bl func_01ff9cec
|
|
cmp r0, #0xa000
|
|
addlt sp, sp, #0x24
|
|
movlt r0, #0
|
|
ldmltia sp!, {r4, r5, r6, r7, pc}
|
|
ldrb r1, [r7, #0x82]
|
|
cmp r1, #0
|
|
beq _020b0c5c
|
|
cmp r0, #0x14000
|
|
addlt sp, sp, #0x24
|
|
movlt r0, #0
|
|
ldmltia sp!, {r4, r5, r6, r7, pc}
|
|
_020b0c5c:
|
|
mov r0, #0
|
|
str r0, [r4]
|
|
ldrsh r1, [r7, #0x6a]
|
|
ldrsh r0, [r7, #0x6c]
|
|
sub r0, r0, r1
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
add r0, r0, r0, lsr #31
|
|
add r0, r1, r0, asr #1
|
|
strh r0, [r6]
|
|
ldr r0, [r7, #0x5c]
|
|
cmp r0, #0x800
|
|
ble _020b0cd8
|
|
ldr r0, [r7, #0x50]
|
|
ldr r1, [r7, #0x54]
|
|
bl func_01ffa0f4
|
|
ldr r1, [sp, #0x38]
|
|
ldrsh r2, [r6]
|
|
cmp r1, #0
|
|
add sp, sp, #0x24
|
|
sub r0, r0, r2
|
|
mov r0, r0, lsl #0x10
|
|
mov r2, r0, asr #0x10
|
|
movne r0, #1
|
|
strneb r0, [r1]
|
|
cmp r2, #0
|
|
movge r0, #1
|
|
movlt r0, #2
|
|
str r0, [r5]
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
_020b0cd8:
|
|
ldr r0, [sp, #0x18]
|
|
ldr r1, [sp, #0x20]
|
|
bl func_01ffa0f4
|
|
ldrsh lr, [r6]
|
|
add r1, sp, #0xc
|
|
mov ip, #0
|
|
str ip, [r1]
|
|
str ip, [r1, #4]
|
|
str ip, [r1, #8]
|
|
mov r2, r0, lsl #0x10
|
|
ldrsh r3, [r7, #0x66]
|
|
rsb r2, lr, r2, asr #16
|
|
add r0, sp, #0
|
|
mov r3, r3, lsl #0xc
|
|
str r3, [sp, #0xc]
|
|
ldrsh r4, [r7, #0x68]
|
|
mov r3, r2, lsl #0x10
|
|
mov r2, r4, lsl #0xc
|
|
str r2, [sp, #0x10]
|
|
str ip, [r0]
|
|
str ip, [r0, #4]
|
|
str ip, [r0, #8]
|
|
ldr r4, [r7, #0x24]
|
|
mov r2, r0
|
|
mov r4, r4, lsl #0xc
|
|
str r4, [sp]
|
|
ldr ip, [r7, #0x28]
|
|
mov r4, r3, asr #0x10
|
|
mov r3, ip, lsl #0xc
|
|
str r3, [sp, #4]
|
|
bl func_01ff9bf8
|
|
ldr r0, [r7, #0x58]
|
|
cmp r0, #0xa000
|
|
bgt _020b0d7c
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
ldrsh r1, [r7, #0x6c]
|
|
add sp, sp, #0x24
|
|
mov r0, #1
|
|
strh r1, [r6]
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
_020b0d7c:
|
|
cmp r4, #0x6000
|
|
bge _020b0d94
|
|
mov r0, #0x6000
|
|
rsb r0, r0, #0
|
|
cmp r4, r0
|
|
bgt _020b0da0
|
|
_020b0d94:
|
|
mov r0, #0
|
|
str r0, [r5]
|
|
b _020b0dc8
|
|
_020b0da0:
|
|
cmp r4, #0x2000
|
|
movge r0, #1
|
|
strge r0, [r5]
|
|
bge _020b0dc8
|
|
add r0, r0, #0x4000
|
|
cmp r4, r0
|
|
movlt r0, #2
|
|
strlt r0, [r5]
|
|
movge r0, #3
|
|
strge r0, [r5]
|
|
_020b0dc8:
|
|
add sp, sp, #0x24
|
|
mov r0, #1
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
_020b0dd4:
|
|
mov r0, #0
|
|
add sp, sp, #0x24
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b0b0cEPsPiS1_Pb
|
|
_020b0de0: .word gItemManager
|
|
_020b0de4: .word data_027e103c
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b0de8EP5Vec3p
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b0de8EP5Vec3p
|
|
_ZN13PlayerControl18func_ov00_020b0de8EP5Vec3p: ; 0x020b0de8
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
mov r1, #1
|
|
mov r5, r0
|
|
bl _ZN13PlayerControl13CheckTouchingEj
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r0, [r5, #0x28]
|
|
ldr r2, [r5, #0x24]
|
|
sub r1, r0, #0x60
|
|
mov r0, #0xaa00
|
|
mul ip, r1, r0
|
|
ldr r1, _020b0e50 ; =0x2aaaaaab
|
|
sub r2, r2, #0x80
|
|
mov r0, #0xaa
|
|
mul r3, r2, r0
|
|
smull r0, r2, r1, ip
|
|
mov r0, ip, lsr #0x1f
|
|
add r2, r0, r2, asr #5
|
|
str r3, [r4]
|
|
mov r1, #0
|
|
str r1, [r4, #4]
|
|
str r2, [r4, #8]
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b0de8EP5Vec3p
|
|
_020b0e50: .word 0x2aaaaaab
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b0e54EP5Vec3pS1_
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b0e54EP5Vec3pS1_
|
|
_ZN13PlayerControl18func_ov00_020b0e54EP5Vec3pS1_: ; 0x020b0e54
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0xc
|
|
mov r6, r0
|
|
ldrsh r3, [r6, #0x60]
|
|
mov r5, r1
|
|
mov r4, r2
|
|
cmp r3, #0x10
|
|
blt _020b0f0c
|
|
add r1, sp, #0
|
|
bl _ZN13PlayerControl18func_ov00_020b0de8EP5Vec3p
|
|
cmp r0, #0
|
|
beq _020b0f0c
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, #0x800
|
|
bl func_ov00_020b7d4c
|
|
add r0, sp, #0
|
|
bl func_01ff9cec
|
|
mov r5, r0
|
|
cmp r5, #0x4000
|
|
ble _020b0ed0
|
|
ldr r0, [sp]
|
|
mov r1, r5
|
|
mov r0, r0, lsl #0xe
|
|
bl func_02002c14
|
|
ldr r2, [sp, #8]
|
|
str r0, [sp]
|
|
mov r1, r5
|
|
mov r0, r2, lsl #0xe
|
|
bl func_02002c14
|
|
str r0, [sp, #8]
|
|
_020b0ed0:
|
|
ldr r1, [sp]
|
|
mov r0, #1
|
|
str r1, [r6, #0xb0]
|
|
ldr r1, [sp, #4]
|
|
str r1, [r6, #0xb4]
|
|
ldr r1, [sp, #8]
|
|
str r1, [r6, #0xb8]
|
|
ldr r1, [sp]
|
|
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!, {r3, r4, r5, r6, pc}
|
|
_020b0f0c:
|
|
ldrsh r0, [r6, #0x60]
|
|
cmp r0, #0
|
|
blt _020b0f78
|
|
mov r1, #1
|
|
mov r0, r6
|
|
mov r2, r1
|
|
bl _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
cmp r0, #0
|
|
beq _020b0f78
|
|
ldr r0, [r6, #0x58]
|
|
cmp r0, #0x18000
|
|
ble _020b0f50
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r2, #0x800
|
|
bl func_ov00_020b7d4c
|
|
b _020b0f6c
|
|
_020b0f50:
|
|
ldr r0, _020b0f84 ; =data_027e0f94
|
|
ldr r1, [r0]
|
|
str r1, [r5]
|
|
ldr r1, [r0, #4]
|
|
str r1, [r5, #4]
|
|
ldr r0, [r0, #8]
|
|
str r0, [r5, #8]
|
|
_020b0f6c:
|
|
add sp, sp, #0xc
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
_020b0f78:
|
|
mov r0, #0
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b0e54EP5Vec3pS1_
|
|
_020b0f84: .word data_027e0f94
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b0f88EP5Vec3piS1_
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b0f88EP5Vec3piS1_
|
|
_ZN13PlayerControl18func_ov00_020b0f88EP5Vec3piS1_: ; 0x020b0f88
|
|
stmdb sp!, {r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0xc
|
|
mov r7, r1
|
|
add r1, sp, #0
|
|
mov r5, r0
|
|
mov r6, r2
|
|
mov r4, r3
|
|
bl _ZN13PlayerControl18func_ov00_020b0de8EP5Vec3p
|
|
cmp r0, #0
|
|
beq _020b104c
|
|
mov r0, r5
|
|
mov r1, r7
|
|
mov r2, r6
|
|
bl func_ov00_020b7d4c
|
|
add r0, sp, #0
|
|
bl func_01ff9cec
|
|
mov r6, r0
|
|
cmp r6, #0x4000
|
|
ble _020b0ffc
|
|
ldr r0, [sp]
|
|
mov r1, r6
|
|
mov r0, r0, lsl #0xe
|
|
bl func_02002c14
|
|
ldr r2, [sp, #8]
|
|
str r0, [sp]
|
|
mov r1, r6
|
|
mov r0, r2, lsl #0xe
|
|
bl func_02002c14
|
|
str r0, [sp, #8]
|
|
_020b0ffc:
|
|
ldrsh r0, [r5, #0x74]
|
|
ldrsh r1, [r5, #0x72]
|
|
smulbb r0, r0, r0
|
|
mla r0, r1, r1, r0
|
|
add r0, r0, #4
|
|
mov r0, r0, lsl #0x4
|
|
bl func_01ff9958
|
|
mov r2, r0
|
|
add r1, sp, #0
|
|
mov r0, r4
|
|
bl func_0202b2e8
|
|
ldr r1, [sp]
|
|
mov r0, #1
|
|
str r1, [r5, #0xb0]
|
|
ldr r1, [sp, #4]
|
|
str r1, [r5, #0xb4]
|
|
ldr r1, [sp, #8]
|
|
add sp, sp, #0xc
|
|
str r1, [r5, #0xb8]
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
_020b104c:
|
|
mov r0, #0
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b0f88EP5Vec3piS1_
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b1058EP5Vec3piS1_S1_
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b1058EP5Vec3piS1_S1_
|
|
_ZN13PlayerControl18func_ov00_020b1058EP5Vec3piS1_S1_: ; 0x020b1058
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0x18
|
|
mov r7, r1
|
|
add r1, sp, #0xc
|
|
mov r5, r0
|
|
mov r6, r2
|
|
mov r4, r3
|
|
bl _ZN13PlayerControl18func_ov00_020b0de8EP5Vec3p
|
|
cmp r0, #0
|
|
beq _020b11cc
|
|
mov r0, r5
|
|
mov r1, r7
|
|
mov r2, r6
|
|
bl func_ov00_020b7d4c
|
|
ldr r0, [sp, #0x30]
|
|
cmp r0, #0
|
|
beq _020b1140
|
|
ldr r1, _020b11d8 ; =data_027e0f94
|
|
add r2, sp, #0
|
|
bl func_01ff9bf8
|
|
ldr ip, [sp]
|
|
ldr r3, [sp, #4]
|
|
mov r2, ip, asr #0x1f
|
|
mov r0, r3, asr #0x1f
|
|
mov lr, r2, lsl #0xb
|
|
mov r6, r0, lsl #0xb
|
|
ldr r1, [sp, #8]
|
|
orr lr, lr, ip, lsr #21
|
|
mov r0, r1, asr #0x1f
|
|
mov r2, r0, lsl #0xb
|
|
mov r0, #0x800
|
|
adds r7, r0, ip, lsl #11
|
|
adc lr, lr, #0
|
|
mov r7, r7, lsr #0xc
|
|
orr r7, r7, lr, lsl #20
|
|
orr r6, r6, r3, lsr #21
|
|
adds ip, r0, r3, lsl #11
|
|
adc r6, r6, #0
|
|
adds r3, r0, r1, lsl #11
|
|
orr r2, r2, r1, lsr #21
|
|
mov r1, ip, lsr #0xc
|
|
adc r0, r2, #0
|
|
mov r2, r3, lsr #0xc
|
|
orr r2, r2, r0, lsl #20
|
|
orr r1, r1, r6, lsl #20
|
|
str r1, [sp, #4]
|
|
str r2, [sp, #8]
|
|
str r7, [sp]
|
|
add r0, sp, #0
|
|
add r1, sp, #0xc
|
|
mov r2, #0x2800
|
|
bl func_0202b2e8
|
|
ldr r2, [sp]
|
|
ldr r1, [sp, #4]
|
|
ldr r0, [sp, #8]
|
|
str r2, [sp, #0xc]
|
|
str r1, [sp, #0x10]
|
|
str r0, [sp, #0x14]
|
|
_020b1140:
|
|
add r0, sp, #0xc
|
|
bl func_01ff9cec
|
|
mov r6, r0
|
|
cmp r6, #0x4000
|
|
ble _020b117c
|
|
ldr r0, [sp, #0xc]
|
|
mov r1, r6
|
|
mov r0, r0, lsl #0xe
|
|
bl func_02002c14
|
|
ldr r2, [sp, #0x14]
|
|
str r0, [sp, #0xc]
|
|
mov r1, r6
|
|
mov r0, r2, lsl #0xe
|
|
bl func_02002c14
|
|
str r0, [sp, #0x14]
|
|
_020b117c:
|
|
ldrsh r0, [r5, #0x74]
|
|
ldrsh r1, [r5, #0x72]
|
|
smulbb r0, r0, r0
|
|
mla r0, r1, r1, r0
|
|
add r0, r0, #4
|
|
mov r0, r0, lsl #0x4
|
|
bl func_01ff9958
|
|
mov r2, r0
|
|
add r1, sp, #0xc
|
|
mov r0, r4
|
|
bl func_0202b2e8
|
|
ldr r1, [r4]
|
|
add sp, sp, #0x18
|
|
str r1, [r5, #0xb0]
|
|
ldr r1, [r4, #4]
|
|
mov r0, #1
|
|
str r1, [r5, #0xb4]
|
|
ldr r1, [r4, #8]
|
|
str r1, [r5, #0xb8]
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_020b11cc:
|
|
mov r0, #0
|
|
add sp, sp, #0x18
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b1058EP5Vec3piS1_S1_
|
|
_020b11d8: .word data_027e0f94
|
|
|
|
.global _ZN13PlayerControl14IsUntouchedNowEv
|
|
arm_func_start _ZN13PlayerControl14IsUntouchedNowEv
|
|
_ZN13PlayerControl14IsUntouchedNowEv: ; 0x020b11dc
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #7
|
|
bl _ZN13PlayerControl17CheckUntouchedNowEj
|
|
cmp r0, #0
|
|
beq _020b1208
|
|
ldr r0, _020b1210 ; =data_027e103c
|
|
ldr r0, [r0]
|
|
ldrsh r0, [r0, #0x1c]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
ldmeqia sp!, {r3, pc}
|
|
_020b1208:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl14IsUntouchedNowEv
|
|
_020b1210: .word data_027e103c
|
|
|
|
.global _ZN13PlayerControl17IsNotUntouchedNowEv
|
|
arm_func_start _ZN13PlayerControl17IsNotUntouchedNowEv
|
|
_ZN13PlayerControl17IsNotUntouchedNowEv: ; 0x020b1214
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #7
|
|
bl _ZN13PlayerControl17CheckUntouchedNowEj
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
ldmneia sp!, {r3, pc}
|
|
ldr r0, _020b1244 ; =data_027e05f8
|
|
ldrh r0, [r0, #2]
|
|
tst r0, #3
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl17IsNotUntouchedNowEv
|
|
_020b1244: .word data_027e05f8
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b1248EPi
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b1248EPi
|
|
_ZN13PlayerControl18func_ov00_020b1248EPi: ; 0x020b1248
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, [r0, #0xd0]
|
|
ldr r3, [r2]
|
|
cmp r3, #0
|
|
ldrneb r2, [r3, #4]
|
|
cmpne r2, #0
|
|
beq _020b1294
|
|
ldr r2, [r3, #8]
|
|
cmp r2, #0
|
|
moveq r2, #5
|
|
movne r2, #6
|
|
str r2, [r1]
|
|
ldr r0, [r0, #0xd0]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
ldr r1, [r1, #8]
|
|
blx r1
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
_020b1294:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b1248EPi
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b129cEv
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b129cEv
|
|
_ZN13PlayerControl18func_ov00_020b129cEv: ; 0x020b129c
|
|
ldrsh r3, [r0, #0x60]
|
|
mov r1, #1
|
|
mov r2, r1
|
|
cmp r3, #2
|
|
blt _020b12b8
|
|
cmp r3, #0xa
|
|
movle r2, #0
|
|
_020b12b8:
|
|
cmp r2, #0
|
|
ldreqh r0, [r0, #4]
|
|
cmpeq r3, r0
|
|
moveq r1, #0
|
|
mov r0, r1
|
|
bx lr
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b129cEv
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b12d0EPs
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b12d0EPs
|
|
_ZN13PlayerControl18func_ov00_020b12d0EPs: ; 0x020b12d0
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r1
|
|
mov r1, #1
|
|
mov r2, r1
|
|
mov r5, r0
|
|
bl _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldrsh r0, [r5, #0x62]
|
|
cmp r0, #0xf
|
|
bgt _020b1330
|
|
mov r0, r5
|
|
bl func_ov00_020b7d6c
|
|
cmp r0, #0
|
|
beq _020b1330
|
|
ldrsh r1, [r5, #0x6e]
|
|
ldrsh r0, [r5, #0x70]
|
|
cmp r1, r0
|
|
bne _020b1330
|
|
ldrsh r1, [r5, #0x6a]
|
|
mov r0, #1
|
|
strh r1, [r4]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020b1330:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b12d0EPs
|
|
|
|
.global _ZN13PlayerControl13IsNotTouchingEv
|
|
arm_func_start _ZN13PlayerControl13IsNotTouchingEv
|
|
_ZN13PlayerControl13IsNotTouchingEv: ; 0x020b1338
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
arm_func_end _ZN13PlayerControl13IsNotTouchingEv
|
|
|
|
.global _ZN13PlayerControl14IsTouchingFastEv
|
|
arm_func_start _ZN13PlayerControl14IsTouchingFastEv
|
|
_ZN13PlayerControl14IsTouchingFastEv: ; 0x020b134c
|
|
stmdb sp!, {r3, lr}
|
|
mov r1, #1
|
|
bl _ZN13PlayerControl14CheckTouchFastEj
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _020b1378 ; =data_ov00_020eec9c
|
|
mov r1, #0x17
|
|
bl func_ov00_020d77e4
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl14IsTouchingFastEv
|
|
_020b1378: .word data_ov00_020eec9c
|
|
|
|
.global _ZN13PlayerControl11IsTappedNowEv
|
|
arm_func_start _ZN13PlayerControl11IsTappedNowEv
|
|
_ZN13PlayerControl11IsTappedNowEv: ; 0x020b137c
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
ldrsh r1, [r4, #0x60]
|
|
cmp r1, #0xa
|
|
bge _020b13bc
|
|
mov r1, #1
|
|
mov r2, r1
|
|
bl _ZN13PlayerControl18func_ov00_020af2d4Ejb
|
|
cmp r0, #0
|
|
beq _020b13bc
|
|
mov r0, r4
|
|
mov r1, #1
|
|
bl _ZN13PlayerControl17CheckUntouchedNowEj
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
ldmneia sp!, {r4, pc}
|
|
_020b13bc:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end _ZN13PlayerControl11IsTappedNowEv
|
|
|
|
.global _ZN13PlayerControl18func_ov00_020b13c4Ev
|
|
arm_func_start _ZN13PlayerControl18func_ov00_020b13c4Ev
|
|
_ZN13PlayerControl18func_ov00_020b13c4Ev: ; 0x020b13c4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r1, #1
|
|
mov r5, r0
|
|
bl _ZN13PlayerControl13CheckTouchingEj
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, r4, r5, pc}
|
|
ldr r0, _020b1494 ; =data_ov00_020e6124
|
|
ldr r0, [r0, #0x20]
|
|
bl func_01ff992c
|
|
ldrsh r0, [r5, #0x64]
|
|
ldr r1, [r5, #0x58]
|
|
ldrsh r4, [r5, #0x60]
|
|
cmp r0, #0
|
|
ble _020b1410
|
|
cmp r0, r4
|
|
sublt r0, r4, r0
|
|
movlt r0, r0, lsl #0x10
|
|
movlt r4, r0, asr #0x10
|
|
_020b1410:
|
|
cmp r1, #0x50000
|
|
blt _020b1428
|
|
cmp r4, #2
|
|
movge r0, #1
|
|
movlt r0, #0
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020b1428:
|
|
cmp r1, #0x10000
|
|
movlt r0, #0
|
|
ldmltia sp!, {r3, r4, r5, pc}
|
|
mov r0, #0x40000
|
|
bl func_01ff991c
|
|
ldr r2, [r5, #0x58]
|
|
mov r1, #0x18
|
|
sub r2, r2, #0x10000
|
|
smull r0, r3, r2, r0
|
|
adds ip, r0, #0x800
|
|
mov r0, #0
|
|
adc r2, r3, r0
|
|
mov r3, ip, lsr #0xc
|
|
orr r3, r3, r2, lsl #20
|
|
rsb r2, r3, #0x1000
|
|
umull ip, r3, r2, r1
|
|
mla r3, r2, r0, r3
|
|
mov r2, r2, asr #0x1f
|
|
mla r3, r2, r1, r3
|
|
adds ip, ip, #0x800
|
|
adc r1, r3, r0
|
|
mov r2, ip, lsr #0xc
|
|
orr r2, r2, r1, lsl #20
|
|
add r1, r2, #2
|
|
cmp r4, r1
|
|
movge r0, #1
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN13PlayerControl18func_ov00_020b13c4Ev
|
|
_020b1494: .word data_ov00_020e6124
|
|
|
|
.data
|
|
.global data_ov00_020e6104
|
|
data_ov00_020e6104: ; 0x020e6104
|
|
.ascii "fnl"
|
|
.byte 0x00
|
|
.global data_ov00_020e6108
|
|
data_ov00_020e6108: ; 0x020e6108
|
|
.ascii "bow"
|
|
.byte 0x00
|
|
.global data_ov00_020e610c
|
|
data_ov00_020e610c: ; 0x020e610c
|
|
.ascii "dco"
|
|
.byte 0x00
|
|
.global data_ov00_020e6110
|
|
data_ov00_020e6110: ; 0x020e6110
|
|
.ascii "can"
|
|
.byte 0x00
|
|
.global data_ov00_020e6114
|
|
data_ov00_020e6114: ; 0x020e6114
|
|
.ascii "hul"
|
|
.byte 0x00
|
|
.global data_ov00_020e6118
|
|
data_ov00_020e6118: ; 0x020e6118
|
|
.ascii "pdl"
|
|
.byte 0x00
|
|
.global data_ov00_020e611c
|
|
data_ov00_020e611c: ; 0x020e611c
|
|
.ascii "anc"
|
|
.byte 0x00
|
|
.global data_ov00_020e6120
|
|
data_ov00_020e6120: ; 0x020e6120
|
|
.ascii "brg"
|
|
.byte 0x00
|
|
.global data_ov00_020e6124
|
|
data_ov00_020e6124: ; 0x020e6124
|
|
.word data_ov00_020e611c
|
|
.global data_ov00_020e6128
|
|
data_ov00_020e6128: ; 0x020e6128
|
|
.word data_ov00_020e6108
|
|
.global data_ov00_020e612c
|
|
data_ov00_020e612c: ; 0x020e612c
|
|
.word data_ov00_020e6114
|
|
.global data_ov00_020e6130
|
|
data_ov00_020e6130: ; 0x020e6130
|
|
.word data_ov00_020e6110
|
|
.global data_ov00_020e6134
|
|
data_ov00_020e6134: ; 0x020e6134
|
|
.word data_ov00_020e610c
|
|
.global data_ov00_020e6138
|
|
data_ov00_020e6138: ; 0x020e6138
|
|
.word data_ov00_020e6118
|
|
.global data_ov00_020e613c
|
|
data_ov00_020e613c: ; 0x020e613c
|
|
.word data_ov00_020e6104
|
|
.global data_ov00_020e6140
|
|
data_ov00_020e6140: ; 0x020e6140
|
|
.word data_ov00_020e6120
|
|
.global data_ov00_020e6144
|
|
data_ov00_020e6144: ; 0x020e6144
|
|
.byte 0x00, 0x00, 0x05, 0x00
|
|
.global data_ov00_020e6148
|
|
data_ov00_020e6148: ; 0x020e6148
|
|
.byte 0x91, 0x80, 0x8d, 0xec
|
|
.global data_ov00_020e614c
|
|
data_ov00_020e614c: ; 0x020e614c
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
.sbss
|
|
.global data_ov00_020ee198
|
|
data_ov00_020ee198:
|
|
.space 0x4
|
|
.global data_ov00_020ee19c
|
|
data_ov00_020ee19c:
|
|
.space 0x4
|