tmc/asm/projectile/projectile8.s

152 lines
2.4 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Projectile8
Projectile8: @ 0x080A8B98
push {r4, lr}
adds r4, r0, #0
bl GetNextFunction
cmp r0, #0
beq _080A8BA8
bl DeleteThisEntity
_080A8BA8:
ldr r0, _080A8BBC @ =gUnk_0812982C
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
_080A8BBC: .4byte gUnk_0812982C
thumb_func_start sub_080A8BC0
sub_080A8BC0: @ 0x080A8BC0
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _080A8BDA
movs r0, #1
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x15]
lsrs r1, r1, #3
adds r0, r2, #0
bl InitializeAnimation
b _080A8BF4
_080A8BDA:
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, #0xaf
lsls r0, r0, #1
bl EnqueueSFX
_080A8BF4:
pop {pc}
.align 2, 0
thumb_func_start sub_080A8BF8
sub_080A8BF8: @ 0x080A8BF8
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, [r4, #0x50]
cmp r5, #0
bne _080A8C08
bl DeleteEntity
b _080A8C48
_080A8C08:
ldr r0, [r5, #4]
cmp r0, #0
bne _080A8C16
adds r0, r4, #0
bl DeleteEntity
b _080A8C48
_080A8C16:
ldrb r0, [r4, #0x18]
lsls r0, r0, #0x1e
lsrs r0, r0, #0x1e
cmp r0, #1
bne _080A8C42
adds r0, r5, #0
adds r1, r4, #0
bl CopyPosition
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080A8C42
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
_080A8C42:
adds r0, r4, #0
bl GetNextFrame
_080A8C48:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080A8C4C
sub_080A8C4C: @ 0x080A8C4C
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_080AF090
adds r2, r0, #0
cmp r2, #0
beq _080A8C7A
adds r0, r4, #0
bl sub_080A7EB0
cmp r0, #0
beq _080A8C72
adds r0, r4, #0
bl DeleteEntity
b _080A8C88
_080A8C72:
adds r0, r4, #0
bl sub_08016AD2
b _080A8C88
_080A8C7A:
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]
_080A8C88:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A8C8C
sub_080A8C8C: @ 0x080A8C8C
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 _080A8CA8
adds r0, r4, #0
bl DeleteEntity
_080A8CA8:
pop {r4, pc}
.align 2, 0