summaryrefslogtreecommitdiff
path: root/asm/battle_anim_special.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_anim_special.s')
-rw-r--r--asm/battle_anim_special.s6299
1 files changed, 0 insertions, 6299 deletions
diff --git a/asm/battle_anim_special.s b/asm/battle_anim_special.s
deleted file mode 100644
index 3f56279eb..000000000
--- a/asm/battle_anim_special.s
+++ /dev/null
@@ -1,6299 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80EEC0C
-sub_80EEC0C: @ 80EEC0C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- ldr r0, _080EEDB4 @ =gBattleAnimAttacker
- ldrb r4, [r0]
- ldr r0, _080EEDB8 @ =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080EEDBC @ =gBattle_WIN0V
- strh r1, [r0]
- ldr r1, _080EEDC0 @ =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, _080EEDC4 @ =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, _080EEDC8 @ =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
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
- ldr r0, _080EEDCC @ =gHealthboxSpriteIds
- adds r4, r0
- ldrb r0, [r4]
- ldr r1, _080EEDD0 @ =gSprites
- mov r9, r1
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r9
- ldrb r7, [r4, 0x6]
- ldrh r6, [r4, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080EEDD4 @ =SpriteCallbackDummy
- bl CreateInvisibleSpriteWithCallback
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r0, _080EEDD4 @ =SpriteCallbackDummy
- bl CreateInvisibleSpriteWithCallback
- mov r10, r0
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldrb r1, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x4
- mov r8, r1
- mov r2, r8
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r5, r7, 4
- adds r5, r7
- lsls r5, 2
- add r5, r9
- ldrb r1, [r5, 0x5]
- adds r0, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r9
- ldrb r2, [r1, 0x5]
- adds r0, r3, 0
- ands r0, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [sp, 0x14]
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- mov r1, r9
- adds r7, r6, r1
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x44
- str r3, [sp, 0x18]
- bl memcpy
- mov r2, r10
- lsls r4, r2, 4
- add r4, r10
- lsls r4, 2
- adds r0, r4, 0
- add r0, r9
- mov r8, r0
- adds r1, r5, 0
- movs r2, 0x44
- bl memcpy
- ldrb r1, [r7, 0x1]
- ldr r3, [sp, 0x18]
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x1]
- mov r2, r8
- ldrb r0, [r2, 0x1]
- ands r3, r0
- orrs r3, r1
- strb r3, [r2, 0x1]
- movs r0, 0x1C
- add r9, r0
- add r6, r9
- ldr r1, _080EEDD4 @ =SpriteCallbackDummy
- str r1, [r6]
- add r4, r9
- str r1, [r4]
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080EEDD8 @ =gFile_graphics_battle_anims_masks_unknown_D2EC24_tilemap
- bl AnimLoadCompressedBgTilemap
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080EEDDC @ =gFile_graphics_battle_anims_masks_unknown_D2EC24_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl AnimLoadCompressedBgGfx
- ldr r0, _080EEDE0 @ =gFile_graphics_battle_anims_masks_cure_bubbles_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _080EEDE4 @ =gBattle_BG1_X
- ldrh r0, [r7, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r1]
- ldr r1, _080EEDE8 @ =gBattle_BG1_Y
- ldrh r0, [r7, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1]
- ldr r1, _080EEDEC @ =gTasks
- ldr r2, [sp, 0x10]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA0
- lsls r1, 2
- strh r1, [r0, 0xA]
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0, 0x8]
- mov r2, r10
- strh r2, [r0, 0xC]
- ldr r1, _080EEDF0 @ =sub_80EEDF4
- str r1, [r0]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EEDB4: .4byte gBattleAnimAttacker
-_080EEDB8: .4byte gBattle_WIN0H
-_080EEDBC: .4byte gBattle_WIN0V
-_080EEDC0: .4byte 0x00003f3f
-_080EEDC4: .4byte 0x00003f3d
-_080EEDC8: .4byte 0x00003f42
-_080EEDCC: .4byte gHealthboxSpriteIds
-_080EEDD0: .4byte gSprites
-_080EEDD4: .4byte SpriteCallbackDummy
-_080EEDD8: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_tilemap
-_080EEDDC: .4byte gFile_graphics_battle_anims_masks_unknown_D2EC24_sheet
-_080EEDE0: .4byte gFile_graphics_battle_anims_masks_cure_bubbles_palette
-_080EEDE4: .4byte gBattle_BG1_X
-_080EEDE8: .4byte gBattle_BG1_Y
-_080EEDEC: .4byte gTasks
-_080EEDF0: .4byte sub_80EEDF4
- thumb_func_end sub_80EEC0C
-
- thumb_func_start sub_80EEDF4
-sub_80EEDF4: @ 80EEDF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080EEE3C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- mov r8, r0
- ldr r1, _080EEE40 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r1, [r5, 0xA]
- ldrh r0, [r5, 0x22]
- adds r1, r0
- movs r3, 0
- strh r1, [r5, 0x22]
- ldr r2, _080EEE44 @ =gBattle_BG1_Y
- lsls r0, r1, 16
- lsrs r0, 24
- ldrh r4, [r2]
- adds r0, r4
- strh r0, [r2]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x22]
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080EEE84
- cmp r0, 0x1
- bgt _080EEE48
- cmp r0, 0
- beq _080EEE4E
- b _080EEFA8
- .align 2, 0
-_080EEE3C: .4byte gBattleAnimAttacker
-_080EEE40: .4byte gTasks
-_080EEE44: .4byte gBattle_BG1_Y
-_080EEE48:
- cmp r0, 0x2
- beq _080EEE9C
- b _080EEFA8
-_080EEE4E:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _080EEE5E
- b _080EEFA8
-_080EEE5E:
- strh r3, [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 r0, [r5, r2]
- cmp r0, 0x8
- beq _080EEE82
- b _080EEFA8
-_080EEE82:
- b _080EEE94
-_080EEE84:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- beq _080EEE94
- b _080EEFA8
-_080EEE94:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
- b _080EEFA8
-_080EEE9C:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080EEFA8
- strh r3, [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 _080EEFA8
- movs r0, 0
- bl sub_8073128
- ldr r0, _080EEFB4 @ =gBattle_WIN0H
- strh r4, [r0]
- ldr r0, _080EEFB8 @ =gBattle_WIN0V
- strh r4, [r0]
- ldr r4, _080EEFBC @ =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 _080EEF00
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080EEF00:
- 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 r4, 0x8
- ldrsh r1, [r5, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, _080EEFC0 @ =gSprites
- adds r0, r6
- bl DestroySprite
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetAnimBgAttribute
- ldr r0, _080EEFC4 @ =gHealthboxSpriteIds
- add r0, r8
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x6]
- mov r8, r2
- ldrh r4, [r1, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r5, 0x4
- orrs r0, r5
- strb r0, [r1, 0x5]
- mov r0, r8
- lsls r1, r0, 4
- add r1, r8
- lsls r1, 2
- adds r1, r6
- ldrb r3, [r1, 0x5]
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x5]
- ands r2, r1
- orrs r2, r5
- strb r2, [r0, 0x5]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080EEFA8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EEFB4: .4byte gBattle_WIN0H
-_080EEFB8: .4byte gBattle_WIN0V
-_080EEFBC: .4byte 0x00003f3f
-_080EEFC0: .4byte gSprites
-_080EEFC4: .4byte gHealthboxSpriteIds
- thumb_func_end sub_80EEDF4
-
- thumb_func_start sub_80EEFC8
-sub_80EEFC8: @ 80EEFC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080EF0A0 @ =gHealthboxSpriteIds
- adds r2, r0
- ldrb r0, [r2]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r0, _080EF0A4 @ =gSprites
- adds r5, r0
- ldrb r1, [r5, 0x6]
- mov r10, r1
- ldrh r4, [r5, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080EF0A8 @ =0x0000d709
- bl AllocSpritePalette
- mov r2, r9
- strb r0, [r2]
- ldr r0, _080EF0AC @ =0x0000d70a
- bl AllocSpritePalette
- strb r0, [r7]
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r1, 0x80
- lsls r1, 1
- adds r3, r1, 0
- orrs r0, r3
- lsls r6, r4, 4
- adds r6, r4
- lsls r6, 2
- ldr r2, _080EF0A4 @ =gSprites
- adds r6, r2
- ldrb r4, [r6, 0x5]
- lsrs r4, 4
- lsls r4, 4
- orrs r4, r3
- lsls r0, 1
- ldr r1, _080EF0B0 @ =gPlttBufferUnfaded
- mov r8, r1
- add r0, r8
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 4
- adds r1, r3, r1
- movs r2, 0x20
- str r3, [sp]
- bl LoadPalette
- lsls r4, 1
- add r4, r8
- ldrb r0, [r7]
- lsls r0, 4
- ldr r3, [sp]
- adds r3, r0
- adds r0, r4, 0
- adds r1, r3, 0
- movs r2, 0x20
- bl LoadPalette
- mov r0, r9
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r5, 0x5]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r2, r10
- lsls r1, r2, 4
- add r1, r10
- lsls r1, 2
- ldr r0, _080EF0A4 @ =gSprites
- adds r1, r0
- mov r0, r9
- ldrb r2, [r0]
- lsls r2, 4
- ldrb r4, [r1, 0x5]
- adds r0, r3, 0
- ands r0, r4
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldrb r0, [r7]
- lsls r0, 4
- ldrb r1, [r6, 0x5]
- ands r3, r1
- orrs r3, r0
- strb r3, [r6, 0x5]
- 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
-_080EF0A0: .4byte gHealthboxSpriteIds
-_080EF0A4: .4byte gSprites
-_080EF0A8: .4byte 0x0000d709
-_080EF0AC: .4byte 0x0000d70a
-_080EF0B0: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80EEFC8
-
- thumb_func_start sub_80EF0B4
-sub_80EF0B4: @ 80EF0B4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, sp
- adds r1, 0x1
- ldr r0, _080EF0DC @ =gBattleAnimAttacker
- ldrb r2, [r0]
- mov r0, sp
- bl sub_80EEFC8
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF0DC: .4byte gBattleAnimAttacker
- thumb_func_end sub_80EF0B4
-
- thumb_func_start sub_80EF0E0
-sub_80EF0E0: @ 80EF0E0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080EF168 @ =gHealthboxSpriteIds
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _080EF16C @ =gSprites
- mov r8, r1
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- add r5, r8
- ldrb r0, [r5, 0x6]
- mov r9, r0
- ldrh r6, [r5, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080EF170 @ =0x0000d709
- bl FreeSpritePaletteByTag
- ldr r0, _080EF174 @ =0x0000d70a
- bl FreeSpritePaletteByTag
- ldr r0, _080EF178 @ =0x0000d6ff
- bl IndexOfSpritePaletteTag
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080EF17C @ =0x0000d704
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsls r4, 4
- ldrb r2, [r5, 0x5]
- movs r3, 0xF
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r4
- strb r1, [r5, 0x5]
- mov r1, r9
- lsls r2, r1, 4
- add r2, r9
- lsls r2, 2
- add r2, r8
- ldrb r5, [r2, 0x5]
- adds r1, r3, 0
- ands r1, r5
- orrs r1, r4
- strb r1, [r2, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r8
- lsrs r0, 20
- ldrb r2, [r1, 0x5]
- ands r3, r2
- orrs r3, r0
- strb r3, [r1, 0x5]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF168: .4byte gHealthboxSpriteIds
-_080EF16C: .4byte gSprites
-_080EF170: .4byte 0x0000d709
-_080EF174: .4byte 0x0000d70a
-_080EF178: .4byte 0x0000d6ff
-_080EF17C: .4byte 0x0000d704
- thumb_func_end sub_80EF0E0
-
- thumb_func_start sub_80EF180
-sub_80EF180: @ 80EF180
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080EF19C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80EF0E0
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF19C: .4byte gBattleAnimAttacker
- thumb_func_end sub_80EF180
-
- thumb_func_start sub_80EF1A0
-sub_80EF1A0: @ 80EF1A0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080EF1C0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080EF1C4 @ =gBattleAnimArgs
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0x1E]
- ldr r0, _080EF1C8 @ =sub_80EF1CC
- str r0, [r1]
- bx lr
- .align 2, 0
-_080EF1C0: .4byte gTasks
-_080EF1C4: .4byte gBattleAnimArgs
-_080EF1C8: .4byte sub_80EF1CC
- thumb_func_end sub_80EF1A0
-
- thumb_func_start sub_80EF1CC
-sub_80EF1CC: @ 80EF1CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080EF218 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r6, 0
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080EF28C
- strh r6, [r4, 0x8]
- ldr r0, _080EF21C @ =0x0000d709
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- movs r1, 0x2
- cmp r0, 0
- bne _080EF20A
- movs r1, 0x6
-_080EF20A:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080EF220
- cmp r0, 0x1
- beq _080EF25C
- b _080EF28C
- .align 2, 0
-_080EF218: .4byte gTasks
-_080EF21C: .4byte 0x0000d709
-_080EF220:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080EF232
- movs r0, 0x10
- strh r0, [r4, 0xC]
-_080EF232:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _080EF258 @ =0x00007f74
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _080EF28C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080EF28C
- .align 2, 0
-_080EF258: .4byte 0x00007f74
-_080EF25C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bge _080EF26A
- strh r6, [r4, 0xC]
-_080EF26A:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _080EF294 @ =0x00007f74
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080EF28C
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080EF28C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF294: .4byte 0x00007f74
- thumb_func_end sub_80EF1CC
-
- thumb_func_start sub_80EF298
-sub_80EF298: @ 80EF298
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080EF2C4 @ =gBattlerSpriteIds
- ldr r0, _080EF2C8 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r5, [r0]
- ldr r1, _080EF2CC @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080EF2E6
- cmp r0, 0x1
- bgt _080EF2D0
- cmp r0, 0
- beq _080EF2D6
- b _080EF338
- .align 2, 0
-_080EF2C4: .4byte gBattlerSpriteIds
-_080EF2C8: .4byte gBattleAnimAttacker
-_080EF2CC: .4byte gTasks
-_080EF2D0:
- cmp r0, 0x2
- beq _080EF318
- b _080EF338
-_080EF2D6:
- adds r0, r5, 0
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x1C]
- b _080EF30A
-_080EF2E6:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x30
- strh r0, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- adds r1, r2, 0
- movs r3, 0
- bl SetSpriteRotScale
- adds r0, r5, 0
- bl SetBattlerSpriteYOffsetFromYScale
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- ldr r0, _080EF314 @ =0x000002cf
- cmp r1, r0
- ble _080EF338
-_080EF30A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080EF338
- .align 2, 0
-_080EF314: .4byte 0x000002cf
-_080EF318:
- adds r0, r5, 0
- bl ResetSpriteRotScale
- ldr r1, _080EF340 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080EF338:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF340: .4byte gSprites
- thumb_func_end sub_80EF298
-
- thumb_func_start sub_80EF344
-sub_80EF344: @ 80EF344
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080EF37C @ =gBattlerSpriteIds
- ldr r4, _080EF380 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- adds r1, r0, r1
- ldrb r1, [r1]
- mov r9, r1
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080EF38C
- ldr r1, _080EF384 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080EF388 @ =gPlayerParty
- b _080EF39C
- .align 2, 0
-_080EF37C: .4byte gBattlerSpriteIds
-_080EF380: .4byte gBattleAnimAttacker
-_080EF384: .4byte gBattlerPartyIndexes
-_080EF388: .4byte gPlayerParty
-_080EF38C:
- ldr r1, _080EF3CC @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080EF3D0 @ =gEnemyParty
-_080EF39C:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ItemIdToBallId
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _080EF3D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r6, r0, r2
- movs r0, 0x8
- ldrsh r7, [r6, r0]
- cmp r7, 0
- beq _080EF3D8
- cmp r7, 0x1
- beq _080EF458
- b _080EF482
- .align 2, 0
-_080EF3CC: .4byte gBattlerPartyIndexes
-_080EF3D0: .4byte gEnemyParty
-_080EF3D4: .4byte gTasks
-_080EF3D8:
- ldr r5, _080EF450 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- adds r1, r0, 0
- lsls r1, 24
- ldr r2, _080EF454 @ =gSprites
- mov r3, r9
- lsls r0, r3, 4
- add r0, r9
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r0, 0x43
- ldrb r3, [r0]
- movs r0, 0x80
- lsls r0, 22
- adds r1, r0
- lsrs r1, 24
- mov r0, r8
- str r0, [sp]
- adds r0, r4, 0
- bl LaunchBallStarsTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1C]
- str r7, [sp]
- str r7, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8075BE8
- adds r2, r0, 0
- ldrb r1, [r5]
- movs r0, 0
- mov r3, r8
- bl LaunchBallFadeMonTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _080EF482
- .align 2, 0
-_080EF450: .4byte gBattleAnimAttacker
-_080EF454: .4byte gSprites
-_080EF458:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _080EF482
- movs r3, 0x1E
- ldrsh r0, [r6, r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _080EF482
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080EF482:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EF344
-
- thumb_func_start sub_80EF490
-sub_80EF490: @ 80EF490
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080EF4B4 @ =gLastUsedItem
- ldrh r0, [r0]
- bl ItemIdToBallId
- lsls r0, 24
- lsrs r0, 24
- bl LoadBallGfx
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF4B4: .4byte gLastUsedItem
- thumb_func_end sub_80EF490
-
- thumb_func_start sub_80EF4B8
-sub_80EF4B8: @ 80EF4B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080EF4DC @ =gLastUsedItem
- ldrh r0, [r0]
- bl ItemIdToBallId
- lsls r0, 24
- lsrs r0, 24
- bl FreeBallGfx
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF4DC: .4byte gLastUsedItem
- thumb_func_end sub_80EF4B8
-
- thumb_func_start sub_80EF4E0
-sub_80EF4E0: @ 80EF4E0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080EF4FC @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- beq _080EF504
- cmp r0, 0x6
- beq _080EF514
- ldr r1, _080EF500 @ =gBattleAnimArgs
- movs r0, 0
- b _080EF518
- .align 2, 0
-_080EF4FC: .4byte gBattleSpritesDataPtr
-_080EF500: .4byte gBattleAnimArgs
-_080EF504:
- ldr r1, _080EF50C @ =gBattleAnimArgs
- ldr r0, _080EF510 @ =0x0000ffff
- b _080EF518
- .align 2, 0
-_080EF50C: .4byte gBattleAnimArgs
-_080EF510: .4byte 0x0000ffff
-_080EF514:
- ldr r1, _080EF524 @ =gBattleAnimArgs
- ldr r0, _080EF528 @ =0x0000fffe
-_080EF518:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080EF524: .4byte gBattleAnimArgs
-_080EF528: .4byte 0x0000fffe
- thumb_func_end sub_80EF4E0
-
- thumb_func_start ItemIdToBallId
-ItemIdToBallId: @ 80EF52C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- subs r0, 0x1
- cmp r0, 0xB
- bhi _080EF5A4
- lsls r0, 2
- ldr r1, _080EF544 @ =_080EF548
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EF544: .4byte _080EF548
- .align 2, 0
-_080EF548:
- .4byte _080EF578
- .4byte _080EF57C
- .4byte _080EF580
- .4byte _080EF5A4
- .4byte _080EF584
- .4byte _080EF588
- .4byte _080EF58C
- .4byte _080EF590
- .4byte _080EF594
- .4byte _080EF598
- .4byte _080EF59C
- .4byte _080EF5A0
-_080EF578:
- movs r0, 0x4
- b _080EF5A6
-_080EF57C:
- movs r0, 0x3
- b _080EF5A6
-_080EF580:
- movs r0, 0x1
- b _080EF5A6
-_080EF584:
- movs r0, 0x2
- b _080EF5A6
-_080EF588:
- movs r0, 0x5
- b _080EF5A6
-_080EF58C:
- movs r0, 0x6
- b _080EF5A6
-_080EF590:
- movs r0, 0x7
- b _080EF5A6
-_080EF594:
- movs r0, 0x8
- b _080EF5A6
-_080EF598:
- movs r0, 0x9
- b _080EF5A6
-_080EF59C:
- movs r0, 0xA
- b _080EF5A6
-_080EF5A0:
- movs r0, 0xB
- b _080EF5A6
-_080EF5A4:
- movs r0, 0
-_080EF5A6:
- pop {r1}
- bx r1
- thumb_func_end ItemIdToBallId
-
- thumb_func_start sub_80EF5AC
-sub_80EF5AC: @ 80EF5AC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r10, r0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080EF674 @ =gLastUsedItem
- ldrh r0, [r0]
- bl ItemIdToBallId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _080EF678 @ =gBallSpriteTemplates
- adds r0, r1
- movs r1, 0x20
- movs r2, 0x50
- movs r3, 0x1D
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080EF67C @ =gSprites
- mov r9, r1
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r1
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r2, _080EF680 @ =gBattleAnimTarget
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- mov r0, r9
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _080EF684 @ =sub_80EF8C0
- str r0, [r4]
- ldr r0, _080EF688 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r3, [r0, 0x8]
- ldr r1, _080EF68C @ =gBattlerSpriteIds
- mov r2, r8
- ldrb r0, [r2]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- lsls r1, 1
- ldrb r2, [r3, 0x9]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x9]
- ldr r1, _080EF690 @ =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _080EF694 @ =sub_80EF698
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF674: .4byte gLastUsedItem
-_080EF678: .4byte gBallSpriteTemplates
-_080EF67C: .4byte gSprites
-_080EF680: .4byte gBattleAnimTarget
-_080EF684: .4byte sub_80EF8C0
-_080EF688: .4byte gBattleSpritesDataPtr
-_080EF68C: .4byte gBattlerSpriteIds
-_080EF690: .4byte gTasks
-_080EF694: .4byte sub_80EF698
- thumb_func_end sub_80EF5AC
-
- thumb_func_start sub_80EF698
-sub_80EF698: @ 80EF698
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _080EF6C8 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- ldr r2, _080EF6CC @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- ldr r0, _080EF6D0 @ =0x0000ffff
- cmp r1, r0
- bne _080EF6C2
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080EF6C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF6C8: .4byte gTasks
-_080EF6CC: .4byte gSprites
-_080EF6D0: .4byte 0x0000ffff
- thumb_func_end sub_80EF698
-
- thumb_func_start sub_80EF6D4
-sub_80EF6D4: @ 80EF6D4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080EF6F4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _080EF6F8
- movs r5, 0x1C
- movs r6, 0xB
- b _080EF708
- .align 2, 0
-_080EF6F4: .4byte gBattleTypeFlags
-_080EF6F8:
- movs r5, 0x17
- movs r6, 0xB
- ldr r0, _080EF7C4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _080EF708
- movs r6, 0xD
-_080EF708:
- ldr r0, _080EF7C8 @ =gLastUsedItem
- ldrh r0, [r0]
- bl ItemIdToBallId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerSpriteSubpriority
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _080EF7CC @ =gBallSpriteTemplates
- adds r0, r1
- movs r1, 0x20
- orrs r5, r1
- movs r1, 0x50
- orrs r6, r1
- adds r1, r5, 0
- adds r2, r6, 0
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080EF7D0 @ =gSprites
- mov r9, r0
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r0
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r1, _080EF7D4 @ =gBattleAnimTarget
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- movs r0, 0x1C
- add r9, r0
- add r4, r9
- ldr r0, _080EF7D8 @ =SpriteCallbackDummy
- str r0, [r4]
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _080EF7DC @ =gBattlerSpriteIds
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldr r1, _080EF7E0 @ =sub_8012354
- str r1, [r0]
- ldr r1, _080EF7E4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _080EF7E8 @ =sub_80EF7EC
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF7C4: .4byte gSaveBlock2Ptr
-_080EF7C8: .4byte gLastUsedItem
-_080EF7CC: .4byte gBallSpriteTemplates
-_080EF7D0: .4byte gSprites
-_080EF7D4: .4byte gBattleAnimTarget
-_080EF7D8: .4byte SpriteCallbackDummy
-_080EF7DC: .4byte gBattlerSpriteIds
-_080EF7E0: .4byte sub_8012354
-_080EF7E4: .4byte gTasks
-_080EF7E8: .4byte sub_80EF7EC
- thumb_func_end sub_80EF6D4
-
- thumb_func_start sub_80EF7EC
-sub_80EF7EC: @ 80EF7EC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _080EF84C @ =gSprites
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _080EF850 @ =gBattlerSpriteIds
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080EF846
- movs r0, 0x36
- movs r1, 0
- bl PlaySE12WithPanning
- ldr r0, _080EF854 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080EF858 @ =sub_80EF8C0
- str r1, [r0]
- ldr r0, _080EF85C @ =sub_80EF864
- movs r1, 0xA
- bl CreateTask
- ldr r0, _080EF860 @ =sub_80EF698
- str r0, [r4]
-_080EF846:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF84C: .4byte gSprites
-_080EF850: .4byte gBattlerSpriteIds
-_080EF854: .4byte gTasks
-_080EF858: .4byte sub_80EF8C0
-_080EF85C: .4byte sub_80EF864
-_080EF860: .4byte sub_80EF698
- thumb_func_end sub_80EF7EC
-
- thumb_func_start sub_80EF864
-sub_80EF864: @ 80EF864
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _080EF8B8 @ =gSprites
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r4, _080EF8BC @ =gBattlerSpriteIds
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _080EF8B0
- movs r0, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl DestroyTask
-_080EF8B0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF8B8: .4byte gSprites
-_080EF8BC: .4byte gBattlerSpriteIds
- thumb_func_end sub_80EF864
-
- thumb_func_start sub_80EF8C0
-sub_80EF8C0: @ 80EF8C0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x32]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r0, _080EF8E8 @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldr r0, _080EF8EC @ =sub_80EF8F0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF8E8: .4byte 0x0000ffd8
-_080EF8EC: .4byte sub_80EF8F0
- thumb_func_end sub_80EF8C0
-
- thumb_func_start sub_80EF8F0
-sub_80EF8F0: @ 80EF8F0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- beq _080EF99E
- ldr r0, _080EF914 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- bne _080EF91C
- ldr r0, _080EF918 @ =sub_80F0478
- str r0, [r4, 0x1C]
- b _080EF99E
- .align 2, 0
-_080EF914: .4byte gBattleSpritesDataPtr
-_080EF918: .4byte sub_80F0478
-_080EF91C:
- cmp r0, 0x6
- bne _080EF92C
- ldr r0, _080EF928 @ =sub_80F052C
- str r0, [r4, 0x1C]
- b _080EF99E
- .align 2, 0
-_080EF928: .4byte sub_80F052C
-_080EF92C:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x26]
- adds r1, r4, 0
- adds r1, 0x2E
- movs r2, 0
- adds r0, r4, 0
- adds r0, 0x3C
-_080EF954:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _080EF954
- movs r0, 0
- strh r0, [r4, 0x38]
- ldr r0, _080EF9A8 @ =sub_80EF9B4
- str r0, [r4, 0x1C]
- ldr r0, _080EF9AC @ =gLastUsedItem
- ldrh r0, [r0]
- bl ItemIdToBallId
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _080EF99E
- cmp r5, 0
- blt _080EF99E
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl LaunchBallStarsTask
- ldr r0, _080EF9B0 @ =gBattleAnimTarget
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0xE
- adds r3, r5, 0
- bl LaunchBallFadeMonTask
-_080EF99E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF9A8: .4byte sub_80EF9B4
-_080EF9AC: .4byte gLastUsedItem
-_080EF9B0: .4byte gBattleAnimTarget
- thumb_func_end sub_80EF8F0
-
- thumb_func_start sub_80EF9B4
-sub_80EF9B4: @ 80EF9B4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080EF9F0
- ldr r0, _080EF9F8 @ =TaskDummy
- movs r1, 0x32
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _080EF9FC @ =sub_80EFA0C
- str r0, [r4, 0x1C]
- ldr r2, _080EFA00 @ =gSprites
- ldr r1, _080EFA04 @ =gBattlerSpriteIds
- ldr r0, _080EFA08 @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
-_080EF9F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF9F8: .4byte TaskDummy
-_080EF9FC: .4byte sub_80EFA0C
-_080EFA00: .4byte gSprites
-_080EFA04: .4byte gBattlerSpriteIds
-_080EFA08: .4byte gBattleAnimTarget
- thumb_func_end sub_80EF9B4
-
- thumb_func_start sub_80EFA0C
-sub_80EFA0C: @ 80EFA0C
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r1, _080EFA50 @ =gBattlerSpriteIds
- ldr r0, _080EFA54 @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r4, [r0]
- ldrh r0, [r7, 0x38]
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080EFA58 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _080EFA3E
- movs r0, 0x35
- bl PlaySE
-_080EFA3E:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080EFAB4
- cmp r0, 0x1
- bgt _080EFA5C
- cmp r0, 0
- beq _080EFA62
- b _080EFB20
- .align 2, 0
-_080EFA50: .4byte gBattlerSpriteIds
-_080EFA54: .4byte gBattleAnimTarget
-_080EFA58: .4byte gTasks
-_080EFA5C:
- cmp r0, 0x2
- beq _080EFAF8
- b _080EFB20
-_080EFA62:
- adds r0, r4, 0
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x1C]
- ldr r1, _080EFAA4 @ =gUnknown_3005424
- movs r0, 0x1C
- str r0, [r1]
- ldr r2, _080EFAA8 @ =gUnknown_300542C
- ldr r1, _080EFAAC @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- ldrh r0, [r7, 0x26]
- ldrh r7, [r7, 0x22]
- adds r0, r7
- subs r1, r0
- strh r1, [r2]
- ldr r4, _080EFAB0 @ =gUnknown_3005428
- ldrh r0, [r2]
- lsls r0, 8
- movs r1, 0x1C
- bl __udivsi3
- strh r0, [r4]
- strh r0, [r5, 0xC]
- b _080EFB12
- .align 2, 0
-_080EFAA4: .4byte gUnknown_3005424
-_080EFAA8: .4byte gUnknown_300542C
-_080EFAAC: .4byte gSprites
-_080EFAB0: .4byte gUnknown_3005428
-_080EFAB4:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x20
- strh r0, [r5, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl SetSpriteRotScale
- ldrh r0, [r5, 0xC]
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0xE]
- ldr r0, _080EFAF0 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- negs r0, r0
- asrs r0, 8
- strh r0, [r1, 0x26]
- movs r0, 0x1C
- ldrsh r1, [r5, r0]
- ldr r0, _080EFAF4 @ =0x0000047f
- cmp r1, r0
- ble _080EFB48
- b _080EFB12
- .align 2, 0
-_080EFAF0: .4byte gSprites
-_080EFAF4: .4byte 0x0000047f
-_080EFAF8:
- adds r0, r4, 0
- bl ResetSpriteRotScale
- ldr r1, _080EFB1C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080EFB12:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080EFB48
- .align 2, 0
-_080EFB1C: .4byte gSprites
-_080EFB20:
- ldr r0, _080EFB50 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0xA
- ble _080EFB48
- adds r0, r6, 0
- bl DestroyTask
- adds r0, r7, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r7, 0x38]
- ldr r0, _080EFB54 @ =sub_80EFB58
- str r0, [r7, 0x1C]
-_080EFB48:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFB50: .4byte gTasks
-_080EFB54: .4byte sub_80EFB58
- thumb_func_end sub_80EFA0C
-
- thumb_func_start sub_80EFB58
-sub_80EFB58: @ 80EFB58
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EFB92
- movs r1, 0
- strh r1, [r4, 0x34]
- movs r0, 0x28
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- movs r0, 0
- movs r1, 0x28
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldr r0, _080EFB98 @ =sub_80EFB9C
- str r0, [r4, 0x1C]
-_080EFB92:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFB98: .4byte sub_80EFB9C
- thumb_func_end sub_80EFB58
-
- thumb_func_start sub_80EFB9C
-sub_80EFB9C: @ 80EFB9C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0
- beq _080EFBB2
- cmp r1, 0x1
- beq _080EFC26
- b _080EFC52
-_080EFBB2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- adds r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3F
- ble _080EFC52
- ldrh r0, [r4, 0x36]
- subs r0, 0xA
- strh r0, [r4, 0x36]
- ldr r1, _080EFBFC @ =0x00000101
- adds r0, r2, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _080EFBEE
- movs r5, 0x1
-_080EFBEE:
- cmp r0, 0x2
- beq _080EFC0E
- cmp r0, 0x2
- bgt _080EFC00
- cmp r0, 0x1
- beq _080EFC06
- b _080EFC1E
- .align 2, 0
-_080EFBFC: .4byte 0x00000101
-_080EFC00:
- cmp r0, 0x3
- beq _080EFC16
- b _080EFC1E
-_080EFC06:
- movs r0, 0x31
- bl PlaySE
- b _080EFC52
-_080EFC0E:
- movs r0, 0x32
- bl PlaySE
- b _080EFC52
-_080EFC16:
- movs r0, 0x33
- bl PlaySE
- b _080EFC52
-_080EFC1E:
- movs r0, 0x34
- bl PlaySE
- b _080EFC52
-_080EFC26:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- subs r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- subs r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- cmp r1, 0
- bgt _080EFC52
- strh r5, [r4, 0x38]
- ldr r0, _080EFC80 @ =0xffffff00
- ands r0, r2
- strh r0, [r4, 0x34]
-_080EFC52:
- cmp r5, 0
- beq _080EFC96
- movs r5, 0
- strh r5, [r4, 0x34]
- movs r0, 0x40
- movs r1, 0x28
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- ldr r0, _080EFC84 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080EFC8C
- strh r5, [r4, 0x38]
- ldr r0, _080EFC88 @ =sub_80EFF80
- str r0, [r4, 0x1C]
- b _080EFC96
- .align 2, 0
-_080EFC80: .4byte 0xffffff00
-_080EFC84: .4byte gBattleSpritesDataPtr
-_080EFC88: .4byte sub_80EFF80
-_080EFC8C:
- ldr r0, _080EFC9C @ =sub_80EFCA0
- str r0, [r4, 0x1C]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
-_080EFC96:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFC9C: .4byte sub_80EFCA0
- thumb_func_end sub_80EFB9C
-
- thumb_func_start sub_80EFCA0
-sub_80EFCA0: @ 80EFCA0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080EFCDC
- strh r5, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _080EFCE4 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- strh r5, [r0, 0xC]
- ldr r0, _080EFCE8 @ =sub_80EFCEC
- str r0, [r4, 0x1C]
- movs r0, 0x17
- bl PlaySE
-_080EFCDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFCE4: .4byte gBattleSpritesDataPtr
-_080EFCE8: .4byte sub_80EFCEC
- thumb_func_end sub_80EFCA0
-
- thumb_func_start sub_80EFCEC
-sub_80EFCEC: @ 80EFCEC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x6
- bls _080EFCFC
- b _080EFF34
-_080EFCFC:
- lsls r0, r1, 2
- ldr r1, _080EFD08 @ =_080EFD0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EFD08: .4byte _080EFD0C
- .align 2, 0
-_080EFD0C:
- .4byte _080EFD28
- .4byte _080EFD7A
- .4byte _080EFDC0
- .4byte _080EFE20
- .4byte _080EFE70
- .4byte _080EFED4
- .4byte _080EFF34
-_080EFD28:
- ldr r1, _080EFD4C @ =gBattleSpritesDataPtr
- ldr r5, [r1]
- ldr r2, [r5, 0x8]
- ldrh r3, [r2, 0xC]
- movs r6, 0xC
- ldrsh r0, [r2, r6]
- adds r6, r1, 0
- cmp r0, 0xFF
- ble _080EFD50
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldr r1, [r5, 0x8]
- ldrb r0, [r1, 0xC]
- strh r0, [r1, 0xC]
- b _080EFD56
- .align 2, 0
-_080EFD4C: .4byte gBattleSpritesDataPtr
-_080EFD50:
- adds r0, r3, 0
- adds r0, 0xB0
- strh r0, [r2, 0xC]
-_080EFD56:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bhi _080EFD78
- b _080EFF7A
-_080EFD78:
- b _080EFE10
-_080EFD7A:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080EFE2C
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r6, 0x36
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bge _080EFDB6
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _080EFF7A
-_080EFDB6:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _080EFF7A
-_080EFDC0:
- ldr r1, _080EFDE4 @ =gBattleSpritesDataPtr
- ldr r5, [r1]
- ldr r2, [r5, 0x8]
- ldrh r3, [r2, 0xC]
- movs r6, 0xC
- ldrsh r0, [r2, r6]
- adds r6, r1, 0
- cmp r0, 0xFF
- ble _080EFDE8
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldr r1, [r5, 0x8]
- ldrb r0, [r1, 0xC]
- strh r0, [r1, 0xC]
- b _080EFDEE
- .align 2, 0
-_080EFDE4: .4byte gBattleSpritesDataPtr
-_080EFDE8:
- adds r0, r3, 0
- adds r0, 0xB0
- strh r0, [r2, 0xC]
-_080EFDEE:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0xC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bhi _080EFE10
- b _080EFF7A
-_080EFE10:
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- strh r3, [r0, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- b _080EFF7A
-_080EFE20:
- ldrh r0, [r4, 0x38]
- adds r1, r0, 0x1
- strh r1, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _080EFE3A
-_080EFE2C:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _080EFF7A
-_080EFE3A:
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r6, 0x36
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bge _080EFE68
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _080EFE70
-_080EFE68:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_080EFE70:
- ldr r1, _080EFE94 @ =gBattleSpritesDataPtr
- ldr r5, [r1]
- ldr r2, [r5, 0x8]
- ldrh r3, [r2, 0xC]
- movs r6, 0xC
- ldrsh r0, [r2, r6]
- adds r6, r1, 0
- cmp r0, 0xFF
- ble _080EFE98
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldr r1, [r5, 0x8]
- ldrb r0, [r1, 0xC]
- strh r0, [r1, 0xC]
- b _080EFE9E
- .align 2, 0
-_080EFE94: .4byte gBattleSpritesDataPtr
-_080EFE98:
- adds r0, r3, 0
- adds r0, 0xB0
- strh r0, [r2, 0xC]
-_080EFE9E:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _080EFF7A
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- strh r3, [r0, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- b _080EFF7A
-_080EFED4:
- movs r6, 0x80
- lsls r6, 1
- adds r0, r6, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r1, r0, 24
- ldr r0, _080EFF04 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0x8]
- cmp r1, r0
- bne _080EFF0C
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080EFF08 @ =sub_80EFF80
- str r0, [r4, 0x1C]
- b _080EFF7A
- .align 2, 0
-_080EFF04: .4byte gBattleSpritesDataPtr
-_080EFF08: .4byte sub_80EFF80
-_080EFF0C:
- cmp r0, 0x4
- bne _080EFF20
- cmp r1, 0x3
- bne _080EFF20
- ldr r0, _080EFF1C @ =sub_80EFFA4
- str r0, [r4, 0x1C]
- b _080EFF26
- .align 2, 0
-_080EFF1C: .4byte sub_80EFFA4
-_080EFF20:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
-_080EFF26:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- b _080EFF7A
-_080EFF34:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080EFF7A
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- ldr r0, _080EFF68 @ =0xffffff00
- ands r0, r1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r6, 0x36
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bge _080EFF6C
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _080EFF74
- .align 2, 0
-_080EFF68: .4byte 0xffffff00
-_080EFF6C:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080EFF74:
- movs r0, 0x17
- bl PlaySE
-_080EFF7A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80EFCEC
-
- thumb_func_start sub_80EFF80
-sub_80EFF80: @ 80EFF80
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x38]
- adds r0, 0x1
- strh r0, [r1, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080EFF9A
- movs r0, 0
- strh r0, [r1, 0x38]
- ldr r0, _080EFFA0 @ =sub_80F02B0
- str r0, [r1, 0x1C]
-_080EFF9A:
- pop {r0}
- bx r0
- .align 2, 0
-_080EFFA0: .4byte sub_80F02B0
- thumb_func_end sub_80EFF80
-
- thumb_func_start sub_80EFFA4
-sub_80EFFA4: @ 80EFFA4
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _080EFFC0 @ =sub_80EFFC4
- str r1, [r0, 0x1C]
- movs r1, 0
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- bx lr
- .align 2, 0
-_080EFFC0: .4byte sub_80EFFC4
- thumb_func_end sub_80EFFA4
-
- thumb_func_start sub_80EFFC4
-sub_80EFFC4: @ 80EFFC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r7, _080F0004 @ =gBattleAnimTarget
- ldrh r0, [r6, 0x36]
- adds r0, 0x1
- movs r1, 0
- mov r8, r1
- strh r0, [r6, 0x36]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x28
- bne _080F0008
- movs r0, 0xF7
- bl PlaySE
- ldrb r1, [r6, 0x5]
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r1
- movs r1, 0x6
- movs r2, 0
- bl BlendPalettes
- adds r0, r6, 0
- bl sub_80F01B8
- b _080F0088
- .align 2, 0
-_080F0004: .4byte gBattleAnimTarget
-_080F0008:
- cmp r1, 0x3C
- bne _080F0026
- ldrb r1, [r6, 0x5]
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r1
- mov r1, r8
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0x6
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080F0088
-_080F0026:
- cmp r1, 0x5F
- bne _080F004C
- ldr r0, _080F0044 @ =gDoingBattleAnim
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- bl UpdateOamPriorityInAllHealthboxes
- bl m4aMPlayAllStop
- ldr r0, _080F0048 @ =0x0000013f
- bl PlaySE
- b _080F0088
- .align 2, 0
-_080F0044: .4byte gDoingBattleAnim
-_080F0048: .4byte 0x0000013f
-_080F004C:
- ldr r0, _080F0094 @ =0x0000013b
- cmp r1, r0
- bne _080F0088
- ldr r5, _080F0098 @ =gSprites
- ldr r4, _080F009C @ =gBattlerSpriteIds
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- mov r0, r8
- strh r0, [r6, 0x2E]
- ldr r0, _080F00A0 @ =sub_80F00A4
- str r0, [r6, 0x1C]
-_080F0088:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0094: .4byte 0x0000013b
-_080F0098: .4byte gSprites
-_080F009C: .4byte gBattlerSpriteIds
-_080F00A0: .4byte sub_80F00A4
- thumb_func_end sub_80EFFC4
-
- thumb_func_start sub_80F00A4
-sub_80F00A4: @ 80F00A4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080F0110
- cmp r0, 0x1
- bgt _080F00BC
- cmp r0, 0
- beq _080F00C2
- b _080F0156
-_080F00BC:
- cmp r0, 0x2
- beq _080F0142
- b _080F0156
-_080F00C2:
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- ldr r0, [r4, 0x14]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldr r0, _080F010C @ =0x00007fff
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080F014E
- .align 2, 0
-_080F010C: .4byte 0x00007fff
-_080F0110:
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _080F017C
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r2, [r4, 0x32]
- adds r2, 0x1
- strh r2, [r4, 0x32]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080F017C
- b _080F014E
-_080F0142:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080F014E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080F017C
-_080F0156:
- ldr r0, _080F0184 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080F017C
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- strh r5, [r4, 0x2E]
- ldr r0, _080F0188 @ =sub_80F018C
- str r0, [r4, 0x1C]
-_080F017C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0184: .4byte gPaletteFade
-_080F0188: .4byte sub_80F018C
- thumb_func_end sub_80F00A4
-
- thumb_func_start sub_80F018C
-sub_80F018C: @ 80F018C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080F01A4
- ldr r0, _080F01A0 @ =0x0000ffff
- strh r0, [r4, 0x2E]
- b _080F01B0
- .align 2, 0
-_080F01A0: .4byte 0x0000ffff
-_080F01A4:
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080F01B0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F018C
-
- thumb_func_start sub_80F01B8
-sub_80F01B8: @ 80F01B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- adds r1, r6, 0
- adds r1, 0x43
- ldrb r0, [r1]
- cmp r0, 0
- beq _080F01D8
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- b _080F01E0
-_080F01D8:
- movs r0, 0
- mov r8, r0
- movs r0, 0x1
- strb r0, [r1]
-_080F01E0:
- movs r0, 0x4
- bl sub_80F05B4
- movs r7, 0
- ldr r2, _080F0264 @ =gSprites
- mov r9, r2
- movs r0, 0x1C
- add r0, r9
- mov r10, r0
-_080F01F2:
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- movs r0, 0x22
- ldrsh r2, [r6, r0]
- ldr r0, _080F0268 @ =gUnknown_840C104
- mov r3, r8
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080F024E
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r2, r9
- adds r5, r4, r2
- movs r0, 0x18
- strh r0, [r5, 0x2E]
- ldr r0, _080F026C @ =gUnknown_840BF3C
- lsls r1, r7, 2
- adds r1, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- ldrh r2, [r6, 0x20]
- adds r0, r2
- strh r0, [r5, 0x32]
- movs r0, 0x1
- ldrsb r0, [r1, r0]
- ldrh r2, [r6, 0x22]
- adds r0, r2
- strh r0, [r5, 0x36]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl InitAnimArcTranslation
- add r4, r10
- ldr r0, _080F0270 @ =sub_80F0278
- str r0, [r4]
- ldr r0, _080F0274 @ =gUnknown_840C068
- ldrb r1, [r0, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
-_080F024E:
- adds r7, 0x1
- cmp r7, 0x2
- bls _080F01F2
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0264: .4byte gSprites
-_080F0268: .4byte gUnknown_840C104
-_080F026C: .4byte gUnknown_840BF3C
-_080F0270: .4byte sub_80F0278
-_080F0274: .4byte gUnknown_840C068
- thumb_func_end sub_80F01B8
-
- thumb_func_start sub_80F0278
-sub_80F0278: @ 80F0278
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- beq _080F02A8
- adds r0, r4, 0
- bl DestroySprite
-_080F02A8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F0278
-
- thumb_func_start sub_80F02B0
-sub_80F02B0: @ 80F02B0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _080F0364 @ =sub_80F0378
- str r0, [r4, 0x1C]
- ldr r0, _080F0368 @ =gLastUsedItem
- ldrh r0, [r0]
- bl ItemIdToBallId
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _080F0302
- cmp r5, 0
- blt _080F0302
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl LaunchBallStarsTask
- ldr r0, _080F036C @ =gBattleAnimTarget
- ldrb r1, [r0]
- movs r0, 0x1
- movs r2, 0xE
- adds r3, r5, 0
- bl LaunchBallFadeMonTask
-_080F0302:
- ldr r6, _080F0370 @ =gSprites
- ldr r5, _080F0374 @ =gBattlerSpriteIds
- ldr r4, _080F036C @ =gBattleAnimTarget
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl AnimateSprite
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r0, 0x30]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0364: .4byte sub_80F0378
-_080F0368: .4byte gLastUsedItem
-_080F036C: .4byte gBattleAnimTarget
-_080F0370: .4byte gSprites
-_080F0374: .4byte gBattlerSpriteIds
- thumb_func_end sub_80F02B0
-
- thumb_func_start sub_80F0378
-sub_80F0378: @ 80F0378
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080F0396
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080F0396:
- ldr r4, _080F03C4 @ =gSprites
- ldr r3, _080F03C8 @ =gBattlerSpriteIds
- ldr r2, _080F03CC @ =gBattleAnimTarget
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _080F03D0
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r5, 0x1
- b _080F03F0
- .align 2, 0
-_080F03C4: .4byte gSprites
-_080F03C8: .4byte gBattlerSpriteIds
-_080F03CC: .4byte gBattleAnimTarget
-_080F03D0:
- ldr r6, _080F045C @ =0xfffffee0
- adds r0, r6, 0
- ldrh r6, [r1, 0x30]
- adds r0, r6
- strh r0, [r1, 0x30]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
-_080F03F0:
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080F0456
- cmp r5, 0
- beq _080F0456
- ldr r4, _080F0460 @ =gSprites
- ldr r3, _080F0464 @ =gBattlerSpriteIds
- ldr r2, _080F0468 @ =gBattleAnimTarget
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- movs r5, 0
- strh r5, [r0, 0x26]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, _080F046C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r1, [r0, 0x9]
- lsls r1, 30
- adds r2, 0x3E
- lsrs r1, 31
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- strh r5, [r7, 0x2E]
- ldr r0, _080F0470 @ =sub_80F018C
- str r0, [r7, 0x1C]
- ldr r0, _080F0474 @ =gDoingBattleAnim
- strb r6, [r0]
- movs r0, 0x1
- bl UpdateOamPriorityInAllHealthboxes
-_080F0456:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F045C: .4byte 0xfffffee0
-_080F0460: .4byte gSprites
-_080F0464: .4byte gBattlerSpriteIds
-_080F0468: .4byte gBattleAnimTarget
-_080F046C: .4byte gBattleSpritesDataPtr
-_080F0470: .4byte sub_80F018C
-_080F0474: .4byte gDoingBattleAnim
- thumb_func_end sub_80F0378
-
- thumb_func_start sub_80F0478
-sub_80F0478: @ 80F0478
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- ldr r4, _080F04B0 @ =sub_80F04B4
- movs r3, 0
- movs r1, 0x5
- adds r0, r2, 0
- adds r0, 0x38
-_080F049C:
- strh r3, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080F049C
- str r4, [r2, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F04B0: .4byte sub_80F04B4
- thumb_func_end sub_80F0478
-
- thumb_func_start sub_80F04B4
-sub_80F04B4: @ 80F04B4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x80
- lsls r0, 4
- adds r2, r0, 0
- ldrh r1, [r4, 0x2E]
- adds r2, r1
- movs r0, 0xD0
- lsls r0, 3
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- adds r3, r1
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x2E]
- ands r3, r0
- strh r3, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- bgt _080F050A
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _080F051E
-_080F050A:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080F0524 @ =sub_80F018C
- str r0, [r4, 0x1C]
- ldr r1, _080F0528 @ =gDoingBattleAnim
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- bl UpdateOamPriorityInAllHealthboxes
-_080F051E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0524: .4byte sub_80F018C
-_080F0528: .4byte gDoingBattleAnim
- thumb_func_end sub_80F04B4
-
- thumb_func_start sub_80F052C
-sub_80F052C: @ 80F052C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x24]
- movs r0, 0x22
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- subs r1, 0x8
- strh r1, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r0, 0x90
- strh r0, [r4, 0x36]
- movs r0, 0x20
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl InitAnimArcTranslation
- adds r0, r4, 0
- bl TranslateAnimVerticalArc
- ldr r0, _080F0570 @ =sub_80F0574
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0570: .4byte sub_80F0574
- thumb_func_end sub_80F052C
-
- thumb_func_start sub_80F0574
-sub_80F0574: @ 80F0574
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimVerticalArc
- lsls r0, 24
- cmp r0, 0
- bne _080F0590
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0x40
- ble _080F05A4
-_080F0590:
- movs r1, 0
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080F05AC @ =sub_80F018C
- str r0, [r4, 0x1C]
- ldr r0, _080F05B0 @ =gDoingBattleAnim
- strb r1, [r0]
- movs r0, 0x1
- bl UpdateOamPriorityInAllHealthboxes
-_080F05A4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F05AC: .4byte sub_80F018C
-_080F05B0: .4byte gDoingBattleAnim
- thumb_func_end sub_80F0574
-
- thumb_func_start sub_80F05B4
-sub_80F05B4: @ 80F05B4
- push {r4,r5,lr}
- lsls r0, 24
- ldr r1, _080F05E0 @ =gUnknown_840BF48
- lsrs r5, r0, 21
- adds r4, r5, r1
- ldrh r0, [r4, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _080F05E4 @ =0xffff0000
- cmp r0, r1
- bne _080F05DA
- adds r0, r4, 0
- bl LoadCompressedSpriteSheetUsingHeap
- ldr r0, _080F05E8 @ =gUnknown_840BFA8
- adds r0, r5, r0
- bl LoadCompressedSpritePaletteUsingHeap
-_080F05DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F05E0: .4byte gUnknown_840BF48
-_080F05E4: .4byte 0xffff0000
-_080F05E8: .4byte gUnknown_840BFA8
- thumb_func_end sub_80F05B4
-
- thumb_func_start LaunchBallStarsTask
-LaunchBallStarsTask: @ 80F05EC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- mov r8, r1
- mov r9, r2
- mov r10, r3
- ldr r5, [sp, 0x1C]
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl sub_80F05B4
- ldr r1, _080F066C @ =gUnknown_840C074
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x5
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F0670 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0xA]
- mov r1, r8
- strh r1, [r0, 0xC]
- mov r1, r9
- strh r1, [r0, 0xE]
- mov r1, r10
- strh r1, [r0, 0x10]
- strh r5, [r0, 0x26]
- movs r0, 0xF
- bl PlaySE
- adds r0, r4, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080F066C: .4byte gUnknown_840C074
-_080F0670: .4byte gTasks
- thumb_func_end LaunchBallStarsTask
-
- thumb_func_start sub_80F0674
-sub_80F0674: @ 80F0674
- push {lr}
- ldr r0, _080F0698 @ =gMain
- ldr r1, _080F069C @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080F0692
- ldr r0, _080F06A0 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x8]
- ldrb r0, [r1, 0xA]
- adds r0, 0x1
- strb r0, [r1, 0xA]
-_080F0692:
- pop {r0}
- bx r0
- .align 2, 0
-_080F0698: .4byte gMain
-_080F069C: .4byte 0x00000439
-_080F06A0: .4byte gBattleSpritesDataPtr
- thumb_func_end sub_80F0674
-
- thumb_func_start sub_80F06A4
-sub_80F06A4: @ 80F06A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _080F0780 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0x26]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r2, 0x8
- ldrsh r0, [r6, r2]
- adds r2, r1, 0
- cmp r0, 0xF
- bgt _080F079C
- ldrb r1, [r6, 0xA]
- ldrb r2, [r6, 0xC]
- ldrb r4, [r6, 0xE]
- mov r9, r4
- ldrb r3, [r6, 0x10]
- ldr r4, [sp]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r4, _080F0784 @ =gUnknown_840C0A4
- adds r0, r4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- cmp r0, 0x40
- beq _080F0740
- bl sub_80F0674
- mov r0, r10
- lsls r4, r0, 4
- add r4, r10
- lsls r4, 2
- ldr r5, _080F0788 @ =gSprites
- adds r7, r4, r5
- ldr r0, _080F078C @ =gUnknown_840C068
- ldr r1, [sp]
- adds r0, r1, r0
- ldrb r1, [r0]
- adds r0, r7, 0
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080F0790 @ =sub_80F07BC
- str r0, [r4]
- movs r0, 0x3
- mov r2, r9
- ands r2, r0
- lsls r2, 2
- ldrb r1, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r7, 0x5]
- ldrb r0, [r6, 0x8]
- cmp r0, 0x7
- bls _080F073C
- subs r0, 0x8
- lsls r0, 24
- lsrs r0, 24
-_080F073C:
- lsls r0, 5
- strh r0, [r7, 0x2E]
-_080F0740:
- ldr r0, _080F0780 @ =gTasks
- mov r4, r8
- lsls r1, r4, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- adds r2, r0, 0
- cmp r1, 0xF
- bne _080F079C
- ldr r0, _080F0794 @ =gMain
- ldr r4, _080F0798 @ =0x00000439
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F0776
- ldr r0, _080F0788 @ =gSprites
- mov r2, r10
- lsls r1, r2, 4
- add r1, r10
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
-_080F0776:
- mov r0, r8
- bl DestroyTask
- b _080F07AC
- .align 2, 0
-_080F0780: .4byte gTasks
-_080F0784: .4byte gUnknown_840C0A4
-_080F0788: .4byte gSprites
-_080F078C: .4byte gUnknown_840C068
-_080F0790: .4byte sub_80F07BC
-_080F0794: .4byte gMain
-_080F0798: .4byte 0x00000439
-_080F079C:
- mov r4, r8
- lsls r0, r4, 2
- add r0, r8
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
-_080F07AC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F06A4
-
- thumb_func_start sub_80F07BC
-sub_80F07BC: @ 80F07BC
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x30]
- movs r3, 0x30
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080F07D4
- ldr r0, _080F07D0 @ =sub_80F07DC
- str r0, [r1, 0x1C]
- b _080F07D8
- .align 2, 0
-_080F07D0: .4byte sub_80F07DC
-_080F07D4:
- subs r0, r2, 0x1
- strh r0, [r1, 0x30]
-_080F07D8:
- pop {r0}
- bx r0
- thumb_func_end sub_80F07BC
-
- thumb_func_start sub_80F07DC
-sub_80F07DC: @ 80F07DC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bne _080F0810
- adds r0, r4, 0
- bl sub_80F1198
-_080F0810:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F07DC
-
- thumb_func_start sub_80F0818
-sub_80F0818: @ 80F0818
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080F08FC @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r3, [r1, 0xA]
- str r3, [sp]
- ldrb r0, [r1, 0xC]
- str r0, [sp, 0x4]
- ldrb r2, [r1, 0xE]
- str r2, [sp, 0x8]
- ldrb r1, [r1, 0x10]
- str r1, [sp, 0xC]
- movs r7, 0
- ldr r3, _080F0900 @ =gSprites
- mov r10, r3
- mov r1, r8
- lsls r0, r1, 1
- add r0, r8
- lsls r0, 3
- str r0, [sp, 0x10]
-_080F085E:
- ldr r0, _080F0904 @ =gUnknown_840C0A4
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _080F08BE
- bl sub_80F0674
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- mov r3, r10
- adds r5, r4, r3
- ldr r0, _080F0908 @ =gUnknown_840C068
- add r0, r8
- ldrb r1, [r0]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080F090C @ =gSprites + 0x1C
- adds r4, r0
- ldr r0, _080F0910 @ =sub_80F0D5C
- str r0, [r4]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
- movs r0, 0xA
- strh r0, [r5, 0x36]
- movs r0, 0x2
- strh r0, [r5, 0x38]
- movs r0, 0x1
- strh r0, [r5, 0x3A]
-_080F08BE:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080F085E
- ldr r0, _080F0914 @ =gMain
- ldr r1, _080F0918 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F08E6
- ldr r0, _080F0900 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
-_080F08E6:
- mov r0, r9
- bl DestroyTask
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F08FC: .4byte gTasks
-_080F0900: .4byte gSprites
-_080F0904: .4byte gUnknown_840C0A4
-_080F0908: .4byte gUnknown_840C068
-_080F090C: .4byte gSprites + 0x1C
-_080F0910: .4byte sub_80F0D5C
-_080F0914: .4byte gMain
-_080F0918: .4byte 0x00000439
- thumb_func_end sub_80F0818
-
- thumb_func_start sub_80F091C
-sub_80F091C: @ 80F091C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080F0A00 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r3, [r1, 0xA]
- str r3, [sp]
- ldrb r0, [r1, 0xC]
- str r0, [sp, 0x4]
- ldrb r2, [r1, 0xE]
- str r2, [sp, 0x8]
- ldrb r1, [r1, 0x10]
- str r1, [sp, 0xC]
- movs r7, 0
- ldr r3, _080F0A04 @ =gSprites
- mov r10, r3
- mov r1, r8
- lsls r0, r1, 1
- add r0, r8
- lsls r0, 3
- str r0, [sp, 0x10]
-_080F0962:
- ldr r0, _080F0A08 @ =gUnknown_840C0A4
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _080F09C2
- bl sub_80F0674
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- mov r3, r10
- adds r5, r4, r3
- ldr r0, _080F0A0C @ =gUnknown_840C068
- add r0, r8
- ldrb r1, [r0]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080F0A10 @ =gSprites + 0x1C
- adds r4, r0
- ldr r0, _080F0A14 @ =sub_80F0D5C
- str r0, [r4]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
- movs r0, 0xA
- strh r0, [r5, 0x36]
- movs r0, 0x1
- strh r0, [r5, 0x38]
- movs r0, 0x2
- strh r0, [r5, 0x3A]
-_080F09C2:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080F0962
- ldr r0, _080F0A18 @ =gMain
- ldr r1, _080F0A1C @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F09EA
- ldr r0, _080F0A04 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
-_080F09EA:
- mov r0, r9
- bl DestroyTask
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0A00: .4byte gTasks
-_080F0A04: .4byte gSprites
-_080F0A08: .4byte gUnknown_840C0A4
-_080F0A0C: .4byte gUnknown_840C068
-_080F0A10: .4byte gSprites + 0x1C
-_080F0A14: .4byte sub_80F0D5C
-_080F0A18: .4byte gMain
-_080F0A1C: .4byte 0x00000439
- thumb_func_end sub_80F091C
-
- thumb_func_start sub_80F0A20
-sub_80F0A20: @ 80F0A20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080F0B00 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r7, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [sp, 0x10]
- ldr r3, _080F0B04 @ =gSprites
- mov r8, r3
- ldr r0, _080F0B08 @ =gUnknown_840C068
- adds r1, r0
- mov r10, r1
-_080F0A66:
- ldr r0, _080F0B0C @ =gUnknown_840C0A4
- ldr r1, [sp, 0x10]
- adds r0, r1, r0
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _080F0AC2
- bl sub_80F0674
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- mov r2, r8
- adds r5, r4, r2
- mov r3, r10
- ldrb r1, [r3]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080F0B10 @ =gSprites + 0x1C
- adds r4, r0
- ldr r0, _080F0B14 @ =sub_80F0D5C
- str r0, [r4]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
- movs r0, 0x4
- strh r0, [r5, 0x36]
- movs r0, 0x1
- strh r0, [r5, 0x38]
- strh r0, [r5, 0x3A]
-_080F0AC2:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080F0A66
- ldr r0, _080F0B18 @ =gMain
- ldr r1, _080F0B1C @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F0AEA
- ldr r0, _080F0B04 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
-_080F0AEA:
- mov r0, r9
- bl DestroyTask
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0B00: .4byte gTasks
-_080F0B04: .4byte gSprites
-_080F0B08: .4byte gUnknown_840C068
-_080F0B0C: .4byte gUnknown_840C0A4
-_080F0B10: .4byte gSprites + 0x1C
-_080F0B14: .4byte sub_80F0D5C
-_080F0B18: .4byte gMain
-_080F0B1C: .4byte 0x00000439
- thumb_func_end sub_80F0A20
-
- thumb_func_start sub_80F0B20
-sub_80F0B20: @ 80F0B20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080F0C08 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r3, [r1, 0xA]
- str r3, [sp]
- ldrb r0, [r1, 0xC]
- str r0, [sp, 0x4]
- ldrb r2, [r1, 0xE]
- str r2, [sp, 0x8]
- ldrb r1, [r1, 0x10]
- str r1, [sp, 0xC]
- movs r7, 0
- ldr r3, _080F0C0C @ =gSprites
- mov r10, r3
- mov r1, r8
- lsls r0, r1, 1
- add r0, r8
- lsls r0, 3
- str r0, [sp, 0x10]
-_080F0B66:
- ldr r0, _080F0C10 @ =gUnknown_840C0A4
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _080F0BCA
- bl sub_80F0674
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- mov r3, r10
- adds r5, r4, r3
- ldr r0, _080F0C14 @ =gUnknown_840C068
- add r0, r8
- ldrb r1, [r0]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080F0C18 @ =gSprites + 0x1C
- adds r4, r0
- ldr r0, _080F0C1C @ =sub_80F0D5C
- str r0, [r4]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 3
- adds r0, r7
- strh r0, [r5, 0x2E]
- movs r0, 0x5
- strh r0, [r5, 0x36]
- movs r0, 0x1
- strh r0, [r5, 0x38]
- strh r0, [r5, 0x3A]
-_080F0BCA:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x9
- bls _080F0B66
- ldr r0, _080F0C20 @ =gMain
- ldr r1, _080F0C24 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F0BF2
- ldr r0, _080F0C0C @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
-_080F0BF2:
- mov r0, r9
- bl DestroyTask
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0C08: .4byte gTasks
-_080F0C0C: .4byte gSprites
-_080F0C10: .4byte gUnknown_840C0A4
-_080F0C14: .4byte gUnknown_840C068
-_080F0C18: .4byte gSprites + 0x1C
-_080F0C1C: .4byte sub_80F0D5C
-_080F0C20: .4byte gMain
-_080F0C24: .4byte 0x00000439
- thumb_func_end sub_80F0B20
-
- thumb_func_start sub_80F0C28
-sub_80F0C28: @ 80F0C28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _080F0C54 @ =gTasks
- lsls r2, r0, 2
- adds r0, r2, r0
- lsls r0, 3
- adds r3, r0, r1
- ldrh r1, [r3, 0x16]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _080F0C58
- subs r0, r1, 0x1
- strh r0, [r3, 0x16]
- b _080F0D2A
- .align 2, 0
-_080F0C54: .4byte gTasks
-_080F0C58:
- ldrh r0, [r3, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r3, 0xA]
- str r1, [sp]
- ldrb r4, [r3, 0xC]
- str r4, [sp, 0x4]
- ldrb r1, [r3, 0xE]
- str r1, [sp, 0x8]
- ldrb r3, [r3, 0x10]
- str r3, [sp, 0xC]
- movs r7, 0
- str r2, [sp, 0x14]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- str r1, [sp, 0x10]
- ldr r3, _080F0D3C @ =gSprites
- mov r9, r3
- ldr r1, _080F0D40 @ =gUnknown_840C068
- adds r0, r1
- mov r10, r0
-_080F0C84:
- ldr r0, _080F0D44 @ =gUnknown_840C0A4
- ldr r4, [sp, 0x10]
- adds r0, r4, r0
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _080F0CE0
- bl sub_80F0674
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- mov r0, r9
- adds r5, r4, r0
- mov r3, r10
- ldrb r1, [r3]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080F0D48 @ =gSprites + 0x1C
- adds r4, r0
- ldr r0, _080F0D4C @ =sub_80F0D5C
- str r0, [r4]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
- movs r0, 0x8
- strh r0, [r5, 0x36]
- movs r0, 0x2
- strh r0, [r5, 0x38]
- strh r0, [r5, 0x3A]
-_080F0CE0:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080F0C84
- ldr r0, _080F0D50 @ =gTasks
- ldr r1, [sp, 0x14]
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x8
- strh r0, [r1, 0x16]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0x2
- bne _080F0D2A
- ldr r0, _080F0D54 @ =gMain
- ldr r4, _080F0D58 @ =0x00000439
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080F0D24
- ldr r0, _080F0D3C @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
-_080F0D24:
- mov r0, r8
- bl DestroyTask
-_080F0D2A:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0D3C: .4byte gSprites
-_080F0D40: .4byte gUnknown_840C068
-_080F0D44: .4byte gUnknown_840C0A4
-_080F0D48: .4byte gSprites + 0x1C
-_080F0D4C: .4byte sub_80F0D5C
-_080F0D50: .4byte gTasks
-_080F0D54: .4byte gMain
-_080F0D58: .4byte 0x00000439
- thumb_func_end sub_80F0C28
-
- thumb_func_start sub_80F0D5C
-sub_80F0D5C: @ 80F0D5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- ldrh r2, [r4, 0x30]
- adds r0, r2
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080F0DAC
- adds r0, r4, 0
- bl sub_80F1198
-_080F0DAC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F0D5C
-
- thumb_func_start sub_80F0DB4
-sub_80F0DB4: @ 80F0DB4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080F0E90 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r7, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [sp, 0x10]
- ldr r3, _080F0E94 @ =gSprites
- mov r8, r3
- ldr r0, _080F0E98 @ =gUnknown_840C068
- adds r1, r0
- mov r10, r1
-_080F0DFA:
- ldr r0, _080F0E9C @ =gUnknown_840C0A4
- ldr r1, [sp, 0x10]
- adds r0, r1, r0
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _080F0E52
- bl sub_80F0674
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- mov r2, r8
- adds r5, r4, r2
- mov r3, r10
- ldrb r1, [r3]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080F0EA0 @ =gSprites + 0x1C
- adds r4, r0
- ldr r0, _080F0EA4 @ =sub_80F0EB0
- str r0, [r4]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 2
- adds r0, r7
- strh r0, [r5, 0x2E]
-_080F0E52:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xB
- bls _080F0DFA
- ldr r0, _080F0EA8 @ =gMain
- ldr r1, _080F0EAC @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F0E7A
- ldr r0, _080F0E94 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
-_080F0E7A:
- mov r0, r9
- bl DestroyTask
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0E90: .4byte gTasks
-_080F0E94: .4byte gSprites
-_080F0E98: .4byte gUnknown_840C068
-_080F0E9C: .4byte gUnknown_840C0A4
-_080F0EA0: .4byte gSprites + 0x1C
-_080F0EA4: .4byte sub_80F0EB0
-_080F0EA8: .4byte gMain
-_080F0EAC: .4byte 0x00000439
- thumb_func_end sub_80F0DB4
-
- thumb_func_start sub_80F0EB0
-sub_80F0EB0: @ 80F0EB0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080F0F08
- adds r0, r5, 0
- bl sub_80F1198
-_080F0F08:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F0EB0
-
- thumb_func_start sub_80F0F10
-sub_80F0F10: @ 80F0F10
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r0, _080F0FC4 @ =gTasks
- ldr r2, [sp]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r3, [r1, 0xA]
- str r3, [sp, 0x4]
- ldrb r0, [r1, 0xC]
- str r0, [sp, 0x8]
- ldrb r2, [r1, 0xE]
- str r2, [sp, 0xC]
- ldrb r1, [r1, 0x10]
- str r1, [sp, 0x10]
- movs r3, 0
- mov r8, r3
- mov r1, r9
- lsls r0, r1, 1
- add r0, r9
- lsls r0, 3
- str r0, [sp, 0x14]
-_080F0F54:
- movs r7, 0
- movs r2, 0x1
- add r2, r8
- mov r10, r2
-_080F0F5C:
- ldr r0, _080F0FC8 @ =gUnknown_840C0A4
- ldr r3, [sp, 0x14]
- adds r0, r3, r0
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _080F0FE4
- bl sub_80F0674
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r0, _080F0FCC @ =gSprites
- adds r5, r4, r0
- ldr r0, _080F0FD0 @ =gUnknown_840C068
- add r0, r9
- ldrb r1, [r0]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _080F0FD4 @ =gSprites + 0x1C
- adds r4, r1
- ldr r0, _080F0FD8 @ =sub_80F0D5C
- str r0, [r4]
- movs r0, 0x3
- ldr r1, [sp, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r2, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
- movs r0, 0x8
- strh r0, [r5, 0x36]
- mov r0, r8
- cmp r0, 0
- bne _080F0FDC
- movs r0, 0x2
- strh r0, [r5, 0x38]
- movs r0, 0x1
- b _080F0FE2
- .align 2, 0
-_080F0FC4: .4byte gTasks
-_080F0FC8: .4byte gUnknown_840C0A4
-_080F0FCC: .4byte gSprites
-_080F0FD0: .4byte gUnknown_840C068
-_080F0FD4: .4byte gSprites + 0x1C
-_080F0FD8: .4byte sub_80F0D5C
-_080F0FDC:
- movs r0, 0x1
- strh r0, [r5, 0x38]
- movs r0, 0x2
-_080F0FE2:
- strh r0, [r5, 0x3A]
-_080F0FE4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080F0F5C
- mov r1, r10
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bls _080F0F54
- ldr r0, _080F1030 @ =gMain
- ldr r2, _080F1034 @ =0x00000439
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F1018
- ldr r0, _080F1038 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
-_080F1018:
- ldr r0, [sp]
- bl DestroyTask
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1030: .4byte gMain
-_080F1034: .4byte 0x00000439
-_080F1038: .4byte gSprites
- thumb_func_end sub_80F0F10
-
- thumb_func_start sub_80F103C
-sub_80F103C: @ 80F103C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080F1114 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r7, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [sp, 0x10]
- ldr r3, _080F1118 @ =gSprites
- mov r8, r3
- ldr r0, _080F111C @ =gUnknown_840C068
- adds r1, r0
- mov r10, r1
-_080F1082:
- ldr r0, _080F1120 @ =gUnknown_840C0A4
- ldr r1, [sp, 0x10]
- adds r0, r1, r0
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _080F10D4
- bl sub_80F0674
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- mov r2, r8
- adds r5, r4, r2
- mov r3, r10
- ldrb r1, [r3]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080F1124 @ =gSprites + 0x1C
- adds r4, r0
- ldr r0, _080F1128 @ =sub_80F1134
- str r0, [r4]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
-_080F10D4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _080F1082
- ldr r0, _080F112C @ =gMain
- ldr r1, _080F1130 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F10FC
- ldr r0, _080F1118 @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
-_080F10FC:
- mov r0, r9
- bl DestroyTask
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1114: .4byte gTasks
-_080F1118: .4byte gSprites
-_080F111C: .4byte gUnknown_840C068
-_080F1120: .4byte gUnknown_840C0A4
-_080F1124: .4byte gSprites + 0x1C
-_080F1128: .4byte sub_80F1134
-_080F112C: .4byte gMain
-_080F1130: .4byte 0x00000439
- thumb_func_end sub_80F103C
-
- thumb_func_start sub_80F1134
-sub_80F1134: @ 80F1134
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- ldrh r1, [r5, 0x2E]
- movs r0, 0x3F
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080F1190
- adds r0, r5, 0
- bl sub_80F1198
-_080F1190:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F1134
-
- thumb_func_start sub_80F1198
-sub_80F1198: @ 80F1198
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r0, _080F11BC @ =gMain
- ldr r1, _080F11C0 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F11C4
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _080F11F6
- adds r0, r7, 0
- bl DestroySpriteAndFreeResources
- b _080F1212
- .align 2, 0
-_080F11BC: .4byte gMain
-_080F11C0: .4byte 0x00000439
-_080F11C4:
- ldr r2, _080F1200 @ =gBattleSpritesDataPtr
- ldr r0, [r2]
- ldr r1, [r0, 0x8]
- ldrb r0, [r1, 0xA]
- subs r0, 0x1
- strb r0, [r1, 0xA]
- ldr r0, [r2]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- bne _080F120C
- movs r6, 0
- ldr r5, _080F1204 @ =gUnknown_840BF48
- ldr r4, _080F1208 @ =gUnknown_840BFA8
-_080F11E0:
- ldrh r0, [r5, 0x6]
- bl FreeSpriteTilesByTag
- ldrh r0, [r4, 0x4]
- bl FreeSpritePaletteByTag
- adds r5, 0x8
- adds r4, 0x8
- adds r6, 0x1
- cmp r6, 0xB
- ble _080F11E0
-_080F11F6:
- adds r0, r7, 0
- bl DestroySprite
- b _080F1212
- .align 2, 0
-_080F1200: .4byte gBattleSpritesDataPtr
-_080F1204: .4byte gUnknown_840BF48
-_080F1208: .4byte gUnknown_840BFA8
-_080F120C:
- adds r0, r7, 0
- bl DestroySprite
-_080F1212:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F1198
-
- thumb_func_start LaunchBallFadeMonTask
-LaunchBallFadeMonTask: @ 80F1218
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- mov r9, r2
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r3, 24
- lsrs r7, r3, 24
- ldr r0, _080F127C @ =sub_80F12E0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _080F1280 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- strh r7, [r5, 0x26]
- strh r6, [r5, 0xE]
- mov r0, r9
- strh r0, [r5, 0x1C]
- mov r1, r9
- lsrs r0, r1, 16
- strh r0, [r5, 0x1E]
- cmp r4, 0
- bne _080F1288
- lsls r0, r6, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldr r2, _080F1284 @ =gUnknown_840C1C4
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- movs r0, 0x1
- strh r0, [r5, 0xA]
- b _080F12AE
- .align 2, 0
-_080F127C: .4byte sub_80F12E0
-_080F1280: .4byte gTasks
-_080F1284: .4byte gUnknown_840C1C4
-_080F1288:
- lsls r0, r6, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r2, _080F12D0 @ =gUnknown_840C1C4
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x10
- bl BlendPalette
- movs r0, 0x10
- strh r0, [r5, 0x8]
- ldr r0, _080F12D4 @ =0x0000ffff
- strh r0, [r5, 0xA]
- ldr r0, _080F12D8 @ =sub_80F1370
- str r0, [r5]
-_080F12AE:
- ldr r0, _080F12DC @ =0x00007fff
- str r0, [sp]
- mov r0, r9
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r0, r8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080F12D0: .4byte gUnknown_840C1C4
-_080F12D4: .4byte 0x0000ffff
-_080F12D8: .4byte sub_80F1370
-_080F12DC: .4byte 0x00007fff
- thumb_func_end LaunchBallFadeMonTask
-
- thumb_func_start sub_80F12E0
-sub_80F12E0: @ 80F12E0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080F1330 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bgt _080F1338
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _080F1334 @ =gUnknown_840C1C4
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _080F1360
- .align 2, 0
-_080F1330: .4byte gTasks
-_080F1334: .4byte gUnknown_840C1C4
-_080F1338:
- ldr r0, _080F1368 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F1360
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _080F136C @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r5, 0
- bl DestroyTask
-_080F1360:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1368: .4byte gPaletteFade
-_080F136C: .4byte 0x00007fff
- thumb_func_end sub_80F12E0
-
- thumb_func_start sub_80F1370
-sub_80F1370: @ 80F1370
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080F13B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F13A8
- ldr r0, _080F13B4 @ =gTasks
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _080F13B8 @ =0x00007fff
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080F13BC @ =sub_80F13C0
- str r0, [r4]
-_080F13A8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F13B0: .4byte gPaletteFade
-_080F13B4: .4byte gTasks
-_080F13B8: .4byte 0x00007fff
-_080F13BC: .4byte sub_80F13C0
- thumb_func_end sub_80F1370
-
- thumb_func_start sub_80F13C0
-sub_80F13C0: @ 80F13C0
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080F140C @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bgt _080F1414
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _080F1410 @ =gUnknown_840C1C4
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _080F141A
- .align 2, 0
-_080F140C: .4byte gTasks
-_080F1410: .4byte gUnknown_840C1C4
-_080F1414:
- adds r0, r2, 0
- bl DestroyTask
-_080F141A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F13C0
-
- thumb_func_start sub_80F1420
-sub_80F1420: @ 80F1420
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r0, _080F1454 @ =gBattlerSpriteIds
- ldr r3, _080F1458 @ =gBattleAnimAttacker
- ldrb r2, [r3]
- adds r0, r2, r0
- ldrb r6, [r0]
- ldr r1, _080F145C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080F14F8
- cmp r0, 0x1
- bgt _080F1460
- cmp r0, 0
- beq _080F1466
- b _080F15BA
- .align 2, 0
-_080F1454: .4byte gBattlerSpriteIds
-_080F1458: .4byte gBattleAnimAttacker
-_080F145C: .4byte gTasks
-_080F1460:
- cmp r0, 0x2
- beq _080F150A
- b _080F15BA
-_080F1466:
- ldr r0, _080F14A0 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r5, 0x1E]
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r4, [r5, 0x8]
- adds r0, r4
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080F14A8
- ldr r2, _080F14A4 @ =gSprites
- lsls r3, r6, 4
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- adds r4, r3, 0
- b _080F14C0
- .align 2, 0
-_080F14A0: .4byte gBattleAnimArgs
-_080F14A4: .4byte gSprites
-_080F14A8:
- ldr r3, _080F14F0 @ =gSprites
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
-_080F14C0:
- ldr r1, _080F14F4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrb r0, [r3, 0x8]
- strh r0, [r3, 0x8]
- adds r0, r4, r6
- lsls r0, 2
- adds r0, r2
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r4, 0x24
- ldrsh r0, [r0, r4]
- adds r1, r0
- adds r1, 0x20
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bls _080F15BA
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- b _080F15BA
- .align 2, 0
-_080F14F0: .4byte gSprites
-_080F14F4: .4byte gTasks
-_080F14F8:
- ldrb r1, [r5, 0x1E]
- adds r0, r2, 0
- adds r2, r6, 0
- bl LoadBattleMonGfxAndAnimate
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- b _080F15BA
-_080F150A:
- movs r1, 0xA0
- lsls r1, 3
- adds r0, r1, 0
- ldrh r2, [r5, 0x8]
- adds r0, r2
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080F1540
- ldr r0, _080F153C @ =gSprites
- lsls r3, r6, 4
- adds r2, r3, r6
- lsls r2, 2
- adds r2, r0
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r4, r3, 0
- b _080F1558
- .align 2, 0
-_080F153C: .4byte gSprites
-_080F1540:
- ldr r0, _080F158C @ =gSprites
- lsls r2, r6, 4
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- adds r4, r2, 0
-_080F1558:
- ldr r1, _080F1590 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- strh r1, [r0, 0x8]
- ldr r0, _080F1594 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080F1598
- ldr r0, _080F158C @ =gSprites
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bgt _080F15AE
- movs r0, 0
- strh r0, [r1, 0x24]
- b _080F15B4
- .align 2, 0
-_080F158C: .4byte gSprites
-_080F1590: .4byte gTasks
-_080F1594: .4byte gBattleAnimAttacker
-_080F1598:
- ldr r0, _080F15C4 @ =gSprites
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r3, 0x24
- ldrsh r0, [r1, r3]
- cmp r0, 0
- blt _080F15AE
- strh r2, [r1, 0x24]
- movs r4, 0x1
- mov r8, r4
-_080F15AE:
- mov r0, r8
- cmp r0, 0
- beq _080F15BA
-_080F15B4:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080F15BA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F15C4: .4byte gSprites
- thumb_func_end sub_80F1420
-
- thumb_func_start sub_80F15C8
-sub_80F15C8: @ 80F15C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080F15EC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080F1644
- cmp r0, 0x1
- bgt _080F15F0
- cmp r0, 0
- beq _080F15F6
- b _080F16B4
- .align 2, 0
-_080F15EC: .4byte gTasks
-_080F15F0:
- cmp r0, 0x2
- beq _080F167E
- b _080F16B4
-_080F15F6:
- ldr r0, _080F1610 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteBGPriorityRank
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F1618
- ldr r1, _080F1614 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- b _080F1620
- .align 2, 0
-_080F1610: .4byte gBattleAnimAttacker
-_080F1614: .4byte 0x00003f42
-_080F1618:
- ldr r1, _080F163C @ =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
-_080F1620:
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- ldr r0, _080F1640 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _080F16B4
- .align 2, 0
-_080F163C: .4byte 0x00003f44
-_080F1640: .4byte gTasks
-_080F1644:
- ldrh r0, [r4, 0xA]
- adds r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080F16B4
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0x8]
- adds r2, 0x1
- strh r2, [r4, 0x8]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080F16B4
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _080F16B4
-_080F167E:
- ldr r1, _080F16BC @ =gBattlerSpriteIds
- ldr r4, _080F16C0 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _080F16C4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r0, _080F16C8 @ =0x06010000
- adds r1, r0
- movs r2, 0x80
- lsls r2, 4
- movs r0, 0
- movs r3, 0x1
- bl RequestDma3Fill
- ldrb r0, [r4]
- bl ClearBehindSubstituteBit
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080F16B4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F16BC: .4byte gBattlerSpriteIds
-_080F16C0: .4byte gBattleAnimAttacker
-_080F16C4: .4byte gSprites
-_080F16C8: .4byte 0x06010000
- thumb_func_end sub_80F15C8
-
- thumb_func_start sub_80F16CC
-sub_80F16CC: @ 80F16CC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080F16F4 @ =gBattleAnimArgs
- ldr r1, _080F16F8 @ =gBattleSpritesDataPtr
- ldr r2, [r1]
- ldr r1, _080F16FC @ =gBattleAnimAttacker
- ldrb r1, [r1]
- ldr r2, [r2]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r3, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080F16F4: .4byte gBattleAnimArgs
-_080F16F8: .4byte gBattleSpritesDataPtr
-_080F16FC: .4byte gBattleAnimAttacker
- thumb_func_end sub_80F16CC
-
- thumb_func_start sub_80F1700
-sub_80F1700: @ 80F1700
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F1718 @ =gBattleAnimTarget
- ldr r1, _080F171C @ =gEffectBattler
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080F1718: .4byte gBattleAnimTarget
-_080F171C: .4byte gEffectBattler
- thumb_func_end sub_80F1700
-
- thumb_func_start sub_80F1720
-sub_80F1720: @ 80F1720
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r0, _080F17DC @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r6, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080F17F8
- lsrs r0, r5, 16
- ldr r7, _080F17E0 @ =0x0000ffff
- ands r5, r7
- eors r0, r5
- lsrs r1, r4, 16
- eors r0, r1
- ands r4, r7
- eors r0, r4
- cmp r0, 0x7
- bhi _080F177E
- movs r0, 0x1
- mov r8, r0
-_080F177E:
- mov r0, r8
- cmp r0, 0
- beq _080F17F8
- ldr r0, _080F17E4 @ =0x000027f9
- bl GetSpriteTileStartByTag
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- bne _080F179E
- ldr r0, _080F17E8 @ =gUnknown_83AD350
- bl LoadCompressedSpriteSheetUsingHeap
- ldr r0, _080F17EC @ =gUnknown_83ADC58
- bl LoadCompressedSpritePaletteUsingHeap
-_080F179E:
- ldr r5, _080F17F0 @ =sub_80F181C
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080F17F4 @ =gTasks
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r2, r3
- movs r4, 0
- strh r6, [r2, 0x8]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- strh r6, [r1, 0x8]
- strh r4, [r2, 0xA]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- b _080F180E
- .align 2, 0
-_080F17DC: .4byte gBattleSpritesDataPtr
-_080F17E0: .4byte 0x0000ffff
-_080F17E4: .4byte 0x000027f9
-_080F17E8: .4byte gUnknown_83AD350
-_080F17EC: .4byte gUnknown_83ADC58
-_080F17F0: .4byte sub_80F181C
-_080F17F4: .4byte gTasks
-_080F17F8:
- ldr r0, _080F1818 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_080F180E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1818: .4byte gBattleSpritesDataPtr
- thumb_func_end sub_80F1720
-
- thumb_func_start sub_80F181C
-sub_80F181C: @ 80F181C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080F1844 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- bgt _080F1848
- adds r0, r1, 0x1
- strh r0, [r4, 0x22]
- b _080F19C0
- .align 2, 0
-_080F1844: .4byte gTasks
-_080F1848:
- ldr r0, _080F189C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _080F1856
- b _080F19C0
-_080F1856:
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- beq _080F186A
- b _080F19C0
-_080F186A:
- ldrb r0, [r4, 0x8]
- mov r8, r0
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080F18A4
- ldr r0, _080F18A0 @ =gUnknown_83FF168
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- b _080F1906
- .align 2, 0
-_080F189C: .4byte gBattleSpritesDataPtr
-_080F18A0: .4byte gUnknown_83FF168
-_080F18A4:
- cmp r0, 0
- blt _080F18D8
- cmp r0, 0x3
- bgt _080F18D8
- ldr r0, _080F18D0 @ =gUnknown_83FF180
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080F18D4 @ =gSprites
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x4
- b _080F18F8
- .align 2, 0
-_080F18D0: .4byte gUnknown_83FF180
-_080F18D4: .4byte gSprites
-_080F18D8:
- ldr r0, _080F1930 @ =gUnknown_83FF180
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080F1934 @ =gSprites
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x5
-_080F18F8:
- ldr r4, _080F1938 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080F193C @ =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_080F1906:
- ldr r2, _080F1940 @ =gTasks
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r6, r0, r2
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- mov r9, r1
- cmp r0, 0
- bne _080F1948
- ldr r1, _080F1934 @ =gSprites
- lsls r2, r5, 4
- adds r0, r2, r5
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080F1944 @ =sub_80F1A2C
- str r1, [r0]
- adds r4, r2, 0
- b _080F1990
- .align 2, 0
-_080F1930: .4byte gUnknown_83FF180
-_080F1934: .4byte gSprites
-_080F1938: .4byte 0x000003ff
-_080F193C: .4byte 0xfffffc00
-_080F1940: .4byte gTasks
-_080F1944: .4byte sub_80F1A2C
-_080F1948:
- ldr r3, _080F19CC @ =gSprites
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _080F19D0 @ =sub_80F1A80
- str r2, [r0]
- adds r1, r3
- ldr r0, _080F19D4 @ =0x0000ffe0
- strh r0, [r1, 0x24]
- movs r0, 0x20
- strh r0, [r1, 0x26]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080F1990
- mov r0, r8
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0x3F
- cmp r0, 0
- bne _080F1986
- movs r1, 0xC0
-_080F1986:
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x5F
- bl PlaySE12WithPanning
-_080F1990:
- ldr r1, _080F19CC @ =gSprites
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- strh r7, [r0, 0x2E]
- ldr r1, _080F19D8 @ =gTasks
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- cmp r5, 0x40
- beq _080F19B4
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080F19B4:
- movs r4, 0x1E
- ldrsh r0, [r1, r4]
- cmp r0, 0x5
- bne _080F19C0
- ldr r0, _080F19DC @ =sub_80F19E0
- str r0, [r1]
-_080F19C0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F19CC: .4byte gSprites
-_080F19D0: .4byte sub_80F1A80
-_080F19D4: .4byte 0x0000ffe0
-_080F19D8: .4byte gTasks
-_080F19DC: .4byte sub_80F19E0
- thumb_func_end sub_80F181C
-
- thumb_func_start sub_80F19E0
-sub_80F19E0: @ 80F19E0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- ldr r1, _080F1A24 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0x20
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080F1A20
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080F1A1A
- ldrb r1, [r1, 0x8]
- ldr r0, _080F1A28 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_080F1A1A:
- adds r0, r3, 0
- bl DestroyTask
-_080F1A20:
- pop {r0}
- bx r0
- .align 2, 0
-_080F1A24: .4byte gTasks
-_080F1A28: .4byte gBattleSpritesDataPtr
- thumb_func_end sub_80F19E0
-
- thumb_func_start sub_80F1A2C
-sub_80F1A2C: @ 80F1A2C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xC
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080F1A76
- ldr r2, _080F1A7C @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080F1A76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1A7C: .4byte gTasks
- thumb_func_end sub_80F1A2C
-
- thumb_func_start sub_80F1A80
-sub_80F1A80: @ 80F1A80
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _080F1A94
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _080F1AD6
-_080F1A94:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r1, [r4, 0x24]
- adds r1, 0x5
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r0, 0x5
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x20
- ble _080F1AD6
- ldr r2, _080F1ADC @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080F1AD6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1ADC: .4byte gTasks
- thumb_func_end sub_80F1A80
-
- thumb_func_start sub_80F1AE0
-sub_80F1AE0: @ 80F1AE0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080F1B08 @ =gUnknown_83AD470
- bl LoadCompressedSpriteSheetUsingHeap
- ldr r0, _080F1B0C @ =gUnknown_83ADD78
- bl LoadCompressedSpritePaletteUsingHeap
- ldr r0, _080F1B10 @ =0x0000281d
- bl IndexOfSpritePaletteTag
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1B08: .4byte gUnknown_83AD470
-_080F1B0C: .4byte gUnknown_83ADD78
-_080F1B10: .4byte 0x0000281d
- thumb_func_end sub_80F1AE0
-
- thumb_func_start sub_80F1B14
-sub_80F1B14: @ 80F1B14
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080F1B38 @ =0x0000281d
- adds r0, r5, 0
- bl FreeSpriteTilesByTag
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1B38: .4byte 0x0000281d
- thumb_func_end sub_80F1B14
-
- thumb_func_start sub_80F1B3C
-sub_80F1B3C: @ 80F1B3C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimAttacker
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r5, _080F1BB0 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, _080F1BB4 @ =0x0000ffe0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldr r2, _080F1BB8 @ =gSprites
- ldr r1, _080F1BBC @ =gBattlerSpriteIds
- ldr r0, _080F1BC0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080F1BC4 @ =sub_8012354
- str r1, [r0]
- ldr r0, _080F1BC8 @ =sub_80F1BCC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1BB0: .4byte gBattleAnimArgs
-_080F1BB4: .4byte 0x0000ffe0
-_080F1BB8: .4byte gSprites
-_080F1BBC: .4byte gBattlerSpriteIds
-_080F1BC0: .4byte gBattleAnimAttacker
-_080F1BC4: .4byte sub_8012354
-_080F1BC8: .4byte sub_80F1BCC
- thumb_func_end sub_80F1B3C
-
- thumb_func_start sub_80F1BCC
-sub_80F1BCC: @ 80F1BCC
- push {lr}
- adds r3, r0, 0
- ldr r2, _080F1BF4 @ =gSprites
- ldr r1, _080F1BF8 @ =gBattlerSpriteIds
- ldr r0, _080F1BFC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F1BF0
- ldr r0, _080F1C00 @ =sub_80F1C04
- str r0, [r3, 0x1C]
-_080F1BF0:
- pop {r0}
- bx r0
- .align 2, 0
-_080F1BF4: .4byte gSprites
-_080F1BF8: .4byte gBattlerSpriteIds
-_080F1BFC: .4byte gBattleAnimAttacker
-_080F1C00: .4byte sub_80F1C04
- thumb_func_end sub_80F1BCC
-
- thumb_func_start sub_80F1C04
-sub_80F1C04: @ 80F1C04
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- beq _080F1C26
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080F1C2C @ =sub_80F1C30
- str r0, [r4, 0x1C]
-_080F1C26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1C2C: .4byte sub_80F1C30
- thumb_func_end sub_80F1C04
-
- thumb_func_start sub_80F1C30
-sub_80F1C30: @ 80F1C30
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080F1C80 @ =gSprites
- ldr r3, _080F1C84 @ =gBattlerSpriteIds
- ldr r2, _080F1C88 @ =gBattleAnimAttacker
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _080F1C78
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- ble _080F1C78
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080F1C78:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1C80: .4byte gSprites
-_080F1C84: .4byte gBattlerSpriteIds
-_080F1C88: .4byte gBattleAnimAttacker
- thumb_func_end sub_80F1C30
-
- thumb_func_start sub_80F1C8C
-sub_80F1C8C: @ 80F1C8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080F1CA4 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080F1CA8
- cmp r0, 0x1
- beq _080F1CBC
- b _080F1CD0
- .align 2, 0
-_080F1CA4: .4byte gBattleAnimArgs
-_080F1CA8:
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _080F1CB8 @ =gBattleAnimAttacker
- strb r0, [r1]
- movs r0, 0x1
- b _080F1CC8
- .align 2, 0
-_080F1CB8: .4byte gBattleAnimAttacker
-_080F1CBC:
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r1, _080F1CDC @ =gBattleAnimAttacker
- strb r0, [r1]
- movs r0, 0
-_080F1CC8:
- bl GetBattlerAtPosition
- ldr r1, _080F1CE0 @ =gBattleAnimTarget
- strb r0, [r1]
-_080F1CD0:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1CDC: .4byte gBattleAnimAttacker
-_080F1CE0: .4byte gBattleAnimTarget
- thumb_func_end sub_80F1C8C
-
- thumb_func_start sub_80F1CE4
-sub_80F1CE4: @ 80F1CE4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080F1CF8 @ =gBattleCommunication
- ldrb r0, [r2, 0x5]
- cmp r0, 0x2
- bls _080F1D00
- ldr r1, _080F1CFC @ =gBattleAnimArgs
- movs r0, 0
- b _080F1D04
- .align 2, 0
-_080F1CF8: .4byte gBattleCommunication
-_080F1CFC: .4byte gBattleAnimArgs
-_080F1D00:
- ldr r1, _080F1D10 @ =gBattleAnimArgs
- ldrb r0, [r2, 0x5]
-_080F1D04:
- strh r0, [r1, 0xE]
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080F1D10: .4byte gBattleAnimArgs
- thumb_func_end sub_80F1CE4
-
- thumb_func_start sub_80F1D14
-sub_80F1D14: @ 80F1D14
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080F1D2C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- ldrh r1, [r0]
- cmp r1, 0x53
- bne _080F1D34
- ldr r1, _080F1D30 @ =gBattleAnimArgs
- movs r0, 0x1
- b _080F1D6C
- .align 2, 0
-_080F1D2C: .4byte gBattleSpritesDataPtr
-_080F1D30: .4byte gBattleAnimArgs
-_080F1D34:
- cmp r1, 0xFA
- bne _080F1D44
- ldr r1, _080F1D40 @ =gBattleAnimArgs
- movs r0, 0x2
- b _080F1D6C
- .align 2, 0
-_080F1D40: .4byte gBattleAnimArgs
-_080F1D44:
- cmp r1, 0x80
- bne _080F1D54
- ldr r1, _080F1D50 @ =gBattleAnimArgs
- movs r0, 0x3
- b _080F1D6C
- .align 2, 0
-_080F1D50: .4byte gBattleAnimArgs
-_080F1D54:
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- bne _080F1D68
- ldr r1, _080F1D64 @ =gBattleAnimArgs
- movs r0, 0x4
- b _080F1D6C
- .align 2, 0
-_080F1D64: .4byte gBattleAnimArgs
-_080F1D68:
- ldr r1, _080F1D78 @ =gBattleAnimArgs
- movs r0, 0
-_080F1D6C:
- strh r0, [r1]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080F1D78: .4byte gBattleAnimArgs
- thumb_func_end sub_80F1D14
-
- thumb_func_start sub_80F1D7C
-sub_80F1D7C: @ 80F1D7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080F1DA0 @ =gBattleAnimAttacker
- ldr r1, _080F1DA4 @ =gBattleSpritesDataPtr
- ldr r2, [r1]
- ldr r1, [r2, 0x8]
- ldrh r1, [r1]
- strb r1, [r3]
- ldr r3, _080F1DA8 @ =gBattleAnimTarget
- ldr r1, [r2, 0x8]
- ldrh r1, [r1]
- lsrs r1, 8
- strb r1, [r3]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080F1DA0: .4byte gBattleAnimAttacker
-_080F1DA4: .4byte gBattleSpritesDataPtr
-_080F1DA8: .4byte gBattleAnimTarget
- thumb_func_end sub_80F1D7C
-
- .align 2, 0 @ Don't pad with nop.