tmc/asm/non_matching/eu/HandlePlayerLife.inc

252 lines
4.0 KiB
PHP

.syntax unified
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _080170E4 @ =gUnk_0200AF00
adds r2, r0, #0
adds r2, #0x2f
movs r1, #0
strb r1, [r2]
subs r2, #2
strb r1, [r2]
adds r0, #0x2e
strb r1, [r0]
ldr r2, _080170E8 @ =gPlayerEntity
adds r0, r2, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08017072
adds r0, r2, #0
adds r0, #0x3d
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08017072
movs r0, #0x86
bl SoundReq
_08017072:
ldr r4, _080170EC @ =gPlayerState
ldr r0, [r4, #0x30]
ldr r1, _080170F0 @ =0xFDFFFDFF
ands r0, r1
str r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #3
ands r0, r1
cmp r0, #0
beq _0801708A
bl ResetPlayer
_0801708A:
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
beq _080170A4
adds r0, r4, #0
adds r0, #0xa0
ldrb r0, [r0]
cmp r0, #0
bne _080170A4
bl DeleteClones
_080170A4:
bl sub_08079B24
cmp r0, #0
bne _080170B2
adds r0, r5, #0
bl sub_08079708
_080170B2:
ldr r0, _080170F4 @ =gUnk_03003DF0
movs r4, #0
strb r4, [r0]
ldr r2, _080170EC @ =gPlayerState
adds r1, r2, #0
adds r1, #0x27
ldrb r0, [r1]
cmp r0, #0
beq _080170C8
subs r0, #1
strb r0, [r1]
_080170C8:
adds r1, r2, #0
adds r1, #0xa8
ldrb r0, [r1]
adds r3, r2, #0
adds r3, #0xa9
strb r0, [r3]
strb r4, [r1]
subs r1, #0x1e
ldrb r0, [r1]
cmp r0, #0
beq _080170F8
subs r0, #1
strb r0, [r1]
b _08017222
.align 2, 0
_080170E4: .4byte gUnk_0200AF00
_080170E8: .4byte gPlayerEntity
_080170EC: .4byte gPlayerState
_080170F0: .4byte 0xFDFFFDFF
_080170F4: .4byte gUnk_03003DF0
_080170F8:
adds r0, r2, #0
adds r0, #0x8b
ldrb r0, [r0]
cmp r0, #0
beq _08017104
b _08017222
_08017104:
ldr r0, _08017160 @ =gMessage
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _08017112
b _08017222
_08017112:
ldr r0, _08017164 @ =gUnk_0200AF00
ldrb r0, [r0, #1]
cmp r0, #0
bne _0801714E
ldr r0, _08017168 @ =gRoomTransition
ldr r0, [r0]
movs r1, #0x5a
bl __modsi3
cmp r0, #0
bne _0801714E
ldr r2, _0801716C @ =gSave
adds r0, r2, #0
adds r0, #0xab
ldrb r0, [r0]
lsrs r1, r0, #2
cmp r1, #0x18
bls _08017138
movs r1, #0x18
_08017138:
cmp r1, #7
bhi _0801713E
movs r1, #8
_0801713E:
adds r0, r2, #0
adds r0, #0xaa
ldrb r0, [r0]
cmp r0, r1
bhi _0801714E
ldr r0, _08017170 @ =0x0000011F
bl EnqueueSFX
_0801714E:
ldr r0, _0801716C @ =gSave
adds r2, r0, #0
adds r2, #0xb2
ldrb r1, [r2]
cmp r1, #0
bne _08017174
adds r0, #0xc4
strh r1, [r0]
b _08017192
.align 2, 0
_08017160: .4byte gMessage
_08017164: .4byte gUnk_0200AF00
_08017168: .4byte gRoomTransition
_0801716C: .4byte gSave
_08017170: .4byte 0x0000011F
_08017174:
adds r1, r0, #0
adds r1, #0xc4
ldrh r0, [r1]
cmp r0, #0
beq _08017188
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08017192
_08017188:
movs r0, #0
strb r0, [r2]
ldr r0, _080171A4 @ =0x000001B3
bl SoundReq
_08017192:
ldr r0, _080171A8 @ =gSave
adds r3, r0, #0
adds r3, #0xb3
ldrb r1, [r3]
cmp r1, #0
bne _080171AC
adds r0, #0xc6
strh r1, [r0]
b _080171DC
.align 2, 0
_080171A4: .4byte 0x000001B3
_080171A8: .4byte gSave
_080171AC:
adds r2, r0, #0
adds r2, #0xc6
ldrh r0, [r2]
cmp r0, #0
beq _080171C0
subs r1, r0, #1
strh r1, [r2]
lsls r0, r1, #0x10
cmp r0, #0
bne _080171CE
_080171C0:
movs r0, #0
strb r0, [r3]
movs r0, #0xa0
lsls r0, r0, #1
bl SoundReq
b _080171DC
_080171CE:
movs r0, #0xf
ands r1, r0
cmp r1, #0
bne _080171DC
adds r0, r5, #0
bl CreateSparkle
_080171DC:
ldr r0, _080171F0 @ =gSave
adds r3, r0, #0
adds r3, #0xba
ldrb r1, [r3]
cmp r1, #0
bne _080171F4
adds r0, #0xc8
strh r1, [r0]
b _08017222
.align 2, 0
_080171F0: .4byte gSave
_080171F4:
adds r2, r0, #0
adds r2, #0xc8
ldrh r0, [r2]
cmp r0, #0
beq _08017208
subs r1, r0, #1
strh r1, [r2]
lsls r0, r1, #0x10
cmp r0, #0
bne _0801720E
_08017208:
movs r0, #0
strb r0, [r3]
b _08017222
_0801720E:
movs r0, #0x3f
ands r1, r0
cmp r1, #0
bne _08017222
ldrb r1, [r3]
adds r1, #0x55
adds r0, r5, #0
movs r2, #0
bl CreateFx
_08017222:
pop {r4, r5}
pop {r0}
bx r0
.syntax divided