mirror of https://github.com/zeldaret/tmc.git
813 lines
13 KiB
ArmAsm
813 lines
13 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
|
|
thumb_func_start Beetle
|
|
Beetle: @ 0x08021758
|
|
push {lr}
|
|
ldr r1, _08021764 @ =gUnk_080CB590
|
|
bl EnemyFunctionHandler
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08021764: .4byte gUnk_080CB590
|
|
|
|
thumb_func_start sub_08021768
|
|
sub_08021768: @ 0x08021768
|
|
push {lr}
|
|
ldr r2, _0802177C @ =gUnk_080CB5A8
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0802177C: .4byte gUnk_080CB5A8
|
|
|
|
thumb_func_start sub_08021780
|
|
sub_08021780: @ 0x08021780
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x41
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x80
|
|
beq _08021792
|
|
cmp r0, #0x93
|
|
beq _080217F4
|
|
b _080217FA
|
|
_08021792:
|
|
ldr r0, _080217A4 @ =gLinkState
|
|
adds r0, #0xa8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x18
|
|
bne _080217A8
|
|
adds r0, r4, #0
|
|
bl sub_08021768
|
|
b _080217FA
|
|
.align 2, 0
|
|
_080217A4: .4byte gLinkState
|
|
_080217A8:
|
|
movs r1, #0
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0xb4
|
|
strb r0, [r4, #0xe]
|
|
strb r1, [r4, #0xf]
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r4, #0x10]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080217EC @ =gLinkEntity
|
|
adds r1, r4, #0
|
|
bl CopyPositionAndSpriteOffset
|
|
ldr r0, _080217F0 @ =0x0000FFFF
|
|
strh r0, [r4, #0x36]
|
|
adds r1, r4, #0
|
|
adds r1, #0x87
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #6
|
|
bl InitializeAnimation
|
|
b _080217FA
|
|
.align 2, 0
|
|
_080217EC: .4byte gLinkEntity
|
|
_080217F0: .4byte 0x0000FFFF
|
|
_080217F4:
|
|
adds r0, r4, #0
|
|
bl sub_08021768
|
|
_080217FA:
|
|
adds r0, r4, #0
|
|
adds r0, #0x45
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
bne _08021808
|
|
subs r0, #3
|
|
strb r1, [r0]
|
|
_08021808:
|
|
ldr r1, _08021814 @ =gUnk_080CB590
|
|
adds r0, r4, #0
|
|
bl sub_0804AA30
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08021814: .4byte gUnk_080CB590
|
|
|
|
thumb_func_start sub_08021818
|
|
sub_08021818: @ 0x08021818
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
ldrb r0, [r3, #0xa]
|
|
cmp r0, #0
|
|
bne _0802182A
|
|
adds r0, r3, #0
|
|
bl sub_0804A7D4
|
|
b _08021844
|
|
_0802182A:
|
|
ldr r2, [r3, #0x50]
|
|
cmp r2, #0
|
|
beq _0802183A
|
|
ldrb r0, [r2, #0xf]
|
|
subs r0, #1
|
|
movs r1, #0
|
|
strb r0, [r2, #0xf]
|
|
str r1, [r3, #0x50]
|
|
_0802183A:
|
|
adds r0, r3, #0
|
|
movs r1, #0xf0
|
|
movs r2, #0
|
|
bl CreateDeathFx
|
|
_08021844:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08021848
|
|
sub_08021848: @ 0x08021848
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F520
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _0802186C
|
|
ldr r0, _08021868 @ =gUnk_080CB5C8
|
|
ldrb r1, [r4, #0xd]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
b _0802187A
|
|
.align 2, 0
|
|
_08021868: .4byte gUnk_080CB5C8
|
|
_0802186C:
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
strh r1, [r4, #0x36]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl InitializeAnimation
|
|
_0802187A:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0802187C
|
|
sub_0802187C: @ 0x0802187C
|
|
movs r1, #2
|
|
strb r1, [r0, #0xd]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start nullsub_130
|
|
nullsub_130: @ 0x08021884
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08021888
|
|
sub_08021888: @ 0x08021888
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F3E4
|
|
cmp r0, #0
|
|
beq _0802189A
|
|
adds r0, r4, #0
|
|
bl sub_08021818
|
|
_0802189A:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0802189C
|
|
sub_0802189C: @ 0x0802189C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0804A720
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
strb r0, [r4, #0x1c]
|
|
adds r0, r4, #0
|
|
movs r1, #3
|
|
bl InitializeAnimation
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080218B4
|
|
sub_080218B4: @ 0x080218B4
|
|
push {lr}
|
|
ldr r2, _080218C8 @ =gUnk_080CB5D4
|
|
ldrb r1, [r0, #0xb]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080218C8: .4byte gUnk_080CB5D4
|
|
|
|
thumb_func_start sub_080218CC
|
|
sub_080218CC: @ 0x080218CC
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
ldrb r0, [r5, #0xd]
|
|
cmp r0, #0
|
|
bne _08021916
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r5, #0xd]
|
|
ldrb r1, [r5, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, #0x18]
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
bl sub_08049F84
|
|
adds r4, r0, #0
|
|
bl Random
|
|
movs r1, #0x10
|
|
eors r4, r1
|
|
ldr r2, _08021980 @ =gUnk_080CB5DC
|
|
movs r1, #7
|
|
ands r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, r0, r4
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
strb r0, [r5, #0x15]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r5, #0x24]
|
|
movs r0, #0x90
|
|
lsls r0, r0, #9
|
|
str r0, [r5, #0x20]
|
|
_08021916:
|
|
adds r0, r5, #0
|
|
bl GetNextFrame
|
|
adds r2, r5, #0
|
|
adds r2, #0x5a
|
|
ldrb r1, [r2]
|
|
movs r6, #1
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
adds r4, r2, #0
|
|
cmp r0, #0
|
|
beq _08021948
|
|
adds r0, r5, #0
|
|
bl sub_080AEFE0
|
|
movs r1, #0xe0
|
|
lsls r1, r1, #5
|
|
adds r0, r5, #0
|
|
bl sub_080044EC
|
|
cmp r0, #0
|
|
bne _08021948
|
|
adds r0, r5, #0
|
|
adds r0, #0x59
|
|
strb r6, [r0]
|
|
_08021948:
|
|
ldrb r1, [r4]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0802197C
|
|
movs r0, #2
|
|
strb r0, [r5, #0xc]
|
|
bl Random
|
|
movs r1, #0x38
|
|
ands r0, r1
|
|
adds r0, #8
|
|
strb r0, [r5, #0xe]
|
|
movs r0, #1
|
|
strb r0, [r5, #0xf]
|
|
ldrb r1, [r5, #0x10]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x10]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #1
|
|
strh r0, [r5, #0x24]
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl InitializeAnimation
|
|
_0802197C:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08021980: .4byte gUnk_080CB5DC
|
|
|
|
thumb_func_start sub_08021984
|
|
sub_08021984: @ 0x08021984
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #0
|
|
bne _080219C2
|
|
movs r0, #1
|
|
strb r0, [r4, #0xd]
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x10]
|
|
ldrb r0, [r4, #0x18]
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
ldr r0, _08021A08 @ =0x0000FF80
|
|
strh r0, [r4, #0x36]
|
|
ldrb r2, [r4, #0x19]
|
|
movs r1, #0x3f
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
movs r2, #0x40
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x19]
|
|
ldrb r0, [r4, #0x1b]
|
|
ands r1, r0
|
|
orrs r1, r2
|
|
strb r1, [r4, #0x1b]
|
|
ldr r0, _08021A0C @ =0x0000012D
|
|
bl sub_08004488
|
|
_080219C2:
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #5
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
bne _08021A04
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x10
|
|
strb r0, [r4, #0xe]
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #1
|
|
strh r0, [r4, #0x24]
|
|
adds r1, r4, #0
|
|
adds r1, #0x86
|
|
movs r0, #0x3c
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl InitializeAnimation
|
|
adds r0, r4, #0
|
|
bl UpdateSpriteOrderAndFlip
|
|
_08021A04:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08021A08: .4byte 0x0000FF80
|
|
_08021A0C: .4byte 0x0000012D
|
|
|
|
thumb_func_start sub_08021A10
|
|
sub_08021A10: @ 0x08021A10
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl GetNextFrame
|
|
ldr r1, _08021A60 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
movs r2, #0x78
|
|
movs r3, #0x50
|
|
bl sub_080041A0
|
|
cmp r0, #0
|
|
beq _08021A5E
|
|
adds r0, r4, #0
|
|
bl sub_08021D00
|
|
cmp r0, #0
|
|
bne _08021A5E
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08021A5E
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
bl Random
|
|
movs r1, #0x3f
|
|
ands r0, r1
|
|
adds r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
ldrb r1, [r4, #0x15]
|
|
adds r0, r4, #0
|
|
bl sub_08021D44
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl InitializeAnimation
|
|
_08021A5E:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08021A60: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_08021A64
|
|
sub_08021A64: @ 0x08021A64
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08021D00
|
|
cmp r0, #0
|
|
bne _08021AD4
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
movs r5, #0xff
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08021A96
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl InitializeAnimation
|
|
_08021A96:
|
|
ldrb r0, [r4, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
bne _08021AC8
|
|
movs r0, #8
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08049F84
|
|
adds r1, r0, #0
|
|
cmp r1, #0xff
|
|
bne _08021AC2
|
|
movs r0, #7
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl InitializeAnimation
|
|
b _08021AD4
|
|
_08021AC2:
|
|
adds r0, r4, #0
|
|
bl sub_08021D44
|
|
_08021AC8:
|
|
adds r0, r4, #0
|
|
bl sub_080AEF88
|
|
adds r0, r4, #0
|
|
bl GetNextFrame
|
|
_08021AD4:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08021AD8
|
|
sub_08021AD8: @ 0x08021AD8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl GetNextFrame
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08021B3A
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _08021B1E
|
|
movs r0, #0
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08049F84
|
|
cmp r0, #0xff
|
|
bne _08021B16
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl InitializeAnimation
|
|
b _08021B60
|
|
_08021B16:
|
|
strb r0, [r4, #0x15]
|
|
movs r0, #0x7c
|
|
bl sub_08004488
|
|
_08021B1E:
|
|
adds r0, r4, #0
|
|
bl sub_080AEFE0
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #5
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
bne _08021B3A
|
|
adds r1, r4, #0
|
|
adds r1, #0x59
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
_08021B3A:
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08021B60
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x14
|
|
strb r0, [r4, #0xe]
|
|
adds r1, r4, #0
|
|
adds r1, #0x86
|
|
movs r0, #0x3c
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl InitializeAnimation
|
|
_08021B60:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08021B64
|
|
sub_08021B64: @ 0x08021B64
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _08021B88 @ =gLinkState
|
|
ldr r1, [r0, #0x30]
|
|
movs r2, #4
|
|
ands r1, r2
|
|
adds r6, r0, #0
|
|
cmp r1, #0
|
|
beq _08021B8C
|
|
movs r1, #0
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
str r1, [r4, #0x34]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl InitializeAnimation
|
|
b _08021C4E
|
|
.align 2, 0
|
|
_08021B88: .4byte gLinkState
|
|
_08021B8C:
|
|
movs r5, #1
|
|
adds r0, r6, #0
|
|
adds r0, #0xa8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xb
|
|
beq _08021BBA
|
|
cmp r0, #0x14
|
|
beq _08021BBA
|
|
bl sub_0807953C
|
|
cmp r0, #0
|
|
beq _08021BAE
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r0, r1, #1
|
|
adds r0, r0, r1
|
|
adds r5, r0, #0
|
|
adds r5, #8
|
|
_08021BAE:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r5, r0, r5
|
|
cmp r5, #0
|
|
bge _08021BB8
|
|
movs r5, #0
|
|
_08021BB8:
|
|
strb r5, [r4, #0xe]
|
|
_08021BBA:
|
|
ldr r0, [r6, #0x30]
|
|
movs r1, #0x88
|
|
lsls r1, r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08021BC8
|
|
movs r5, #0
|
|
_08021BC8:
|
|
cmp r5, #0
|
|
bne _08021C04
|
|
movs r0, #6
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #9
|
|
str r0, [r4, #0x20]
|
|
adds r0, r4, #0
|
|
adds r0, #0x87
|
|
strb r5, [r0]
|
|
ldr r2, _08021BEC @ =gLinkEntity
|
|
ldrb r1, [r2, #0x15]
|
|
adds r0, r1, #0
|
|
cmp r0, #0xff
|
|
beq _08021BF0
|
|
movs r0, #0x10
|
|
b _08021BF6
|
|
.align 2, 0
|
|
_08021BEC: .4byte gLinkEntity
|
|
_08021BF0:
|
|
ldrb r0, [r2, #0x14]
|
|
lsls r0, r0, #2
|
|
movs r1, #0x10
|
|
_08021BF6:
|
|
eors r0, r1
|
|
strb r0, [r4, #0x15]
|
|
adds r0, r4, #0
|
|
movs r1, #5
|
|
bl InitializeAnimation
|
|
b _08021C4E
|
|
_08021C04:
|
|
ldrb r1, [r6, #0x1a]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r6, #0x1a]
|
|
adds r1, r6, #0
|
|
adds r1, #0x80
|
|
ldrh r0, [r1]
|
|
subs r0, #0x50
|
|
strh r0, [r1]
|
|
adds r1, #0x2a
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
ldr r0, _08021C50 @ =gLinkEntity
|
|
adds r1, r4, #0
|
|
bl CopyPositionAndSpriteOffset
|
|
ldr r2, _08021C54 @ =gUnk_080CB5E4
|
|
ldrb r1, [r4, #0xf]
|
|
adds r0, r1, #1
|
|
strb r0, [r4, #0xf]
|
|
movs r0, #0xe
|
|
ands r0, r1
|
|
lsrs r0, r0, #1
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
ldrh r1, [r4, #0x2e]
|
|
adds r0, r0, r1
|
|
strh r0, [r4, #0x2e]
|
|
ldrh r0, [r4, #0x36]
|
|
subs r0, #1
|
|
strh r0, [r4, #0x36]
|
|
adds r0, r4, #0
|
|
bl GetNextFrame
|
|
_08021C4E:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08021C50: .4byte gLinkEntity
|
|
_08021C54: .4byte gUnk_080CB5E4
|
|
|
|
thumb_func_start sub_08021C58
|
|
sub_08021C58: @ 0x08021C58
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
bl GetNextFrame
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r5, #1
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08021C8A
|
|
adds r0, r4, #0
|
|
bl sub_080AEFE0
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #5
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
bne _08021C8A
|
|
adds r0, r4, #0
|
|
adds r0, #0x59
|
|
strb r5, [r0]
|
|
_08021C8A:
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08021CCC
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
movs r2, #0x3c
|
|
strb r2, [r4, #0xe]
|
|
movs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x10]
|
|
adds r3, r4, #0
|
|
adds r3, #0x29
|
|
ldrb r1, [r3]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
strb r2, [r0]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl InitializeAnimation
|
|
_08021CCC:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08021CD0
|
|
sub_08021CD0: @ 0x08021CD0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08021CE6
|
|
adds r0, r4, #0
|
|
bl GetNextFrame
|
|
_08021CE6:
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08049F84
|
|
cmp r0, #0xff
|
|
beq _08021CFE
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl InitializeAnimation
|
|
_08021CFE:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08021D00
|
|
sub_08021D00: @ 0x08021D00
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r1, r4, #0
|
|
adds r1, #0x86
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
beq _08021D16
|
|
subs r0, #1
|
|
strb r0, [r1]
|
|
movs r0, #0
|
|
b _08021D40
|
|
_08021D16:
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0x10
|
|
bl sub_08049F64
|
|
cmp r0, #0
|
|
bne _08021D28
|
|
movs r0, #0
|
|
b _08021D40
|
|
_08021D28:
|
|
movs r0, #4
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #9
|
|
str r0, [r4, #0x20]
|
|
adds r0, r4, #0
|
|
movs r1, #4
|
|
bl InitializeAnimation
|
|
movs r0, #1
|
|
_08021D40:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08021D44
|
|
sub_08021D44: @ 0x08021D44
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
adds r1, #4
|
|
movs r0, #0x18
|
|
ands r1, r0
|
|
strb r1, [r2, #0x15]
|
|
movs r0, #8
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08021D5E
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #1
|
|
b _08021D60
|
|
_08021D5E:
|
|
movs r0, #0xc0
|
|
_08021D60:
|
|
strh r0, [r2, #0x24]
|
|
pop {pc}
|