tmc/asm/projectile/projectile9.s

152 lines
2.4 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Projectile9
Projectile9: @ 0x080A8CAC
push {r4, lr}
adds r4, r0, #0
bl GetNextFunction
cmp r0, #0
beq _080A8CBC
bl DeleteThisEntity
_080A8CBC:
ldr r0, _080A8CD0 @ =gUnk_081298B8
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_080A8CD0: .4byte gUnk_081298B8
thumb_func_start sub_080A8CD4
sub_080A8CD4: @ 0x080A8CD4
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _080A8CEE
movs r0, #1
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x15]
lsrs r1, r1, #3
adds r0, r2, #0
bl InitializeAnimation
b _080A8D08
_080A8CEE:
movs r0, #2
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x15]
lsrs r1, r1, #3
movs r0, #4
orrs r1, r0
adds r0, r2, #0
bl InitializeAnimation
movs r0, #0xb0
lsls r0, r0, #1
bl EnqueueSFX
_080A8D08:
pop {pc}
.align 2, 0
thumb_func_start sub_080A8D0C
sub_080A8D0C: @ 0x080A8D0C
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, [r4, #0x50]
cmp r5, #0
bne _080A8D1C
bl DeleteEntity
b _080A8D5C
_080A8D1C:
ldr r0, [r5, #4]
cmp r0, #0
bne _080A8D2A
adds r0, r4, #0
bl DeleteEntity
b _080A8D5C
_080A8D2A:
ldrb r0, [r4, #0x18]
lsls r0, r0, #0x1e
lsrs r0, r0, #0x1e
cmp r0, #1
bne _080A8D56
adds r0, r5, #0
adds r1, r4, #0
bl CopyPosition
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080A8D56
ldrb r0, [r5, #0x15]
movs r1, #0x18
ands r1, r0
movs r0, #0
strb r1, [r4, #0x15]
strb r0, [r4, #0xe]
lsrs r1, r1, #3
adds r0, r4, #0
bl InitializeAnimation
_080A8D56:
adds r0, r4, #0
bl GetNextFrame
_080A8D5C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080A8D60
sub_080A8D60: @ 0x080A8D60
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_080AF090
adds r2, r0, #0
cmp r2, #0
beq _080A8D8E
adds r0, r4, #0
bl sub_080A7EB0
cmp r0, #0
beq _080A8D86
adds r0, r4, #0
bl DeleteEntity
b _080A8D9C
_080A8D86:
adds r0, r4, #0
bl sub_08016AD2
b _080A8D9C
_080A8D8E:
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
strh r2, [r4, #0x24]
_080A8D9C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A8DA0
sub_080A8DA0: @ 0x080A8DA0
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080A8DBC
adds r0, r4, #0
bl DeleteEntity
_080A8DBC:
pop {r4, pc}
.align 2, 0