tmc/asm/enemy4D.s

580 lines
9.2 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0803EBB4
sub_0803EBB4: @ 0x0803EBB4
push {r4, lr}
adds r4, r0, #0
adds r0, #0x7c
ldrb r1, [r0]
subs r1, #0xa
strb r1, [r0]
movs r0, #1
bl sub_08049DF4
cmp r0, #0
beq _0803EBE4
ldr r0, _0803EC10 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
bl GetFacingDirection
adds r0, #4
movs r1, #0x18
ands r0, r1
strb r0, [r4, #0x15]
adds r0, r4, #0
movs r1, #0
bl sub_0803E94C
_0803EBE4:
adds r0, r4, #0
bl sub_0803E9A4
adds r0, r4, #0
adds r0, #0x80
ldrh r1, [r0]
adds r0, #2
ldrh r2, [r0]
adds r0, r4, #0
movs r3, #2
bl sub_0806FCB8
cmp r0, #0
bne _0803EC14
movs r0, #4
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #0x10
bl sub_0803E94C
b _0803EC24
.align 2, 0
_0803EC10: .4byte gUnk_020000B0
_0803EC14:
adds r0, r4, #0
bl sub_0803EF20
cmp r0, #0
bne _0803EC24
adds r0, r4, #0
bl sub_0803EEA4
_0803EC24:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0803EC28
sub_0803EC28: @ 0x0803EC28
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x7c
ldrb r0, [r1]
subs r0, #0x10
strb r0, [r1]
adds r0, r4, #0
bl sub_0803E9A4
adds r1, r4, #0
adds r1, #0x7e
ldrb r0, [r1]
cmp r0, #0x1c
bls _0803EC4A
subs r0, #1
strb r0, [r1]
_0803EC4A:
adds r1, r4, #0
adds r1, #0x78
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0803EC64
movs r0, #3
strb r0, [r4, #0xc]
adds r1, #3
movs r0, #0
strb r0, [r1]
_0803EC64:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0803EC68
sub_0803EC68: @ 0x0803EC68
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x7c
ldrb r0, [r1]
subs r0, #0xa
strb r0, [r1]
adds r0, r4, #0
bl sub_0803E9A4
adds r1, r4, #0
adds r1, #0x7e
ldrb r0, [r1]
cmp r0, #0x27
bhi _0803EC8C
adds r0, #1
strb r0, [r1]
b _0803EC92
_0803EC8C:
adds r0, r4, #0
bl sub_0803EE8C
_0803EC92:
pop {r4, pc}
thumb_func_start sub_0803EC94
sub_0803EC94: @ 0x0803EC94
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x7c
ldrb r0, [r1]
subs r0, #0xa
strb r0, [r1]
adds r0, r4, #0
bl sub_0803E9A4
adds r5, r4, #0
adds r5, #0x80
ldrh r1, [r5]
adds r6, r4, #0
adds r6, #0x82
ldrh r2, [r6]
adds r0, r4, #0
movs r3, #1
bl sub_0806FCB8
cmp r0, #0
beq _0803ECD8
ldrh r0, [r5]
strh r0, [r4, #0x2e]
ldrh r0, [r6]
strh r0, [r4, #0x32]
adds r0, r4, #0
bl sub_0803EE8C
adds r0, r4, #0
movs r1, #0
bl sub_0803E94C
b _0803ED02
_0803ECD8:
adds r0, r4, #0
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
bne _0803ED02
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
ldrh r2, [r5]
ldrh r3, [r6]
bl sub_080045D4
strb r0, [r4, #0x15]
adds r0, r4, #0
movs r1, #0x10
bl sub_0803E94C
adds r0, r4, #0
bl ProcessMovement
_0803ED02:
pop {r4, r5, r6, pc}
thumb_func_start sub_0803ED04
sub_0803ED04: @ 0x0803ED04
push {r4, lr}
adds r4, r0, #0
adds r0, #0x7c
ldrb r1, [r0]
subs r1, #0xc
strb r1, [r0]
adds r0, r4, #0
bl sub_0803E9A4
adds r1, r4, #0
adds r1, #0x7e
ldrb r0, [r1]
subs r0, #4
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bgt _0803ED3C
movs r0, #0
strb r0, [r1]
movs r0, #6
strb r0, [r4, #0xc]
movs r0, #0xf
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x14]
adds r1, #0x20
adds r0, r4, #0
bl InitAnimationForceUpdate
_0803ED3C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0803ED40
sub_0803ED40: @ 0x0803ED40
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0803ED74
movs r0, #7
strb r0, [r2, #0xc]
movs r0, #1
strb r0, [r2, #0xe]
ldr r1, _0803ED78 @ =gUnk_080D08C4
ldrb r0, [r2, #0x14]
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r2, #0
adds r0, #0x7c
strb r1, [r0]
adds r1, r2, #0
adds r1, #0x7f
movs r0, #0xf6
strb r0, [r1]
adds r0, #0x65
bl EnqueueSFX
_0803ED74:
pop {pc}
.align 2, 0
_0803ED78: .4byte gUnk_080D08C4
thumb_func_start sub_0803ED7C
sub_0803ED7C: @ 0x0803ED7C
push {lr}
adds r2, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0803ED94
adds r0, r2, #0
bl UpdateAnimationSingleFrame
b _0803EDD0
_0803ED94:
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
adds r1, r2, #0
adds r1, #0x7f
cmp r0, #0
bne _0803EDAE
movs r0, #2
strb r0, [r2, #0xe]
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
_0803EDAE:
ldrb r0, [r1]
cmp r0, #0
beq _0803EDC0
adds r1, r2, #0
adds r1, #0x7e
ldrb r0, [r1]
adds r0, #5
strb r0, [r1]
b _0803EDD0
_0803EDC0:
movs r0, #8
strb r0, [r2, #0xc]
movs r0, #0x1e
strb r0, [r2, #0xe]
movs r0, #8
movs r1, #0
bl sub_08080964
_0803EDD0:
pop {pc}
.align 2, 0
thumb_func_start sub_0803EDD4
sub_0803EDD4: @ 0x0803EDD4
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0803EDE8
movs r0, #9
strb r0, [r1, #0xc]
_0803EDE8:
pop {pc}
.align 2, 0
thumb_func_start sub_0803EDEC
sub_0803EDEC: @ 0x0803EDEC
push {lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x7e
ldrb r0, [r1]
subs r0, #2
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xa
bhi _0803EE26
movs r0, #0xa
strb r0, [r2, #0xc]
movs r0, #0x3c
strb r0, [r2, #0xe]
ldrb r0, [r2, #0x14]
lsls r0, r0, #3
strb r0, [r2, #0x15]
subs r1, #2
movs r0, #0
strb r0, [r1]
adds r1, #3
movs r0, #0xfe
strb r0, [r1]
adds r0, r2, #0
movs r1, #0x10
bl sub_0803E94C
b _0803EE34
_0803EE26:
cmp r0, #0x12
bhi _0803EE34
ldr r2, [r2, #0x54]
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
_0803EE34:
pop {pc}
.align 2, 0
thumb_func_start sub_0803EE38
sub_0803EE38: @ 0x0803EE38
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0803EE60
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0803EE88
ldr r0, [r4, #0x54]
ldrb r1, [r0, #0x10]
movs r2, #0x80
orrs r1, r2
strb r1, [r0, #0x10]
adds r0, r4, #0
movs r1, #0
bl sub_0803E94C
b _0803EE88
_0803EE60:
adds r1, r4, #0
adds r1, #0x7c
ldrb r0, [r1]
subs r0, #0xa
strb r0, [r1]
adds r0, r4, #0
bl sub_0803E9A4
adds r1, r4, #0
adds r1, #0x7e
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x27
bls _0803EE88
adds r0, r4, #0
bl sub_0803EE8C
_0803EE88:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0803EE8C
sub_0803EE8C: @ 0x0803EE8C
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
adds r2, r0, #0
adds r2, #0x7a
movs r1, #0x1e
strb r1, [r2]
movs r1, #0
bl sub_0803E94C
pop {pc}
.align 2, 0
thumb_func_start sub_0803EEA4
sub_0803EEA4: @ 0x0803EEA4
push {r4, lr}
adds r4, r0, #0
movs r1, #1
bl sub_08049FDC
cmp r0, #0
beq _0803EEF8
adds r0, r4, #0
movs r1, #0x4e
bl sub_0803EF04
cmp r0, #0
beq _0803EEF8
ldr r0, _0803EEF4 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
movs r2, #0x12
bl sub_0804A044
adds r2, r0, #0
cmp r2, #0xff
beq _0803EEF8
adds r1, r4, #0
adds r1, #0x7a
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bne _0803EF00
movs r0, #5
strb r0, [r4, #0xc]
strb r2, [r4, #0x15]
adds r0, r4, #0
movs r1, #0
bl sub_0803E94C
movs r0, #1
b _0803EF02
.align 2, 0
_0803EEF4: .4byte gUnk_020000B0
_0803EEF8:
adds r1, r4, #0
adds r1, #0x7a
movs r0, #0x1e
strb r0, [r1]
_0803EF00:
movs r0, #0
_0803EF02:
pop {r4, pc}
thumb_func_start sub_0803EF04
sub_0803EF04: @ 0x0803EF04
push {r4, lr}
adds r3, r1, #0
ldr r1, _0803EF1C @ =gUnk_020000B0
ldr r2, [r1]
movs r4, #0x2e
ldrsh r1, [r2, r4]
movs r4, #0x32
ldrsh r2, [r2, r4]
subs r2, #4
bl sub_0806FCB8
pop {r4, pc}
.align 2, 0
_0803EF1C: .4byte gUnk_020000B0
thumb_func_start sub_0803EF20
sub_0803EF20: @ 0x0803EF20
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r6, _0803EF5C @ =gUnk_03003D80
ldr r4, [r6, #4]
cmp r4, r6
beq _0803EF6A
ldr r7, _0803EF60 @ =gUnk_080D08C8
_0803EF2E:
ldrb r0, [r4, #8]
cmp r0, #8
bne _0803EF64
ldrb r0, [r4, #9]
lsls r0, r0, #2
adds r0, r0, r7
ldr r2, [r0]
adds r0, r5, #0
adds r1, r4, #0
bl _call_via_r2
cmp r0, #0
beq _0803EF64
movs r0, #2
strb r0, [r5, #0xc]
adds r1, r5, #0
adds r1, #0x78
movs r0, #0xb4
strh r0, [r1]
adds r1, #3
movs r0, #1
strb r0, [r1]
b _0803EF6C
.align 2, 0
_0803EF5C: .4byte gUnk_03003D80
_0803EF60: .4byte gUnk_080D08C8
_0803EF64:
ldr r4, [r4, #4]
cmp r4, r6
bne _0803EF2E
_0803EF6A:
movs r0, #0
_0803EF6C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0803EF70
sub_0803EF70: @ 0x0803EF70
movs r0, #0
bx lr
thumb_func_start sub_0803EF74
sub_0803EF74: @ 0x0803EF74
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r0, #0x32
ldrsh r2, [r4, r0]
adds r0, r5, #0
movs r3, #0x50
bl sub_0806FCB8
cmp r0, #0
beq _0803EFA8
adds r0, r4, #0
adds r1, r5, #0
bl GetFacingDirection
ldrb r1, [r4, #0x15]
subs r1, r1, r0
adds r1, #2
movs r0, #0x1f
ands r1, r0
cmp r1, #4
bhi _0803EFA8
movs r0, #1
b _0803EFAA
_0803EFA8:
movs r0, #0
_0803EFAA:
pop {r4, r5, pc}
thumb_func_start sub_0803EFAC
sub_0803EFAC: @ 0x0803EFAC
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
movs r2, #0x50
movs r3, #0x50
bl sub_080041A0
cmp r0, #0
beq _0803EFD6
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0x1c
bl sub_0804A044
cmp r0, #0xff
beq _0803EFD6
ldrb r4, [r4, #0x15]
cmp r0, r4
bne _0803EFD6
movs r0, #1
b _0803EFD8
_0803EFD6:
movs r0, #0
_0803EFD8:
pop {r4, r5, pc}
.align 2, 0