mirror of https://github.com/zeldaret/tmc.git
1008 lines
16 KiB
ArmAsm
1008 lines
16 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
|
|
thumb_func_start Mulldozer
|
|
Mulldozer: @ 0x08032C74
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _08032C90 @ =gUnk_080CEA1C
|
|
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
|
|
_08032C90: .4byte gUnk_080CEA1C
|
|
|
|
thumb_func_start sub_08032C94
|
|
sub_08032C94: @ 0x08032C94
|
|
push {lr}
|
|
ldr r2, _08032CA8 @ =gUnk_080CEA34
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08032CA8: .4byte gUnk_080CEA34
|
|
|
|
thumb_func_start sub_08032CAC
|
|
sub_08032CAC: @ 0x08032CAC
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x43
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08032CC0
|
|
adds r0, r4, #0
|
|
movs r1, #0x1c
|
|
bl sub_0804A9FC
|
|
_08032CC0:
|
|
ldr r1, _08032D18 @ =gUnk_080CEA1C
|
|
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 _08032D3A
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
cmp r0, #3
|
|
bgt _08032D2C
|
|
cmp r0, #2
|
|
blt _08032D2C
|
|
movs r0, #6
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0xa]
|
|
movs r1, #0xc8
|
|
cmp r0, #0
|
|
beq _08032CF0
|
|
movs r1, #0x5a
|
|
_08032CF0:
|
|
strb r1, [r4, #0xe]
|
|
movs r0, #2
|
|
strb r0, [r4, #0xf]
|
|
adds r1, r4, #0
|
|
adds r1, #0x80
|
|
movs r0, #3
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
adds r0, #0x3e
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, #0x15]
|
|
ldrb r5, [r4, #0x15]
|
|
bl Random
|
|
movs r1, #0x40
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08032D1C
|
|
adds r2, r5, #4
|
|
b _08032D20
|
|
.align 2, 0
|
|
_08032D18: .4byte gUnk_080CEA1C
|
|
_08032D1C:
|
|
adds r2, r5, #0
|
|
adds r2, #0x1c
|
|
_08032D20:
|
|
movs r1, #0
|
|
movs r0, #0x1f
|
|
ands r0, r2
|
|
strb r0, [r4, #0x15]
|
|
strh r1, [r4, #0x24]
|
|
b _08032D3A
|
|
_08032D2C:
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #4
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
bl sub_08033174
|
|
_08032D3A:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_08032D3C
|
|
sub_08032D3C: @ 0x08032D3C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08032D66
|
|
movs r0, #2
|
|
strb r0, [r4, #0xf]
|
|
ldrb r0, [r4, #0x14]
|
|
adds r0, #1
|
|
movs r1, #7
|
|
ands r0, r1
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_08032F24
|
|
adds r0, r4, #0
|
|
bl sub_080331E8
|
|
_08032D66:
|
|
adds r0, r4, #0
|
|
bl sub_08001324
|
|
|
|
thumb_func_start nullsub_156
|
|
nullsub_156: @ 0x08032D6C
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start nullsub_157
|
|
nullsub_157: @ 0x08032D70
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08032D74
|
|
sub_08032D74: @ 0x08032D74
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0804A720
|
|
adds r0, r4, #0
|
|
bl sub_08033058
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08032D84
|
|
sub_08032D84: @ 0x08032D84
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08032D9C
|
|
adds r0, r4, #0
|
|
bl sub_080330C0
|
|
b _08032DAC
|
|
_08032D9C:
|
|
adds r0, r4, #0
|
|
bl sub_08033364
|
|
cmp r0, #0
|
|
beq _08032DAC
|
|
adds r0, r4, #0
|
|
bl sub_08033100
|
|
_08032DAC:
|
|
adds r0, r4, #0
|
|
bl sub_08032F64
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08032DB4
|
|
sub_08032DB4: @ 0x08032DB4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08032DCA
|
|
adds r0, r4, #0
|
|
bl sub_08033058
|
|
_08032DCA:
|
|
adds r0, r4, #0
|
|
bl sub_08032F48
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08032DD4
|
|
sub_08032DD4: @ 0x08032DD4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08032E3C
|
|
movs r0, #4
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xf]
|
|
movs r0, #0xf0
|
|
lsls r0, r0, #1
|
|
strh r0, [r4, #0x24]
|
|
adds r0, r4, #0
|
|
bl sub_080331B4
|
|
adds r2, r4, #0
|
|
adds r2, #0x82
|
|
ldrb r1, [r2]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08032E18
|
|
ldrb r0, [r4, #0x15]
|
|
adds r0, #0x1c
|
|
movs r1, #0x1c
|
|
ands r0, r1
|
|
strb r0, [r4, #0x15]
|
|
ldrb r1, [r2]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
b _08032E28
|
|
_08032E18:
|
|
ldrb r0, [r4, #0x15]
|
|
adds r0, #4
|
|
movs r1, #0x1c
|
|
ands r0, r1
|
|
strb r0, [r4, #0x15]
|
|
ldrb r0, [r2]
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
_08032E28:
|
|
strb r0, [r2]
|
|
ldrb r0, [r4, #0x15]
|
|
lsrs r0, r0, #2
|
|
strb r0, [r4, #0x14]
|
|
ldrb r1, [r4, #0x14]
|
|
adds r1, #4
|
|
adds r0, r4, #0
|
|
bl InitializeAnimation
|
|
b _08032E4E
|
|
_08032E3C:
|
|
adds r0, r4, #0
|
|
bl sub_08032F90
|
|
adds r0, r4, #0
|
|
bl sub_080331E8
|
|
adds r0, r4, #0
|
|
bl sub_08032F64
|
|
_08032E4E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08032E50
|
|
sub_08032E50: @ 0x08032E50
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08032E70
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #4
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
bl sub_08033174
|
|
b _08032E82
|
|
_08032E70:
|
|
adds r0, r4, #0
|
|
bl sub_08033000
|
|
adds r0, r4, #0
|
|
bl sub_080331E8
|
|
adds r0, r4, #0
|
|
bl sub_08032F64
|
|
_08032E82:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08032E84
|
|
sub_08032E84: @ 0x08032E84
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
movs r1, #0xff
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08032EA4
|
|
adds r0, r4, #0
|
|
bl sub_08033320
|
|
adds r0, r4, #0
|
|
bl sub_080330C0
|
|
b _08032EC0
|
|
_08032EA4:
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _08032EC0
|
|
ldrb r0, [r4, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08032EC0
|
|
movs r0, #4
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
bl sub_080332A8
|
|
_08032EC0:
|
|
adds r0, r4, #0
|
|
bl sub_080331E8
|
|
adds r0, r4, #0
|
|
bl ProcessMovement
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08032ED0
|
|
sub_08032ED0: @ 0x08032ED0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
bl ProcessMovement
|
|
adds r0, r4, #0
|
|
bl sub_08032F48
|
|
ldrb r0, [r4, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
movs r5, #0xff
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08032F06
|
|
movs r0, #2
|
|
strb r0, [r4, #0xf]
|
|
ldrb r0, [r4, #0x14]
|
|
adds r0, #1
|
|
movs r1, #7
|
|
ands r0, r1
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_08032F24
|
|
adds r0, r4, #0
|
|
bl sub_080331E8
|
|
_08032F06:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
bne _08032F20
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #4
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
bl sub_08033174
|
|
_08032F20:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08032F24
|
|
sub_08032F24: @ 0x08032F24
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
adds r0, #0x80
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _08032F38
|
|
movs r1, #0
|
|
ldrb r0, [r2, #0x14]
|
|
lsrs r0, r0, #1
|
|
b _08032F3C
|
|
_08032F38:
|
|
movs r1, #4
|
|
ldrb r0, [r2, #0x14]
|
|
_08032F3C:
|
|
adds r1, r1, r0
|
|
adds r0, r2, #0
|
|
bl InitializeAnimation
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08032F48
|
|
sub_08032F48: @ 0x08032F48
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x80
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _08032F5A
|
|
adds r0, r4, #0
|
|
bl GetNextFrame
|
|
_08032F5A:
|
|
adds r0, r4, #0
|
|
bl GetNextFrame
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08032F64
|
|
sub_08032F64: @ 0x08032F64
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrh r0, [r4, #0x2a]
|
|
cmp r0, #0
|
|
beq _08032F82
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_0800417E
|
|
ldrb r0, [r4, #0x15]
|
|
lsrs r0, r0, #2
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_08032F24
|
|
_08032F82:
|
|
adds r0, r4, #0
|
|
bl sub_08032F48
|
|
adds r0, r4, #0
|
|
bl ProcessMovement
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08032F90
|
|
sub_08032F90: @ 0x08032F90
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xa]
|
|
cmp r0, #0
|
|
bne _08032FC0
|
|
ldrb r0, [r2, #0xe]
|
|
cmp r0, #0x10
|
|
bne _08032FA8
|
|
adds r1, r2, #0
|
|
adds r1, #0x80
|
|
movs r0, #2
|
|
strb r0, [r1]
|
|
_08032FA8:
|
|
ldrb r0, [r2, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r2, #0xf]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08032FFE
|
|
movs r0, #8
|
|
strb r0, [r2, #0xf]
|
|
adds r0, r2, #0
|
|
bl sub_08033280
|
|
b _08032FFE
|
|
_08032FC0:
|
|
ldrb r0, [r2, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r2, #0xf]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08032FFE
|
|
movs r0, #4
|
|
strb r0, [r2, #0xf]
|
|
adds r0, r2, #0
|
|
adds r0, #0x82
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08032FE4
|
|
ldrb r0, [r2, #0x15]
|
|
adds r0, #0x1c
|
|
b _08032FE8
|
|
_08032FE4:
|
|
ldrb r0, [r2, #0x15]
|
|
adds r0, #4
|
|
_08032FE8:
|
|
movs r1, #0x1c
|
|
ands r0, r1
|
|
strb r0, [r2, #0x15]
|
|
ldrb r0, [r2, #0x15]
|
|
lsrs r0, r0, #2
|
|
strb r0, [r2, #0x14]
|
|
ldrb r1, [r2, #0x14]
|
|
adds r1, #4
|
|
adds r0, r2, #0
|
|
bl InitializeAnimation
|
|
_08032FFE:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08033000
|
|
sub_08033000: @ 0x08033000
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r2, #0xf]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08033056
|
|
movs r0, #0x10
|
|
strb r0, [r2, #0xf]
|
|
adds r3, r2, #0
|
|
adds r3, #0x82
|
|
ldrb r1, [r3]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08033034
|
|
ldrb r0, [r2, #0x15]
|
|
adds r0, #0x18
|
|
movs r1, #0x1c
|
|
ands r0, r1
|
|
strb r0, [r2, #0x15]
|
|
ldrb r1, [r3]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
b _08033044
|
|
_08033034:
|
|
ldrb r0, [r2, #0x15]
|
|
adds r0, #8
|
|
movs r1, #0x1c
|
|
ands r0, r1
|
|
strb r0, [r2, #0x15]
|
|
ldrb r0, [r3]
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
_08033044:
|
|
strb r0, [r3]
|
|
ldrb r0, [r2, #0x15]
|
|
lsrs r0, r0, #2
|
|
strb r0, [r2, #0x14]
|
|
ldrb r1, [r2, #0x14]
|
|
adds r1, #4
|
|
adds r0, r2, #0
|
|
bl InitializeAnimation
|
|
_08033056:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08033058
|
|
sub_08033058: @ 0x08033058
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
movs r6, #1
|
|
strb r6, [r5, #0xc]
|
|
adds r0, #0x80
|
|
strb r6, [r0]
|
|
bl Random
|
|
ldr r1, _080330A0 @ =gUnk_080CEA50
|
|
movs r4, #3
|
|
ands r0, r4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r5, #0xe]
|
|
adds r0, r5, #0
|
|
bl sub_08049FA0
|
|
cmp r0, #0
|
|
bne _080330A8
|
|
bl Random
|
|
ands r0, r4
|
|
cmp r0, #0
|
|
beq _080330A8
|
|
adds r0, r5, #0
|
|
bl sub_08049EE4
|
|
adds r4, r0, #0
|
|
bl Random
|
|
ldr r1, _080330A4 @ =gUnk_080CEA54
|
|
ands r0, r6
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
adds r0, r0, r4
|
|
b _080330AC
|
|
.align 2, 0
|
|
_080330A0: .4byte gUnk_080CEA50
|
|
_080330A4: .4byte gUnk_080CEA54
|
|
_080330A8:
|
|
bl Random
|
|
_080330AC:
|
|
movs r1, #0x18
|
|
ands r0, r1
|
|
strb r0, [r5, #0x15]
|
|
ldrb r0, [r5, #0x15]
|
|
lsrs r0, r0, #2
|
|
strb r0, [r5, #0x14]
|
|
adds r0, r5, #0
|
|
bl sub_08032F24
|
|
pop {r4, r5, r6, pc}
|
|
|
|
thumb_func_start sub_080330C0
|
|
sub_080330C0: @ 0x080330C0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x80
|
|
strb r1, [r0]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _080330E2
|
|
bl Random
|
|
movs r1, #0x38
|
|
ands r0, r1
|
|
adds r0, #0x18
|
|
b _080330E4
|
|
_080330E2:
|
|
movs r0, #6
|
|
_080330E4:
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0x60
|
|
strh r0, [r4, #0x24]
|
|
ldrb r0, [r4, #0x15]
|
|
adds r0, #4
|
|
movs r1, #0x18
|
|
ands r0, r1
|
|
strb r0, [r4, #0x15]
|
|
lsrs r0, r0, #2
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_08032F24
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08033100
|
|
sub_08033100: @ 0x08033100
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
ldrb r2, [r4, #0xa]
|
|
cmp r2, #0
|
|
bne _08033132
|
|
adds r1, r4, #0
|
|
adds r1, #0x80
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
movs r0, #0x30
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xf]
|
|
strh r2, [r4, #0x24]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08049F84
|
|
adds r0, #2
|
|
movs r1, #0x1c
|
|
ands r0, r1
|
|
strb r0, [r4, #0x15]
|
|
b _08033150
|
|
_08033132:
|
|
adds r1, r4, #0
|
|
adds r1, #0x80
|
|
movs r0, #2
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_080331B4
|
|
ldrb r0, [r4, #0xe]
|
|
adds r0, #0x10
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #4
|
|
strb r0, [r4, #0xf]
|
|
movs r0, #0xb0
|
|
lsls r0, r0, #1
|
|
strh r0, [r4, #0x24]
|
|
_08033150:
|
|
adds r1, r4, #0
|
|
adds r1, #0x83
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
bl Random
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
adds r1, r4, #0
|
|
adds r1, #0x82
|
|
strb r0, [r1]
|
|
ldrb r0, [r4, #0x15]
|
|
lsrs r0, r0, #2
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_08032F24
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08033174
|
|
sub_08033174: @ 0x08033174
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r1, r4, #0
|
|
adds r1, #0x80
|
|
movs r2, #0
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
ldrb r0, [r4, #0x15]
|
|
adds r1, #1
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
adds r0, #0x82
|
|
strb r2, [r0]
|
|
adds r0, #1
|
|
strb r2, [r0]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _080331A4
|
|
bl Random
|
|
movs r1, #0x18
|
|
ands r0, r1
|
|
adds r0, #0x18
|
|
b _080331A6
|
|
_080331A4:
|
|
movs r0, #0xc
|
|
_080331A6:
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0xa0
|
|
strh r0, [r4, #0x24]
|
|
adds r0, r4, #0
|
|
bl sub_08032F24
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080331B4
|
|
sub_080331B4: @ 0x080331B4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl Random
|
|
adds r1, r0, #0
|
|
movs r0, #0xf0
|
|
ands r1, r0
|
|
movs r2, #0x1e
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080331D0
|
|
movs r2, #0x3c
|
|
b _080331E4
|
|
_080331D0:
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080331DA
|
|
movs r2, #0x2d
|
|
_080331DA:
|
|
movs r0, #0x20
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _080331E4
|
|
movs r2, #0x4b
|
|
_080331E4:
|
|
strb r2, [r4, #0xe]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080331E8
|
|
sub_080331E8: @ 0x080331E8
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
movs r3, #0
|
|
ldrb r0, [r5, #0xc]
|
|
cmp r0, #5
|
|
beq _08033220
|
|
adds r1, r5, #0
|
|
adds r1, #0x83
|
|
ldrb r0, [r1]
|
|
adds r2, r0, #1
|
|
strb r2, [r1]
|
|
adds r0, r5, #0
|
|
adds r0, #0x80
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
beq _0803320C
|
|
movs r0, #0xf
|
|
b _0803320E
|
|
_0803320C:
|
|
movs r0, #7
|
|
_0803320E:
|
|
ands r2, r0
|
|
strb r2, [r1]
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _08033238
|
|
movs r3, #1
|
|
ldrb r0, [r5, #0x14]
|
|
lsls r6, r0, #1
|
|
b _08033238
|
|
_08033220:
|
|
adds r2, r5, #0
|
|
adds r2, #0x83
|
|
ldrb r0, [r2]
|
|
adds r0, #1
|
|
movs r1, #0xf
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
cmp r0, #0
|
|
bne _08033238
|
|
movs r3, #1
|
|
ldrb r0, [r5, #0x15]
|
|
lsrs r6, r0, #1
|
|
_08033238:
|
|
cmp r3, #0
|
|
beq _08033278
|
|
adds r0, r5, #0
|
|
movs r1, #2
|
|
movs r2, #0x40
|
|
bl CreateFx
|
|
adds r4, r0, #0
|
|
cmp r4, #0
|
|
beq _08033278
|
|
ldr r2, _0803327C @ =gUnk_080CEA56
|
|
adds r2, r6, r2
|
|
adds r3, r5, #0
|
|
adds r3, #0x5a
|
|
ldrb r0, [r3]
|
|
movs r1, #0x20
|
|
eors r0, r1
|
|
strb r0, [r3]
|
|
movs r0, #0
|
|
ldrsb r0, [r2, r0]
|
|
ldrh r1, [r4, #0x2e]
|
|
adds r0, r0, r1
|
|
strh r0, [r4, #0x2e]
|
|
movs r0, #1
|
|
ldrsb r0, [r2, r0]
|
|
ldrh r1, [r4, #0x32]
|
|
adds r0, r0, r1
|
|
strh r0, [r4, #0x32]
|
|
movs r0, #0x86
|
|
lsls r0, r0, #1
|
|
bl EnqueueSFX
|
|
_08033278:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0803327C: .4byte gUnk_080CEA56
|
|
|
|
thumb_func_start sub_08033280
|
|
sub_08033280: @ 0x08033280
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #1
|
|
bl sub_08049F84
|
|
adds r0, #2
|
|
movs r1, #0x1c
|
|
ands r0, r1
|
|
strb r0, [r4, #0x15]
|
|
lsrs r0, r0, #2
|
|
ldrb r1, [r4, #0x14]
|
|
cmp r0, r1
|
|
beq _080332A4
|
|
strb r0, [r4, #0x14]
|
|
adds r1, r0, #4
|
|
adds r0, r4, #0
|
|
bl InitializeAnimation
|
|
_080332A4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080332A8
|
|
sub_080332A8: @ 0x080332A8
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
ldrb r6, [r4, #0x15]
|
|
adds r5, r4, #0
|
|
adds r5, #0x81
|
|
ldrb r0, [r5]
|
|
strb r0, [r4, #0x15]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08049F84
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_08004596
|
|
ldrb r0, [r4, #0x15]
|
|
strb r0, [r5]
|
|
strb r6, [r4, #0x15]
|
|
ldrb r0, [r5]
|
|
adds r0, #2
|
|
movs r1, #0x1c
|
|
ands r0, r1
|
|
asrs r6, r0, #2
|
|
ldrb r0, [r4, #0x14]
|
|
cmp r6, r0
|
|
beq _080332E4
|
|
adds r0, r4, #0
|
|
adds r1, r6, #0
|
|
bl sub_080332E8
|
|
_080332E4:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080332E8
|
|
sub_080332E8: @ 0x080332E8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r3, r4, #0
|
|
adds r3, #0x82
|
|
movs r0, #0
|
|
strb r0, [r3]
|
|
ldrb r0, [r4, #0x14]
|
|
subs r2, r1, r0
|
|
cmp r2, #0
|
|
ble _08033304
|
|
cmp r2, #4
|
|
bgt _08033310
|
|
movs r0, #1
|
|
b _08033312
|
|
_08033304:
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
cmp r2, r0
|
|
bge _08033310
|
|
movs r0, #1
|
|
b _08033312
|
|
_08033310:
|
|
movs r0, #2
|
|
_08033312:
|
|
strb r0, [r3]
|
|
strb r1, [r4, #0x14]
|
|
adds r1, #4
|
|
adds r0, r4, #0
|
|
bl InitializeAnimation
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08033320
|
|
sub_08033320: @ 0x08033320
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0x14]
|
|
lsls r5, r0, #2
|
|
movs r0, #4
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _08033360
|
|
adds r0, r4, #0
|
|
adds r0, #0x82
|
|
ldrb r0, [r0]
|
|
movs r1, #3
|
|
ands r1, r0
|
|
cmp r1, #1
|
|
beq _08033350
|
|
cmp r1, #2
|
|
beq _08033354
|
|
bl Random
|
|
movs r1, #0x10
|
|
ands r1, r0
|
|
movs r0, #0x1c
|
|
cmp r1, #0
|
|
beq _08033356
|
|
_08033350:
|
|
movs r0, #4
|
|
b _08033356
|
|
_08033354:
|
|
movs r0, #0x1c
|
|
_08033356:
|
|
adds r0, r0, r5
|
|
movs r1, #0x18
|
|
ands r0, r1
|
|
strb r0, [r4, #0x15]
|
|
b _08033362
|
|
_08033360:
|
|
strb r5, [r4, #0x15]
|
|
_08033362:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_08033364
|
|
sub_08033364: @ 0x08033364
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #1
|
|
bl sub_08049DF4
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _080333B4
|
|
ldrb r0, [r4, #0xa]
|
|
movs r3, #0x38
|
|
cmp r0, #0
|
|
beq _0803337E
|
|
movs r3, #0x48
|
|
_0803337E:
|
|
adds r0, r4, #0
|
|
adds r2, r3, #0
|
|
bl sub_080041A0
|
|
cmp r0, #0
|
|
beq _080333B4
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _080333AA
|
|
ldr r0, _080333B0 @ =gUnk_020000B0
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl GetFacingDirection
|
|
adds r1, r0, #0
|
|
adds r1, #2
|
|
movs r0, #0x1c
|
|
ands r1, r0
|
|
lsrs r1, r1, #2
|
|
ldrb r0, [r4, #0x14]
|
|
cmp r0, r1
|
|
bne _080333B4
|
|
_080333AA:
|
|
movs r0, #1
|
|
b _080333B6
|
|
.align 2, 0
|
|
_080333B0: .4byte gUnk_020000B0
|
|
_080333B4:
|
|
movs r0, #0
|
|
_080333B6:
|
|
pop {r4, pc}
|