mirror of
https://github.com/zeldaret/ph
synced 2026-05-28 08:25:03 -04:00
489 lines
12 KiB
ArmAsm
489 lines
12 KiB
ArmAsm
.include "macros/function.inc"
|
|
.include "ov00/Player/PlayerBase.inc"
|
|
|
|
.text
|
|
|
|
.global _ZN10PlayerBase8vfunc_04Ev
|
|
arm_func_start _ZN10PlayerBase8vfunc_04Ev
|
|
_ZN10PlayerBase8vfunc_04Ev: ; 0x020a7af0
|
|
mov r0, #1
|
|
bx lr
|
|
arm_func_end _ZN10PlayerBase8vfunc_04Ev
|
|
|
|
.global _ZN10PlayerBase10GetEquipIdEv
|
|
arm_func_start _ZN10PlayerBase10GetEquipIdEv
|
|
_ZN10PlayerBase10GetEquipIdEv: ; 0x020a7af8
|
|
mvn r0, #0
|
|
bx lr
|
|
arm_func_end _ZN10PlayerBase10GetEquipIdEv
|
|
|
|
.global _ZN10PlayerBase7CanMoveEv
|
|
arm_func_start _ZN10PlayerBase7CanMoveEv
|
|
_ZN10PlayerBase7CanMoveEv: ; 0x020a7b00
|
|
mov r0, #1
|
|
bx lr
|
|
arm_func_end _ZN10PlayerBase7CanMoveEv
|
|
|
|
.global _ZN10PlayerBase12SetUpdatePosEb
|
|
arm_func_start _ZN10PlayerBase12SetUpdatePosEb
|
|
_ZN10PlayerBase12SetUpdatePosEb: ; 0x020a7b08
|
|
strb r1, [r0, #0x10]
|
|
bx lr
|
|
arm_func_end _ZN10PlayerBase12SetUpdatePosEb
|
|
|
|
.global _ZN10PlayerBase10SetVisibleEb
|
|
arm_func_start _ZN10PlayerBase10SetVisibleEb
|
|
_ZN10PlayerBase10SetVisibleEb: ; 0x020a7b10
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r6, r0
|
|
mov r4, r1
|
|
ldr r0, _020a7b84 ; =gItemManager
|
|
strb r4, [r6, #0x11]
|
|
ldr r5, [r0]
|
|
mov r0, r5
|
|
bl _ZNK11ItemManager16GetEquippedFairyEv
|
|
mov r1, r0
|
|
mov r0, r5
|
|
bl _ZNK11ItemManager8GetFairyEi
|
|
cmp r0, #0
|
|
ldrneb r1, [r6, #0x11]
|
|
strneb r1, [r0, #0x11a]
|
|
cmp r4, #0
|
|
movne r0, #0x1f
|
|
moveq r0, #0
|
|
mov r0, r0, lsl #0x10
|
|
mov r5, r0, asr #0x10
|
|
bl _ZN10PlayerBase13GetEquipSwordEv
|
|
strh r5, [r0, #0x5c]
|
|
bl _ZN10PlayerBase14GetEquipShieldEv
|
|
ldr r1, _020a7b88 ; =data_027e0e58
|
|
strh r5, [r0, #0xe]
|
|
ldr r0, [r1]
|
|
mov r2, r4
|
|
mov r1, #1
|
|
bl func_ov00_0207c5d4
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN10PlayerBase10SetVisibleEb
|
|
_020a7b84: .word gItemManager
|
|
_020a7b88: .word data_027e0e58
|
|
|
|
.global _ZN10PlayerBase13GetEquipSwordEv
|
|
arm_func_start _ZN10PlayerBase13GetEquipSwordEv
|
|
_ZN10PlayerBase13GetEquipSwordEv: ; 0x020a7b8c
|
|
ldr ip, _020a7b98 ; =func_01fffcec
|
|
mov r0, #0
|
|
bx ip
|
|
.align 2, 0
|
|
arm_func_end _ZN10PlayerBase13GetEquipSwordEv
|
|
_020a7b98: .word func_01fffcec
|
|
|
|
.global _ZN10PlayerBase14GetEquipShieldEv
|
|
arm_func_start _ZN10PlayerBase14GetEquipShieldEv
|
|
_ZN10PlayerBase14GetEquipShieldEv: ; 0x020a7b9c
|
|
ldr ip, _020a7ba8 ; =func_01fffcec
|
|
mov r0, #1
|
|
bx ip
|
|
.align 2, 0
|
|
arm_func_end _ZN10PlayerBase14GetEquipShieldEv
|
|
_020a7ba8: .word func_01fffcec
|
|
|
|
.global _ZN10PlayerBase6LookAtEP5Vec3p
|
|
arm_func_start _ZN10PlayerBase6LookAtEP5Vec3p
|
|
_ZN10PlayerBase6LookAtEP5Vec3p: ; 0x020a7bac
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
mov r0, r1
|
|
ldr r1, _020a7bf8 ; =data_027e0f94
|
|
add r2, sp, #0
|
|
bl func_01ff9bf8
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
ldreq r0, [sp, #8]
|
|
cmpeq r0, #0
|
|
addeq sp, sp, #0xc
|
|
ldmeqia sp!, {pc}
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, #8]
|
|
bl func_01ffa0f4
|
|
ldr r1, _020a7bfc ; =data_027e0fac
|
|
strh r0, [r1]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN10PlayerBase6LookAtEP5Vec3p
|
|
_020a7bf8: .word data_027e0f94
|
|
_020a7bfc: .word data_027e0fac
|
|
|
|
.global _ZN10PlayerBase18func_ov00_020a7c00Ei
|
|
arm_func_start _ZN10PlayerBase18func_ov00_020a7c00Ei
|
|
_ZN10PlayerBase18func_ov00_020a7c00Ei: ; 0x020a7c00
|
|
ldr r0, _020a7c18 ; =data_027e0c54
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
arm_func_end _ZN10PlayerBase18func_ov00_020a7c00Ei
|
|
_020a7c18: .word data_027e0c54
|
|
|
|
.global _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder
|
|
arm_func_start _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder
|
|
_ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder: ; 0x020a7c1c
|
|
stmdb sp!, {r4, lr}
|
|
sub sp, sp, #0x10
|
|
ldr r2, [r0]
|
|
mov r4, r1
|
|
ldr r2, [r2, #0x10]
|
|
add r1, sp, #0
|
|
blx r2
|
|
ldr r0, [sp, #0xc]
|
|
cmp r0, #0
|
|
addlt sp, sp, #0x10
|
|
movlt r0, #0
|
|
ldmltia sp!, {r4, pc}
|
|
add r1, sp, #0
|
|
mov r0, r4
|
|
bl func_01ffec34
|
|
add sp, sp, #0x10
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end _ZN10PlayerBase18func_ov00_020a7c1cEP8Cylinder
|
|
|
|
.global _ZN10PlayerBase18func_ov00_020a7c60EP5Vec3pS1_i
|
|
arm_func_start _ZN10PlayerBase18func_ov00_020a7c60EP5Vec3pS1_i
|
|
_ZN10PlayerBase18func_ov00_020a7c60EP5Vec3pS1_i: ; 0x020a7c60
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #0x28
|
|
ldr ip, [r0]
|
|
mov r6, r1
|
|
ldr ip, [ip, #0x10]
|
|
add r1, sp, #0x18
|
|
mov r5, r2
|
|
mov r4, r3
|
|
blx ip
|
|
ldr r0, [sp, #0x24]
|
|
cmp r0, #0
|
|
addlt sp, sp, #0x28
|
|
movlt r0, #0
|
|
ldmltia sp!, {r4, r5, r6, pc}
|
|
ldr r1, [r6]
|
|
add r0, sp, #0x18
|
|
str r1, [sp, #0xc]
|
|
ldr r2, [r6, #4]
|
|
add r1, sp, #0xc
|
|
str r2, [sp, #0x10]
|
|
ldr r3, [r6, #8]
|
|
add r2, sp, #0
|
|
str r3, [sp, #0x14]
|
|
ldr ip, [r5]
|
|
mov r3, r4
|
|
str ip, [sp]
|
|
ldr r4, [r5, #4]
|
|
str r4, [sp, #4]
|
|
ldr r4, [r5, #8]
|
|
str r4, [sp, #8]
|
|
bl func_ov00_0208f030
|
|
add sp, sp, #0x28
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end _ZN10PlayerBase18func_ov00_020a7c60EP5Vec3pS1_i
|
|
|
|
.global _ZN10PlayerBase18EquipItem_vfunc_3cEP8Cylinderi
|
|
arm_func_start _ZN10PlayerBase18EquipItem_vfunc_3cEP8Cylinderi
|
|
_ZN10PlayerBase18EquipItem_vfunc_3cEP8Cylinderi: ; 0x020a7ce4
|
|
ldr r0, _020a7cf4 ; =gItemManager
|
|
ldr ip, _020a7cf8 ; =_ZN11ItemManager18EquipItem_vfunc_3cEP5Vec4pi
|
|
ldr r0, [r0]
|
|
bx ip
|
|
.align 2, 0
|
|
arm_func_end _ZN10PlayerBase18EquipItem_vfunc_3cEP8Cylinderi
|
|
_020a7cf4: .word gItemManager
|
|
_020a7cf8: .word _ZN11ItemManager18EquipItem_vfunc_3cEP5Vec4pi
|
|
|
|
.global _ZN10PlayerBase18EquipItem_vfunc_2cEv
|
|
arm_func_start _ZN10PlayerBase18EquipItem_vfunc_2cEv
|
|
_ZN10PlayerBase18EquipItem_vfunc_2cEv: ; 0x020a7cfc
|
|
stmdb sp!, {r3, lr}
|
|
ldr r1, [r0]
|
|
ldr r1, [r1, #8]
|
|
blx r1
|
|
mov r1, r0
|
|
mvn r0, #0
|
|
cmp r1, r0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldr r0, _020a7d30 ; =gItemManager
|
|
ldr r0, [r0]
|
|
bl _ZN11ItemManager18EquipItem_vfunc_2cEi
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN10PlayerBase18EquipItem_vfunc_2cEv
|
|
_020a7d30: .word gItemManager
|
|
|
|
.global _ZN10PlayerBase9SetHealthEs
|
|
arm_func_start _ZN10PlayerBase9SetHealthEs
|
|
_ZN10PlayerBase9SetHealthEs: ; 0x020a7d34
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldrb r2, [r5, #0x12]
|
|
cmp r2, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
strh r1, [r5, #0xa]
|
|
ldr r1, [r0]
|
|
ldrsh r4, [r5, #0xa]
|
|
ldr r1, [r1]
|
|
blx r1
|
|
cmp r4, r0
|
|
ble _020a7d7c
|
|
mov r0, r5
|
|
ldr r1, [r0]
|
|
ldr r1, [r1]
|
|
blx r1
|
|
strh r0, [r5, #0xa]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020a7d7c:
|
|
cmp r4, #0
|
|
movlt r0, #0
|
|
strlth r0, [r5, #0xa]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end _ZN10PlayerBase9SetHealthEs
|
|
|
|
.global _ZN10PlayerBase9AddHealthEs
|
|
arm_func_start _ZN10PlayerBase9AddHealthEs
|
|
_ZN10PlayerBase9AddHealthEs: ; 0x020a7d8c
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
ldrb r2, [r4, #0x12]
|
|
cmp r2, #0
|
|
ldmneia sp!, {r3, r4, r5, pc}
|
|
ldrsh r2, [r4, #0xa]
|
|
cmp r2, #0
|
|
ldmleia sp!, {r3, r4, r5, pc}
|
|
add r1, r2, r1
|
|
strh r1, [r4, #0xa]
|
|
ldr r1, [r0]
|
|
ldrsh r5, [r4, #0xa]
|
|
ldr r1, [r1]
|
|
blx r1
|
|
cmp r5, r0
|
|
ble _020a7de4
|
|
mov r0, r4
|
|
ldr r1, [r0]
|
|
ldr r1, [r1]
|
|
blx r1
|
|
strh r0, [r4, #0xa]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
_020a7de4:
|
|
cmp r5, #0
|
|
movlt r0, #0
|
|
strlth r0, [r4, #0xa]
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end _ZN10PlayerBase9AddHealthEs
|
|
|
|
.global _ZN10PlayerBase8TeleportEP5Vec3psibb
|
|
arm_func_start _ZN10PlayerBase8TeleportEP5Vec3psibb
|
|
_ZN10PlayerBase8TeleportEP5Vec3psibb: ; 0x020a7df4
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0x1c
|
|
ldr r3, _020a7e6c ; =data_027e0e60
|
|
mov r5, r0
|
|
mov r4, r1
|
|
mov lr, #0xff
|
|
mov ip, #0
|
|
mov r6, r2
|
|
ldr r0, [r3]
|
|
add r1, sp, #8
|
|
mov r2, r4
|
|
strb lr, [sp, #0x16]
|
|
str ip, [sp, #0x18]
|
|
bl func_ov00_02083624
|
|
str r6, [sp]
|
|
mov r0, #0
|
|
str r0, [sp, #4]
|
|
mov r0, r5
|
|
ldr ip, [r0]
|
|
ldrsh r2, [sp, #0x14]
|
|
ldr r3, [sp, #0x18]
|
|
ldr ip, [ip, #0x34]
|
|
add r1, sp, #8
|
|
blx ip
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
strneh r4, [r5, #0xe]
|
|
moveq r0, #0
|
|
add sp, sp, #0x1c
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN10PlayerBase8TeleportEP5Vec3psibb
|
|
_020a7e6c: .word data_027e0e60
|
|
|
|
.global _ZN10PlayerBase18TeleportToEntranceEib
|
|
arm_func_start _ZN10PlayerBase18TeleportToEntranceEib
|
|
_ZN10PlayerBase18TeleportToEntranceEib: ; 0x020a7e70
|
|
stmdb sp!, {r4, r5, lr}
|
|
sub sp, sp, #0xc
|
|
mov r5, r1
|
|
ldr r0, [r5]
|
|
ldr r3, _020a7f64 ; =data_027e0f94
|
|
mov r4, r2
|
|
str r0, [r3]
|
|
ldr r1, [r5, #4]
|
|
ldr r0, _020a7f68 ; =data_027e0e60
|
|
str r1, [r3, #4]
|
|
ldr r2, [r5, #8]
|
|
add r1, sp, #0
|
|
str r2, [r3, #8]
|
|
ldr r2, [r5]
|
|
ldr r0, [r0]
|
|
str r2, [sp]
|
|
ldr r3, [r5, #4]
|
|
mov r2, #1
|
|
str r3, [sp, #4]
|
|
ldr r3, [r5, #8]
|
|
str r3, [sp, #8]
|
|
bl func_ov00_02083ee0
|
|
ldr ip, [r5, #4]
|
|
ldr r2, _020a7f6c ; =data_027e0fac
|
|
cmp ip, r0
|
|
movle ip, r0
|
|
ldr r3, _020a7f64 ; =data_027e0f94
|
|
ldr r1, _020a7f70 ; =data_027e0fa0
|
|
mov r5, #0
|
|
ldr r0, _020a7f74 ; =data_027e0fb0
|
|
str r5, [r1]
|
|
strh r5, [r0]
|
|
str ip, [r3, #4]
|
|
strh r4, [r2]
|
|
str r5, [r1, #4]
|
|
ldr r0, _020a7f78 ; =data_027e0fb8
|
|
str r5, [r1, #8]
|
|
ldr r0, [r0]
|
|
blx _ZN13PlayerControl9UpdateAimEv
|
|
ldr r0, _020a7f7c ; =data_027e0fe4
|
|
ldrb r1, [sp, #0x18]
|
|
ldr r0, [r0]
|
|
bl _ZN12ActorManager14Actor_vfunc_10Ej
|
|
ldrb r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
beq _020a7f40
|
|
ldr r0, _020a7f68 ; =data_027e0e60
|
|
ldr r0, [r0]
|
|
bl func_ov00_02082af4
|
|
ldr r0, _020a7f80 ; =gAdventureFlags
|
|
ldr r0, [r0]
|
|
bl _ZN14AdventureFlags18func_ov00_02097700Ev
|
|
_020a7f40:
|
|
ldrb r0, [sp, #0x1c]
|
|
cmp r0, #0
|
|
bne _020a7f58
|
|
ldr r0, _020a7f84 ; =data_027e0f64
|
|
ldr r0, [r0]
|
|
bl func_ov00_0208ae94
|
|
_020a7f58:
|
|
mov r0, #1
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, pc}
|
|
.align 2, 0
|
|
arm_func_end _ZN10PlayerBase18TeleportToEntranceEib
|
|
_020a7f64: .word data_027e0f94
|
|
_020a7f68: .word data_027e0e60
|
|
_020a7f6c: .word data_027e0fac
|
|
_020a7f70: .word data_027e0fa0
|
|
_020a7f74: .word data_027e0fb0
|
|
_020a7f78: .word data_027e0fb8
|
|
_020a7f7c: .word data_027e0fe4
|
|
_020a7f80: .word gAdventureFlags
|
|
_020a7f84: .word data_027e0f64
|
|
|
|
.global _ZN10PlayerBase22TeleportToLastEntranceEb
|
|
arm_func_start _ZN10PlayerBase22TeleportToLastEntranceEb
|
|
_ZN10PlayerBase22TeleportToLastEntranceEb: ; 0x020a7f88
|
|
stmdb sp!, {r3, lr}
|
|
ldr r3, [r0]
|
|
mov r2, r1
|
|
ldrh r1, [r0, #0xe]
|
|
ldr r3, [r3, #0x38]
|
|
blx r3
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end _ZN10PlayerBase22TeleportToLastEntranceEb
|
|
|
|
.data
|
|
.global data_ov00_020e5590
|
|
data_ov00_020e5590: ; 0x020e5590
|
|
.ascii "brg"
|
|
.byte 0x00
|
|
.global data_ov00_020e5594
|
|
data_ov00_020e5594: ; 0x020e5594
|
|
.ascii "fnl"
|
|
.byte 0x00
|
|
.global data_ov00_020e5598
|
|
data_ov00_020e5598: ; 0x020e5598
|
|
.ascii "pdl"
|
|
.byte 0x00
|
|
.global data_ov00_020e559c
|
|
data_ov00_020e559c: ; 0x020e559c
|
|
.ascii "dco"
|
|
.byte 0x00
|
|
.global data_ov00_020e55a0
|
|
data_ov00_020e55a0: ; 0x020e55a0
|
|
.ascii "can"
|
|
.byte 0x00
|
|
.global data_ov00_020e55a4
|
|
data_ov00_020e55a4: ; 0x020e55a4
|
|
.ascii "hul"
|
|
.byte 0x00
|
|
.global data_ov00_020e55a8
|
|
data_ov00_020e55a8: ; 0x020e55a8
|
|
.ascii "bow"
|
|
.byte 0x00
|
|
.global data_ov00_020e55ac
|
|
data_ov00_020e55ac: ; 0x020e55ac
|
|
.ascii "anc"
|
|
.byte 0x00
|
|
.global data_ov00_020e55b0
|
|
data_ov00_020e55b0: ; 0x020e55b0
|
|
.word data_ov00_020e55ac
|
|
.word data_ov00_020e55a8
|
|
.word data_ov00_020e55a4
|
|
.global data_ov00_020e55bc
|
|
data_ov00_020e55bc: ; 0x020e55bc
|
|
.word data_ov00_020e55a0
|
|
.global data_ov00_020e55c0
|
|
data_ov00_020e55c0: ; 0x020e55c0
|
|
.word data_ov00_020e559c
|
|
.global data_ov00_020e55c4
|
|
data_ov00_020e55c4: ; 0x020e55c4
|
|
.word data_ov00_020e5598
|
|
.global data_ov00_020e55c8
|
|
data_ov00_020e55c8: ; 0x020e55c8
|
|
.word data_ov00_020e5594
|
|
.global data_ov00_020e55cc
|
|
data_ov00_020e55cc: ; 0x020e55cc
|
|
.word data_ov00_020e5590
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global _ZTV10PlayerBase
|
|
_ZTV10PlayerBase: ; 0x020e55d8
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.word _ZN10PlayerBase8vfunc_04Ev
|
|
.word _ZN10PlayerBase10GetEquipIdEv
|
|
.word _ZN10PlayerBase7CanMoveEv
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.word _ZN10PlayerBase18TeleportToEntranceEib
|
|
.word _ZN10PlayerBase8TeleportEP5Vec3psibb
|
|
.word _ZN10PlayerBase22TeleportToLastEntranceEb
|
|
.word _ZN10PlayerBase9AddHealthEs
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.word func_ov04_0210b258
|
|
.word func_ov04_0210b280
|