Add HealthManager

This commit is contained in:
Aetias
2024-04-17 23:07:01 +02:00
parent 9889b69468
commit 897bf1d049
24 changed files with 90 additions and 68 deletions
+2 -2
View File
@@ -4001,8 +4001,8 @@ gItemManager:
.global data_027e0fb8
data_027e0fb8:
.space 0x4
.global data_027e0fbc
data_027e0fbc:
.global gHealthManager
gHealthManager:
.space 0x4
.global data_027e0fc0
data_027e0fc0:
+1 -1
View File
@@ -5,7 +5,7 @@
.extern data_027e0e60
.extern gAdventureFlags
.extern data_027e0f78
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e103c
.extern data_027e1058
.extern data_027e105c
+2 -2
View File
@@ -505,7 +505,7 @@ _020ae04e:
ldr r0, [r0]
mov r2, #1
blx _ZN14AdventureFlags3SetEjb
ldr r0, _020ae248 ; =data_027e0fbc
ldr r0, _020ae248 ; =gHealthManager
mov r1, #5
ldr r0, [r0]
strh r1, [r0, #8]
@@ -756,7 +756,7 @@ _020ae222:
b _020ae258
nop
_020ae244: .word gAdventureFlags
_020ae248: .word data_027e0fbc
_020ae248: .word gHealthManager
_020ae24c: .word 0x00000126
_020ae250: .word 0x00000127
_020ae254: .word 0x00000129
+1 -1
View File
@@ -156,7 +156,7 @@
.extern data_027e0fa0
.extern data_027e0fac
.extern data_027e0fb8
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e0fc4
.extern data_027e0fc8
.extern data_027e0fcc
+2 -2
View File
@@ -12594,13 +12594,13 @@ func_ov00_020bb44c: ; 0x020bb44c
ldrb r0, [r0, #0x12]
cmp r0, #0
movne r0, #0xc
ldreq r0, _020bb468 ; =data_027e0fbc
ldreq r0, _020bb468 ; =gHealthManager
ldreq r0, [r0]
ldreqsh r0, [r0]
bx lr
.align 2, 0
arm_func_end func_ov00_020bb44c
_020bb468: .word data_027e0fbc
_020bb468: .word gHealthManager
.global func_ov00_020bb46c
arm_func_start func_ov00_020bb46c
+1 -1
View File
@@ -116,7 +116,7 @@
.extern data_027e0f94
.extern data_027e0fac
.extern data_027e0fb8
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e0fc8
.extern data_027e0fd4
.extern data_027e0fe0
+2 -2
View File
@@ -18659,7 +18659,7 @@ _020d274c:
mov r1, #0x3c
bl func_01ff9b4c
sub r0, r4, r0
ldr r2, _020d27e8 ; =data_027e0fbc
ldr r2, _020d27e8 ; =gHealthManager
ldr r1, _020d27ec ; =0x00007fff
mov r0, r0, lsl #0x10
and r1, r1, r0, lsr #16
@@ -18688,7 +18688,7 @@ _020d27d8: .word gItemManager
_020d27dc: .word data_027e0f64
_020d27e0: .word data_ov00_020df294
_020d27e4: .word data_027e103c
_020d27e8: .word data_027e0fbc
_020d27e8: .word gHealthManager
_020d27ec: .word 0x00007fff
.global func_ov00_020d27f0
+1 -1
View File
@@ -32,7 +32,7 @@
.extern data_027e0e60
.extern data_027e0f88
.extern data_027e0f8c
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e1044
.extern data_027e1050
.extern data_027e1058
+6 -6
View File
@@ -1497,7 +1497,7 @@ _020f01e4:
mov r1, #9
str r6, [sp]
bl func_0203493c
ldr r0, _020f0730 ; =data_027e0fbc
ldr r0, _020f0730 ; =gHealthManager
ldr r0, [r0]
ldrb r0, [r0, #0xe]
cmp r0, #0
@@ -1508,7 +1508,7 @@ _020f01e4:
mov r1, #0xa
str r6, [sp]
bl func_0203493c
ldr r0, _020f0730 ; =data_027e0fbc
ldr r0, _020f0730 ; =gHealthManager
mov r1, #0x3c
ldr r0, [r0]
ldrh r6, [r0, #0xc]
@@ -1842,7 +1842,7 @@ _020f0720: .word gItemManager
_020f0724: .word gAdventureFlags
_020f0728: .word 0x91a2b3c5
_020f072c: .word 0x88888889
_020f0730: .word data_027e0fbc
_020f0730: .word gHealthManager
.global func_ov02_020f0734
arm_func_start func_ov02_020f0734
@@ -5052,10 +5052,10 @@ func_ov02_020f2e84: ; 0x020f2e84
bl func_ov00_020d77e4
mov r0, #1
blx func_ov09_0211bf3c
ldr r0, _020f2f18 ; =data_027e0fbc
ldr r0, _020f2f18 ; =gHealthManager
ldr r0, [r0]
blx func_ov00_020b8060
ldr r0, _020f2f18 ; =data_027e0fbc
ldr r0, _020f2f18 ; =gHealthManager
ldr r1, [r0]
ldrsh r0, [r1, #4]
strh r0, [r1, #6]
@@ -5065,7 +5065,7 @@ func_ov02_020f2e84: ; 0x020f2e84
_020f2f0c: .word gItemManager
_020f2f10: .word data_ov02_020f6c80
_020f2f14: .word data_ov00_020eec9c
_020f2f18: .word data_027e0fbc
_020f2f18: .word gHealthManager
.global func_ov02_020f2f1c
arm_func_start func_ov02_020f2f1c
+1 -1
View File
@@ -76,7 +76,7 @@
.extern data_027e0f94
.extern data_027e0fac
.extern data_027e0fb8
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e0fc0
.extern data_027e0fc4
.extern data_027e0fc8
+9 -9
View File
@@ -7771,7 +7771,7 @@ _0210482c:
_02104840:
bl func_ov04_02105a64
bl func_ov04_021084e8
ldr r0, _021049b0 ; =data_027e0fbc
ldr r0, _021049b0 ; =gHealthManager
ldr r1, [sp, #8]
ldr r0, [r0]
bl func_ov04_02107f48
@@ -7918,7 +7918,7 @@ _021049a0: .word data_ov12_02137c64
_021049a4: .word data_027e077c
_021049a8: .word 0x04000304
_021049ac: .word 0xffff7fff
_021049b0: .word data_027e0fbc
_021049b0: .word gHealthManager
_021049b4: .word data_ov00_020e9360
_021049b8: .word data_027e0e5c
_021049bc: .word data_027e0d04
@@ -8001,7 +8001,7 @@ _02104a3c:
ldr r0, _02104afc ; =data_ov00_020e9370
bl func_ov04_0210694c
bl func_ov00_02079df0
ldr r0, _02104b00 ; =data_027e0fbc
ldr r0, _02104b00 ; =gHealthManager
ldr r0, [r0]
bl func_ov04_02108008
bl func_ov04_02105a8c
@@ -8029,7 +8029,7 @@ _02104af0: .word data_027e0c68
_02104af4: .word data_027e103c
_02104af8: .word data_02068e64
_02104afc: .word data_ov00_020e9370
_02104b00: .word data_027e0fbc
_02104b00: .word gHealthManager
_02104b04: .word data_027e0cbc
.global func_ov04_02104b08
@@ -14886,19 +14886,19 @@ func_ov04_02107e54: ; 0x02107e54
beq _02107e6a
bl func_ov04_02107e9c
_02107e6a:
ldr r1, _02107e74 ; =data_027e0fbc
ldr r1, _02107e74 ; =gHealthManager
str r0, [r1]
pop {r3, pc}
.align 2, 0
thumb_func_end func_ov04_02107e54
_02107e70: .word data_027e0ce0
_02107e74: .word data_027e0fbc
_02107e74: .word gHealthManager
.global func_ov04_02107e78
thumb_func_start func_ov04_02107e78
func_ov04_02107e78: ; 0x02107e78
push {r4, lr}
ldr r0, _02107e98 ; =data_027e0fbc
ldr r0, _02107e98 ; =gHealthManager
ldr r4, [r0]
cmp r4, #0
beq _02107e8e
@@ -14907,13 +14907,13 @@ func_ov04_02107e78: ; 0x02107e78
add r0, r4, #0
blx _ZN9SysObjectdlEPv
_02107e8e:
ldr r0, _02107e98 ; =data_027e0fbc
ldr r0, _02107e98 ; =gHealthManager
mov r1, #0
str r1, [r0]
pop {r4, pc}
nop
thumb_func_end func_ov04_02107e78
_02107e98: .word data_027e0fbc
_02107e98: .word gHealthManager
.global func_ov04_02107e9c
thumb_func_start func_ov04_02107e9c
+1 -1
View File
@@ -173,7 +173,7 @@
.extern data_027e0fac
.extern data_027e0fb0
.extern data_027e0fb8
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e0fc0
.extern data_027e0fc8
.extern data_027e0fcc
+5 -5
View File
@@ -9487,7 +9487,7 @@ func_ov05_021088c8: ; 0x021088c8
bl func_020385d0
cmp r0, #0
beq _0210899c
ldr r1, _021089a8 ; =data_027e0fbc
ldr r1, _021089a8 ; =gHealthManager
ldr r4, _021089ac ; =0x88888889
ldr r1, [r1]
mov ip, #0x3c
@@ -9534,7 +9534,7 @@ _0210899c:
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
arm_func_end func_ov05_021088c8
_021089a8: .word data_027e0fbc
_021089a8: .word gHealthManager
_021089ac: .word 0x88888889
_021089b0: .word 0x66666667
_021089b4: .word 0x00007fff
@@ -10610,11 +10610,11 @@ _02109828:
bl _ZN13LinkStateBase18func_ov00_020a8360Ei
b _021098bc
_02109834:
ldr r0, _021099bc ; =data_027e0fbc
ldr r0, _021099bc ; =gHealthManager
mov r1, #4
ldr r0, [r0]
blx func_ov00_020b804c
ldr r1, _021099bc ; =data_027e0fbc
ldr r1, _021099bc ; =gHealthManager
mov r0, r5
ldr r1, [r1]
ldrsh r1, [r1]
@@ -10719,7 +10719,7 @@ _021099a4:
.align 2, 0
arm_func_end func_ov05_021097b0
_021099b8: .word 0x464f5243
_021099bc: .word data_027e0fbc
_021099bc: .word gHealthManager
_021099c0: .word data_027e103c
_021099c4: .word 0x424b4559
_021099c8: .word 0x43525953
+1 -1
View File
@@ -45,7 +45,7 @@
.extern data_027e0e60
.extern data_027e0f64
.extern data_027e0f90
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e0fe4
.extern data_027e0ffc
.extern data_027e103c
+2 -2
View File
@@ -3580,7 +3580,7 @@ _0211483a:
strb r0, [r1]
add r0, sp, #0x48
bl func_ov00_0207a38c
ldr r0, _02114988 ; =data_027e0fbc
ldr r0, _02114988 ; =gHealthManager
add r1, sp, #0x48
ldr r0, [r0]
bl func_ov00_020b7ffc
@@ -3706,7 +3706,7 @@ _02114960:
thumb_func_end func_ov09_02114810
_02114980: .word data_027e0dbc
_02114984: .word data_ov00_020e9ec0
_02114988: .word data_027e0fbc
_02114988: .word gHealthManager
_0211498c: .word data_ov00_020e9e18
_02114990: .word data_ov09_0211f5b4
_02114994: .word data_ov00_020e9f08
+1 -1
View File
@@ -120,7 +120,7 @@
.extern data_027e0f94
.extern data_027e0fa0
.extern data_027e0fb8
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e0fc0
.extern data_027e0fc4
.extern data_027e0fc8
+8 -8
View File
@@ -4744,7 +4744,7 @@ func_ov14_0213ef2c: ; 0x0213ef2c
add r0, r4, #0
add r0, #0x80
strb r1, [r0]
ldr r0, _0213ef5c ; =data_027e0fbc
ldr r0, _0213ef5c ; =gHealthManager
ldr r1, [r0]
mov r0, #2
ldrsh r0, [r1, r0]
@@ -4754,7 +4754,7 @@ func_ov14_0213ef2c: ; 0x0213ef2c
nop
thumb_func_end func_ov14_0213ef2c
_0213ef58: .word data_ov14_02159084
_0213ef5c: .word data_027e0fbc
_0213ef5c: .word gHealthManager
.global func_ov14_0213ef60
thumb_func_start func_ov14_0213ef60
@@ -4768,7 +4768,7 @@ func_ov14_0213ef60: ; 0x0213ef60
bl func_0202e7fc
mov r0, #0xa
ldrsh r1, [r4, r0]
ldr r0, _0213ef90 ; =data_027e0fbc
ldr r0, _0213ef90 ; =gHealthManager
ldr r0, [r0]
strh r1, [r0, #2]
add r0, r4, #0
@@ -4780,7 +4780,7 @@ func_ov14_0213ef60: ; 0x0213ef60
_0213ef84: .word data_ov14_02159084
_0213ef88: .word data_ov14_0215b248
_0213ef8c: .word data_027e077c
_0213ef90: .word data_027e0fbc
_0213ef90: .word gHealthManager
.global func_ov14_0213ef94
thumb_func_start func_ov14_0213ef94
@@ -4794,7 +4794,7 @@ func_ov14_0213ef94: ; 0x0213ef94
bl func_0202e7fc
mov r0, #0xa
ldrsh r1, [r4, r0]
ldr r0, _0213efcc ; =data_027e0fbc
ldr r0, _0213efcc ; =gHealthManager
ldr r0, [r0]
strh r1, [r0, #2]
add r0, r4, #0
@@ -4808,7 +4808,7 @@ func_ov14_0213ef94: ; 0x0213ef94
_0213efc0: .word data_ov14_02159084
_0213efc4: .word data_ov14_0215b248
_0213efc8: .word data_027e077c
_0213efcc: .word data_027e0fbc
_0213efcc: .word gHealthManager
.global func_ov14_0213efd0
thumb_func_start func_ov14_0213efd0
@@ -5365,14 +5365,14 @@ func_ov14_0213f5dc: ; 0x0213f5dc
stmdb sp!, {r4, lr}
mov r4, r0
bl _ZN10PlayerBase9AddHealthEs
ldr r0, _0213f5fc ; =data_027e0fbc
ldr r0, _0213f5fc ; =gHealthManager
ldrsh r1, [r4, #0xa]
ldr r0, [r0]
strh r1, [r0, #2]
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov14_0213f5dc
_0213f5fc: .word data_027e0fbc
_0213f5fc: .word gHealthManager
.global func_ov14_0213f600
arm_func_start func_ov14_0213f600
+1 -1
View File
@@ -150,7 +150,7 @@
.extern data_027e0fac
.extern data_027e0fb0
.extern data_027e0fb8
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e0fc4
.extern data_027e0fe0
.extern data_027e0fe4
+8 -8
View File
@@ -30916,7 +30916,7 @@ _021398f0:
str r0, [r4, #0xa4]
str r0, [r4, #0xa8]
str r0, [r4, #0xac]
ldr ip, _02139a70 ; =data_027e0fbc
ldr ip, _02139a70 ; =gHealthManager
add r3, r4, #0x300
ldr r2, [ip]
add r1, r4, #0x60
@@ -30958,7 +30958,7 @@ _02139a60: .word func_ov15_02139a80
_02139a64: .word func_ov15_02139a94
_02139a68: .word func_020350ac
_02139a6c: .word func_02035064
_02139a70: .word data_027e0fbc
_02139a70: .word gHealthManager
_02139a74: .word data_027e10a4
_02139a78: .word data_027e0d38
_02139a7c: .word data_027e0ce0
@@ -30994,7 +30994,7 @@ func_ov15_02139ab4: ; 0x02139ab4
ldr r1, _02139cb8 ; =data_ov15_0218aaac
mov r4, r0
str r1, [r4]
ldr r1, _02139cbc ; =data_027e0fbc
ldr r1, _02139cbc ; =gHealthManager
ldrsh r3, [r4, #0xa]
ldr r2, [r1]
add r0, r4, #0x300
@@ -31123,7 +31123,7 @@ _02139af4:
.align 2, 0
arm_func_end func_ov15_02139ab4
_02139cb8: .word data_ov15_0218aaac
_02139cbc: .word data_027e0fbc
_02139cbc: .word gHealthManager
_02139cc0: .word data_027e10a4
_02139cc4: .word func_020350ac
_02139cc8: .word func_ov15_02139a80
@@ -31136,7 +31136,7 @@ func_ov15_02139cd0: ; 0x02139cd0
ldr r1, _02139edc ; =data_ov15_0218aaac
mov r4, r0
str r1, [r4]
ldr r1, _02139ee0 ; =data_027e0fbc
ldr r1, _02139ee0 ; =gHealthManager
ldrsh r3, [r4, #0xa]
ldr r2, [r1]
add r0, r4, #0x300
@@ -31267,7 +31267,7 @@ _02139d10:
.align 2, 0
arm_func_end func_ov15_02139cd0
_02139edc: .word data_ov15_0218aaac
_02139ee0: .word data_027e0fbc
_02139ee0: .word gHealthManager
_02139ee4: .word data_027e10a4
_02139ee8: .word func_020350ac
_02139eec: .word func_ov15_02139a80
@@ -31827,13 +31827,13 @@ func_ov15_0213a5e8: ; 0x0213a5e8
.global func_ov15_0213a604
arm_func_start func_ov15_0213a604
func_ov15_0213a604: ; 0x0213a604
ldr r0, _0213a614 ; =data_027e0fbc
ldr r0, _0213a614 ; =gHealthManager
ldr r0, [r0]
ldrsh r0, [r0, #4]
bx lr
.align 2, 0
arm_func_end func_ov15_0213a604
_0213a614: .word data_027e0fbc
_0213a614: .word gHealthManager
.global func_ov15_0213a618
arm_func_start func_ov15_0213a618
+1 -1
View File
@@ -92,7 +92,7 @@
.extern data_027e0f94
.extern data_027e0fa0
.extern data_027e0fac
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e0fc8
.extern data_027e0fd4
.extern data_027e0fe0
+6 -6
View File
@@ -1707,7 +1707,7 @@ func_ov26_0216e8b8: ; 0x0216e8b8
ldrb r0, [r0]
cmp r0, #0
beq _0216e98e
ldr r0, _0216e9c0 ; =data_027e0fbc
ldr r0, _0216e9c0 ; =gHealthManager
ldr r0, [r0]
ldrh r1, [r0, #0xa]
mov r0, #2
@@ -1762,7 +1762,7 @@ _0216e9b0:
thumb_func_end func_ov26_0216e8b8
_0216e9b8: .word gItemManager
_0216e9bc: .word data_027e0d38
_0216e9c0: .word data_027e0fbc
_0216e9c0: .word gHealthManager
.global func_ov26_0216e9c4
thumb_func_start func_ov26_0216e9c4
@@ -2101,7 +2101,7 @@ _0216edf8:
mov r1, #0x3c
add r0, r0, #0x3b
bl func_01ff9b4c
ldr r1, _0216ee38 ; =data_027e0fbc
ldr r1, _0216ee38 ; =gHealthManager
mov r2, #1
ldr r3, [r1]
mov r0, r0, lsl #0x10
@@ -2115,7 +2115,7 @@ _0216edf8:
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov26_0216edb4
_0216ee38: .word data_027e0fbc
_0216ee38: .word gHealthManager
.global func_ov26_0216ee3c
arm_func_start func_ov26_0216ee3c
@@ -8769,7 +8769,7 @@ _02174196:
ldrb r1, [r1]
cmp r1, #0
beq _02174204
ldr r1, _02174250 ; =data_027e0fbc
ldr r1, _02174250 ; =gHealthManager
ldr r1, [r1]
ldrh r2, [r1, #0xa]
mov r1, #2
@@ -8867,7 +8867,7 @@ _0217424e:
pop {r3, pc}
.align 2, 0
thumb_func_end func_ov26_02174170
_02174250: .word data_027e0fbc
_02174250: .word gHealthManager
_02174254: .word gItemManager
.global func_ov26_02174258
+1 -1
View File
@@ -16,7 +16,7 @@
.extern data_027e0f94
.extern data_027e0fa0
.extern data_027e0fac
.extern data_027e0fbc
.extern gHealthManager
.extern data_027e0fc8
.extern data_027e0fe0
.extern data_027e0fe4
+5 -5
View File
@@ -1755,7 +1755,7 @@ _0217d3b0:
mov r0, #1
ldmia sp!, {r4, pc}
_0217d3d0:
ldr r0, _0217d3f4 ; =data_027e0fbc
ldr r0, _0217d3f4 ; =gHealthManager
mov r2, #5
ldr r1, [r0]
mov r0, #1
@@ -1767,7 +1767,7 @@ _0217d3e8:
.align 2, 0
arm_func_end func_ov33_0217d394
_0217d3f0: .word data_027e0e28
_0217d3f4: .word data_027e0fbc
_0217d3f4: .word gHealthManager
.global func_ov33_0217d3f8
arm_func_start func_ov33_0217d3f8
@@ -1780,7 +1780,7 @@ func_ov33_0217d3f8: ; 0x0217d3f8
beq _0217d444
cmp r1, #0x1f
bne _0217d484
ldr r1, _0217d48c ; =data_027e0fbc
ldr r1, _0217d48c ; =gHealthManager
ldr r1, [r1]
ldrsh r1, [r1, #8]
mov r1, r1, lsl #0x18
@@ -1793,7 +1793,7 @@ _0217d43c:
mov r0, r4
ldmia sp!, {r4, pc}
_0217d444:
ldr r0, _0217d48c ; =data_027e0fbc
ldr r0, _0217d48c ; =gHealthManager
ldr r0, [r0]
ldrsh r0, [r0, #4]
sub r1, r0, #0x10
@@ -1815,7 +1815,7 @@ _0217d484:
ldmia sp!, {r4, pc}
.align 2, 0
arm_func_end func_ov33_0217d3f8
_0217d48c: .word data_027e0fbc
_0217d48c: .word gHealthManager
.global func_ov33_0217d490
arm_func_start func_ov33_0217d490
+22
View File
@@ -0,0 +1,22 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
class HealthManager : public SysObject {
public:
/* 00 */ u16 mMaxHealth;
/* 02 */ u16 mHealth;
/* 04 */ s16 mMaxShipHealth;
/* 06 */ s16 mShipHealth;
/* 08 */ u16 mSalvageArmHealth;
/* 0a */ s16 mFlags;
/* 0c */ unk16 mUnk_0c;
/* 0e */ unk8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
/* 10 */
};
extern HealthManager *gHealthManager;