tmc/asm/projectile/projectileC.s

151 lines
2.5 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start ProjectileC
ProjectileC: @ 0x080A91E0
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080A9288
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080A9204
movs r0, #1
strb r0, [r4, #0xc]
bl Random
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
_080A9204:
adds r0, r4, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x80
bne _080A921C
ldr r1, [r4, #0x50]
cmp r1, #0
beq _080A9218
movs r0, #0xff
strb r0, [r1, #0xa]
_080A9218:
bl DeleteThisEntity
_080A921C:
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl CopyPosition
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _080A9230
subs r0, #1
strb r0, [r4, #0xf]
b _080A92F6
_080A9230:
adds r0, r4, #0
bl sub_080644C8
cmp r0, #0
beq _080A92F6
ldrb r1, [r4, #0xe]
adds r0, r1, #1
strb r0, [r4, #0xe]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _080A92F6
movs r0, #0xc
bl sub_080A7EE0
adds r5, r0, #0
cmp r5, #0
beq _080A92F6
movs r0, #1
strb r0, [r5, #0xa]
ldr r0, [r4, #0x50]
adds r0, #0x3e
ldrb r1, [r0]
ldr r3, _080A9284 @ =gUnk_081299C8
ldrb r0, [r4, #0xe]
lsrs r0, r0, #2
movs r2, #7
ands r0, r2
adds r0, r0, r3
lsls r1, r1, #3
ldrb r0, [r0]
adds r1, r1, r0
movs r0, #0x1f
ands r1, r0
strb r1, [r5, #0x15]
ldr r0, [r4, #0x50]
str r0, [r5, #0x50]
adds r0, r4, #0
adds r1, r5, #0
bl CopyPosition
b _080A92F6
.align 2, 0
_080A9284: .4byte gUnk_081299C8
_080A9288:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080A92B0
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x12
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x16
ands r0, r1
strb r0, [r4, #0x18]
movs r0, #0x80
lsls r0, r0, #4
strh r0, [r4, #0x24]
ldr r0, _080A92F8 @ =gUnk_080FD1E4
str r0, [r4, #0x48]
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
_080A92B0:
adds r0, r4, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x80
bne _080A92C8
ldr r1, [r4, #0x50]
cmp r1, #0
beq _080A92C4
movs r0, #0xff
strb r0, [r1, #0xa]
_080A92C4:
bl DeleteThisEntity
_080A92C8:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A92D8
bl DeleteThisEntity
_080A92D8:
adds r0, r4, #0
bl sub_0806F69C
ldr r0, _080A92FC @ =gUnk_02027EB4
movs r2, #0x2e
ldrsh r1, [r4, r2]
movs r3, #0x32
ldrsh r2, [r4, r3]
movs r3, #2
bl sub_080AE4CC
cmp r0, #0
beq _080A92F6
bl DeleteThisEntity
_080A92F6:
pop {r4, r5, pc}
.align 2, 0
_080A92F8: .4byte gUnk_080FD1E4
_080A92FC: .4byte gUnk_02027EB4