Add PlayerBase.s

This commit is contained in:
Aetias
2024-03-30 15:54:05 +01:00
parent cc3b43ddc1
commit 38e6d2eb17
7 changed files with 544 additions and 2624 deletions
+4 -4
View File
@@ -1616,18 +1616,18 @@
.extern _ZN9SysObjectnwEmPjj
.extern func_0202ab78
.extern func_0202ab54
.extern data_ov00_020e55d8
.extern _ZTV10PlayerBase
.extern data_027e0ce0
.extern func_0202ab64
.extern _ZN9SysObjectdlEPv
.extern data_ov00_020e55d8
.extern _ZTV10PlayerBase
.extern func_0202ab64
.extern _ZN9SysObjectdlEPv
.extern _ZN9SysObjectdlEPv
.extern data_ov00_020e55d8
.extern _ZTV10PlayerBase
.extern func_0202ab64
.extern _ZN9SysObjectdlEPv
.extern data_ov00_020e55d8
.extern _ZTV10PlayerBase
.extern func_ov00_020a956c
.extern func_ov00_020a98e8
.extern func_ov00_020a990c
+488
View File
@@ -0,0 +1,488 @@
.include "macros/function.inc"
.include "ov00/Player/include/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 func_ov00_020aef68
ldr r0, _020a7f7c ; =data_027e0fe4
ldrb r1, [sp, #0x18]
ldr r0, [r0]
bl func_ov00_020c357c
ldrb r0, [sp, #0x18]
cmp r0, #0
beq _020a7f40
ldr r0, _020a7f68 ; =data_027e0e60
ldr r0, [r0]
bl func_ov00_02082af4
ldr r0, _020a7f80 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097700
_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 data_027e0f74
_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
+32
View File
@@ -0,0 +1,32 @@
#pragma once
.extern _ZNK11ItemManager16GetEquippedFairyEv
.extern _ZNK11ItemManager8GetFairyEi
.extern func_ov00_0207c5d4
.extern gItemManager
.extern data_027e0e58
.extern func_01fffcec
.extern func_01ff9bf8
.extern func_01ffa0f4
.extern data_027e0f94
.extern data_027e0fac
.extern data_027e0c54
.extern func_01ffec34
.extern func_ov00_0208f030
.extern _ZN11ItemManager18EquipItem_vfunc_3cEP5Vec4pi
.extern _ZN11ItemManager18EquipItem_vfunc_2cEi
.extern func_ov00_02083624
.extern data_027e0e60
.extern func_ov00_02083ee0
.extern func_ov00_020aef68
.extern func_ov00_020c357c
.extern func_ov00_02082af4
.extern func_ov00_02097700
.extern func_ov00_0208ae94
.extern data_027e0fa0
.extern data_027e0fb0
.extern data_027e0fb8
.extern data_027e0fe4
.extern data_027e0f74
.extern data_027e0f64
.extern func_ov04_0210b258
.extern func_ov04_0210b280
File diff suppressed because it is too large Load Diff
-532
View File
@@ -57528,410 +57528,6 @@ func_ov00_020a7aec: ; 0x020a7aec
bx lr
arm_func_end func_ov00_020a7aec
.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 func_ov00_020aef68
ldr r0, _020a7f7c ; =data_027e0fe4
ldrb r1, [sp, #0x18]
ldr r0, [r0]
bl func_ov00_020c357c
ldrb r0, [sp, #0x18]
cmp r0, #0
beq _020a7f40
ldr r0, _020a7f68 ; =data_027e0e60
ldr r0, [r0]
bl func_ov00_02082af4
ldr r0, _020a7f80 ; =data_027e0f74
ldr r0, [r0]
bl func_ov00_02097700
_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 data_027e0f74
_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
.rodata
.global data_ov00_020d8798
data_ov00_020d8798: ; 0x020d8798
@@ -68850,134 +68446,6 @@ data_ov00_020e5588: ; 0x020e5588
.global data_ov00_020e558c
data_ov00_020e558c: ; 0x020e558c
.word func_ov00_020a7a3c
.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
.global data_ov00_020e55b4
data_ov00_020e55b4: ; 0x020e55b4
.word data_ov00_020e55a8
.global data_ov00_020e55b8
data_ov00_020e55b8: ; 0x020e55b8
.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
.global data_ov00_020e55d0
data_ov00_020e55d0: ; 0x020e55d0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e55d4
data_ov00_020e55d4: ; 0x020e55d4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e55d8
data_ov00_020e55d8: ; 0x020e55d8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e55dc
data_ov00_020e55dc: ; 0x020e55dc
.word _ZN10PlayerBase8vfunc_04Ev
.global data_ov00_020e55e0
data_ov00_020e55e0: ; 0x020e55e0
.word _ZN10PlayerBase10GetEquipIdEv
.global data_ov00_020e55e4
data_ov00_020e55e4: ; 0x020e55e4
.word _ZN10PlayerBase7CanMoveEv
.global data_ov00_020e55e8
data_ov00_020e55e8: ; 0x020e55e8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e55ec
data_ov00_020e55ec: ; 0x020e55ec
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e55f0
data_ov00_020e55f0: ; 0x020e55f0
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e55f4
data_ov00_020e55f4: ; 0x020e55f4
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e55f8
data_ov00_020e55f8: ; 0x020e55f8
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e55fc
data_ov00_020e55fc: ; 0x020e55fc
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5600
data_ov00_020e5600: ; 0x020e5600
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5604
data_ov00_020e5604: ; 0x020e5604
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5608
data_ov00_020e5608: ; 0x020e5608
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e560c
data_ov00_020e560c: ; 0x020e560c
.word _ZN10PlayerBase18TeleportToEntranceEib
.global data_ov00_020e5610
data_ov00_020e5610: ; 0x020e5610
.word _ZN10PlayerBase8TeleportEP5Vec3psibb
.global data_ov00_020e5614
data_ov00_020e5614: ; 0x020e5614
.word _ZN10PlayerBase22TeleportToLastEntranceEb
.global data_ov00_020e5618
data_ov00_020e5618: ; 0x020e5618
.word _ZN10PlayerBase9AddHealthEs
.global data_ov00_020e561c
data_ov00_020e561c: ; 0x020e561c
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5620
data_ov00_020e5620: ; 0x020e5620
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5624
data_ov00_020e5624: ; 0x020e5624
.byte 0x00, 0x00, 0x00, 0x00
.global data_ov00_020e5628
data_ov00_020e5628: ; 0x020e5628
.word func_ov04_0210b258 ; data_ov07_0210b258
.global data_ov00_020e562c
data_ov00_020e562c: ; 0x020e562c
.word func_ov04_0210b280 ; data_ov07_0210b280
.bss
.global data_ov00_020e9360
+8 -8
View File
@@ -21533,7 +21533,7 @@ _0210b20c: .word data_027e0f90
func_ov04_0210b210: ; 0x0210b210
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, _0210b250 ; =data_ov00_020e55d8
ldr r0, _0210b250 ; =_ZTV10PlayerBase
mov r1, #0
str r0, [r4]
strh r1, [r4, #8]
@@ -21563,7 +21563,7 @@ _0210b23c:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end func_ov04_0210b210
_0210b250: .word data_ov00_020e55d8
_0210b250: .word _ZTV10PlayerBase
_0210b254: .word data_027e0ce0
.global func_ov04_0210b258
@@ -21571,7 +21571,7 @@ _0210b254: .word data_027e0ce0
func_ov04_0210b258: ; 0x0210b258
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, _0210b27c ; =data_ov00_020e55d8
ldr r0, _0210b27c ; =_ZTV10PlayerBase
str r0, [r4]
ldr r5, [r4, #4]
cmp r5, #0
@@ -21589,14 +21589,14 @@ _0210b278:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end func_ov04_0210b258
_0210b27c: .word data_ov00_020e55d8
_0210b27c: .word _ZTV10PlayerBase
.global func_ov04_0210b280
thumb_func_start func_ov04_0210b280
func_ov04_0210b280: ; 0x0210b280
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, _0210b2ac ; =data_ov00_020e55d8
ldr r0, _0210b2ac ; =_ZTV10PlayerBase
str r0, [r4]
ldr r5, [r4, #4]
cmp r5, #0
@@ -21616,14 +21616,14 @@ _0210b2a0:
pop {r3, r4, r5, pc}
nop
thumb_func_end func_ov04_0210b280
_0210b2ac: .word data_ov00_020e55d8
_0210b2ac: .word _ZTV10PlayerBase
.global func_ov04_0210b2b0
thumb_func_start func_ov04_0210b2b0
func_ov04_0210b2b0: ; 0x0210b2b0
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, _0210b2d4 ; =data_ov00_020e55d8
ldr r0, _0210b2d4 ; =_ZTV10PlayerBase
str r0, [r4]
ldr r5, [r4, #4]
cmp r5, #0
@@ -21641,7 +21641,7 @@ _0210b2d0:
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end func_ov04_0210b2b0
_0210b2d4: .word data_ov00_020e55d8
_0210b2d4: .word _ZTV10PlayerBase
.global func_ov04_0210b2d8
thumb_func_start func_ov04_0210b2d8
+3
View File
@@ -27,6 +27,9 @@ ov00 = Overlay(name='ov00', after='ARM9', objects=[
'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/LinkStateGrab.cpp',