pokefirered/asm/battle_anim_sound_tasks.s

928 lines
16 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80DCE10
sub_80DCE10: @ 80DCE10
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _080DCE6C @ =gTasks
lsls r6, r0, 2
adds r6, r0
lsls r6, 3
adds r6, r1
ldr r1, _080DCE70 @ =gBattleAnimArgs
ldrh r0, [r1]
strh r0, [r6, 0x8]
ldrh r0, [r1, 0x2]
strh r0, [r6, 0xA]
movs r0, 0x40
negs r0, r0
bl sub_8073A44
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x3F
bl sub_8073A44
adds r5, r0, 0
lsls r4, 24
asrs r4, 24
lsls r5, 24
asrs r5, 24
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl CalculatePanIncrement
strh r4, [r6, 0xC]
strh r5, [r6, 0xE]
lsls r0, 24
asrs r0, 24
strh r0, [r6, 0x10]
movs r0, 0xA
strh r0, [r6, 0x1C]
ldr r0, _080DCE74 @ =sub_80DCE78
str r0, [r6]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080DCE6C: .4byte gTasks
_080DCE70: .4byte gBattleAnimArgs
_080DCE74: .4byte sub_80DCE78
thumb_func_end sub_80DCE10
thumb_func_start sub_80DCE78
sub_80DCE78: @ 80DCE78
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
ldr r2, _080DCEA8 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r4, r1, r2
ldrh r5, [r4, 0xC]
ldrb r6, [r4, 0x10]
ldrh r0, [r4, 0x1E]
adds r0, 0x1
movs r1, 0
strh r0, [r4, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6F
bne _080DCEB0
movs r0, 0x5
strh r0, [r4, 0x1C]
strh r1, [r4, 0x1E]
ldr r0, _080DCEAC @ =sub_80DCEE4
str r0, [r4]
b _080DCEDE
.align 2, 0
_080DCEA8: .4byte gTasks
_080DCEAC: .4byte sub_80DCEE4
_080DCEB0:
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0xB
bne _080DCECA
strh r1, [r4, 0x1C]
ldrh r0, [r4, 0x8]
lsls r1, r5, 24
asrs r1, 24
bl PlaySE12WithPanning
_080DCECA:
lsls r1, r6, 24
asrs r1, 24
lsls r0, r5, 16
asrs r0, 16
adds r0, r1
lsls r0, 16
asrs r0, 16
bl sub_8073B60
strh r0, [r4, 0xC]
_080DCEDE:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80DCE78
thumb_func_start sub_80DCEE4
sub_80DCEE4: @ 80DCEE4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _080DCF34 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x1C]
adds r0, 0x1
strh r0, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
bne _080DCF2C
movs r0, 0
strh r0, [r4, 0x1C]
movs r0, 0x3F
bl sub_8073A44
adds r1, r0, 0
ldrh r0, [r4, 0xA]
lsls r1, 24
asrs r1, 24
bl PlaySE12WithPanning
ldrh r0, [r4, 0x1E]
adds r0, 0x1
strh r0, [r4, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _080DCF2C
adds r0, r5, 0
bl DestroyAnimSoundTask
_080DCF2C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080DCF34: .4byte gTasks
thumb_func_end sub_80DCEE4
thumb_func_start mas_80DCF38
mas_80DCF38: @ 80DCF38
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r8, r0
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, _080DCFDC @ =gBattleAnimArgs
ldrh r1, [r0]
str r1, [sp]
ldrb r5, [r0, 0x4]
ldrb r6, [r0, 0x6]
ldrb r3, [r0, 0x8]
mov r10, r3
ldrb r7, [r0, 0xA]
ldrb r1, [r0, 0xC]
mov r9, r1
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
bl sub_8073A44
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
asrs r5, 24
adds r0, r5, 0
bl sub_8073A44
adds r5, r0, 0
lsls r4, 24
asrs r4, 24
lsls r5, 24
asrs r5, 24
lsls r6, 24
asrs r6, 24
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl CalculatePanIncrement
ldr r2, _080DCFE0 @ =gTasks
mov r3, r8
lsls r1, r3, 2
add r1, r8
lsls r1, 3
adds r1, r2
movs r2, 0
mov r6, sp
ldrh r6, [r6]
strh r6, [r1, 0x8]
strh r4, [r1, 0xA]
strh r5, [r1, 0xC]
lsls r0, 24
asrs r0, 24
strh r0, [r1, 0xE]
mov r0, r10
strh r0, [r1, 0x10]
strh r7, [r1, 0x12]
mov r3, r9
strh r3, [r1, 0x14]
strh r2, [r1, 0x1C]
strh r4, [r1, 0x1E]
strh r3, [r1, 0x20]
ldr r2, _080DCFE4 @ =sub_80DCFE8
str r2, [r1]
mov r0, r8
bl _call_via_r2
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080DCFDC: .4byte gBattleAnimArgs
_080DCFE0: .4byte gTasks
_080DCFE4: .4byte sub_80DCFE8
thumb_func_end mas_80DCF38
thumb_func_start sub_80DCFE8
sub_80DCFE8: @ 80DCFE8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _080DD02C @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x20]
adds r1, r0, 0x1
strh r1, [r4, 0x20]
lsls r0, 16
asrs r0, 16
movs r2, 0x14
ldrsh r1, [r4, r2]
cmp r0, r1
bne _080DD030
movs r0, 0
strh r0, [r4, 0x20]
ldrh r0, [r4, 0x8]
movs r1, 0x1E
ldrsb r1, [r4, r1]
bl PlaySE12WithPanning
ldrh r0, [r4, 0x10]
subs r0, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
cmp r0, 0
bne _080DD030
adds r0, r5, 0
bl DestroyAnimSoundTask
b _080DD062
.align 2, 0
_080DD02C: .4byte gTasks
_080DD030:
ldr r1, _080DD068 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x1C]
adds r1, r0, 0x1
strh r1, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r4, r2]
cmp r0, r1
bne _080DD062
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r0, [r4, 0xE]
ldrh r1, [r4, 0x1E]
adds r0, r1
strh r0, [r4, 0x1E]
movs r2, 0x1E
ldrsh r0, [r4, r2]
bl sub_8073B60
strh r0, [r4, 0x1E]
_080DD062:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080DD068: .4byte gTasks
thumb_func_end sub_80DCFE8
thumb_func_start sub_80DD06C
sub_80DD06C: @ 80DD06C
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0x40
negs r0, r0
bl sub_8073A44
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _080DD090 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DD098
ldr r0, _080DD094 @ =gBattleAnimAttacker
ldrb r4, [r0]
b _080DD0BE
.align 2, 0
_080DD090: .4byte gBattleAnimArgs
_080DD094: .4byte gBattleAnimAttacker
_080DD098:
cmp r0, 0x1
bne _080DD0A8
ldr r0, _080DD0A4 @ =gBattleAnimTarget
ldrb r4, [r0]
b _080DD0BE
.align 2, 0
_080DD0A4: .4byte gBattleAnimTarget
_080DD0A8:
cmp r0, 0x2
bne _080DD0B4
ldr r0, _080DD0B0 @ =gBattleAnimAttacker
b _080DD0B6
.align 2, 0
_080DD0B0: .4byte gBattleAnimAttacker
_080DD0B4:
ldr r0, _080DD0E0 @ =gBattleAnimTarget
_080DD0B6:
ldrb r1, [r0]
movs r0, 0x2
adds r4, r0, 0
eors r4, r1
_080DD0BE:
ldr r0, _080DD0E4 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x1
beq _080DD0CC
cmp r0, 0x3
bne _080DD0E8
_080DD0CC:
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080DD0E8
adds r0, r5, 0
bl DestroyAnimVisualTask
b _080DD13A
.align 2, 0
_080DD0E0: .4byte gBattleAnimTarget
_080DD0E4: .4byte gBattleAnimArgs
_080DD0E8:
adds r0, r4, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DD10C
ldr r1, _080DD104 @ =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080DD108 @ =gEnemyParty
b _080DD11A
.align 2, 0
_080DD104: .4byte gBattlerPartyIndexes
_080DD108: .4byte gEnemyParty
_080DD10C:
ldr r1, _080DD140 @ =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080DD144 @ =gPlayerParty
_080DD11A:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
beq _080DD134
lsls r1, r6, 24
asrs r1, 24
movs r2, 0x3
bl PlayCry3
_080DD134:
adds r0, r5, 0
bl DestroyAnimVisualTask
_080DD13A:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080DD140: .4byte gBattlerPartyIndexes
_080DD144: .4byte gPlayerParty
thumb_func_end sub_80DD06C
thumb_func_start sub_80DD148
sub_80DD148: @ 80DD148
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0x40
negs r0, r0
bl sub_8073A44
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _080DD16C @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DD174
ldr r0, _080DD170 @ =gBattleAnimAttacker
ldrb r4, [r0]
b _080DD19A
.align 2, 0
_080DD16C: .4byte gBattleAnimArgs
_080DD170: .4byte gBattleAnimAttacker
_080DD174:
cmp r0, 0x1
bne _080DD184
ldr r0, _080DD180 @ =gBattleAnimTarget
ldrb r4, [r0]
b _080DD19A
.align 2, 0
_080DD180: .4byte gBattleAnimTarget
_080DD184:
cmp r0, 0x2
bne _080DD190
ldr r0, _080DD18C @ =gBattleAnimAttacker
b _080DD192
.align 2, 0
_080DD18C: .4byte gBattleAnimAttacker
_080DD190:
ldr r0, _080DD1BC @ =gBattleAnimTarget
_080DD192:
ldrb r1, [r0]
movs r0, 0x2
adds r4, r0, 0
eors r4, r1
_080DD19A:
ldr r0, _080DD1C0 @ =gBattleAnimArgs
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x1
beq _080DD1A8
cmp r0, 0x3
bne _080DD1C4
_080DD1A8:
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080DD1C4
adds r0, r6, 0
bl DestroyAnimVisualTask
b _080DD26A
.align 2, 0
_080DD1BC: .4byte gBattleAnimTarget
_080DD1C0: .4byte gBattleAnimArgs
_080DD1C4:
adds r0, r4, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080DD1E8
ldr r1, _080DD1E0 @ =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080DD1E4 @ =gEnemyParty
b _080DD1F6
.align 2, 0
_080DD1E0: .4byte gBattlerPartyIndexes
_080DD1E4: .4byte gEnemyParty
_080DD1E8:
ldr r1, _080DD234 @ =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080DD238 @ =gPlayerParty
_080DD1F6:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r3, r0, 16
ldr r1, _080DD23C @ =gTasks
lsls r2, r6, 2
adds r0, r2, r6
lsls r0, 3
adds r0, r1
ldr r4, _080DD240 @ =gBattleAnimArgs
ldrh r1, [r4, 0x2]
strh r1, [r0, 0x8]
strh r3, [r0, 0xA]
lsls r1, r5, 24
asrs r1, 24
strh r1, [r0, 0xC]
adds r5, r2, 0
cmp r3, 0
beq _080DD264
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0xFF
bne _080DD244
adds r0, r3, 0
movs r2, 0x9
bl PlayCry3
b _080DD24C
.align 2, 0
_080DD234: .4byte gBattlerPartyIndexes
_080DD238: .4byte gPlayerParty
_080DD23C: .4byte gTasks
_080DD240: .4byte gBattleAnimArgs
_080DD244:
adds r0, r3, 0
movs r2, 0x7
bl PlayCry3
_080DD24C:
ldr r0, _080DD25C @ =gTasks
adds r1, r5, r6
lsls r1, 3
adds r1, r0
ldr r0, _080DD260 @ =sub_80DD270
str r0, [r1]
b _080DD26A
.align 2, 0
_080DD25C: .4byte gTasks
_080DD260: .4byte sub_80DD270
_080DD264:
adds r0, r6, 0
bl DestroyAnimVisualTask
_080DD26A:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80DD148
thumb_func_start sub_80DD270
sub_80DD270: @ 80DD270
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r4, r0, 24
mov r9, r4
ldr r1, _080DD2A0 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r1
ldrh r6, [r1, 0xA]
mov r8, r6
ldrb r5, [r1, 0xC]
adds r7, r5, 0
ldrh r2, [r1, 0x1A]
movs r3, 0x1A
ldrsh r0, [r1, r3]
cmp r0, 0x1
bgt _080DD2A4
adds r0, r2, 0x1
strh r0, [r1, 0x1A]
b _080DD2E6
.align 2, 0
_080DD2A0: .4byte gTasks
_080DD2A4:
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0xFF
bne _080DD2CA
bl IsCryPlaying
lsls r0, 24
cmp r0, 0
bne _080DD2E6
lsls r1, r5, 24
asrs r1, 24
adds r0, r6, 0
movs r2, 0xA
bl PlayCry3
adds r0, r4, 0
bl DestroyAnimVisualTask
b _080DD2E6
_080DD2CA:
bl IsCryPlaying
lsls r0, 24
cmp r0, 0
bne _080DD2E6
lsls r1, r7, 24
asrs r1, 24
mov r0, r8
movs r2, 0x8
bl PlayCry3
mov r0, r9
bl DestroyAnimVisualTask
_080DD2E6:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80DD270
thumb_func_start sub_80DD2F4
sub_80DD2F4: @ 80DD2F4
push {r4,lr}
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
ldr r1, _080DD318 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r1
ldrh r2, [r1, 0x1A]
movs r3, 0x1A
ldrsh r0, [r1, r3]
cmp r0, 0x1
bgt _080DD31C
adds r0, r2, 0x1
strh r0, [r1, 0x1A]
b _080DD32C
.align 2, 0
_080DD318: .4byte gTasks
_080DD31C:
bl IsCryPlaying
lsls r0, 24
cmp r0, 0
bne _080DD32C
adds r0, r4, 0
bl DestroyAnimVisualTask
_080DD32C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80DD2F4
thumb_func_start sub_80DD334
sub_80DD334: @ 80DD334
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0x40
negs r0, r0
bl sub_8073A44
ldr r2, _080DD374 @ =gUnknown_2037F1C
ldr r1, _080DD378 @ =gBattleAnimAttacker
ldrb r1, [r1]
lsls r1, 1
adds r1, r2
ldrh r3, [r1]
ldr r2, _080DD37C @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r4, r1, r2
strh r3, [r4, 0xA]
lsls r0, 24
asrs r1, r0, 24
strh r1, [r4, 0xC]
cmp r3, 0
beq _080DD384
adds r0, r3, 0
movs r2, 0x4
bl PlayCry3
ldr r0, _080DD380 @ =sub_80DD390
str r0, [r4]
b _080DD38A
.align 2, 0
_080DD374: .4byte gUnknown_2037F1C
_080DD378: .4byte gBattleAnimAttacker
_080DD37C: .4byte gTasks
_080DD380: .4byte sub_80DD390
_080DD384:
adds r0, r5, 0
bl DestroyAnimVisualTask
_080DD38A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80DD334
thumb_func_start sub_80DD390
sub_80DD390: @ 80DD390
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
ldr r1, _080DD3B4 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r1, [r4, 0x1A]
movs r2, 0x1A
ldrsh r0, [r4, r2]
cmp r0, 0x1
bgt _080DD3B8
adds r0, r1, 0x1
strh r0, [r4, 0x1A]
b _080DD3D4
.align 2, 0
_080DD3B4: .4byte gTasks
_080DD3B8:
bl IsCryPlaying
lsls r0, 24
cmp r0, 0
bne _080DD3D4
ldrh r0, [r4, 0xA]
movs r1, 0xC
ldrsb r1, [r4, r1]
movs r2, 0x6
bl PlayCry3
adds r0, r5, 0
bl DestroyAnimVisualTask
_080DD3D4:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80DD390
thumb_func_start sub_80DD3DC
sub_80DD3DC: @ 80DD3DC
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _080DD40C @ =gBattleAnimArgs
ldrh r5, [r0]
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
bl sub_8073A44
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
adds r0, r5, 0
bl PlaySE1WithPanning
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080DD40C: .4byte gBattleAnimArgs
thumb_func_end sub_80DD3DC
thumb_func_start sub_80DD410
sub_80DD410: @ 80DD410
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _080DD440 @ =gBattleAnimArgs
ldrh r5, [r0]
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
bl sub_8073A44
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
adds r0, r5, 0
bl PlaySE2WithPanning
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080DD440: .4byte gBattleAnimArgs
thumb_func_end sub_80DD410
thumb_func_start sub_80DD444
sub_80DD444: @ 80DD444
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
mov r8, r0
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r0, _080DD4C8 @ =gBattleAnimArgs
ldrb r5, [r0, 0x2]
ldrb r6, [r0, 0x4]
ldrh r1, [r0, 0x6]
mov r9, r1
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
bl sub_8073A44
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
asrs r5, 24
adds r0, r5, 0
bl sub_8073A44
adds r5, r0, 0
lsls r4, 24
asrs r4, 24
lsls r5, 24
asrs r5, 24
lsls r6, 24
asrs r6, 24
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl CalculatePanIncrement
ldr r2, _080DD4CC @ =gTasks
mov r3, r8
lsls r1, r3, 2
add r1, r8
lsls r1, 3
adds r1, r2
movs r2, 0
strh r4, [r1, 0xA]
strh r5, [r1, 0xC]
lsls r0, 24
asrs r0, 24
strh r0, [r1, 0xE]
mov r0, r9
strh r0, [r1, 0x12]
strh r2, [r1, 0x1C]
strh r4, [r1, 0x1E]
ldr r2, _080DD4D0 @ =sub_80DD4D4
str r2, [r1]
mov r0, r8
bl _call_via_r2
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080DD4C8: .4byte gBattleAnimArgs
_080DD4CC: .4byte gTasks
_080DD4D0: .4byte sub_80DD4D4
thumb_func_end sub_80DD444
thumb_func_start sub_80DD4D4
sub_80DD4D4: @ 80DD4D4
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
ldr r1, _080DD52C @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r2, [r4, 0xE]
ldrh r0, [r4, 0x1C]
adds r1, r0, 0x1
strh r1, [r4, 0x1C]
lsls r0, 16
asrs r0, 16
movs r3, 0x12
ldrsh r1, [r4, r3]
cmp r0, r1
bne _080DD50E
movs r0, 0
strh r0, [r4, 0x1C]
ldrh r1, [r4, 0x1E]
adds r0, r2, r1
strh r0, [r4, 0x1E]
movs r2, 0x1E
ldrsh r0, [r4, r2]
bl sub_8073B60
strh r0, [r4, 0x1E]
_080DD50E:
ldr r1, _080DD530 @ =gUnknown_2037F24
ldrh r0, [r4, 0x1E]
strb r0, [r1]
movs r3, 0x1E
ldrsh r1, [r4, r3]
movs r2, 0xC
ldrsh r0, [r4, r2]
cmp r1, r0
bne _080DD526
adds r0, r5, 0
bl DestroyAnimVisualTask
_080DD526:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080DD52C: .4byte gTasks
_080DD530: .4byte gUnknown_2037F24
thumb_func_end sub_80DD4D4
.align 2, 0 @ Don't pad with nop.