pokeemerald/asm/battle_anim_utility_funcs.s
2018-10-22 22:08:38 -04:00

3060 lines
46 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8116620
sub_8116620: @ 8116620
push {r4-r6,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r4, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r4, r1]
bl sub_811583C
adds r6, r0, 0
ldrh r3, [r4]
lsls r3, 16
asrs r0, r3, 23
movs r4, 0x1
ands r0, r4
asrs r1, r3, 24
ands r1, r4
asrs r2, r3, 25
ands r2, r4
asrs r3, 26
ands r3, r4
bl sub_80A76C4
orrs r6, r0
adds r0, r5, 0
adds r1, r6, 0
bl sub_8116874
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116620
thumb_func_start sub_8116664
sub_8116664: @ 8116664
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r7, r0, 24
mov r1, sp
movs r0, 0xFF
strb r0, [r1, 0x1]
movs r0, 0x1
bl sub_811583C
adds r5, r0, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x7
bhi _0811670E
lsls r0, 2
ldr r1, =_08116698
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08116698:
.4byte _081166BA
.4byte _081166C6
.4byte _081166B8
.4byte _081166C4
.4byte _081166D4
.4byte _081166EC
.4byte _081166F4
.4byte _08116700
_081166B8:
movs r5, 0
_081166BA:
mov r0, sp
ldr r1, =gBattleAnimAttacker
b _081166CA
.pool
_081166C4:
movs r5, 0
_081166C6:
mov r0, sp
ldr r1, =gBattleAnimTarget
_081166CA:
ldrb r1, [r1]
strb r1, [r0]
b _0811670E
.pool
_081166D4:
mov r1, sp
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
strb r0, [r1]
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
strb r0, [r1, 0x1]
b _0811670E
.pool
_081166EC:
mov r1, sp
movs r0, 0xFF
strb r0, [r1]
b _0811670E
_081166F4:
movs r5, 0
mov r2, sp
ldr r0, =gBattleAnimAttacker
b _08116706
.pool
_08116700:
movs r5, 0
mov r2, sp
ldr r0, =gBattleAnimTarget
_08116706:
ldrb r0, [r0]
movs r1, 0x2
eors r0, r1
strb r0, [r2]
_0811670E:
movs r4, 0
mov r6, sp
_08116712:
ldrb r0, [r6]
cmp r4, r0
beq _0811673C
ldrb r0, [r6, 0x1]
cmp r4, r0
beq _0811673C
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811673C
adds r0, r4, 0
bl sub_80A77AC
lsls r0, 24
lsrs r0, 24
movs r1, 0x80
lsls r1, 9
lsls r1, r0
orrs r5, r1
_0811673C:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _08116712
adds r0, r7, 0
adds r1, r5, 0
bl sub_8116874
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116664
thumb_func_start sub_811675C
sub_811675C: @ 811675C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_811583C
adds r2, r0, 0
ldr r0, =gBattleTerrain
ldrb r0, [r0]
cmp r0, 0x9
bhi _08116832
lsls r0, 2
ldr r1, =_0811678C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0811678C:
.4byte _081167B4
.4byte _081167C4
.4byte _081167D0
.4byte _081167E0
.4byte _081167EC
.4byte _081167FC
.4byte _0811680C
.4byte _0811681C
.4byte _0811682C
.4byte _0811682C
_081167B4:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00000b0c
b _08116830
.pool
_081167C4:
ldr r1, =gBattleAnimArgs
movs r0, 0x9E
lsls r0, 4
b _08116830
.pool
_081167D0:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00002f1e
b _08116830
.pool
_081167E0:
ldr r1, =gBattleAnimArgs
movs r0, 0x90
lsls r0, 7
b _08116830
.pool
_081167EC:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00007ecb
b _08116830
.pool
_081167FC:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00007ecb
b _08116830
.pool
_0811680C:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00002a16
b _08116830
.pool
_0811681C:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00000d2e
b _08116830
.pool
_0811682C:
ldr r1, =gBattleAnimArgs
ldr r0, =0x00007fff
_08116830:
strh r0, [r1, 0x8]
_08116832:
adds r0, r4, 0
adds r1, r2, 0
bl sub_8116874
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_811675C
thumb_func_start AnimTask_BlendParticle
AnimTask_BlendParticle: @ 8116848
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
movs r1, 0x1
lsls r1, r0
adds r0, r4, 0
bl sub_8116874
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_BlendParticle
thumb_func_start sub_8116874
sub_8116874: @ 8116874
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r3, =gTasks
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
adds r2, r3
strh r1, [r2, 0x8]
lsrs r1, 16
strh r1, [r2, 0xA]
ldr r3, =gBattleAnimArgs
ldrh r1, [r3, 0x2]
strh r1, [r2, 0xC]
ldrh r1, [r3, 0x4]
strh r1, [r2, 0xE]
ldrh r1, [r3, 0x6]
strh r1, [r2, 0x10]
ldrh r1, [r3, 0x8]
strh r1, [r2, 0x12]
ldrh r1, [r3, 0x4]
strh r1, [r2, 0x1C]
ldr r1, =sub_81168B8
str r1, [r2]
bl _call_via_r1
pop {r0}
bx r0
.pool
thumb_func_end sub_8116874
thumb_func_start sub_81168B8
sub_81168B8: @ 81168B8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0
ldr r2, =gTasks
lsls r5, r7, 2
adds r0, r5, r7
lsls r0, 3
adds r3, r0, r2
ldrh r0, [r3, 0x1A]
mov r8, r0
movs r4, 0x1A
ldrsh r1, [r3, r4]
movs r4, 0xC
ldrsh r0, [r3, r4]
mov r9, r2
cmp r1, r0
bne _0811694E
strh r6, [r3, 0x1A]
movs r0, 0x8
ldrsh r4, [r3, r0]
movs r1, 0xA
ldrsh r0, [r3, r1]
lsls r0, 16
orrs r4, r0
mov r8, r5
cmp r4, 0
beq _0811691A
adds r5, r3, 0
_081168F8:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _0811690C
ldrb r2, [r5, 0x1C]
ldrh r3, [r5, 0x12]
adds r0, r6, 0
movs r1, 0x10
bl BlendPalette
_0811690C:
adds r0, r6, 0
adds r0, 0x10
lsls r0, 16
lsrs r6, r0, 16
lsrs r4, 1
cmp r4, 0
bne _081168F8
_0811691A:
mov r4, r8
adds r0, r4, r7
lsls r0, 3
mov r1, r9
adds r2, r0, r1
ldrh r0, [r2, 0x1C]
movs r4, 0x1C
ldrsh r3, [r2, r4]
movs r4, 0x10
ldrsh r1, [r2, r4]
cmp r3, r1
bge _0811693C
adds r0, 0x1
strh r0, [r2, 0x1C]
b _08116954
.pool
_0811693C:
cmp r3, r1
ble _08116946
subs r0, 0x1
strh r0, [r2, 0x1C]
b _08116954
_08116946:
adds r0, r7, 0
bl DestroyAnimVisualTask
b _08116954
_0811694E:
mov r0, r8
adds r0, 0x1
strh r0, [r3, 0x1A]
_08116954:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81168B8
thumb_func_start sub_8116960
sub_8116960: @ 8116960
push {r4,r5,lr}
sub sp, 0x4
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4]
ldrb r1, [r4, 0x2]
ldrb r2, [r4, 0x4]
ldrb r3, [r4, 0x6]
ldrb r4, [r4, 0x8]
str r4, [sp]
bl BeginHardwarePaletteFade
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, =sub_81169A0
str r1, [r0]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116960
thumb_func_start sub_81169A0
sub_81169A0: @ 81169A0
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081169B8
adds r0, r2, 0
bl DestroyAnimVisualTask
_081169B8:
pop {r0}
bx r0
.pool
thumb_func_end sub_81169A0
thumb_func_start sub_81169C0
sub_81169C0: @ 81169C0
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r1, r0
ldr r2, =gBattleAnimArgs
ldrh r0, [r2]
movs r3, 0
strh r0, [r1, 0x8]
strh r3, [r1, 0xA]
ldrh r0, [r2, 0x2]
strh r0, [r1, 0xC]
ldrh r0, [r2, 0x4]
strh r0, [r1, 0xE]
ldrh r0, [r2, 0x6]
strh r0, [r1, 0x10]
strh r3, [r1, 0x12]
ldr r0, =sub_81169F8
str r0, [r1]
bx lr
.pool
thumb_func_end sub_81169C0
thumb_func_start sub_81169F8
sub_81169F8: @ 81169F8
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
adds r2, r5, 0
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08116ABC
ldrh r1, [r4, 0xA]
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08116A28
subs r0, r1, 0x1
strh r0, [r4, 0xA]
b _08116ACA
.pool
_08116A28:
ldrb r0, [r4, 0x8]
bl duplicate_obj_of_side_rel2move_in_transparent_mode
strh r0, [r4, 0x14]
lsls r0, 16
cmp r0, 0
blt _08116AA6
ldr r6, =gSprites
movs r1, 0x14
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r3, r1, r6
movs r2, 0x8
ldrsh r0, [r4, r2]
movs r2, 0x2
cmp r0, 0
beq _08116A50
movs r2, 0x1
_08116A50:
lsls r2, 2
ldrb r1, [r3, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r1
orrs r0, r2
strb r0, [r3, 0x5]
movs r0, 0x14
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrh r1, [r4, 0xE]
strh r1, [r0, 0x2E]
movs r2, 0x14
ldrsh r1, [r4, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r5, [r0, 0x30]
movs r0, 0x14
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x5
strh r1, [r0, 0x32]
movs r2, 0x14
ldrsh r1, [r4, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r6, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =sub_8116AD0
str r1, [r0]
ldrh r0, [r4, 0x12]
adds r0, 0x1
strh r0, [r4, 0x12]
_08116AA6:
ldrh r0, [r4, 0x10]
subs r0, 0x1
strh r0, [r4, 0x10]
ldrh r0, [r4, 0xC]
strh r0, [r4, 0xA]
b _08116ACA
.pool
_08116ABC:
movs r1, 0x12
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08116ACA
adds r0, r2, 0
bl DestroyAnimVisualTask
_08116ACA:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81169F8
thumb_func_start sub_8116AD0
sub_8116AD0: @ 8116AD0
push {r4,lr}
adds r4, r0, 0
ldrh r1, [r4, 0x2E]
movs r2, 0x2E
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08116AE4
subs r0, r1, 0x1
strh r0, [r4, 0x2E]
b _08116B08
_08116AE4:
ldr r3, =gTasks
movs r0, 0x32
ldrsh r1, [r4, r0]
lsls r1, 1
movs r0, 0x30
ldrsh r2, [r4, r0]
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r1, r0
adds r3, 0x8
adds r1, r3
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
adds r0, r4, 0
bl obj_delete_but_dont_free_vram
_08116B08:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116AD0
thumb_func_start sub_8116B14
sub_8116B14: @ 8116B14
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r7, 0
ldr r0, =gBattle_WIN0H
strh r7, [r0]
ldr r0, =gBattle_WIN0V
strh r7, [r0]
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
movs r1, 0x80
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
ldr r1, =0x00000c08
movs r0, 0x52
bl SetGpuReg
movs r0, 0xA
bl GetGpuReg
add r4, sp, 0x10
strh r0, [r4]
ldrb r1, [r4]
movs r0, 0x4
negs r0, r0
mov r8, r0
ands r0, r1
strb r0, [r4]
mov r2, sp
adds r2, 0x11
ldrb r1, [r2]
movs r0, 0x3F
ands r0, r1
strb r0, [r2]
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116BA2
ldrb r1, [r4]
movs r0, 0xD
negs r0, r0
ands r0, r1
movs r1, 0x4
orrs r0, r1
strb r0, [r4]
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
_08116BA2:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08116C26
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116C26
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08116BD2
ldrb r0, [r5]
bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _08116C26
_08116BD2:
ldrb r0, [r5]
movs r6, 0x2
eors r0, r6
bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08116C26
ldr r3, =gSprites
ldr r1, =gBattlerSpriteIds
ldrb r0, [r5]
eors r0, r6
adds r0, r1
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
ldrb r1, [r4]
mov r0, r8
ands r0, r1
movs r1, 0x1
orrs r0, r1
strb r0, [r4]
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
movs r7, 0x1
_08116C26:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08116C64
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r5, [r0]
b _08116CAC
.pool
_08116C64:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08116C90
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
b _08116CA0
.pool
_08116C90:
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
_08116CA0:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
_08116CAC:
movs r0, 0
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
bl sub_80A89C8
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
mov r0, sp
bl sub_80A6B30
ldr r1, =gUnknown_08C20684
mov r0, sp
movs r2, 0
bl sub_80A6D60
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C20668
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r0, =gUnknown_08597418
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
adds r1, 0x1
movs r2, 0x2
bl LoadPalette
ldr r2, =gBattle_BG1_X
ldr r0, =gSprites
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r0
ldrh r0, [r1, 0x20]
negs r0, r0
adds r0, 0x20
strh r0, [r2]
ldr r2, =gBattle_BG1_Y
ldrh r0, [r1, 0x22]
negs r0, r0
adds r0, 0x20
strh r0, [r2]
ldr r1, =gTasks
mov r2, r9
lsls r0, r2, 2
add r0, r9
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
strh r7, [r0, 0x14]
ldr r1, =sub_8116D64
str r1, [r0]
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116B14
thumb_func_start sub_8116D64
sub_8116D64: @ 8116D64
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
ldrh r0, [r5, 0x1C]
adds r0, 0x4
movs r1, 0
mov r8, r1
strh r0, [r5, 0x1C]
ldr r7, =gBattle_BG1_Y
ldrh r2, [r7]
subs r1, r2, 0x4
strh r1, [r7]
lsls r0, 16
asrs r0, 16
cmp r0, 0x40
bne _08116E86
mov r0, r8
strh r0, [r5, 0x1C]
adds r0, r2, 0
adds r0, 0x3C
strh r0, [r7]
ldrh r0, [r5, 0x1E]
adds r0, 0x1
strh r0, [r5, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _08116E86
movs r0, 0
bl sub_80A477C
ldr r0, =gBattle_WIN0H
mov r1, r8
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116DF6
movs r0, 0xA
bl GetGpuReg
add r1, sp, 0x10
strh r0, [r1]
ldrb r2, [r1]
movs r0, 0xD
negs r0, r0
ands r0, r2
strb r0, [r1]
ldrh r1, [r1]
movs r0, 0xA
bl SetGpuReg
_08116DF6:
movs r0, 0
bl GetGpuReg
adds r1, r0, 0
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
eors r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0
bl GetAnimBattlerSpriteId
ldr r4, =gSprites
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
bl sub_80A6C68
movs r1, 0x14
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08116E7C
ldr r2, =gBattlerSpriteIds
ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
adds r0, r2
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r4
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
_08116E7C:
mov r2, r8
strh r2, [r7]
adds r0, r6, 0
bl DestroyAnimVisualTask
_08116E86:
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116D64
thumb_func_start sub_8116EB4
sub_8116EB4: @ 8116EB4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r4, =gUnknown_0203A110
movs r0, 0x18
bl AllocZeroed
str r0, [r4]
movs r2, 0
ldr r3, =gBattleAnimArgs
_08116EC8:
ldr r1, [r4]
lsls r0, r2, 1
adds r1, 0x4
adds r1, r0
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _08116EC8
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_8116F04
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116EB4
thumb_func_start sub_8116F04
sub_8116F04: @ 8116F04
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, =gUnknown_0203A110
ldr r1, [r0]
movs r2, 0x8
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08116F24
ldr r0, =gBattleAnimAttacker
b _08116F26
.pool
_08116F24:
ldr r0, =gBattleAnimTarget
_08116F26:
ldrb r0, [r0]
strb r0, [r1]
ldr r4, =gUnknown_0203A110
ldr r2, [r4]
ldrb r0, [r2]
movs r1, 0x2
eors r0, r1
strb r0, [r2, 0x1]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116F56
ldr r1, [r4]
movs r2, 0xA
ldrsh r0, [r1, r2]
cmp r0, 0
beq _08116F5C
ldrb r0, [r1, 0x1]
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _08116F5C
_08116F56:
ldr r1, [r4]
movs r0, 0
strh r0, [r1, 0xA]
_08116F5C:
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
movs r1, 0x80
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08116FBA
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
_08116FBA:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08117036
ldr r4, =gUnknown_0203A110
ldr r1, [r4]
movs r2, 0xA
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08117036
ldrb r0, [r1]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08116FEC
ldr r0, [r4]
ldrb r0, [r0]
bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _08117036
_08116FEC:
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
bne _08117036
ldr r3, =gSprites
ldr r1, =gBattlerSpriteIds
ldr r0, [r4]
ldrb r0, [r0, 0x1]
adds r0, r1
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
ldr r0, [r4]
strb r5, [r0, 0x2]
_08117036:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08117078
ldr r0, =gUnknown_0203A110
ldr r1, [r0]
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r0, [r0]
b _081170C4
.pool
_08117078:
ldr r4, =gUnknown_0203A110
ldr r0, [r4]
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081170A8
ldr r1, =gBattlerPartyIndexes
ldr r0, [r4]
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
b _081170BA
.pool
_081170A8:
ldr r1, =gBattlerPartyIndexes
ldr r0, [r4]
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
_081170BA:
adds r0, r1
movs r1, 0xB
bl GetMonData
ldr r1, [r4]
_081170C4:
strh r0, [r1, 0x14]
ldr r0, =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, =sub_81170EC
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8116F04
thumb_func_start sub_81170EC
sub_81170EC: @ 81170EC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
mov r8, r0
ldr r6, =gBattlerSpriteIds
ldr r4, =gUnknown_0203A110
ldr r2, [r4]
ldrb r0, [r2]
adds r1, r0, r6
ldrb r1, [r1]
ldrh r2, [r2, 0x14]
bl sub_80A89C8
lsls r0, 24
lsrs r7, r0, 24
ldr r2, [r4]
movs r1, 0xA
ldrsh r0, [r2, r1]
cmp r0, 0
beq _0811712E
ldrb r0, [r2, 0x1]
adds r1, r0, r6
ldrb r1, [r1]
ldrh r2, [r2, 0x14]
bl sub_80A89C8
lsls r0, 24
lsrs r0, 24
mov r8, r0
_0811712E:
mov r0, sp
bl sub_80A6B30
ldr r0, [r4]
movs r4, 0x4
ldrsh r0, [r0, r4]
cmp r0, 0
bne _08117158
ldr r1, =gUnknown_08C2D930
mov r0, sp
movs r2, 0
bl sub_80A6D60
b _08117162
.pool
_08117158:
ldr r1, =gUnknown_08C2DA4C
mov r0, sp
movs r2, 0
bl sub_80A6D60
_08117162:
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C2D720
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r0, =gUnknown_0203A110
ldr r0, [r0]
movs r1, 0x6
ldrsh r0, [r0, r1]
cmp r0, 0x6
bhi _081171F8
lsls r0, 2
ldr r1, =_08117198
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08117198:
.4byte _081171B4
.4byte _081171BC
.4byte _081171C4
.4byte _081171CC
.4byte _081171D4
.4byte _081171DC
.4byte _081171E4
_081171B4:
ldr r0, =gUnknown_08C2DB88
b _081171E6
.pool
_081171BC:
ldr r0, =gUnknown_08C2DB68
b _081171E6
.pool
_081171C4:
ldr r0, =gUnknown_08C2DBA8
b _081171E6
.pool
_081171CC:
ldr r0, =gUnknown_08C2DBC8
b _081171E6
.pool
_081171D4:
ldr r0, =gUnknown_08C2DC08
b _081171E6
.pool
_081171DC:
ldr r0, =gUnknown_08C2DC28
b _081171E6
.pool
_081171E4:
ldr r0, =gUnknown_08C2DC48
_081171E6:
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
b _08117206
.pool
_081171F8:
ldr r0, =gUnknown_08C2DBE8
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
_08117206:
ldr r3, =gBattle_BG1_X
movs r2, 0
strh r2, [r3]
ldr r0, =gBattle_BG1_Y
strh r2, [r0]
ldr r1, =gUnknown_0203A110
ldr r0, [r1]
movs r4, 0x4
ldrsh r0, [r0, r4]
adds r4, r1, 0
cmp r0, 0x1
bne _08117248
movs r0, 0x40
strh r0, [r3]
ldr r2, =gTasks
lsls r3, r5, 2
adds r0, r3, r5
lsls r0, 3
adds r0, r2
ldr r1, =0x0000fffd
b _08117254
.pool
_08117248:
ldr r2, =gTasks
lsls r3, r5, 2
adds r0, r3, r5
lsls r0, 3
adds r0, r2
movs r1, 0x3
_08117254:
strh r1, [r0, 0xA]
ldr r0, [r4]
movs r1, 0xC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08117274
adds r0, r3, r5
lsls r0, 3
adds r0, r2
movs r1, 0xA
strh r1, [r0, 0x10]
movs r1, 0x14
b _08117280
.pool
_08117274:
adds r0, r3, r5
lsls r0, 3
adds r0, r2
movs r1, 0xD
strh r1, [r0, 0x10]
movs r1, 0x1E
_08117280:
strh r1, [r0, 0x12]
adds r1, r3, r5
lsls r1, 3
adds r1, r2
strh r7, [r1, 0x8]
ldr r3, [r4]
ldrh r0, [r3, 0xA]
strh r0, [r1, 0xC]
mov r4, r8
strh r4, [r1, 0xE]
ldrb r0, [r3, 0x2]
strh r0, [r1, 0x14]
ldr r2, =gBattlerSpriteIds
ldrb r0, [r3, 0x1]
adds r0, r2
ldrb r0, [r0]
strh r0, [r1, 0x16]
ldr r0, =sub_81172EC
str r0, [r1]
movs r1, 0x4
ldrsh r0, [r3, r1]
cmp r0, 0
bne _081172CC
movs r0, 0x40
negs r0, r0
bl BattleAnimAdjustPanning2
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0xEF
bl PlaySE12WithPanning
b _081172E0
.pool
_081172CC:
movs r0, 0x40
negs r0, r0
bl BattleAnimAdjustPanning2
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0xF5
bl PlaySE12WithPanning
_081172E0:
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81170EC
thumb_func_start sub_81172EC
sub_81172EC: @ 81172EC
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r2, =gBattle_BG1_Y
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r1
ldrh r0, [r5, 0xA]
ldrh r1, [r2]
adds r0, r1
strh r0, [r2]
movs r0, 0x26
ldrsh r2, [r5, r0]
cmp r2, 0x1
beq _08117362
cmp r2, 0x1
bgt _08117320
cmp r2, 0
beq _0811732A
b _08117478
.pool
_08117320:
cmp r2, 0x2
beq _08117378
cmp r2, 0x3
beq _081173B6
b _08117478
_0811732A:
ldrh r0, [r5, 0x1E]
adds r1, r0, 0x1
strh r1, [r5, 0x1E]
lsls r0, 16
cmp r0, 0
bgt _08117338
b _08117478
_08117338:
strh r2, [r5, 0x1E]
ldrh r1, [r5, 0x20]
adds r1, 0x1
strh r1, [r5, 0x20]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r2, 0x20
ldrsh r1, [r5, r2]
movs r2, 0x10
ldrsh r0, [r5, r2]
cmp r1, r0
beq _08117360
b _08117478
_08117360:
b _081173AE
_08117362:
ldrh r0, [r5, 0x1C]
adds r0, 0x1
strh r0, [r5, 0x1C]
lsls r0, 16
asrs r0, 16
movs r2, 0x12
ldrsh r1, [r5, r2]
cmp r0, r1
beq _08117376
b _08117478
_08117376:
b _081173AE
_08117378:
ldrh r0, [r5, 0x1E]
adds r1, r0, 0x1
strh r1, [r5, 0x1E]
lsls r0, 16
cmp r0, 0
ble _08117478
movs r0, 0
strh r0, [r5, 0x1E]
ldrh r1, [r5, 0x20]
subs r1, 0x1
strh r1, [r5, 0x20]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x20
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08117478
movs r0, 0
bl sub_80A477C
_081173AE:
ldrh r0, [r5, 0x26]
adds r0, 0x1
strh r0, [r5, 0x26]
b _08117478
_081173B6:
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081173E6
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_081173E6:
movs r0, 0
bl GetGpuReg
adds r1, r0, 0
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
eors r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl DestroySprite
movs r1, 0xC
ldrsh r0, [r5, r1]
cmp r0, 0
beq _0811743A
movs r2, 0xE
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
_0811743A:
movs r1, 0x14
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08117466
movs r2, 0x16
ldrsh r0, [r5, r2]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r4
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
_08117466:
ldr r4, =gUnknown_0203A110
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
adds r0, r6, 0
bl DestroyAnimVisualTask
_08117478:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81172EC
thumb_func_start sub_8117494
sub_8117494: @ 8117494
push {r4-r6,lr}
sub sp, 0xC
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
movs r0, 0x1
movs r1, 0x1
movs r2, 0x1
movs r3, 0x1
bl sub_80A76C4
adds r6, r0, 0
movs r1, 0
bl sub_81175C4
ldr r0, =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
lsrs r0, r6, 16
movs r5, 0
strh r0, [r4, 0x24]
str r5, [sp]
str r5, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
adds r6, r0, 0
ldr r1, =0x0000ffff
ands r6, r1
adds r0, r6, 0
bl sub_81175C4
strh r6, [r4, 0x26]
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
ldr r0, =sub_8117500
str r0, [r4]
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117494
thumb_func_start sub_8117500
sub_8117500: @ 8117500
push {r4-r6,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r1, [r4, r0]
cmp r1, 0x1
beq _08117544
cmp r1, 0x1
bgt _08117528
cmp r1, 0
beq _0811752E
b _081175BE
.pool
_08117528:
cmp r1, 0x2
beq _081175B8
b _081175BE
_0811752E:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x6
ble _081175BE
strh r1, [r4, 0xA]
movs r0, 0x10
strh r0, [r4, 0xC]
b _081175AC
_08117544:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _081175BE
movs r0, 0
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
subs r0, 0x1
strh r0, [r4, 0xC]
movs r5, 0
movs r6, 0x1
_08117560:
movs r1, 0x26
ldrsh r0, [r4, r1]
asrs r0, r5
ands r0, r6
cmp r0, 0
beq _0811757A
lsls r0, r5, 20
lsrs r0, 16
ldrb r2, [r4, 0xC]
movs r1, 0x10
ldr r3, =0x0000ffff
bl BlendPalette
_0811757A:
movs r1, 0x24
ldrsh r0, [r4, r1]
asrs r0, r5
ands r0, r6
cmp r0, 0
beq _0811759A
lsls r0, r5, 20
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r0, 16
ldrb r2, [r4, 0xC]
movs r1, 0x10
movs r3, 0
bl BlendPalette
_0811759A:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0xF
bls _08117560
movs r1, 0xC
ldrsh r0, [r4, r1]
cmp r0, 0
bne _081175BE
_081175AC:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _081175BE
.pool
_081175B8:
adds r0, r2, 0
bl DestroyAnimVisualTask
_081175BE:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8117500
thumb_func_start sub_81175C4
sub_81175C4: @ 81175C4
push {r4-r6,lr}
adds r3, r0, 0
lsls r1, 16
lsrs r6, r1, 16
movs r2, 0
_081175CE:
movs r0, 0x1
ands r0, r3
lsrs r4, r3, 1
adds r5, r2, 0x1
cmp r0, 0
beq _081175FA
lsls r0, r2, 20
lsrs r2, r0, 16
adds r0, r2, 0
adds r0, 0x10
cmp r2, r0
bge _081175FA
ldr r1, =gPlttBufferFaded
adds r3, r0, 0
_081175EA:
lsls r0, r2, 1
adds r0, r1
strh r6, [r0]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, r3
blt _081175EA
_081175FA:
adds r3, r4, 0
lsls r0, r5, 16
lsrs r2, r0, 16
cmp r2, 0x1F
bls _081175CE
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81175C4
thumb_func_start sub_8117610
sub_8117610: @ 8117610
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r4, 0
movs r2, 0
ldr r0, =gBattleAnimAttacker
ldrb r3, [r0]
movs r5, 0x1
_08117620:
cmp r3, r2
beq _0811762E
adds r1, r2, 0
adds r1, 0x10
adds r0, r5, 0
lsls r0, r1
orrs r4, r0
_0811762E:
adds r2, 0x1
cmp r2, 0x3
bls _08117620
movs r2, 0x5
ldr r0, =gBattleAnimArgs
adds r1, r0, 0
adds r1, 0x8
_0811763C:
ldrh r0, [r1]
strh r0, [r1, 0x2]
subs r1, 0x2
subs r2, 0x1
cmp r2, 0
bne _0811763C
adds r0, r6, 0
adds r1, r4, 0
bl sub_8116874
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117610
thumb_func_start sub_8117660
sub_8117660: @ 8117660
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
bl sub_80A6DAC
ldr r0, =sub_81176D8
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r5, r0, 24
ldr r4, =gBattleAnimArgs
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0811769C
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0811769C
ldrh r0, [r4]
negs r0, r0
strh r0, [r4]
ldrh r0, [r4, 0x2]
negs r0, r0
strh r0, [r4, 0x2]
_0811769C:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r2, =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0xA]
ldrh r0, [r2, 0x2]
strh r0, [r1, 0xC]
ldrh r0, [r2, 0x6]
strh r0, [r1, 0xE]
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
adds r0, r6, 0
bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117660
thumb_func_start sub_81176D8
sub_81176D8: @ 81176D8
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldrh r3, [r1, 0xA]
ldrh r0, [r1, 0x1C]
adds r3, r0
movs r4, 0
mov r12, r4
strh r3, [r1, 0x1C]
ldrh r2, [r1, 0xC]
ldrh r7, [r1, 0x1E]
adds r2, r7
strh r2, [r1, 0x1E]
ldr r6, =gBattle_BG3_X
lsls r0, r3, 16
asrs r0, 24
ldrh r4, [r6]
adds r0, r4
strh r0, [r6]
ldr r4, =gBattle_BG3_Y
lsls r0, r2, 16
asrs r0, 24
ldrh r7, [r4]
adds r0, r7
strh r0, [r4]
movs r0, 0xFF
ands r3, r0
strh r3, [r1, 0x1C]
ands r2, r0
strh r2, [r1, 0x1E]
ldr r0, =gBattleAnimArgs
movs r3, 0xE
ldrsh r2, [r0, r3]
movs r7, 0xE
ldrsh r0, [r1, r7]
cmp r2, r0
bne _0811773E
mov r0, r12
strh r0, [r6]
strh r0, [r4]
movs r0, 0x1
bl sub_80A6DAC
adds r0, r5, 0
bl DestroyTask
_0811773E:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81176D8
thumb_func_start AnimTask_IsAttackerOpponentSide
AnimTask_IsAttackerOpponentSide: @ 8117754
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
ldr r1, =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsAttackerOpponentSide
thumb_func_start AnimTask_IsTargetOpponentSide
AnimTask_IsTargetOpponentSide: @ 8117780
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
ldr r1, =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0xE]
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsTargetOpponentSide
thumb_func_start AnimTask_IsTargetPartner
AnimTask_IsTargetPartner: @ 81177AC
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r5, =gBattleAnimArgs
movs r4, 0
ldr r0, =gBattleAnimAttacker
ldrb r2, [r0]
movs r0, 0x2
ldr r1, =gBattleAnimTarget
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
bne _081177C8
movs r4, 0x1
_081177C8:
strh r4, [r5, 0xE]
adds r0, r3, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsTargetPartner
thumb_func_start sub_81177E4
sub_81177E4: @ 81177E4
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r6, =gSprites
_081177EE:
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
cmp r4, r0
beq _0811782C
lsls r0, r4, 24
lsrs r0, 24
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811782C
ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r6
ldr r1, =gBattleAnimArgs
adds r2, 0x3E
movs r0, 0x1
ldrb r3, [r1]
ands r3, r0
lsls r3, 2
ldrb r0, [r2]
movs r7, 0x5
negs r7, r7
adds r1, r7, 0
ands r0, r1
orrs r0, r3
strb r0, [r2]
_0811782C:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x3
bls _081177EE
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81177E4
thumb_func_start sub_8117854
sub_8117854: @ 8117854
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
ldr r1, [sp, 0x44]
ldr r4, [sp, 0x48]
ldr r5, [sp, 0x4C]
ldr r6, [sp, 0x50]
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r2, 16
lsrs r2, 16
str r2, [sp, 0x14]
lsls r3, 24
lsrs r7, r3, 24
lsls r1, 24
lsrs r1, 24
mov r8, r1
lsls r4, 24
lsrs r4, 24
str r4, [sp, 0x18]
lsls r5, 24
lsrs r5, 24
str r5, [sp, 0x1C]
lsls r6, 24
lsrs r6, 24
mov r10, r6
movs r0, 0
str r0, [sp, 0x20]
movs r0, 0x2
adds r6, r7, 0
eors r6, r0
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081178B6
mov r1, r8
cmp r1, 0
beq _081178BA
adds r0, r6, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _081178BA
_081178B6:
movs r2, 0
mov r8, r2
_081178BA:
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
movs r1, 0x80
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
movs r0, 0xA
bl GetGpuReg
add r4, sp, 0x10
strh r0, [r4]
ldrb r1, [r4]
movs r0, 0x4
negs r0, r0
ands r0, r1
strb r0, [r4]
mov r2, sp
adds r2, 0x11
ldrb r1, [r2]
movs r0, 0x3F
ands r0, r1
strb r0, [r2]
ldrb r0, [r2]
movs r1, 0x20
orrs r0, r1
strb r0, [r2]
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08117930
ldrb r0, [r4]
movs r1, 0xD
negs r1, r1
ands r1, r0
movs r0, 0x4
orrs r1, r0
strb r1, [r4]
_08117930:
ldrh r1, [r4]
movs r0, 0xA
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08117964
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r4, [r0]
b _081179A2
.pool
_08117964:
adds r0, r7, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08117988
ldr r1, =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
b _08117996
.pool
_08117988:
ldr r1, =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
_08117996:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
_081179A2:
ldr r5, =gBattlerSpriteIds
adds r0, r7, r5
ldrb r1, [r0]
adds r0, r7, 0
adds r2, r4, 0
bl sub_80A89C8
lsls r0, 24
lsrs r7, r0, 24
mov r0, r8
cmp r0, 0
beq _081179CC
adds r0, r6, r5
ldrb r1, [r0]
adds r0, r6, 0
adds r2, r4, 0
bl sub_80A89C8
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x20]
_081179CC:
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldr r1, [sp, 0x58]
movs r2, 0
bl sub_80A6D60
mov r0, sp
ldrb r0, [r0, 0x9]
mov r1, sp
ldrh r2, [r1, 0xA]
ldr r1, [sp, 0x54]
bl sub_80A6CC0
mov r0, sp
ldrb r1, [r0, 0x8]
lsls r1, 4
ldr r0, [sp, 0x5C]
movs r2, 0x20
bl LoadCompressedPalette
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG1_Y
strh r1, [r0]
ldr r1, =gTasks
mov r2, r9
lsls r0, r2, 2
add r0, r9
lsls r0, 3
adds r0, r1
mov r1, sp
ldrh r1, [r1, 0x14]
strh r1, [r0, 0xA]
mov r2, sp
ldrh r2, [r2, 0x18]
strh r2, [r0, 0x10]
mov r1, r10
strh r1, [r0, 0x12]
mov r2, sp
ldrh r2, [r2, 0x1C]
strh r2, [r0, 0x14]
strh r7, [r0, 0x8]
mov r1, r8
strh r1, [r0, 0xC]
mov r2, sp
ldrh r2, [r2, 0x20]
strh r2, [r0, 0xE]
ldr r1, =sub_8117A60
str r1, [r0]
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117854
thumb_func_start sub_8117A60
sub_8117A60: @ 8117A60
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r3, r0, r1
movs r0, 0xA
ldrsh r2, [r3, r0]
adds r5, r1, 0
cmp r2, 0
bge _08117A7E
negs r2, r2
_08117A7E:
ldrh r0, [r3, 0x22]
adds r4, r0, r2
strh r4, [r3, 0x22]
movs r1, 0xA
ldrsh r0, [r3, r1]
cmp r0, 0
bge _08117AA4
ldr r2, =gBattle_BG1_Y
lsls r1, r4, 16
asrs r1, 24
ldrh r0, [r2]
subs r0, r1
strh r0, [r2]
b _08117AB0
.pool
_08117AA4:
ldr r1, =gBattle_BG1_Y
lsls r0, r4, 16
asrs r0, 24
ldrh r2, [r1]
adds r0, r2
strh r0, [r1]
_08117AB0:
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r5, r0, r5
ldrh r1, [r5, 0x22]
movs r0, 0xFF
ands r0, r1
movs r2, 0
strh r0, [r5, 0x22]
movs r3, 0x26
ldrsh r0, [r5, r3]
cmp r0, 0x1
beq _08117B1A
cmp r0, 0x1
bgt _08117AD8
cmp r0, 0
beq _08117ADE
b _08117C0C
.pool
_08117AD8:
cmp r0, 0x2
beq _08117B34
b _08117C0C
_08117ADE:
ldrh r0, [r5, 0x1E]
adds r1, r0, 0x1
strh r1, [r5, 0x1E]
lsls r0, 16
asrs r0, 16
movs r3, 0x14
ldrsh r1, [r5, r3]
cmp r0, r1
bge _08117AF2
b _08117C0C
_08117AF2:
strh r2, [r5, 0x1E]
ldrh r1, [r5, 0x20]
adds r1, 0x1
strh r1, [r5, 0x20]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r0, 0x20
ldrsh r1, [r5, r0]
movs r2, 0x10
ldrsh r0, [r5, r2]
cmp r1, r0
bne _08117C0C
b _08117B2C
_08117B1A:
ldrh r0, [r5, 0x1C]
adds r0, 0x1
strh r0, [r5, 0x1C]
lsls r0, 16
asrs r0, 16
movs r3, 0x12
ldrsh r1, [r5, r3]
cmp r0, r1
bne _08117C0C
_08117B2C:
ldrh r0, [r5, 0x26]
adds r0, 0x1
strh r0, [r5, 0x26]
b _08117C0C
_08117B34:
ldrh r0, [r5, 0x1E]
adds r1, r0, 0x1
strh r1, [r5, 0x1E]
lsls r0, 16
asrs r0, 16
movs r3, 0x14
ldrsh r1, [r5, r3]
cmp r0, r1
blt _08117C0C
strh r2, [r5, 0x1E]
ldrh r1, [r5, 0x20]
subs r1, 0x1
strh r1, [r5, 0x20]
movs r0, 0x10
subs r0, r1
lsls r0, 8
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r0, 0x20
ldrsh r4, [r5, r0]
cmp r4, 0
bne _08117C0C
movs r0, 0
bl sub_80A477C
ldr r0, =gBattle_WIN0H
strh r4, [r0]
ldr r0, =gBattle_WIN0V
strh r4, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08117BB2
movs r0, 0xA
bl GetGpuReg
mov r1, sp
strh r0, [r1]
mov r2, sp
ldrb r1, [r2]
movs r0, 0xD
negs r0, r0
ands r0, r1
strb r0, [r2]
mov r0, sp
ldrh r1, [r0]
movs r0, 0xA
bl SetGpuReg
_08117BB2:
movs r0, 0
bl GetGpuReg
adds r1, r0, 0
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
eors r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r3, 0x8
ldrsh r1, [r5, r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, =gSprites
adds r0, r4
bl DestroySprite
movs r1, 0xC
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08117C06
movs r2, 0xE
ldrsh r1, [r5, r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
_08117C06:
adds r0, r6, 0
bl DestroyAnimVisualTask
_08117C0C:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117A60
thumb_func_start AnimTask_GetBattleTerrain
AnimTask_GetBattleTerrain: @ 8117C24
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimArgs
ldr r1, =gBattleTerrain
ldrb r1, [r1]
strh r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_GetBattleTerrain
thumb_func_start sub_8117C44
sub_8117C44: @ 8117C44
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x80
lsls r0, 6
bl AllocZeroed
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
movs r2, 0xBE
lsls r2, 1
adds r1, r2
str r0, [r1]
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117C44
thumb_func_start sub_8117C70
sub_8117C70: @ 8117C70
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r6, =gMonSpritesGfxPtr
ldr r0, [r6]
movs r5, 0xBE
lsls r5, 1
adds r0, r5
ldr r0, [r0]
bl Free
ldr r0, [r6]
adds r0, r5
movs r1, 0
str r1, [r0]
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117C70
thumb_func_start sub_8117CA0
sub_8117CA0: @ 8117CA0
push {r4,r5,lr}
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08117CE4
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08117CFC
movs r2, 0x1
_08117CD2:
lsrs r1, 1
adds r4, 0x1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
beq _08117CD2
b _08117CFC
.pool
_08117CE4:
cmp r0, 0x1
bne _08117CF0
ldr r0, =gBattleAnimAttacker
b _08117CF6
.pool
_08117CF0:
cmp r0, 0x2
bne _08117CFC
ldr r0, =gBattleAnimTarget
_08117CF6:
ldrb r0, [r0]
adds r4, r0, 0
adds r4, 0x10
_08117CFC:
ldr r0, =gMonSpritesGfxPtr
ldr r1, [r0]
ldr r0, =gBattleAnimArgs
movs r2, 0x2
ldrsh r0, [r0, r2]
movs r2, 0xBE
lsls r2, 1
adds r1, r2
ldr r1, [r1]
lsls r0, 5
adds r0, r1
lsls r1, r4, 5
ldr r2, =gPlttBufferUnfaded
adds r1, r2
movs r2, 0x20
bl memcpy
adds r0, r5, 0
bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117CA0
thumb_func_start sub_8117D3C
sub_8117D3C: @ 8117D3C
push {r4,r5,lr}
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08117D80
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08117D98
movs r2, 0x1
_08117D6E:
lsrs r1, 1
adds r4, 0x1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
beq _08117D6E
b _08117D98
.pool
_08117D80:
cmp r0, 0x1
bne _08117D8C
ldr r0, =gBattleAnimAttacker
b _08117D92
.pool
_08117D8C:
cmp r0, 0x2
bne _08117D98
ldr r0, =gBattleAnimTarget
_08117D92:
ldrb r0, [r0]
adds r4, r0, 0
adds r4, 0x10
_08117D98:
lsls r0, r4, 5
ldr r1, =gPlttBufferUnfaded
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r2, [r1]
ldr r1, =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r1, r3]
movs r3, 0xBE
lsls r3, 1
adds r2, r3
ldr r2, [r2]
lsls r1, 5
adds r1, r2
movs r2, 0x20
bl memcpy
adds r0, r5, 0
bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117D3C
thumb_func_start sub_8117DD8
sub_8117DD8: @ 8117DD8
push {r4,r5,lr}
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r0, =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08117E1C
str r4, [sp]
str r4, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80A75AC
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08117E34
movs r2, 0x1
_08117E0A:
lsrs r1, 1
adds r4, 0x1
adds r0, r1, 0
ands r0, r2
cmp r0, 0
beq _08117E0A
b _08117E34
.pool
_08117E1C:
cmp r0, 0x1
bne _08117E28
ldr r0, =gBattleAnimAttacker
b _08117E2E
.pool
_08117E28:
cmp r0, 0x2
bne _08117E34
ldr r0, =gBattleAnimTarget
_08117E2E:
ldrb r0, [r0]
adds r4, r0, 0
adds r4, 0x10
_08117E34:
lsls r1, r4, 5
ldr r0, =gPlttBufferUnfaded
adds r0, r1, r0
ldr r2, =gPlttBufferFaded
adds r1, r2
movs r2, 0x20
bl memcpy
adds r0, r5, 0
bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117DD8
thumb_func_start AnimTask_IsContest
AnimTask_IsContest: @ 8117E60
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl IsContest
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _08117E80
ldr r1, =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
b _08117E84
.pool
_08117E80:
ldr r0, =gBattleAnimArgs
strh r1, [r0, 0xE]
_08117E84:
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsContest
thumb_func_start sub_8117E94
sub_8117E94: @ 8117E94
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimAttacker
ldr r1, =gBattlerTarget
ldrb r1, [r1]
strb r1, [r2]
ldr r2, =gBattleAnimTarget
ldr r1, =gEffectBattler
ldrb r1, [r1]
strb r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end sub_8117E94
thumb_func_start AnimTask_IsTargetSameSide
AnimTask_IsTargetSameSide: @ 8117EC4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
adds r4, r0, 0
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _08117EF8
ldr r1, =gBattleAnimArgs
movs r0, 0x1
b _08117EFC
.pool
_08117EF8:
ldr r1, =gBattleAnimArgs
movs r0, 0
_08117EFC:
strh r0, [r1, 0xE]
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end AnimTask_IsTargetSameSide
thumb_func_start sub_8117F10
sub_8117F10: @ 8117F10
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimTarget
ldr r1, =gBattlerTarget
ldrb r1, [r1]
strb r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end sub_8117F10
thumb_func_start sub_8117F30
sub_8117F30: @ 8117F30
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimAttacker
ldr r1, =gBattlerAttacker
ldrb r1, [r1]
strb r1, [r2]
ldr r2, =gBattleAnimTarget
ldr r1, =gEffectBattler
ldrb r1, [r1]
strb r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end sub_8117F30
thumb_func_start sub_8117F60
sub_8117F60: @ 8117F60
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08117F78
adds r0, r4, 0
bl DestroyAnimVisualTask
b _08117FB4
_08117F78:
ldr r0, =gTasks
lsls r3, r4, 2
adds r3, r4
lsls r3, 3
adds r3, r0
ldr r0, =gBattleSpritesDataPtr
ldr r4, [r0]
ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
ldr r1, [r4]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
lsls r0, 31
lsrs r0, 31
strh r0, [r3, 0x8]
ldrb r1, [r2]
ldr r0, [r4]
lsls r1, 2
adds r1, r0
ldrb r0, [r1]
movs r2, 0x1
orrs r0, r2
strb r0, [r1]
ldr r0, =sub_8117FD0
str r0, [r3]
ldr r1, =gAnimVisualTaskCount
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
_08117FB4:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117F60
thumb_func_start sub_8117FD0
sub_8117FD0: @ 8117FD0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x80
lsls r0, 5
cmp r1, r0
bne _08118014
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
ldr r0, =gBattleAnimAttacker
ldrb r3, [r0]
ldr r0, [r1]
lsls r3, 2
adds r3, r0
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldrb r0, [r0, 0x8]
movs r1, 0x1
ands r1, r0
ldrb r2, [r3]
movs r0, 0x2
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
adds r0, r4, 0
bl DestroyTask
_08118014:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8117FD0
.align 2, 0