tmc/asm/tektite.s

484 lines
7.7 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Tektite
Tektite: @ 0x0802F118
push {r4, lr}
adds r4, r0, #0
ldr r1, _0802F134 @ =gUnk_080CDED0
bl EnemyFunctionHandler
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r4, #0
movs r1, #0
movs r2, #1
bl SetChildOffset
pop {r4, pc}
.align 2, 0
_0802F134: .4byte gUnk_080CDED0
thumb_func_start sub_0802F138
sub_0802F138: @ 0x0802F138
push {lr}
ldr r2, _0802F14C @ =gUnk_080CDEE8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0802F14C: .4byte gUnk_080CDEE8
thumb_func_start sub_0802F150
sub_0802F150: @ 0x0802F150
push {r4, lr}
adds r4, r0, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _0802F164
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_0802F164:
ldr r1, _0802F18C @ =gUnk_080CDED0
adds r0, r4, #0
bl sub_0804AA30
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0802F1E8
movs r0, #0x3f
ands r0, r1
cmp r0, #0x14
beq _0802F196
cmp r0, #0x14
bgt _0802F190
cmp r0, #0xe
beq _0802F1E0
b _0802F1E8
.align 2, 0
_0802F18C: .4byte gUnk_080CDED0
_0802F190:
cmp r0, #0x15
beq _0802F1E0
b _0802F1E8
_0802F196:
movs r0, #0
movs r1, #1
strb r1, [r4, #0xc]
strb r0, [r4, #0xd]
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0802F1A8
movs r0, #0xc0
b _0802F1B6
_0802F1A8:
bl Random
ldr r2, _0802F1DC @ =gUnk_080CDEF8
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
_0802F1B6:
strb r0, [r4, #0xe]
movs r1, #0
strb r1, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x7c
strb r1, [r0]
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
beq _0802F1CE
ldr r0, [r4, #0x20]
asrs r0, r0, #2
_0802F1CE:
str r0, [r4, #0x20]
adds r0, r4, #0
movs r1, #0
bl InitializeAnimation
b _0802F1E8
.align 2, 0
_0802F1DC: .4byte gUnk_080CDEF8
_0802F1E0:
adds r1, r4, #0
adds r1, #0x45
movs r0, #0
strb r0, [r1]
_0802F1E8:
pop {r4, pc}
.align 2, 0
thumb_func_start nullsub_16
nullsub_16: @ 0x0802F1EC
bx lr
.align 2, 0
thumb_func_start sub_0802F1F0
sub_0802F1F0: @ 0x0802F1F0
push {r4, lr}
adds r4, r0, #0
bl sub_08001242
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
beq _0802F20C
adds r0, r4, #0
adds r0, #0x80
ldrh r1, [r0]
adds r0, r4, #0
bl sub_08003FC4
_0802F20C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0802F210
sub_0802F210: @ 0x0802F210
push {r4, r5, lr}
adds r5, r0, #0
bl sub_0804A720
movs r4, #0
movs r0, #1
strb r0, [r5, #0xc]
strb r4, [r5, #0xd]
bl Random
ldr r2, _0802F280 @ =gUnk_080CDEF8
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
strb r0, [r5, #0xe]
bl Random
movs r1, #0x1f
ands r0, r1
ldrb r1, [r5, #0xe]
adds r0, r0, r1
strb r0, [r5, #0xe]
strb r4, [r5, #0xf]
adds r0, r5, #0
adds r0, #0x7c
strb r4, [r0]
ldrb r0, [r5, #0xa]
movs r2, #0xa0
lsls r2, r2, #6
adds r1, r2, #0
cmp r0, #0
bne _0802F258
movs r0, #0xc0
lsls r0, r0, #5
adds r1, r0, #0
_0802F258:
adds r0, r5, #0
adds r0, #0x80
strh r1, [r0]
ldrb r0, [r5, #0xa]
movs r2, #0xc0
lsls r2, r2, #6
adds r1, r2, #0
cmp r0, #0
bne _0802F270
movs r0, #0xa0
lsls r0, r0, #6
adds r1, r0, #0
_0802F270:
adds r0, r5, #0
adds r0, #0x82
strh r1, [r0]
adds r0, r5, #0
movs r1, #0
bl InitializeAnimation
pop {r4, r5, pc}
.align 2, 0
_0802F280: .4byte gUnk_080CDEF8
thumb_func_start sub_0802F284
sub_0802F284: @ 0x0802F284
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0x60
bls _0802F298
adds r0, r4, #0
movs r1, #2
bl InitializeAnimationAnimation
b _0802F29E
_0802F298:
adds r0, r4, #0
bl GetNextFrame
_0802F29E:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0802F2AA
subs r0, #1
strb r0, [r4, #0xe]
b _0802F2FE
_0802F2AA:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0802F2E4
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0802F2FE
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x10
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xa]
strb r0, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x82
ldrh r0, [r0]
lsls r0, r0, #4
str r0, [r4, #0x20]
adds r0, r4, #0
bl sub_0802F45C
adds r0, r4, #0
movs r1, #2
bl InitializeAnimation
b _0802F2FE
_0802F2E4:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0802F2FE
movs r0, #0x40
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #1
bl InitializeAnimation
_0802F2FE:
pop {r4, pc}
thumb_func_start sub_0802F300
sub_0802F300: @ 0x0802F300
push {r4, r5, r6, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_080AEF88
movs r0, #0x36
ldrsh r6, [r4, r0]
bl Random
adds r5, r0, #0
movs r0, #0xf
ands r5, r0
adds r0, r4, #0
adds r0, #0x80
ldrh r1, [r0]
adds r0, r4, #0
bl sub_080044EC
cmp r0, #1
bne _0802F364
movs r0, #0
movs r2, #3
strb r2, [r4, #0xc]
strb r0, [r4, #0xd]
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0802F33C
movs r5, #0
_0802F33C:
cmp r5, #0
bne _0802F344
movs r0, #0xc0
b _0802F350
_0802F344:
ldr r0, _0802F360 @ =gUnk_080CDEF8
adds r1, r5, #0
ands r1, r2
adds r1, r1, r0
ldrb r0, [r1]
adds r0, r0, r5
_0802F350:
strb r0, [r4, #0xe]
movs r0, #0
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #3
bl InitializeAnimation
b _0802F3F0
.align 2, 0
_0802F360: .4byte gUnk_080CDEF8
_0802F364:
ldrh r0, [r4, #0x2a]
cmp r0, #0
beq _0802F374
adds r1, r0, #0
adds r0, r4, #0
bl sub_0800417E
b _0802F38C
_0802F374:
adds r0, r4, #0
bl sub_080002B8
movs r1, #0xf0
ands r1, r0
cmp r1, #0x50
bne _0802F38C
ldrb r0, [r4, #0x15]
adds r0, #0x10
movs r1, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
_0802F38C:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0802F3AC
movs r0, #0x10
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0802F3AC
subs r0, #1
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_0802F45C
_0802F3AC:
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _0802F3C6
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r6, r0
bge _0802F3C6
adds r0, r4, #0
movs r1, #4
bl InitializeAnimation
movs r0, #1
strb r0, [r4, #0xd]
_0802F3C6:
movs r0, #0xc
rsbs r0, r0, #0
cmp r6, r0
bge _0802F3DA
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x40
b _0802F3E4
_0802F3DA:
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x80
_0802F3E4:
orrs r0, r2
strb r0, [r4, #0x19]
ldrb r0, [r4, #0x1b]
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x1b]
_0802F3F0:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0802F3F4
sub_0802F3F4: @ 0x0802F3F4
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 _0802F45A
adds r0, r4, #0
adds r0, #0x7c
ldrb r1, [r0]
adds r2, r0, #0
cmp r1, #1
bhi _0802F44C
ldrb r0, [r4, #0xa]
movs r1, #1
ands r0, r1
cmp r0, #0
beq _0802F44C
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x10
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xa]
strb r0, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x82
ldrh r0, [r0]
lsls r0, r0, #4
str r0, [r4, #0x20]
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
adds r0, r4, #0
bl sub_0802F45C
adds r0, r4, #0
movs r1, #2
bl InitializeAnimation
b _0802F45A
_0802F44C:
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r2]
adds r0, r4, #0
bl InitializeAnimation
_0802F45A:
pop {r4, pc}
thumb_func_start sub_0802F45C
sub_0802F45C: @ 0x0802F45C
push {r4, lr}
adds r4, r0, #0
bl sub_08049FA0
cmp r0, #0
bne _0802F472
adds r0, r4, #0
bl sub_08049EE4
strb r0, [r4, #0x15]
b _0802F49E
_0802F472:
adds r0, r4, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _0802F48A
adds r0, r4, #0
movs r1, #1
bl sub_08049F84
strb r0, [r4, #0x15]
b _0802F49E
_0802F48A:
bl Random
movs r1, #0xf
ands r1, r0
adds r1, #0x18
ldrb r0, [r4, #0x15]
adds r1, r1, r0
movs r0, #0x1f
ands r1, r0
strb r1, [r4, #0x15]
_0802F49E:
pop {r4, pc}