summaryrefslogtreecommitdiff
path: root/asm/battle_anim_effects_1.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_anim_effects_1.s')
-rw-r--r--asm/battle_anim_effects_1.s9882
1 files changed, 0 insertions, 9882 deletions
diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s
deleted file mode 100644
index 8e0721e04..000000000
--- a/asm/battle_anim_effects_1.s
+++ /dev/null
@@ -1,9882 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A22E8
-sub_80A22E8: @ 80A22E8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A231C @ =gBattleAnimArgs
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080A2320 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2324
- ldrh r0, [r5, 0x8]
- negs r0, r0
- b _080A2326
- .align 2, 0
-_080A231C: .4byte gBattleAnimArgs
-_080A2320: .4byte gBattleAnimAttacker
-_080A2324:
- ldrh r0, [r5, 0x8]
-_080A2326:
- strh r0, [r4, 0x34]
- ldr r0, _080A2338 @ =gBattleAnimArgs
- ldrh r0, [r0, 0xA]
- strh r0, [r4, 0x36]
- ldr r0, _080A233C @ =sub_80A2340
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2338: .4byte gBattleAnimArgs
-_080A233C: .4byte sub_80A2340
- thumb_func_end sub_80A22E8
-
- thumb_func_start sub_80A2340
-sub_80A2340: @ 80A2340
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A237C
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r1, r0
- strh r1, [r4, 0x32]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A2382
-_080A237C:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2382:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2340
-
- thumb_func_start sub_80A2388
-sub_80A2388: @ 80A2388
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r0, _080A23C8 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080A23CC @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080A23D0 @ =StartAnimLinearTranslation
- str r0, [r4, 0x1C]
- ldr r1, _080A23D4 @ =DestroySpriteAndMatrix
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A23C8: .4byte gBattleAnimArgs
-_080A23CC: .4byte gBattleAnimAttacker
-_080A23D0: .4byte StartAnimLinearTranslation
-_080A23D4: .4byte DestroySpriteAndMatrix
- thumb_func_end sub_80A2388
-
- thumb_func_start sub_80A23D8
-sub_80A23D8: @ 80A23D8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r5, _080A2420 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080A2424 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080A2428 @ =StartAnimLinearTranslation
- str r0, [r4, 0x1C]
- ldr r1, _080A242C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2420: .4byte gBattleAnimArgs
-_080A2424: .4byte gBattleAnimTarget
-_080A2428: .4byte StartAnimLinearTranslation
-_080A242C: .4byte DestroyAnimSprite
- thumb_func_end sub_80A23D8
-
- thumb_func_start sub_80A2430
-sub_80A2430: @ 80A2430
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r6, _080A2480 @ =gBattleAnimArgs
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080A2484 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x38]
- ldr r1, _080A2488 @ =sub_80A248C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2480: .4byte gBattleAnimArgs
-_080A2484: .4byte gBattleAnimTarget
-_080A2488: .4byte sub_80A248C
- thumb_func_end sub_80A2430
-
- thumb_func_start sub_80A248C
-sub_80A248C: @ 80A248C
- push {r4,lr}
- adds r4, r0, 0
- bl AnimTranslateLinear
- lsls r0, 24
- cmp r0, 0
- beq _080A24A2
- adds r0, r4, 0
- bl DestroySprite
- b _080A24F6
-_080A24A2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080A24BC
- ldr r0, _080A24B8 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- adds r0, 0x1
- b _080A24C6
- .align 2, 0
-_080A24B8: .4byte gBattleAnimTarget
-_080A24BC:
- ldr r0, _080A24FC @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- adds r0, 0x6
-_080A24C6:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0xF
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080A24F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A24FC: .4byte gBattleAnimTarget
- thumb_func_end sub_80A248C
-
- thumb_func_start sub_80A2500
-sub_80A2500: @ 80A2500
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A2570 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- movs r2, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080A255A
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- movs r0, 0x6
- strh r0, [r5, 0x8]
- ldr r1, _080A2574 @ =gBattleAnimArgs
- movs r0, 0xF
- strh r0, [r1]
- strh r2, [r1, 0x2]
- movs r0, 0x50
- strh r0, [r1, 0x4]
- strh r2, [r1, 0x6]
- ldr r4, _080A2578 @ =gSolarbeamSmallOrbSpriteTemplate
- ldr r0, _080A257C @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl CreateSpriteAndAnimate
-_080A255A:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- bne _080A2568
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A2568:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2570: .4byte gTasks
-_080A2574: .4byte gBattleAnimArgs
-_080A2578: .4byte gSolarbeamSmallOrbSpriteTemplate
-_080A257C: .4byte gBattleAnimTarget
- thumb_func_end sub_80A2500
-
- thumb_func_start sub_80A2580
-sub_80A2580: @ 80A2580
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimTarget
- ldr r6, _080A25C4 @ =gBattleAnimArgs
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x2E]
- ldr r5, _080A25C8 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldr r0, _080A25CC @ =sub_80A25D0
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A25C4: .4byte gBattleAnimArgs
-_080A25C8: .4byte gBattleAnimAttacker
-_080A25CC: .4byte sub_80A25D0
- thumb_func_end sub_80A2580
-
- thumb_func_start sub_80A25D0
-sub_80A25D0: @ 80A25D0
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- beq _080A25E4
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A25E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A25D0
-
- thumb_func_start sub_80A25EC
-sub_80A25EC: @ 80A25EC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x7
- ands r1, r0
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r4, _080A2634 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2638
- ldrh r0, [r5, 0x20]
- subs r0, 0x14
- b _080A263C
- .align 2, 0
-_080A2634: .4byte gBattleAnimAttacker
-_080A2638:
- ldrh r0, [r5, 0x20]
- adds r0, 0x14
-_080A263C:
- strh r0, [r5, 0x20]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- ands r0, r1
- adds r0, 0x40
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080A269C @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimFastLinearTranslationWithSpeed
- bl Random
- movs r1, 0xFF
- ands r1, r0
- strh r1, [r5, 0x38]
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r0, [r0]
- strh r0, [r5, 0x3A]
- ldr r1, _080A26A0 @ =sub_80A26A4
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A269C: .4byte gBattleAnimTarget
-_080A26A0: .4byte sub_80A26A4
- thumb_func_end sub_80A25EC
-
- thumb_func_start sub_80A26A4
-sub_80A26A4: @ 80A26A4
- push {r4,lr}
- adds r4, r0, 0
- bl AnimFastTranslateLinear
- lsls r0, 24
- cmp r0, 0
- beq _080A26BA
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _080A26EA
-_080A26BA:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7E
- bgt _080A26D6
- ldrh r0, [r4, 0x3A]
- b _080A26DA
-_080A26D6:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_080A26DA:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x18
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080A26EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A26A4
-
- thumb_func_start sub_80A26F0
-sub_80A26F0: @ 80A26F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r0, _080A2750 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2710
- ldr r1, _080A2754 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A2710:
- ldr r4, _080A2754 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080A2758 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl InitAnimArcTranslation
- ldr r0, _080A275C @ =sub_80A2760
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2750: .4byte gBattleAnimAttacker
-_080A2754: .4byte gBattleAnimArgs
-_080A2758: .4byte gBattleAnimTarget
-_080A275C: .4byte sub_80A2760
- thumb_func_end sub_80A26F0
-
- thumb_func_start sub_80A2760
-sub_80A2760: @ 80A2760
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- beq _080A278A
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- ldr r0, _080A2790 @ =WaitAnimForDuration
- str r0, [r4, 0x1C]
- ldr r1, _080A2794 @ =sub_80A2798
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_080A278A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2790: .4byte WaitAnimForDuration
-_080A2794: .4byte sub_80A2798
- thumb_func_end sub_80A2760
-
- thumb_func_start sub_80A2798
-sub_80A2798: @ 80A2798
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, _080A27C8 @ =WaitAnimForDuration
- str r0, [r4, 0x1C]
- ldr r1, _080A27CC @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A27C8: .4byte WaitAnimForDuration
-_080A27CC: .4byte DestroyAnimSprite
- thumb_func_end sub_80A2798
-
- thumb_func_start sub_80A27D0
-sub_80A27D0: @ 80A27D0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimTarget
- ldr r5, _080A2814 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080A27FA
- ldrb r0, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
-_080A27FA:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldr r1, _080A2818 @ =sub_80A281C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2814: .4byte gBattleAnimArgs
-_080A2818: .4byte sub_80A281C
- thumb_func_end sub_80A27D0
-
- thumb_func_start sub_80A281C
-sub_80A281C: @ 80A281C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x32]
- adds r1, 0x18
- strh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080A2870
- ldr r0, _080A286C @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteBGPriority
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- b _080A2894
- .align 2, 0
-_080A286C: .4byte gBattleAnimTarget
-_080A2870:
- ldr r0, _080A28C0 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteBGPriority
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080A2884
- movs r2, 0x3
-_080A2884:
- movs r0, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
-_080A2894:
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080A28B8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A28B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A28C0: .4byte gBattleAnimTarget
- thumb_func_end sub_80A281C
-
- thumb_func_start sub_80A28C4
-sub_80A28C4: @ 80A28C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A28DE
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _080A28E6
-_080A28DE:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080A2918
-_080A28E6:
- ldr r0, _080A2904 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteBGPriorityRank
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2908
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x3
- bl SetAnimBgAttribute
- b _080A2912
- .align 2, 0
-_080A2904: .4byte gBattleAnimTarget
-_080A2908:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080A2912:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A2918:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A28C4
-
- thumb_func_start sub_80A2920
-sub_80A2920: @ 80A2920
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimAttacker
- ldr r5, _080A2968 @ =gBattleAnimArgs
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080A296C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080A2970 @ =sub_80A2974
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2968: .4byte gBattleAnimArgs
-_080A296C: .4byte gBattleAnimAttacker
-_080A2970: .4byte sub_80A2974
- thumb_func_end sub_80A2920
-
- thumb_func_start sub_80A2974
-sub_80A2974: @ 80A2974
- push {r4,lr}
- adds r4, r0, 0
- bl AnimTranslateLinear
- lsls r0, 24
- cmp r0, 0
- bne _080A29E0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080A29C0
- ldr r0, _080A29BC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- subs r0, 0x1
- b _080A29CA
- .align 2, 0
-_080A29BC: .4byte gBattleAnimAttacker
-_080A29C0:
- ldr r0, _080A29DC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- adds r0, 0x1
-_080A29CA:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A29E6
- .align 2, 0
-_080A29DC: .4byte gBattleAnimAttacker
-_080A29E0:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A29E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2974
-
- thumb_func_start sub_80A29EC
-sub_80A29EC: @ 80A29EC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r5, _080A2A34 @ =gBattleAnimArgs
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080A2A38 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080A2A3C @ =sub_80A2A40
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2A34: .4byte gBattleAnimArgs
-_080A2A38: .4byte gBattleAnimAttacker
-_080A2A3C: .4byte sub_80A2A40
- thumb_func_end sub_80A29EC
-
- thumb_func_start sub_80A2A40
-sub_80A2A40: @ 80A2A40
- push {r4,lr}
- adds r4, r0, 0
- bl AnimTranslateLinear
- lsls r0, 24
- cmp r0, 0
- bne _080A2A98
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x3B
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080A2A78
- adds r0, r1, 0
- subs r0, 0xBB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _080A2A8C
-_080A2A78:
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- eors r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
-_080A2A8C:
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A2A9E
-_080A2A98:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2A9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2A40
-
- thumb_func_start sub_80A2AA4
-sub_80A2AA4: @ 80A2AA4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A2AE0 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080A2AE4 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, _080A2AE8 @ =sub_80A2AEC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2AE0: .4byte gBattleAnimAttacker
-_080A2AE4: .4byte gBattleAnimArgs
-_080A2AE8: .4byte sub_80A2AEC
- thumb_func_end sub_80A2AA4
-
- thumb_func_start sub_80A2AEC
-sub_80A2AEC: @ 80A2AEC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x32]
- movs r2, 0x32
- ldrsh r3, [r1, r2]
- cmp r3, 0
- bne _080A2B20
- ldrh r0, [r1, 0x30]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080A2B0E
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
- strh r3, [r1, 0x32]
- b _080A2B14
-_080A2B0E:
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- strh r2, [r1, 0x32]
-_080A2B14:
- ldr r0, _080A2B1C @ =sub_80A2B38
- str r0, [r1, 0x1C]
- b _080A2B34
- .align 2, 0
-_080A2B1C: .4byte sub_80A2B38
-_080A2B20:
- subs r0, 0x1
- strh r0, [r1, 0x32]
- ldrh r0, [r1, 0x2E]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x30]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
-_080A2B34:
- pop {r0}
- bx r0
- thumb_func_end sub_80A2AEC
-
- thumb_func_start sub_80A2B38
-sub_80A2B38: @ 80A2B38
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A2B58 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2B5C
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
- negs r0, r0
- b _080A2B66
- .align 2, 0
-_080A2B58: .4byte gBattleAnimAttacker
-_080A2B5C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
-_080A2B66:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A2B86
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
-_080A2B86:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080A2B94
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2B94:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2B38
-
- thumb_func_start sub_80A2B9C
-sub_80A2B9C: @ 80A2B9C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r0, _080A2BF0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2BBC
- ldr r1, _080A2BF4 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A2BBC:
- ldr r6, _080A2BF4 @ =gBattleAnimArgs
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A2BFC
- ldr r4, _080A2BF8 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- b _080A2C1C
- .align 2, 0
-_080A2BF0: .4byte gBattleAnimAttacker
-_080A2BF4: .4byte gBattleAnimArgs
-_080A2BF8: .4byte gBattleAnimTarget
-_080A2BFC:
- ldr r0, _080A2C48 @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl SetAverageBattlerPositions
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
-_080A2C1C:
- strh r0, [r5, 0x36]
- ldr r0, _080A2C4C @ =gBattleAnimArgs
- ldrh r0, [r0, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl InitAnimArcTranslation
- ldr r0, _080A2C50 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, _080A2C48 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080A2C54
- movs r0, 0x1
- b _080A2C56
- .align 2, 0
-_080A2C48: .4byte gBattleAnimTarget
-_080A2C4C: .4byte gBattleAnimArgs
-_080A2C50: .4byte gBattleAnimAttacker
-_080A2C54:
- movs r0, 0
-_080A2C56:
- strh r0, [r5, 0x2E]
- ldr r0, _080A2C64 @ =sub_80A2C68
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2C64: .4byte sub_80A2C68
- thumb_func_end sub_80A2B9C
-
- thumb_func_start sub_80A2C68
-sub_80A2C68: @ 80A2C68
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- ldrh r5, [r6, 0x2E]
- ldrh r4, [r6, 0x3C]
- movs r0, 0x1
- strh r0, [r6, 0x2E]
- adds r0, r6, 0
- bl TranslateAnimHorizontalArc
- ldrh r0, [r6, 0x3C]
- strh r5, [r6, 0x2E]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0xC8
- ble _080A2C9A
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x37
- bgt _080A2C9A
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- bne _080A2CA0
- adds r0, 0x1
- strh r0, [r6, 0x6]
-_080A2C9A:
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- beq _080A2CD2
-_080A2CA0:
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080A2CD2
- adds r3, r6, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r6, 0x6]
- adds r0, 0x1
- strh r0, [r6, 0x6]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bne _080A2CD2
- movs r7, 0x1
-_080A2CD2:
- movs r2, 0x20
- ldrsh r0, [r6, r2]
- movs r2, 0x24
- ldrsh r1, [r6, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080A2CFC
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080A2CFC
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080A2CFE
-_080A2CFC:
- movs r7, 0x1
-_080A2CFE:
- cmp r7, 0
- beq _080A2D08
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080A2D08:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2C68
-
- thumb_func_start AnimMoveTwisterParticle
-AnimMoveTwisterParticle: @ 80A2D10
- push {r4,lr}
- adds r4, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A2D3C
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A2D3C
- ldr r0, _080A2D64 @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl SetAverageBattlerPositions
-_080A2D3C:
- ldrh r0, [r4, 0x22]
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r1, _080A2D68 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x36]
- ldr r0, _080A2D6C @ =sub_80A2D70
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2D64: .4byte gBattleAnimTarget
-_080A2D68: .4byte gBattleAnimArgs
-_080A2D6C: .4byte sub_80A2D70
- thumb_func_end AnimMoveTwisterParticle
-
- thumb_func_start sub_80A2D70
-sub_80A2D70: @ 80A2D70
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bne _080A2D86
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- b _080A2D94
-_080A2D86:
- cmp r0, 0
- ble _080A2D94
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- subs r0, r1, 0x2
- strh r0, [r4, 0x30]
-_080A2D94:
- ldrh r3, [r4, 0x32]
- ldrh r5, [r4, 0x38]
- adds r2, r3, r5
- strh r2, [r4, 0x38]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r5, 0x36
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bge _080A2DAC
- adds r0, r2, r3
- strh r0, [r4, 0x38]
-_080A2DAC:
- ldrh r1, [r4, 0x38]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r5, 0x38
- ldrsh r0, [r4, r5]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080A2DEC
- ldr r0, _080A2DE8 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteBGPriority
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- b _080A2DFA
- .align 2, 0
-_080A2DE8: .4byte gBattleAnimTarget
-_080A2DEC:
- ldr r0, _080A2E24 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteBGPriority
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
-_080A2DFA:
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080A2E1E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2E1E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E24: .4byte gBattleAnimTarget
- thumb_func_end sub_80A2D70
-
- thumb_func_start sub_80A2E28
-sub_80A2E28: @ 80A2E28
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimTarget
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _080A2E5C @ =gBattleAnimArgs
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, _080A2E60 @ =sub_80A2E64
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E5C: .4byte gBattleAnimArgs
-_080A2E60: .4byte sub_80A2E64
- thumb_func_end sub_80A2E28
-
- thumb_func_start sub_80A2E64
-sub_80A2E64: @ 80A2E64
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A2E94 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A2E98 @ =0x0000ffff
- cmp r1, r0
- bne _080A2E8E
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x2E]
- ldr r0, _080A2E9C @ =sub_80A2EA0
- str r0, [r4, 0x1C]
-_080A2E8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E94: .4byte gBattleAnimArgs
-_080A2E98: .4byte 0x0000ffff
-_080A2E9C: .4byte sub_80A2EA0
- thumb_func_end sub_80A2E64
-
- thumb_func_start sub_80A2EA0
-sub_80A2EA0: @ 80A2EA0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A2EB8
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- b _080A2EBC
-_080A2EB8:
- ldrh r0, [r4, 0x2E]
- subs r0, 0xB
-_080A2EBC:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080A2ED8
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x32]
-_080A2ED8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A2F06
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- ble _080A2F00
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- b _080A2F06
-_080A2F00:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A2F06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A2EA0
-
- thumb_func_start sub_80A2F0C
-sub_80A2F0C: @ 80A2F0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A2F38 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080A2F3C
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080A2F62
- .align 2, 0
-_080A2F38: .4byte gSprites
-_080A2F3C:
- adds r0, r2, 0
- movs r1, 0x1
- bl PrepareBattlerSpriteForRotScale
- ldr r1, _080A2F68 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080A2F6C @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x8]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xA]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1E]
- ldr r1, _080A2F70 @ =sub_80A2F74
- str r1, [r0]
-_080A2F62:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2F68: .4byte gTasks
-_080A2F6C: .4byte gBattleAnimArgs
-_080A2F70: .4byte sub_80A2F74
- thumb_func_end sub_80A2F0C
-
- thumb_func_start sub_80A2F74
-sub_80A2F74: @ 80A2F74
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080A2FF4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- ldrh r0, [r4, 0x1C]
- adds r1, r0
- strh r1, [r4, 0x1C]
- ldr r2, _080A2FF8 @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r2
- lsls r1, 16
- asrs r1, 24
- strh r1, [r5, 0x24]
- ldr r0, _080A2FFC @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A2FBE
- ldrh r0, [r5, 0x24]
- negs r0, r0
- strh r0, [r5, 0x24]
-_080A2FBE:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x10
- strh r0, [r4, 0x1E]
- movs r0, 0x1E
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl SetSpriteRotScale
- adds r0, r6, 0
- bl SetBattlerSpriteYOffsetFromYScale
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080A2FEC
- strh r0, [r4, 0x8]
- ldr r0, _080A3000 @ =sub_80A3004
- str r0, [r4]
-_080A2FEC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2FF4: .4byte gTasks
-_080A2FF8: .4byte gSprites
-_080A2FFC: .4byte gBattleAnimTarget
-_080A3000: .4byte sub_80A3004
- thumb_func_end sub_80A2F74
-
- thumb_func_start sub_80A3004
-sub_80A3004: @ 80A3004
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080A3050 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A3054 @ =0x0000ffff
- cmp r1, r0
- bne _080A3060
- ldr r0, _080A3058 @ =gTasks
- lsls r2, r3, 2
- adds r1, r2, r3
- lsls r1, 3
- adds r6, r1, r0
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- adds r4, r0, 0
- cmp r5, 0
- bne _080A3074
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl ResetSpriteRotScale
- ldr r1, _080A305C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x24]
- strh r5, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _080A308E
- .align 2, 0
-_080A3050: .4byte gBattleAnimArgs
-_080A3054: .4byte 0x0000ffff
-_080A3058: .4byte gTasks
-_080A305C: .4byte gSprites
-_080A3060:
- ldr r1, _080A3094 @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- movs r4, 0x8
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _080A308E
-_080A3074:
- adds r1, r2, r3
- lsls r1, 3
- adds r1, r4
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080A308E
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080A308E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3094: .4byte gTasks
- thumb_func_end sub_80A3004
-
- thumb_func_start sub_80A3098
-sub_80A3098: @ 80A3098
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080A30AA
- cmp r0, 0x1
- beq _080A3104
- b _080A3156
-_080A30AA:
- ldr r6, _080A30FC @ =gBattleAnimTarget
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A30C2
- ldr r1, _080A3100 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080A30C2:
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, _080A3100 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080A3156
- .align 2, 0
-_080A30FC: .4byte gBattleAnimTarget
-_080A3100: .4byte gBattleAnimArgs
-_080A3104:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A3156
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldr r4, _080A315C @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080A3160 @ =InitAndRunAnimFastLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _080A3164 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080A3156:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A315C: .4byte gBattleAnimAttacker
-_080A3160: .4byte InitAndRunAnimFastLinearTranslation
-_080A3164: .4byte DestroyAnimSprite
- thumb_func_end sub_80A3098
-
- thumb_func_start sub_80A3168
-sub_80A3168: @ 80A3168
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A31D4
- ldr r4, _080A31E0 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080A31E4 @ =gBattleAnimArgs
- ldrh r0, [r4]
- strh r0, [r5, 0x24]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x26]
- ldrb r0, [r4, 0x4]
- adds r0, 0x1E
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r4, 0x6]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r2, 0x22
- ldrsh r0, [r5, r2]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _080A31D4
- ldrh r0, [r5, 0x22]
- adds r1, r0, 0
- subs r1, 0x78
- ldrh r2, [r5, 0x26]
- adds r0, r2
- adds r1, r0
- strh r1, [r5, 0x22]
-_080A31D4:
- ldr r0, _080A31E8 @ =sub_80A32DC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A31E0: .4byte gBattleAnimAttacker
-_080A31E4: .4byte gBattleAnimArgs
-_080A31E8: .4byte sub_80A32DC
- thumb_func_end sub_80A3168
-
- thumb_func_start sub_80A31EC
-sub_80A31EC: @ 80A31EC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- mov r9, r0
- ldr r4, _080A32C8 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _080A32CC @ =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r2, r0, 0
- lsls r2, 24
- subs r4, r5
- lsls r4, 16
- lsrs r2, 24
- mov r1, r8
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- lsrs r3, r4, 16
- mov r10, r3
- asrs r4, 16
- ldr r6, _080A32D0 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- muls r0, r4
- movs r1, 0x64
- str r2, [sp]
- bl __divsi3
- adds r5, r0
- mov r3, r9
- strh r5, [r3, 0x20]
- ldr r2, [sp]
- lsls r0, r2, 16
- asrs r0, 16
- movs r3, 0
- ldrsh r1, [r6, r3]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- add r8, r0
- mov r1, r8
- mov r0, r9
- strh r1, [r0, 0x22]
- ldrh r0, [r6, 0x2]
- mov r3, r9
- strh r0, [r3, 0x24]
- ldrh r0, [r6, 0x4]
- strh r0, [r3, 0x26]
- ldrb r0, [r6, 0x6]
- adds r0, 0x1E
- mov r1, r9
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0x8]
- mov r0, r9
- bl StartSpriteAnim
- ldrh r0, [r6, 0xA]
- mov r1, r9
- strh r0, [r1, 0x32]
- ldr r0, _080A32D4 @ =sub_80A32DC
- str r0, [r1, 0x1C]
- ldr r1, _080A32D8 @ =gUnknown_203999C
- mov r3, r9
- ldrh r0, [r3, 0x20]
- strh r0, [r1]
- ldrh r0, [r3, 0x22]
- strh r0, [r1, 0x2]
- mov r0, r10
- strh r0, [r1, 0x4]
- ldr r2, [sp]
- strh r2, [r1, 0x6]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A32C8: .4byte gBattleAnimAttacker
-_080A32CC: .4byte gBattleAnimTarget
-_080A32D0: .4byte gBattleAnimArgs
-_080A32D4: .4byte sub_80A32DC
-_080A32D8: .4byte gUnknown_203999C
- thumb_func_end sub_80A31EC
-
- thumb_func_start sub_80A32DC
-sub_80A32DC: @ 80A32DC
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- adds r1, 0x1
- strh r1, [r3, 0x2E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080A331C
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- movs r2, 0x3E
- adds r2, r3
- mov r12, r2
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080A331C:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r1, r0
- ble _080A332E
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080A332E:
- pop {r0}
- bx r0
- thumb_func_end sub_80A32DC
-
- thumb_func_start sub_80A3334
-sub_80A3334: @ 80A3334
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A3374
- ldr r5, _080A33B0 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, _080A33B4 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x34]
-_080A3374:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
- ldrh r1, [r6, 0x30]
- muls r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x2E
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0xFF
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080A33AA
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080A33AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A33B0: .4byte gBattleAnimAttacker
-_080A33B4: .4byte gBattleAnimArgs
- thumb_func_end sub_80A3334
-
- thumb_func_start sub_80A33B8
-sub_80A33B8: @ 80A33B8
- push {r4,r5,lr}
- movs r2, 0x20
- ldrsh r4, [r0, r2]
- lsls r4, 8
- movs r3, 0x22
- ldrsh r2, [r0, r3]
- orrs r4, r2
- movs r5, 0x3A
- ldrsh r2, [r0, r5]
- lsls r2, 8
- movs r5, 0x3C
- ldrsh r3, [r0, r5]
- orrs r2, r3
- lsls r1, 8
- strh r4, [r0, 0x38]
- strh r2, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A33B8
-
- thumb_func_start sub_80A33E0
-sub_80A33E0: @ 80A33E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- ldrh r0, [r0, 0x38]
- lsrs r1, r0, 8
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- ldrh r0, [r1, 0x3A]
- lsrs r2, r0, 8
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r1, [r1, 0x3C]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0xFF
- ands r3, r1
- cmp r2, 0
- bne _080A341A
- movs r2, 0x20
- negs r2, r2
- b _080A3422
-_080A341A:
- cmp r2, 0xFF
- bne _080A3422
- movs r2, 0x88
- lsls r2, 1
-_080A3422:
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- mov r1, r10
- subs r0, r2, r1
- lsls r5, r3, 16
- asrs r5, 16
- muls r0, r5
- lsls r1, r6, 16
- asrs r7, r1, 16
- adds r1, r7, 0
- bl __divsi3
- adds r6, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- muls r0, r5
- adds r1, r7, 0
- bl __divsi3
- add r6, r10
- mov r1, r8
- strh r6, [r1, 0x20]
- add r0, r9
- strh r0, [r1, 0x22]
- adds r5, 0x1
- lsls r5, 16
- lsrs r3, r5, 16
- asrs r5, 16
- cmp r5, r7
- beq _080A3474
- lsls r1, r7, 8
- lsls r0, r3, 16
- asrs r0, 16
- orrs r0, r1
- mov r1, r8
- strh r0, [r1, 0x3C]
- movs r0, 0
- b _080A3476
-_080A3474:
- movs r0, 0x1
-_080A3476:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A33E0
-
- thumb_func_start sub_80A3484
-sub_80A3484: @ 80A3484
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080A3498
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080A3498:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _080A34AC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A34AC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3484
-
- thumb_func_start sub_80A34B4
-sub_80A34B4: @ 80A34B4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080A34DE
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080A34DE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80A33E0
- lsls r0, 24
- cmp r0, 0
- beq _080A350E
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080A3514 @ =sub_80A3484
- str r0, [r4, 0x1C]
-_080A350E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3514: .4byte sub_80A3484
- thumb_func_end sub_80A34B4
-
- thumb_func_start sub_80A3518
-sub_80A3518: @ 80A3518
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimAttacker
- ldr r4, _080A3560 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A3564 @ =gBattleAnimAttacker
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080A3568
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x1
- b _080A357A
- .align 2, 0
-_080A3560: .4byte gBattleAnimTarget
-_080A3564: .4byte gBattleAnimAttacker
-_080A3568:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x3
-_080A357A:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A358C @ =sub_80A34B4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A358C: .4byte sub_80A34B4
- thumb_func_end sub_80A3518
-
- thumb_func_start sub_80A3590
-sub_80A3590: @ 80A3590
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080A35BA
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080A35BA:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80A33E0
- lsls r0, 24
- cmp r0, 0
- beq _080A35EC
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A35EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3590
-
- thumb_func_start sub_80A35F4
-sub_80A35F4: @ 80A35F4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080A3630 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A3638
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80A33B8
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A3634 @ =sub_80A34B4
- b _080A3662
- .align 2, 0
-_080A3630: .4byte gBattleAnimTarget
-_080A3634: .4byte sub_80A34B4
-_080A3638:
- movs r0, 0xFF
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A3650
- movs r0, 0
- strh r0, [r5, 0x3A]
-_080A3650:
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80A33B8
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A366C @ =sub_80A3590
-_080A3662:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A366C: .4byte sub_80A3590
- thumb_func_end sub_80A35F4
-
- thumb_func_start sub_80A3670
-sub_80A3670: @ 80A3670
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A368A
- adds r0, r4, 0
- movs r1, 0
- bl InitSpritePosToAnimTarget
- ldr r0, _080A36B0 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x30]
-_080A368A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- muls r0, r1
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A36AA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A36AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A36B0: .4byte gBattleAnimArgs
- thumb_func_end sub_80A3670
-
- thumb_func_start sub_80A36B4
-sub_80A36B4: @ 80A36B4
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimTarget
- ldr r4, _080A36FC @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A3700 @ =gBattleAnimTarget
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080A3704
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x1
- b _080A3716
- .align 2, 0
-_080A36FC: .4byte gBattleAnimAttacker
-_080A3700: .4byte gBattleAnimTarget
-_080A3704:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80A33B8
- movs r0, 0x3
-_080A3716:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080A3728 @ =sub_80A372C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3728: .4byte sub_80A372C
- thumb_func_end sub_80A36B4
-
- thumb_func_start sub_80A372C
-sub_80A372C: @ 80A372C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080A3756
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080A3756:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bne _080A378A
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_080A378A:
- adds r0, r4, 0
- bl sub_80A33E0
- lsls r0, 24
- cmp r0, 0
- beq _080A37B2
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080A37B8 @ =sub_80A3484
- str r0, [r4, 0x1C]
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_080A37B2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A37B8: .4byte sub_80A3484
- thumb_func_end sub_80A372C
-
- thumb_func_start sub_80A37BC
-sub_80A37BC: @ 80A37BC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A3850
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A37E4
- ldr r0, _080A37E0 @ =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- strh r1, [r4, 0x30]
- movs r1, 0x78
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080A3806
- .align 2, 0
-_080A37E0: .4byte gBattleAnimArgs
-_080A37E4:
- ldr r0, _080A3840 @ =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r3, [r0, r1]
- adds r1, r3, 0
- subs r1, 0x20
- adds r2, r1, 0
- adds r5, r0, 0
- cmp r1, 0
- bge _080A37FA
- adds r2, r3, 0
- adds r2, 0xDF
-_080A37FA:
- asrs r0, r2, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- movs r0, 0x46
- strh r0, [r4, 0x20]
-_080A3806:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x32]
- movs r0, 0x14
- strh r0, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- ldr r0, _080A3844 @ =sub_80A3858
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080A3848
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080A384E
- .align 2, 0
-_080A3840: .4byte gBattleAnimArgs
-_080A3844: .4byte sub_80A3858
-_080A3848:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080A384E:
- strb r0, [r1]
-_080A3850:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A37BC
-
- thumb_func_start sub_80A3858
-sub_80A3858: @ 80A3858
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A386A
- cmp r0, 0x1
- beq _080A389A
- b _080A38BA
-_080A386A:
- ldrh r5, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x4E
- ble _080A3882
- movs r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080A38BA
-_080A3882:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- adds r0, r5, r0
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x36]
- adds r1, 0x3
- strh r1, [r4, 0x36]
- strh r0, [r4, 0x22]
- b _080A38BA
-_080A389A:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A38BA
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A38BA
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r0, _080A38C0 @ =sub_80A38C4
- str r0, [r4, 0x1C]
-_080A38BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A38C0: .4byte sub_80A38C4
- thumb_func_end sub_80A3858
-
- thumb_func_start sub_80A38C4
-sub_80A38C4: @ 80A38C4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A3908 @ =gUnknown_83E2F78
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r3, r0, r1
- adds r0, r5, 0x1
- adds r0, r3, r0
- ldrh r2, [r4, 0x32]
- movs r6, 0x32
- ldrsh r1, [r4, r6]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080A3910
- adds r0, r5, 0x2
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x7F
- bne _080A38FC
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080A390C @ =sub_80A397C
- str r0, [r4, 0x1C]
-_080A38FC:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A3976
- .align 2, 0
-_080A3908: .4byte gUnknown_83E2F78
-_080A390C: .4byte sub_80A397C
-_080A3910:
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r1, r0, r5
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A395E
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080A3956
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080A395C
-_080A3956:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080A395C:
- strb r0, [r1]
-_080A395E:
- movs r6, 0x30
- ldrsh r0, [r4, r6]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
-_080A3976:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A38C4
-
- thumb_func_start sub_80A397C
-sub_80A397C: @ 80A397C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080A398E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A398E:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A397C
-
- thumb_func_start sub_80A39C0
-sub_80A39C0: @ 80A39C0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A3B14 @ =gTasks
- adds r5, r0, r1
- ldr r4, _080A3B18 @ =gBattleAnimTarget
- ldrb r0, [r4]
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoordAttr
- strh r0, [r5, 0x1C]
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoordAttr
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0x1
- bne _080A3A28
- movs r1, 0x1
-_080A3A28:
- strh r1, [r5, 0x12]
- movs r3, 0x12
- ldrsh r0, [r5, r3]
- lsls r0, 6
- movs r1, 0x38
- subs r1, r0
- strh r1, [r5, 0x1A]
- ldrh r0, [r5, 0x16]
- subs r0, r1
- ldrh r1, [r5, 0x14]
- adds r0, r1
- strh r0, [r5, 0x18]
- ldr r0, _080A3B1C @ =gUnknown_83E2FF0
- movs r2, 0x18
- ldrsh r1, [r5, r2]
- movs r3, 0x1A
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- cmp r0, 0x40
- bne _080A3A60
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A3A60:
- ldr r4, _080A3B20 @ =gSprites
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x18]
- strh r1, [r0, 0x30]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r5, r3]
- muls r1, r0
- ldrh r0, [r5, 0x14]
- subs r0, r1
- strh r0, [r2, 0x32]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x1A]
- strh r1, [r0, 0x34]
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r2, [r5, r3]
- muls r0, r2
- ldrh r2, [r5, 0x16]
- adds r0, r2
- strh r0, [r1, 0x36]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80A3F04
- movs r1, 0xC
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x38]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl InitAnimArcTranslation
- ldr r0, _080A3B24 @ =sub_80A3B28
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3B14: .4byte gTasks
-_080A3B18: .4byte gBattleAnimTarget
-_080A3B1C: .4byte gUnknown_83E2FF0
-_080A3B20: .4byte gSprites
-_080A3B24: .4byte sub_80A3B28
- thumb_func_end sub_80A39C0
-
- thumb_func_start sub_80A3B28
-sub_80A3B28: @ 80A3B28
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A3B6C @ =gTasks
- adds r6, r0, r1
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A3B70 @ =gSprites
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- cmp r5, 0x7
- bne _080A3B50
- b _080A3D80
-_080A3B50:
- cmp r5, 0x7
- bgt _080A3B9E
- cmp r5, 0x3
- bne _080A3B5A
- b _080A3C72
-_080A3B5A:
- cmp r5, 0x3
- bgt _080A3B74
- cmp r5, 0x1
- beq _080A3C04
- cmp r5, 0x1
- bgt _080A3C54
- cmp r5, 0
- beq _080A3BE6
- b _080A3EFC
- .align 2, 0
-_080A3B6C: .4byte gTasks
-_080A3B70: .4byte gSprites
-_080A3B74:
- cmp r5, 0x5
- bne _080A3B7A
- b _080A3CE8
-_080A3B7A:
- cmp r5, 0x5
- ble _080A3B80
- b _080A3D62
-_080A3B80:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- bne _080A3B96
- b _080A3EFC
-_080A3B96:
- movs r0, 0x5
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3B9E:
- cmp r5, 0xB
- bne _080A3BA4
- b _080A3E64
-_080A3BA4:
- cmp r5, 0xB
- bgt _080A3BD2
- cmp r5, 0x9
- bne _080A3BAE
- b _080A3DD2
-_080A3BAE:
- cmp r5, 0x9
- ble _080A3BB4
- b _080A3E48
-_080A3BB4:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- bne _080A3BCA
- b _080A3EFC
-_080A3BCA:
- movs r0, 0x9
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3BD2:
- cmp r5, 0xD
- bne _080A3BD8
- b _080A3ED6
-_080A3BD8:
- cmp r5, 0xD
- bge _080A3BDE
- b _080A3EB6
-_080A3BDE:
- cmp r5, 0xFF
- bne _080A3BE4
- b _080A3EE6
-_080A3BE4:
- b _080A3EFC
-_080A3BE6:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- bne _080A3BFC
- b _080A3EFC
-_080A3BFC:
- movs r0, 0x1
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3C04:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- ldrh r0, [r6, 0x10]
- adds r0, 0x2
- strh r0, [r6, 0x10]
- strh r5, [r6, 0xE]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3C54:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- bne _080A3C6A
- b _080A3EFC
-_080A3C6A:
- movs r0, 0x3
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3C72:
- 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, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r1, r0
- ldrh r0, [r6, 0x16]
- subs r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3CE8:
- ldrh r1, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r1, r3
- 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, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x14]
- adds r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r2, 0x1E
- ldrsh r0, [r6, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x16]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x3
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3D62:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- bne _080A3D78
- b _080A3EFC
-_080A3D78:
- movs r0, 0x7
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3D80:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- adds r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x4
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3DD2:
- 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, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r0, r1
- ldrh r3, [r6, 0x16]
- adds r0, r3
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- movs r0, 0x5
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3E48:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- beq _080A3EFC
- movs r0, 0xB
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080A3EFA
-_080A3E64:
- ldrh r2, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r2, r0
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x18]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x1A]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A3F04
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x6
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl InitAnimArcTranslation
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3EB6:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80A3F24
- adds r0, r4, 0
- bl TranslateAnimHorizontalArc
- lsls r0, 24
- cmp r0, 0
- beq _080A3EFC
- adds r0, r4, 0
- bl DestroySprite
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080A3EFA
-_080A3ED6:
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A3EFC
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080A3EFC
-_080A3EE6:
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080A3EFC
- movs r0, 0
- strh r0, [r6, 0xA]
- ldrh r0, [r6, 0x26]
-_080A3EFA:
- strh r0, [r6, 0x8]
-_080A3EFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3B28
-
- thumb_func_start sub_80A3F04
-sub_80A3F04: @ 80A3F04
- push {lr}
- movs r2, 0x8
- movs r3, 0x36
- ldrsh r1, [r0, r3]
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bge _080A3F1A
- negs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
-_080A3F1A:
- lsls r0, r2, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80A3F04
-
- thumb_func_start sub_80A3F24
-sub_80A3F24: @ 80A3F24
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080A3FBA
- movs r0, 0
- strh r0, [r6, 0x24]
- ldr r0, _080A3FC4 @ =gSprites
- mov r8, r0
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- ldrh r2, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r0
- ldr r0, _080A3FC8 @ =gUnknown_83E2FF0
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r3, [r6, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080A3FBA
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r0, r8
- adds r4, r5, r0
- strh r7, [r4, 0x3A]
- movs r0, 0xC
- strh r0, [r4, 0x3C]
- ldr r0, _080A3FCC @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldrh r2, [r6, 0x22]
- movs r0, 0x1
- ands r0, r2
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r6, 0x10]
- adds r4, 0x43
- strb r0, [r4]
- mov r0, r8
- adds r0, 0x1C
- adds r5, r0
- ldr r0, _080A3FD0 @ =sub_80A3FD4
- str r0, [r5]
-_080A3FBA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3FC4: .4byte gSprites
-_080A3FC8: .4byte gUnknown_83E2FF0
-_080A3FCC: .4byte gTasks
-_080A3FD0: .4byte sub_80A3FD4
- thumb_func_end sub_80A3F24
-
- thumb_func_start sub_80A3FD4
-sub_80A3FD4: @ 80A3FD4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4036
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A4036
- ldr r3, _080A403C @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080A4036:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A403C: .4byte gTasks
- thumb_func_end sub_80A3FD4
-
- thumb_func_start sub_80A4040
-sub_80A4040: @ 80A4040
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080A4054 @ =gBattleAnimArgs
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A405C
- ldr r0, _080A4058 @ =gBattleAnimAttacker
- b _080A405E
- .align 2, 0
-_080A4054: .4byte gBattleAnimArgs
-_080A4058: .4byte gBattleAnimAttacker
-_080A405C:
- ldr r0, _080A407C @ =gBattleAnimTarget
-_080A405E:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4088
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r1, _080A4080 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080A4084 @ =0x0000fff0
- b _080A4098
- .align 2, 0
-_080A407C: .4byte gBattleAnimTarget
-_080A4080: .4byte gBattleAnimArgs
-_080A4084: .4byte 0x0000fff0
-_080A4088:
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r1, _080A40BC @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r4, 0x32]
- movs r0, 0x80
- lsls r0, 1
-_080A4098:
- strh r0, [r4, 0x20]
- adds r7, r1, 0
- adds r5, r7, 0
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x34]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080A40CE
- cmp r0, 0x1
- bgt _080A40C0
- cmp r0, 0
- beq _080A40CA
- b _080A4138
- .align 2, 0
-_080A40BC: .4byte gBattleAnimArgs
-_080A40C0:
- cmp r0, 0x2
- beq _080A40D4
- cmp r0, 0x3
- beq _080A4100
- b _080A4138
-_080A40CA:
- ldrh r0, [r5]
- b _080A40E4
-_080A40CE:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- b _080A411A
-_080A40D4:
- adds r0, r6, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5]
- adds r0, r5
-_080A40E4:
- strh r0, [r4, 0x22]
- adds r0, r6, 0
- bl GetBattlerSpriteBGPriority
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080A4138
-_080A4100:
- ldr r0, _080A4144 @ =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7]
- adds r0, r7
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
-_080A411A:
- adds r0, r6, 0
- bl GetBattlerSpriteBGPriority
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_080A4138:
- ldr r0, _080A4148 @ =sub_80A414C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4144: .4byte gBattleAnimTarget
-_080A4148: .4byte sub_80A414C
- thumb_func_end sub_80A4040
-
- thumb_func_start sub_80A414C
-sub_80A414C: @ 80A414C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r3, [r4, r0]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- ldr r1, _080A41A0 @ =gSineTable
- movs r5, 0x2E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r2
- asrs r0, 8
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- muls r0, r3
- strh r0, [r4, 0x24]
- movs r5, 0x34
- ldrsh r0, [r4, r5]
- muls r0, r3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A41A4
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r5, 0x20
- ldrsh r1, [r4, r5]
- adds r0, r1
- cmp r0, 0xF7
- ble _080A41BC
- b _080A41B6
- .align 2, 0
-_080A41A0: .4byte gSineTable
-_080A41A4:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bgt _080A41BC
-_080A41B6:
- adds r0, r4, 0
- bl DestroySpriteAndMatrix
-_080A41BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A414C
-
- thumb_func_start sub_80A41C4
-sub_80A41C4: @ 80A41C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A41E4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080A41E8
- cmp r0, 0x1
- beq _080A421C
- b _080A4276
- .align 2, 0
-_080A41E4: .4byte gTasks
-_080A41E8:
- ldr r0, _080A4214 @ =0x0000274f
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2, 0
- adds r0, r4
- strh r0, [r5, 0x18]
- ldr r0, _080A4218 @ =0x000027b0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080A4276
- .align 2, 0
-_080A4214: .4byte 0x0000274f
-_080A4218: .4byte 0x000027b0
-_080A421C:
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x1A]
- lsls r0, 16
- cmp r0, 0
- blt _080A4276
- strh r7, [r5, 0x1A]
- ldrh r0, [r5, 0x18]
- ldrb r2, [r5, 0x1C]
- ldr r4, _080A4290 @ =gUnknown_83E30F0
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x20]
- ldrb r2, [r5, 0x1C]
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- bne _080A4276
- strh r7, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x1
- strh r0, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bne _080A4276
- strh r7, [r5, 0x1E]
-_080A4276:
- ldr r0, _080A4294 @ =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A428A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A428A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4290: .4byte gUnknown_83E30F0
-_080A4294: .4byte gBattleAnimArgs
- thumb_func_end sub_80A41C4
-
- thumb_func_start sub_80A4298
-sub_80A4298: @ 80A4298
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _080A42B0 @ =gBattleAnimArgs
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A42B4
- adds r0, r6, 0
- bl DestroyAnimSprite
- b _080A438E
- .align 2, 0
-_080A42B0: .4byte gBattleAnimArgs
-_080A42B4:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080A42C4
- ldr r4, _080A42C0 @ =gBattleAnimAttacker
- b _080A42C6
- .align 2, 0
-_080A42C0: .4byte gBattleAnimAttacker
-_080A42C4:
- ldr r4, _080A4300 @ =gBattleAnimTarget
-_080A42C6:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080A4304 @ =gBattleAnimArgs
- ldrh r1, [r0, 0x8]
- strh r1, [r6, 0x2E]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r7, r0, 0
- cmp r1, 0
- bne _080A4308
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x20]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x38]
- strh r2, [r6, 0x3A]
- b _080A4318
- .align 2, 0
-_080A4300: .4byte gBattleAnimTarget
-_080A4304: .4byte gBattleAnimArgs
-_080A4308:
- strh r5, [r6, 0x20]
- strh r2, [r6, 0x22]
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x38]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x3A]
-_080A4318:
- ldrh r4, [r6, 0x20]
- lsls r0, r4, 4
- strh r0, [r6, 0x30]
- ldrh r5, [r6, 0x22]
- lsls r0, r5, 4
- strh r0, [r6, 0x32]
- movs r1, 0x38
- ldrsh r0, [r6, r1]
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x34]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x22
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x38]
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r6, 0x3A]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2Neg
- lsls r0, 16
- lsrs r4, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A437A
- ldr r1, _080A4398 @ =0xffff8000
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080A437A:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r3, 0
- bl TrySetSpriteRotScale
- ldr r0, _080A439C @ =sub_80A43A0
- str r0, [r6, 0x1C]
-_080A438E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4398: .4byte 0xffff8000
-_080A439C: .4byte sub_80A43A0
- thumb_func_end sub_80A4298
-
- thumb_func_start sub_80A43A0
-sub_80A43A0: @ 80A43A0
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080A43D0
- ldrh r0, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r0, r4
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r4, [r2, 0x32]
- adds r1, r4
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x2E]
- b _080A43D6
-_080A43D0:
- adds r0, r2, 0
- bl DestroySpriteAndMatrix
-_080A43D6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A43A0
-
- thumb_func_start sub_80A43DC
-sub_80A43DC: @ 80A43DC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A43F2
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A43F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80A43DC
-
- thumb_func_start sub_80A43F8
-sub_80A43F8: @ 80A43F8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A4418 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4420
- ldr r2, _080A441C @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- b _080A442C
- .align 2, 0
-_080A4418: .4byte gBattleAnimAttacker
-_080A441C: .4byte gBattleAnimArgs
-_080A4420:
- ldr r0, _080A4444 @ =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080A442C:
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080A4448 @ =RunStoredCallbackWhenAnimEnds
- str r0, [r4, 0x1C]
- ldr r1, _080A444C @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4444: .4byte gBattleAnimArgs
-_080A4448: .4byte RunStoredCallbackWhenAnimEnds
-_080A444C: .4byte DestroyAnimSprite
- thumb_func_end sub_80A43F8
-
- thumb_func_start sub_80A4450
-sub_80A4450: @ 80A4450
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080A4488 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A446A
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080A446A:
- ldr r0, _080A448C @ =sub_80A43DC
- str r0, [r5, 0x1C]
- ldr r4, _080A4490 @ =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl SetAnimSpriteInitialXOffset
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4488: .4byte gBattleAnimAttacker
-_080A448C: .4byte sub_80A43DC
-_080A4490: .4byte gBattleAnimArgs
- thumb_func_end sub_80A4450
-
- thumb_func_start sub_80A4494
-sub_80A4494: @ 80A4494
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080A44D4 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, _080A44D8 @ =DestroySpriteAndMatrix
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A44DC @ =TranslateSpriteLinearAndFlicker
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A44D4: .4byte gBattleAnimArgs
-_080A44D8: .4byte DestroySpriteAndMatrix
-_080A44DC: .4byte TranslateSpriteLinearAndFlicker
- thumb_func_end sub_80A4494
-
- thumb_func_start sub_80A44E0
-sub_80A44E0: @ 80A44E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080A4530 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4514
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080A4514:
- ldr r0, _080A4534 @ =sub_80A46CC
- str r0, [r5, 0x1C]
- ldr r0, _080A4538 @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080A453C
- ldrh r0, [r3]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _080A4550
- .align 2, 0
-_080A4530: .4byte gBattleAnimTarget
-_080A4534: .4byte sub_80A46CC
-_080A4538: .4byte gBattleAnimArgs
-_080A453C:
- ldrh r0, [r5, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r5, 0x20]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080A4550:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldr r1, _080A4584 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r5, 0x30]
- adds r1, r0, r2
- strh r1, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A457E
- negs r0, r1
- strh r0, [r5, 0x30]
-_080A457E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4584: .4byte 0xfffffc00
- thumb_func_end sub_80A44E0
-
- thumb_func_start sub_80A4588
-sub_80A4588: @ 80A4588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, _080A45A4 @ =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080A45A8
- cmp r0, 0x1
- ble _080A4624
- cmp r0, 0x2
- beq _080A45C8
- b _080A4624
- .align 2, 0
-_080A45A4: .4byte gBattleAnimArgs
-_080A45A8:
- ldr r5, _080A45C4 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- eors r4, r0
- adds r0, r4, 0
- b _080A4634
- .align 2, 0
-_080A45C4: .4byte gBattleAnimTarget
-_080A45C8:
- ldr r5, _080A4620 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- movs r2, 0x2
- mov r8, r2
- mov r1, r8
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A463E
- ldrb r0, [r5]
- mov r2, r8
- eors r0, r2
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- lsrs r7, r0, 1
- ldrb r0, [r5]
- mov r1, r8
- eors r0, r1
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- lsrs r4, r0, 1
- b _080A463E
- .align 2, 0
-_080A4620: .4byte gBattleAnimTarget
-_080A4624:
- ldr r4, _080A4670 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
-_080A4634:
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r4, r0, 24
-_080A463E:
- strh r7, [r6, 0x20]
- strh r4, [r6, 0x22]
- ldr r0, _080A4670 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4656
- ldrh r0, [r6, 0x22]
- adds r0, 0x8
- strh r0, [r6, 0x22]
-_080A4656:
- ldr r0, _080A4674 @ =sub_80A46CC
- str r0, [r6, 0x1C]
- ldr r0, _080A4678 @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080A467C
- ldrh r0, [r3]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- b _080A4690
- .align 2, 0
-_080A4670: .4byte gBattleAnimTarget
-_080A4674: .4byte sub_80A46CC
-_080A4678: .4byte gBattleAnimArgs
-_080A467C:
- ldrh r0, [r6, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r6, 0x20]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080A4690:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r6, 0x22]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldr r1, _080A46C8 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r6, 0x30]
- adds r1, r0, r2
- strh r1, [r6, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r6, 0x32]
- adds r0, r2
- strh r0, [r6, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A46BE
- negs r0, r1
- strh r0, [r6, 0x30]
-_080A46BE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A46C8: .4byte 0xfffffc00
- thumb_func_end sub_80A4588
-
- thumb_func_start sub_80A46CC
-sub_80A46CC: @ 80A46CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A46EE
- adds r0, r1, 0
- adds r0, 0x18
- b _080A46F2
-_080A46EE:
- adds r0, r1, 0
- subs r0, 0x18
-_080A46F2:
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- subs r0, 0x18
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080A4728
- ldr r1, _080A4730 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _080A4734 @ =WaitAnimForDuration
- str r0, [r4, 0x1C]
-_080A4728:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4730: .4byte DestroyAnimSprite
-_080A4734: .4byte WaitAnimForDuration
- thumb_func_end sub_80A46CC
-
- thumb_func_start sub_80A4738
-sub_80A4738: @ 80A4738
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- ble _080A47DC
- ldrh r1, [r5, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A4794
- adds r3, r5, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r3]
- ldr r4, _080A4790 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r3, [r0]
- adds r1, r2, 0
- ands r1, r3
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- b _080A47CA
- .align 2, 0
-_080A4790: .4byte gSprites
-_080A4794:
- adds r1, r5, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r3, _080A47D8 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
-_080A47CA:
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- b _080A47E0
- .align 2, 0
-_080A47D8: .4byte gSprites
-_080A47DC:
- adds r0, r1, 0x1
- strh r0, [r5, 0x32]
-_080A47E0:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xA
- bne _080A4810
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080A4818 @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyAnimSprite
-_080A4810:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4818: .4byte gSprites
- thumb_func_end sub_80A4738
-
- thumb_func_start sub_80A481C
-sub_80A481C: @ 80A481C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080A483C @ =gBattleAnimArgs
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080A4840 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4844
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080A484A
- .align 2, 0
-_080A483C: .4byte gBattleAnimArgs
-_080A4840: .4byte gBattleAnimAttacker
-_080A4844:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080A484A:
- strh r0, [r5, 0x20]
- ldr r4, _080A4878 @ =gBattleAnimArgs
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, _080A487C @ =sub_80A4880
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4878: .4byte gBattleAnimArgs
-_080A487C: .4byte sub_80A4880
- thumb_func_end sub_80A481C
-
- thumb_func_start sub_80A4880
-sub_80A4880: @ 80A4880
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x64
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080A48AC
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0
- b _080A48B2
-_080A48AC:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0xE
-_080A48B2:
- strb r0, [r1]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x82
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080A48E8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A48E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4880
-
- thumb_func_start sub_80A48F0
-sub_80A48F0: @ 80A48F0
- push {r4-r6,lr}
- adds r5, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4906
- ldr r1, _080A4964 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- adds r0, 0x8
- strh r0, [r1, 0x2]
-_080A4906:
- ldr r6, _080A4968 @ =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- ldr r4, _080A4964 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A4944
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A496C
-_080A4944:
- ldrb r0, [r6]
- bl GetBattlerSpriteBGPriority
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- b _080A4984
- .align 2, 0
-_080A4964: .4byte gBattleAnimArgs
-_080A4968: .4byte gBattleAnimAttacker
-_080A496C:
- ldrb r0, [r6]
- bl GetBattlerSpriteBGPriority
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080A4984:
- ldr r0, _080A49C8 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080A49CC @ =0x00002828
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r5, 0x32]
- movs r4, 0x10
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r0, [r5, 0x3C]
- lsls r1, r0, 8
- subs r4, r0
- orrs r1, r4
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _080A49D0 @ =sub_80A49D4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A49C8: .4byte gBattleAnimArgs
-_080A49CC: .4byte 0x00002828
-_080A49D0: .4byte sub_80A49D4
- thumb_func_end sub_80A48F0
-
- thumb_func_start sub_80A49D4
-sub_80A49D4: @ 80A49D4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x60
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4A32
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, _080A4A7C @ =gPlttBufferFaded
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r5, [r0]
- movs r2, 0
- adds r6, r1, 0
- adds r3, r6, 0
-_080A4A0C:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- adds r2, 0x1
- adds r0, r2
- lsls r1, r0, 1
- adds r1, r3
- adds r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- cmp r2, 0x5
- ble _080A4A0C
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x7
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_080A4A32:
- ldrh r2, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _080A4A6C
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _080A4A80
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4A6C
- movs r0, 0
- strh r0, [r4, 0x3A]
- subs r2, 0x1
- strh r2, [r4, 0x3C]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
-_080A4A6C:
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A4A80
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080A4AC2
- .align 2, 0
-_080A4A7C: .4byte gPlttBufferFaded
-_080A4A80:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A4AC2
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r2, 0x1
- strh r2, [r4, 0x3C]
- 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, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A4AC2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A4AC8 @ =DestroyAnimSpriteAndDisableBlend
- str r0, [r4, 0x1C]
-_080A4AC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4AC8: .4byte DestroyAnimSpriteAndDisableBlend
- thumb_func_end sub_80A49D4
-
- thumb_func_start sub_80A4ACC
-sub_80A4ACC: @ 80A4ACC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080A4B2C @ =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A4B30 @ =0x0000ffe8
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- strh r5, [r4, 0x3A]
- movs r0, 0x10
- strh r0, [r4, 0x3C]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _080A4B34 @ =sub_80A4B38
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B2C: .4byte gBattleAnimTarget
-_080A4B30: .4byte 0x0000ffe8
-_080A4B34: .4byte sub_80A4B38
- thumb_func_end sub_80A4ACC
-
- thumb_func_start sub_80A4B38
-sub_80A4B38: @ 80A4B38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080A4B46
- b _080A4C90
-_080A4B46:
- lsls r0, 2
- ldr r1, _080A4B50 @ =_080A4B54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A4B50: .4byte _080A4B54
- .align 2, 0
-_080A4B54:
- .4byte _080A4B68
- .4byte _080A4BCC
- .4byte _080A4BE8
- .4byte _080A4C66
- .4byte _080A4C7A
-_080A4B68:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080A4B76
- b _080A4C90
-_080A4B76:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A4B98
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080A4BA6
- adds r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080A4BA6
-_080A4B98:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A4BA6
- subs r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080A4BA6:
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A4C90
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A4C90
- strh r0, [r4, 0x30]
- b _080A4C72
-_080A4BCC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A4C90
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080A4C72
-_080A4BE8:
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x4
- bl sub_80A4C98
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080A4C0A
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080A4C0A:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080A4C90
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080A4C30
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A4C3E
- subs r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080A4C3E
-_080A4C30:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080A4C3E
- adds r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080A4C3E:
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080A4C90
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080A4C90
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- b _080A4C72
-_080A4C66:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080A4C72:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A4C90
-_080A4C7A:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A4C90:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4B38
-
- thumb_func_start sub_80A4C98
-sub_80A4C98: @ 80A4C98
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0xB
- bgt _080A4CAA
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080A4CAA:
- ldrh r5, [r4, 0x34]
- adds r0, r5, 0
- subs r0, 0x12
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- cmp r0, 0x17
- bhi _080A4CC0
- ldrh r0, [r4, 0x36]
- subs r0, 0x2
- strh r0, [r4, 0x36]
-_080A4CC0:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _080A4CCE
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080A4CCE:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0x9
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl __divsi3
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bge _080A4CF4
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080A4CF4:
- adds r0, r5, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _080A4D04
- movs r0, 0
- strh r0, [r4, 0x34]
-_080A4D04:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4C98
-
- thumb_func_start sub_80A4D0C
-sub_80A4D0C: @ 80A4D0C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A4D50 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A4D20
- adds r0, r4, 0
- bl SetSpriteCoordsToAnimAttackerCoords
-_080A4D20:
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl SetAnimSpriteInitialXOffset
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, _080A4D54 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A4D58 @ =TranslateSpriteLinearFixedPoint
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4D50: .4byte gBattleAnimArgs
-_080A4D54: .4byte DestroyAnimSprite
-_080A4D58: .4byte TranslateSpriteLinearFixedPoint
- thumb_func_end sub_80A4D0C
-
- thumb_func_start sub_80A4D5C
-sub_80A4D5C: @ 80A4D5C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A4D70 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A4D78
- ldr r0, _080A4D74 @ =gBattleAnimAttacker
- b _080A4D7A
- .align 2, 0
-_080A4D70: .4byte gBattleAnimArgs
-_080A4D74: .4byte gBattleAnimAttacker
-_080A4D78:
- ldr r0, _080A4DBC @ =gBattleAnimTarget
-_080A4D7A:
- ldrb r6, [r0]
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080A4DC4
- movs r1, 0x2
- adds r0, r6, 0
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A4DC4
- ldr r4, _080A4DC0 @ =gBattleAnimArgs
- ldrb r1, [r4, 0xC]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- adds r0, r6, 0
- bl SetAverageBattlerPositions
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r5, 0
- bl SetAnimSpriteInitialXOffset
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- b _080A4E14
- .align 2, 0
-_080A4DBC: .4byte gBattleAnimTarget
-_080A4DC0: .4byte gBattleAnimArgs
-_080A4DC4:
- ldr r4, _080A4DE4 @ =gBattleAnimArgs
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A4DE8
- adds r0, r6, 0
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- b _080A4DFA
- .align 2, 0
-_080A4DE4: .4byte gBattleAnimArgs
-_080A4DE8:
- adds r0, r6, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
-_080A4DFA:
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldr r0, _080A4E34 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl SetAnimSpriteInitialXOffset
-_080A4E14:
- ldr r1, _080A4E34 @ =gBattleAnimArgs
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- ldr r1, _080A4E38 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A4E3C @ =TranslateSpriteLinearFixedPoint
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4E34: .4byte gBattleAnimArgs
-_080A4E38: .4byte DestroyAnimSprite
-_080A4E3C: .4byte TranslateSpriteLinearFixedPoint
- thumb_func_end sub_80A4D5C
-
- thumb_func_start sub_80A4E40
-sub_80A4E40: @ 80A4E40
- push {r4,lr}
- adds r4, r0, 0
- bl SetSpriteCoordsToAnimAttackerCoords
- ldr r0, _080A4E6C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4E74
- ldr r0, _080A4E70 @ =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _080A4E8E
- .align 2, 0
-_080A4E6C: .4byte gBattleAnimAttacker
-_080A4E70: .4byte gBattleAnimArgs
-_080A4E74:
- ldr r2, _080A4E98 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080A4E8E:
- ldr r0, _080A4E9C @ =sub_80A4EA0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4E98: .4byte gBattleAnimArgs
-_080A4E9C: .4byte sub_80A4EA0
- thumb_func_end sub_80A4E40
-
- thumb_func_start sub_80A4EA0
-sub_80A4EA0: @ 80A4EA0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080A4ED8
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r0, 0x1E
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r4, 0x26]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 18
- asrs r0, 16
- movs r1, 0x3
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080A4ED8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A4EEC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A4EEC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4EA0
-
- thumb_func_start sub_80A4EF4
-sub_80A4EF4: @ 80A4EF4
- push {r4,lr}
- adds r4, r0, 0
- bl SetSpriteCoordsToAnimAttackerCoords
- ldr r0, _080A4F24 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4F2C
- ldr r1, _080A4F28 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- strh r0, [r4, 0x34]
- b _080A4F4A
- .align 2, 0
-_080A4F24: .4byte gBattleAnimAttacker
-_080A4F28: .4byte gBattleAnimArgs
-_080A4F2C:
- ldr r2, _080A4F54 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldr r0, _080A4F58 @ =0x0000ffff
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080A4F4A:
- ldr r0, _080A4F5C @ =sub_80A4F60
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4F54: .4byte gBattleAnimArgs
-_080A4F58: .4byte 0x0000ffff
-_080A4F5C: .4byte sub_80A4F60
- thumb_func_end sub_80A4EF4
-
- thumb_func_start sub_80A4F60
-sub_80A4F60: @ 80A4F60
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080A4FA4
- adds r0, r4, 0
- bl DestroySpriteAndMatrix
-_080A4FA4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4F60
-
- thumb_func_start sub_80A4FAC
-sub_80A4FAC: @ 80A4FAC
- push {lr}
- ldrh r1, [r0, 0x20]
- subs r1, 0x20
- strh r1, [r0, 0x20]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x22]
- movs r1, 0x14
- strh r1, [r0, 0x2E]
- ldr r1, _080A4FCC @ =WaitAnimForDuration
- str r1, [r0, 0x1C]
- ldr r1, _080A4FD0 @ =sub_80A4FD4
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A4FCC: .4byte WaitAnimForDuration
-_080A4FD0: .4byte sub_80A4FD4
- thumb_func_end sub_80A4FAC
-
- thumb_func_start sub_80A4FD4
-sub_80A4FD4: @ 80A4FD4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r6, [r5, 0x38]
- movs r1, 0x1
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080A4FEA
- cmp r0, 0x1
- beq _080A5004
- b _080A506A
-_080A4FEA:
- strh r1, [r5, 0x2E]
- ldr r0, _080A4FFC @ =WaitAnimForDuration
- str r0, [r5, 0x1C]
- ldr r1, _080A5000 @ =sub_80A4FD4
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _080A506A
- .align 2, 0
-_080A4FFC: .4byte WaitAnimForDuration
-_080A5000: .4byte sub_80A4FD4
-_080A5004:
- ldrh r3, [r5, 0x24]
- ldrh r0, [r5, 0x20]
- adds r3, r0
- movs r0, 0
- strh r3, [r5, 0x20]
- ldrh r4, [r5, 0x26]
- ldrh r1, [r5, 0x22]
- adds r4, r1
- strh r4, [r5, 0x22]
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r2, _080A5078 @ =gUnknown_83E3548
- lsls r0, r6, 16
- asrs r0, 24
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r3, r1
- strh r3, [r5, 0x32]
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r0
- strh r4, [r5, 0x36]
- ldr r0, _080A507C @ =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _080A5080 @ =sub_80A5084
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCB
- bl PlaySE12WithPanning
-_080A506A:
- ldrh r0, [r5, 0x38]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x38]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5078: .4byte gUnknown_83E3548
-_080A507C: .4byte StartAnimLinearTranslation
-_080A5080: .4byte sub_80A5084
- thumb_func_end sub_80A4FD4
-
- thumb_func_start sub_80A5084
-sub_80A5084: @ 80A5084
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _080A50AC
- movs r0, 0xA
- strh r0, [r2, 0x2E]
- ldr r0, _080A50A4 @ =WaitAnimForDuration
- str r0, [r2, 0x1C]
- ldr r1, _080A50A8 @ =sub_80A50B8
- adds r0, r2, 0
- bl StoreSpriteCallbackInData6
- b _080A50B0
- .align 2, 0
-_080A50A4: .4byte WaitAnimForDuration
-_080A50A8: .4byte sub_80A50B8
-_080A50AC:
- ldr r0, _080A50B4 @ =sub_80A4FD4
- str r0, [r2, 0x1C]
-_080A50B0:
- pop {r0}
- bx r0
- .align 2, 0
-_080A50B4: .4byte sub_80A4FD4
- thumb_func_end sub_80A5084
-
- thumb_func_start sub_80A50B8
-sub_80A50B8: @ 80A50B8
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x6]
- cmp r1, 0
- bne _080A50E0
- movs r0, 0x3
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldr r0, _080A50D8 @ =WaitAnimForDuration
- str r0, [r5, 0x1C]
- ldr r1, _080A50DC @ =sub_80A5174
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _080A5160
- .align 2, 0
-_080A50D8: .4byte WaitAnimForDuration
-_080A50DC: .4byte sub_80A5174
-_080A50E0:
- ldrh r0, [r5, 0x6]
- cmp r0, 0x2
- beq _080A5100
- cmp r0, 0x2
- bgt _080A50F0
- cmp r0, 0x1
- beq _080A50F6
- b _080A5114
-_080A50F0:
- cmp r0, 0x3
- beq _080A5108
- b _080A5114
-_080A50F6:
- ldr r6, _080A50FC @ =0x0000fff8
- adds r7, r6, 0
- b _080A5118
- .align 2, 0
-_080A50FC: .4byte 0x0000fff8
-_080A5100:
- ldr r7, _080A5104 @ =0x0000fff8
- b _080A5116
- .align 2, 0
-_080A5104: .4byte 0x0000fff8
-_080A5108:
- movs r7, 0x8
- ldr r6, _080A5110 @ =0x0000fff8
- b _080A5118
- .align 2, 0
-_080A5110: .4byte 0x0000fff8
-_080A5114:
- movs r7, 0x8
-_080A5116:
- movs r6, 0x8
-_080A5118:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080A5168 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080A516C @ =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _080A5170 @ =sub_80A5220
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080A5160:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5168: .4byte gBattleAnimTarget
-_080A516C: .4byte StartAnimLinearTranslation
-_080A5170: .4byte sub_80A5220
- thumb_func_end sub_80A50B8
-
- thumb_func_start sub_80A5174
-sub_80A5174: @ 80A5174
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A5194
- ldrh r0, [r4, 0x30]
- adds r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A51A4
- movs r0, 0x10
- b _080A51A2
-_080A5194:
- ldrh r0, [r4, 0x30]
- subs r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080A51A4
- movs r0, 0
-_080A51A2:
- strh r0, [r4, 0x30]
-_080A51A4:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8075BE8
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A5200 @ =0x00007fff
- bl BlendPalettes
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _080A520C
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- lsls r0, r1, 5
- ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210
- adds r0, r2
- lsls r1, 4
- ldr r3, _080A5208 @ =0x00000101
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xB9
- bl PlaySE12WithPanning
- b _080A5214
- .align 2, 0
-_080A5200: .4byte 0x00007fff
-_080A5204: .4byte gPlttBufferUnfaded + 0x210
-_080A5208: .4byte 0x00000101
-_080A520C:
- cmp r0, 0
- bne _080A5214
- ldr r0, _080A521C @ =sub_80A5220
- str r0, [r4, 0x1C]
-_080A5214:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A521C: .4byte sub_80A5220
- thumb_func_end sub_80A5174
-
- thumb_func_start sub_80A5220
-sub_80A5220: @ 80A5220
- push {lr}
- adds r2, r0, 0
- ldr r0, _080A523C @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A5240 @ =0x0000ffff
- cmp r1, r0
- bne _080A5238
- movs r0, 0
- strh r0, [r2, 0x30]
- strh r0, [r2, 0x2E]
- ldr r0, _080A5244 @ =sub_80A5248
- str r0, [r2, 0x1C]
-_080A5238:
- pop {r0}
- bx r0
- .align 2, 0
-_080A523C: .4byte gBattleAnimArgs
-_080A5240: .4byte 0x0000ffff
-_080A5244: .4byte sub_80A5248
- thumb_func_end sub_80A5220
-
- thumb_func_start sub_80A5248
-sub_80A5248: @ 80A5248
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080A527C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080A527C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _080A5290
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A5290:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5248
-
- thumb_func_start sub_80A5298
-sub_80A5298: @ 80A5298
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080A52B8 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A52BC
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- b _080A530E
- .align 2, 0
-_080A52B8: .4byte gBattleAnimArgs
-_080A52BC:
- cmp r0, 0x2
- bne _080A52D8
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x20
- b _080A530A
-_080A52D8:
- cmp r0, 0x3
- bne _080A52F4
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- b _080A530A
-_080A52F4:
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
-_080A530A:
- orrs r0, r1
- strb r0, [r3, 0x3]
-_080A530E:
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, _080A5334 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080A5338 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldr r1, _080A533C @ =sub_80A4FAC
- str r1, [r3, 0x1C]
- adds r0, r3, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5334: .4byte 0x000003ff
-_080A5338: .4byte 0xfffffc00
-_080A533C: .4byte sub_80A4FAC
- thumb_func_end sub_80A5298
-
- thumb_func_start sub_80A5340
-sub_80A5340: @ 80A5340
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldr r0, _080A5368 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080A537C
- cmp r0, 0x1
- bgt _080A536C
- cmp r0, 0
- beq _080A5372
- b _080A538C
- .align 2, 0
-_080A5368: .4byte gBattleAnimArgs
-_080A536C:
- cmp r0, 0x2
- beq _080A5384
- b _080A538C
-_080A5372:
- ldr r0, _080A5378 @ =sub_80A5398
- b _080A538E
- .align 2, 0
-_080A5378: .4byte sub_80A5398
-_080A537C:
- ldr r0, _080A5380 @ =sub_80A5474
- b _080A538E
- .align 2, 0
-_080A5380: .4byte sub_80A5474
-_080A5384:
- ldr r0, _080A5388 @ =sub_80A54C4
- b _080A538E
- .align 2, 0
-_080A5388: .4byte sub_80A54C4
-_080A538C:
- ldr r0, _080A5394 @ =sub_80A5584
-_080A538E:
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_080A5394: .4byte sub_80A5584
- thumb_func_end sub_80A5340
-
- thumb_func_start sub_80A5398
-sub_80A5398: @ 80A5398
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- strh r0, [r4, 0x2E]
- ldr r5, _080A53D8 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- beq _080A53B6
- movs r1, 0x2
-_080A53B6:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080A53DC @ =gBattlerSpriteIds
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080A53E0 @ =sub_80A53E8
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A53E4 @ =TranslateMonSpriteLinear
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A53D8: .4byte gBattleAnimAttacker
-_080A53DC: .4byte gBattlerSpriteIds
-_080A53E0: .4byte sub_80A53E8
-_080A53E4: .4byte TranslateMonSpriteLinear
- thumb_func_end sub_80A5398
-
- thumb_func_start sub_80A53E8
-sub_80A53E8: @ 80A53E8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _080A5424
- ldr r1, _080A5464 @ =gBattlerSpriteIds
- ldr r4, _080A5468 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldr r2, _080A546C @ =0xfffffd00
- adds r1, r2, 0
- cmp r0, 0
- beq _080A5420
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r0, 0
-_080A5420:
- strh r1, [r5, 0x36]
- strh r6, [r5, 0x38]
-_080A5424:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl SetBattlerSpriteYOffsetFromRotation
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A545E
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080A5470 @ =sub_80A5584
- str r0, [r5, 0x1C]
-_080A545E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5464: .4byte gBattlerSpriteIds
-_080A5468: .4byte gBattleAnimAttacker
-_080A546C: .4byte 0xfffffd00
-_080A5470: .4byte sub_80A5584
- thumb_func_end sub_80A53E8
-
- thumb_func_start sub_80A5474
-sub_80A5474: @ 80A5474
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- ldr r5, _080A54B4 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _080A5492
- movs r0, 0x3
- negs r0, r0
- adds r1, r0, 0
-_080A5492:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080A54B8 @ =gBattlerSpriteIds
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080A54BC @ =sub_80A5584
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A54C0 @ =TranslateMonSpriteLinear
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A54B4: .4byte gBattleAnimAttacker
-_080A54B8: .4byte gBattlerSpriteIds
-_080A54BC: .4byte sub_80A5584
-_080A54C0: .4byte TranslateMonSpriteLinear
- thumb_func_end sub_80A5474
-
- thumb_func_start sub_80A54C4
-sub_80A54C4: @ 80A54C4
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A54DE
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080A54E4 @ =sub_80A54E8
- str r0, [r1, 0x1C]
-_080A54DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080A54E4: .4byte sub_80A54E8
- thumb_func_end sub_80A54C4
-
- thumb_func_start sub_80A54E8
-sub_80A54E8: @ 80A54E8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A5538
- ldr r1, _080A5524 @ =gBattlerSpriteIds
- ldr r4, _080A5528 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A552C
- movs r0, 0xFC
- lsls r0, 8
- strh r0, [r5, 0x36]
- movs r0, 0xC0
- lsls r0, 4
- b _080A5536
- .align 2, 0
-_080A5524: .4byte gBattlerSpriteIds
-_080A5528: .4byte gBattleAnimAttacker
-_080A552C:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r5, 0x36]
- movs r0, 0xF4
- lsls r0, 8
-_080A5536:
- strh r0, [r5, 0x38]
-_080A5538:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl SetBattlerSpriteYOffsetFromRotation
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080A5578
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl ResetSpriteRotScale
- ldr r0, _080A5580 @ =sub_80A5584
- str r0, [r5, 0x1C]
-_080A5578:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5580: .4byte sub_80A5584
- thumb_func_end sub_80A54E8
-
- thumb_func_start sub_80A5584
-sub_80A5584: @ 80A5584
- push {lr}
- bl DestroyAnimSprite
- pop {r0}
- bx r0
- thumb_func_end sub_80A5584
-
- thumb_func_start sub_80A5590
-sub_80A5590: @ 80A5590
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _080A559C @ =sub_80A55A0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A559C: .4byte sub_80A55A0
- thumb_func_end sub_80A5590
-
- thumb_func_start sub_80A55A0
-sub_80A55A0: @ 80A55A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080A55FA
- cmp r5, 0x1
- bgt _080A55B6
- cmp r5, 0
- beq _080A55BC
- b _080A568E
-_080A55B6:
- cmp r5, 0x2
- beq _080A564C
- b _080A568E
-_080A55BC:
- strh r5, [r4, 0x30]
- ldr r1, _080A5640 @ =gBattlerSpriteIds
- ldr r2, _080A5644 @ =gBattleAnimAttacker
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r0, [r2]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldr r2, _080A5648 @ =0xfffffe00
- adds r1, r2, 0
- cmp r0, 0
- beq _080A55E4
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0, 0
-_080A55E4:
- strh r1, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080A55FA:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl SetBattlerSpriteYOffsetFromRotation
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A568E
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A568E
- .align 2, 0
-_080A5640: .4byte gBattlerSpriteIds
-_080A5644: .4byte gBattleAnimAttacker
-_080A5648: .4byte 0xfffffe00
-_080A564C:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl SetBattlerSpriteYOffsetFromRotation
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A568E
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl ResetSpriteRotScale
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A568E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A55A0
-
- thumb_func_start sub_80A5694
-sub_80A5694: @ 80A5694
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A56D8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldr r1, _080A56DC @ =gBattlerSpriteIds
- ldr r2, _080A56E0 @ =gBattleAnimAttacker
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrb r0, [r2]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r5, 0xA]
- strh r4, [r5, 0xC]
- ldr r0, _080A56E4 @ =gBattleAnimArgs
- movs r3, 0
- ldrsh r1, [r0, r3]
- cmp r1, 0
- beq _080A56E8
- cmp r1, 0x1
- beq _080A5704
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _080A5722
- .align 2, 0
-_080A56D8: .4byte gTasks
-_080A56DC: .4byte gBattlerSpriteIds
-_080A56E0: .4byte gBattleAnimAttacker
-_080A56E4: .4byte gBattleAnimArgs
-_080A56E8:
- strh r1, [r5, 0xC]
- movs r0, 0x8
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- movs r0, 0x3
- strh r0, [r5, 0x12]
- cmp r2, 0
- bne _080A56FC
- negs r0, r0
- strh r0, [r5, 0x12]
-_080A56FC:
- ldr r0, _080A5700 @ =sub_80A572C
- b _080A5720
- .align 2, 0
-_080A5700: .4byte sub_80A572C
-_080A5704:
- movs r0, 0x8
- strh r0, [r5, 0xE]
- movs r0, 0xC0
- lsls r0, 3
- strh r0, [r5, 0x10]
- movs r1, 0xC0
- strh r1, [r5, 0x12]
- cmp r2, 0
- bne _080A571E
- negs r0, r0
- strh r0, [r5, 0x10]
- negs r0, r1
- strh r0, [r5, 0x12]
-_080A571E:
- ldr r0, _080A5728 @ =sub_80A58EC
-_080A5720:
- str r0, [r5]
-_080A5722:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5728: .4byte sub_80A58EC
- thumb_func_end sub_80A5694
-
- thumb_func_start sub_80A572C
-sub_80A572C: @ 80A572C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A5750 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080A5746
- b _080A58E6
-_080A5746:
- lsls r0, 2
- ldr r1, _080A5754 @ =_080A5758
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A5750: .4byte gTasks
-_080A5754: .4byte _080A5758
- .align 2, 0
-_080A5758:
- .4byte _080A576C
- .4byte _080A579E
- .4byte _080A57F8
- .4byte _080A5870
- .4byte _080A58B4
-_080A576C:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _080A577C
- ldrh r2, [r4, 0x12]
- ldrh r3, [r4, 0x10]
- adds r2, r3
- b _080A58C2
-_080A577C:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0xC0
- cmp r0, 0
- bne _080A5792
- movs r2, 0xC0
- negs r2, r2
- adds r1, r2, 0
-_080A5792:
- strh r1, [r4, 0x12]
- ldrb r0, [r4, 0x8]
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- b _080A58A8
-_080A579E:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A57C4
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrb r0, [r4, 0x8]
- bl SetBattlerSpriteYOffsetFromRotation
- b _080A58D4
-_080A57C4:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- ldr r2, _080A57F4 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080A57EA
- movs r1, 0x2
-_080A57EA:
- strh r1, [r4, 0x12]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080A58A8
- .align 2, 0
-_080A57F4: .4byte gSprites
-_080A57F8:
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A5854
- ldrh r1, [r4, 0x14]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A5812
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- b _080A58E6
-_080A5812:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080A5834
- ldr r2, _080A5830 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r4, 0x10]
- adds r1, r2
- b _080A5848
- .align 2, 0
-_080A5830: .4byte gSprites
-_080A5834:
- ldr r2, _080A5850 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r4, 0x12]
- subs r1, r2
-_080A5848:
- strh r1, [r0, 0x24]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080A58D4
- .align 2, 0
-_080A5850: .4byte gSprites
-_080A5854:
- ldr r2, _080A586C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x24]
- movs r0, 0xC
- strh r0, [r4, 0xE]
- b _080A58A8
- .align 2, 0
-_080A586C: .4byte gSprites
-_080A5870:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080A5880
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080A58E6
-_080A5880:
- movs r0, 0x3
- strh r0, [r4, 0xE]
- ldr r2, _080A58B0 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x8
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080A58A6
- movs r1, 0x8
-_080A58A6:
- strh r1, [r4, 0x12]
-_080A58A8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _080A58E6
- .align 2, 0
-_080A58B0: .4byte gSprites
-_080A58B4:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080A58E0
- ldrh r2, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r2, r0
-_080A58C2:
- strh r2, [r4, 0x10]
- ldr r3, _080A58DC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
-_080A58D4:
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080A58E6
- .align 2, 0
-_080A58DC: .4byte gSprites
-_080A58E0:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080A58E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A572C
-
- thumb_func_start sub_80A58EC
-sub_80A58EC: @ 80A58EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A5928 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A592C
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldrb r0, [r4, 0x8]
- bl SetBattlerSpriteYOffsetFromRotation
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080A5938
- .align 2, 0
-_080A5928: .4byte gTasks
-_080A592C:
- ldrb r0, [r4, 0x8]
- bl ResetSpriteRotScale
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A5938:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A58EC
-
- thumb_func_start sub_80A5940
-sub_80A5940: @ 80A5940
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080A5954 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A595C
- ldr r4, _080A5958 @ =gBattleAnimAttacker
- b _080A595E
- .align 2, 0
-_080A5954: .4byte gBattleAnimArgs
-_080A5958: .4byte gBattleAnimAttacker
-_080A595C:
- ldr r4, _080A599C @ =gBattleAnimTarget
-_080A595E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldr r1, _080A59A0 @ =sub_80A5A8C
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A59A4 @ =RunStoredCallbackWhenAnimEnds
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A599C: .4byte gBattleAnimTarget
-_080A59A0: .4byte sub_80A5A8C
-_080A59A4: .4byte RunStoredCallbackWhenAnimEnds
- thumb_func_end sub_80A5940
-
- thumb_func_start sub_80A59A8
-sub_80A59A8: @ 80A59A8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A59E0 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A59E4 @ =0x0000ffd0
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080A59E8 @ =sub_80A5A44
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A59EC @ =RunStoredCallbackWhenAnimEnds
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A59E0: .4byte gBattleAnimTarget
-_080A59E4: .4byte 0x0000ffd0
-_080A59E8: .4byte sub_80A5A44
-_080A59EC: .4byte RunStoredCallbackWhenAnimEnds
- thumb_func_end sub_80A59A8
-
- thumb_func_start sub_80A59F0
-sub_80A59F0: @ 80A59F0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080A5A34 @ =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A5A38 @ =gBattleAnimArgs
- ldr r2, _080A5A3C @ =0x0000ffd0
- adds r0, r2
- ldrh r1, [r1]
- adds r0, r1
- movs r6, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- strh r6, [r4, 0x30]
- ldr r0, _080A5A40 @ =sub_80A5A8C
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5A34: .4byte gBattleAnimTarget
-_080A5A38: .4byte gBattleAnimArgs
-_080A5A3C: .4byte 0x0000ffd0
-_080A5A40: .4byte sub_80A5A8C
- thumb_func_end sub_80A59F0
-
- thumb_func_start sub_80A5A44
-sub_80A5A44: @ 80A5A44
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A5A6E
- movs r0, 0xC
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080A5A74 @ =sub_80A5A7C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A5A78 @ =TranslateSpriteLinear
- str r0, [r4, 0x1C]
-_080A5A6E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5A74: .4byte sub_80A5A7C
-_080A5A78: .4byte TranslateSpriteLinear
- thumb_func_end sub_80A5A44
-
- thumb_func_start sub_80A5A7C
-sub_80A5A7C: @ 80A5A7C
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r1, [r0, 0x30]
- ldr r1, _080A5A88 @ =sub_80A5A8C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A5A88: .4byte sub_80A5A8C
- thumb_func_end sub_80A5A7C
-
- thumb_func_start sub_80A5A8C
-sub_80A5A8C: @ 80A5A8C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A5AD4
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- 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
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080A5AD4
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080A5AD4:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5A8C
-
- thumb_func_start sub_80A5AD8
-sub_80A5AD8: @ 80A5AD8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080A5AEC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A5AF4
- ldr r4, _080A5AF0 @ =gBattleAnimAttacker
- b _080A5AF6
- .align 2, 0
-_080A5AEC: .4byte gBattleAnimArgs
-_080A5AF0: .4byte gBattleAnimAttacker
-_080A5AF4:
- ldr r4, _080A5B30 @ =gBattleAnimTarget
-_080A5AF6:
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080A5B34 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x30]
- ldr r0, _080A5B38 @ =sub_80A5B3C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5B30: .4byte gBattleAnimTarget
-_080A5B34: .4byte gBattleAnimArgs
-_080A5B38: .4byte sub_80A5B3C
- thumb_func_end sub_80A5AD8
-
- thumb_func_start sub_80A5B3C
-sub_80A5B3C: @ 80A5B3C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _080A5B5C
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_080A5B5C:
- ldrh r0, [r2, 0x22]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x22]
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A5B78
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A5B78:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5B3C
-
- thumb_func_start sub_80A5B7C
-sub_80A5B7C: @ 80A5B7C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080A5BC4 @ =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0xC
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- movs r0, 0x2
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- subs r0, 0x42
- bl BattleAnimAdjustPanning
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _080A5BC8 @ =sub_80A5BCC
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5BC4: .4byte gBattleAnimAttacker
-_080A5BC8: .4byte sub_80A5BCC
- thumb_func_end sub_80A5B7C
-
- thumb_func_start sub_80A5BCC
-sub_80A5BCC: @ 80A5BCC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080A5C38
- 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]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080A5C1E
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5C1E
- ldrh r1, [r4, 0x38]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xBB
- bl PlaySE12WithPanning
-_080A5C1E:
- movs r1, 0
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A5C38
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080A5C38:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A5C62
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- ble _080A5C62
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080A5C62
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A5C62:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5BCC
-
- thumb_func_start sub_80A5C68
-sub_80A5C68: @ 80A5C68
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080A5CB2
- ldr r4, _080A5CC8 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r5, _080A5CCC @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x2]
- adds r0, r5
- strh r0, [r6, 0x22]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A5CAC
- ldrh r0, [r6, 0x22]
- adds r0, 0xA
- strh r0, [r6, 0x22]
-_080A5CAC:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
-_080A5CB2:
- ldr r0, _080A5CCC @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A5CD0 @ =0x0000ffff
- cmp r1, r0
- bne _080A5CC2
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080A5CC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5CC8: .4byte gBattleAnimAttacker
-_080A5CCC: .4byte gBattleAnimArgs
-_080A5CD0: .4byte 0x0000ffff
- thumb_func_end sub_80A5C68
-
- thumb_func_start sub_80A5CD4
-sub_80A5CD4: @ 80A5CD4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A5CF4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080A5D00
- ldr r1, _080A5CF8 @ =gBattleAnimArgs
- ldr r0, _080A5CFC @ =0x0000ffff
- strh r0, [r1, 0xE]
- b _080A5D3E
- .align 2, 0
-_080A5CF4: .4byte gTasks
-_080A5CF8: .4byte gBattleAnimArgs
-_080A5CFC: .4byte 0x0000ffff
-_080A5D00:
- cmp r0, 0x2
- bne _080A5D0C
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080A5D44
-_080A5D0C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080A5D44
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r2, [r4, 0xA]
- adds r2, 0x1
- strh r2, [r4, 0xA]
- 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, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A5D44
-_080A5D3E:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080A5D44:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5CD4
-
- thumb_func_start sub_80A5D4C
-sub_80A5D4C: @ 80A5D4C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimTarget
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080A5D74 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080A5D78 @ =sub_80A5D7C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5D74: .4byte gBattleAnimArgs
-_080A5D78: .4byte sub_80A5D7C
- thumb_func_end sub_80A5D4C
-
- thumb_func_start sub_80A5D7C
-sub_80A5D7C: @ 80A5D7C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080A5D90
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080A5DCC
-_080A5D90:
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldr r4, _080A5DD4 @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080A5DD8 @ =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _080A5DDC @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080A5DCC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5DD4: .4byte gBattleAnimAttacker
-_080A5DD8: .4byte StartAnimLinearTranslation
-_080A5DDC: .4byte DestroyAnimSprite
- thumb_func_end sub_80A5D7C
-
- thumb_func_start sub_80A5DE0
-sub_80A5DE0: @ 80A5DE0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A5E30 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080A5E28
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A5E28
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A5E28:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E30: .4byte gTasks
- thumb_func_end sub_80A5DE0
-
- thumb_func_start sub_80A5E34
-sub_80A5E34: @ 80A5E34
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, _080A5E9C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080A5E90
- ldr r6, _080A5EA0 @ =gBattleAnimArgs
- ldr r5, _080A5EA4 @ =gHealthboxSpriteIds
-_080A5E48:
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080A5E64
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A5E64
- adds r0, r4, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
-_080A5E64:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080A5E82
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5E82
- adds r0, r4, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
-_080A5E82:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A5E9C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080A5E48
-_080A5E90:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E9C: .4byte gBattlersCount
-_080A5EA0: .4byte gBattleAnimArgs
-_080A5EA4: .4byte gHealthboxSpriteIds
- thumb_func_end sub_80A5E34
-
- thumb_func_start sub_80A5EA8
-sub_80A5EA8: @ 80A5EA8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _080A5EC2
-_080A5EB2:
- ldr r0, _080A5ED8 @ =gHealthboxSpriteIds
- adds r0, r4, r0
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080A5EC2:
- ldr r0, _080A5EDC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080A5EB2
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5ED8: .4byte gHealthboxSpriteIds
-_080A5EDC: .4byte gBattlersCount
- thumb_func_end sub_80A5EA8
-
- thumb_func_start sub_80A5EE0
-sub_80A5EE0: @ 80A5EE0
- push {r4,lr}
- adds r4, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A5EF6
- movs r0, 0x30
- strh r0, [r4, 0x20]
- movs r0, 0x28
- b _080A5EFE
-_080A5EF6:
- ldr r0, _080A5F20 @ =gBattleAnimArgs
- ldrh r1, [r0]
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080A5EFE:
- strh r0, [r4, 0x22]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080A5F24 @ =sub_80A5F28
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5F20: .4byte gBattleAnimArgs
-_080A5F24: .4byte sub_80A5F28
- thumb_func_end sub_80A5EE0
-
- thumb_func_start sub_80A5F28
-sub_80A5F28: @ 80A5F28
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080A5F3A
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A5F3A:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F28
-
- thumb_func_start sub_80A5F40
-sub_80A5F40: @ 80A5F40
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A5F78 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r2, _080A5F7C @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r0, _080A5F80 @ =sub_80A5F84
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5F78: .4byte gBattleAnimAttacker
-_080A5F7C: .4byte gBattleAnimArgs
-_080A5F80: .4byte sub_80A5F84
- thumb_func_end sub_80A5F40
-
- thumb_func_start sub_80A5F84
-sub_80A5F84: @ 80A5F84
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A5FAE
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r2, [r1, 0x32]
- movs r3, 0x32
- ldrsh r0, [r1, r3]
- cmp r0, 0x77
- bgt _080A5FAE
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- adds r0, r2, 0x1
- strh r0, [r1, 0x32]
-_080A5FAE:
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080A5FBC
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A5FBC:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F84
-
- thumb_func_start sub_80A5FC0
-sub_80A5FC0: @ 80A5FC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8075BE8
- mov r8, r0
- ldr r0, _080A6090 @ =0x0000ffff
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldr r0, _080A6094 @ =gTasks
- mov r9, r0
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r6, r5, r0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0xA]
- strh r4, [r6, 0xC]
- strh r1, [r6, 0xE]
- strh r4, [r6, 0x10]
- strh r4, [r6, 0x12]
- strh r4, [r6, 0x14]
- movs r0, 0xD
- strh r0, [r6, 0x16]
- movs r0, 0xE
- strh r0, [r6, 0x18]
- movs r0, 0xF
- strh r0, [r6, 0x1A]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8075CB8
- mov r10, r0
- mov r1, r8
- orrs r1, r0
- mov r8, r1
- movs r0, 0x8
- add r9, r0
- add r5, r9
- adds r0, r5, 0
- adds r0, 0x1C
- adds r5, 0x1E
- adds r1, r5, 0
- mov r2, r8
- bl StorePointerInVars
- ldr r0, _080A6098 @ =0x000027d2
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- mov r0, r10
- orrs r0, r1
- mov r10, r0
- ldr r0, _080A609C @ =0x000027d3
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0
- mov r1, r10
- orrs r4, r1
- ldr r0, _080A60A0 @ =0x00007fbb
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080A60A4 @ =sub_80A60A8
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6090: .4byte 0x0000ffff
-_080A6094: .4byte gTasks
-_080A6098: .4byte 0x000027d2
-_080A609C: .4byte 0x000027d3
-_080A60A0: .4byte 0x00007fbb
-_080A60A4: .4byte sub_80A60A8
- thumb_func_end sub_80A5FC0
-
- thumb_func_start sub_80A60A8
-sub_80A60A8: @ 80A60A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A60D0 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080A6194
- cmp r1, 0x1
- bgt _080A60D4
- cmp r1, 0
- beq _080A60E2
- b _080A6232
- .align 2, 0
-_080A60D0: .4byte gTasks
-_080A60D4:
- cmp r1, 0x2
- bne _080A60DA
- b _080A61EC
-_080A60DA:
- cmp r1, 0x3
- bne _080A60E0
- b _080A6220
-_080A60E0:
- b _080A6232
-_080A60E2:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _080A60F0
- b _080A6232
-_080A60F0:
- strh r1, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _080A613C
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r2, [r4, 0x18]
- ldrh r3, [r4, 0x12]
- adds r2, r3
- strh r2, [r4, 0x12]
- ldrh r1, [r4, 0x1A]
- ldrh r5, [r4, 0x14]
- adds r1, r5
- strh r1, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r2, 11
- orrs r0, r2
- lsrs r1, 6
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- b _080A6146
-_080A613C:
- ldr r7, _080A618C @ =0x00007fbb
- mov r12, r7
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080A6146:
- movs r2, 0x1
- movs r3, 0
- movs r1, 0
-_080A614C:
- movs r5, 0xE
- ldrsh r0, [r4, r5]
- ands r0, r2
- lsls r5, r2, 17
- adds r6, r3, 0
- adds r6, 0x10
- adds r1, 0x1
- mov r8, r1
- cmp r0, 0
- beq _080A6178
- movs r1, 0x1
- ldr r2, _080A6190 @ =gPlttBufferFaded
-_080A6164:
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r2
- mov r7, r12
- strh r7, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080A6164
-_080A6178:
- lsrs r2, r5, 16
- lsls r0, r6, 16
- lsrs r3, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080A614C
- b _080A6232
- .align 2, 0
-_080A618C: .4byte 0x00007fbb
-_080A6190: .4byte gPlttBufferFaded
-_080A6194:
- ldr r0, _080A61DC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A6232
- movs r2, 0
- ldr r3, _080A61E0 @ =gSprites
- movs r5, 0x14
- adds r5, r3
- mov r12, r5
- ldr r7, _080A61E4 @ =gUnknown_83E3734
- mov r8, r7
- ldr r6, _080A61E8 @ =gUnknown_83E3764
- movs r5, 0x1
-_080A61B2:
- lsls r0, r2, 4
- adds r0, r2
- lsls r1, r0, 2
- mov r7, r12
- adds r0, r1, r7
- ldr r0, [r0]
- cmp r0, r8
- beq _080A61C6
- cmp r0, r6
- bne _080A61CA
-_080A61C6:
- adds r0, r1, r3
- strh r5, [r0, 0x2E]
-_080A61CA:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080A61B2
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080A6214
- .align 2, 0
-_080A61DC: .4byte gPaletteFade
-_080A61E0: .4byte gSprites
-_080A61E4: .4byte gUnknown_83E3734
-_080A61E8: .4byte gUnknown_83E3764
-_080A61EC:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080A6232
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- bl LoadPointerFromVars
- ldr r1, _080A621C @ =0x00007fbb
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_080A6214:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080A6232
- .align 2, 0
-_080A621C: .4byte 0x00007fbb
-_080A6220:
- ldr r0, _080A6240 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A6232
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080A6232:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6240: .4byte gPaletteFade
- thumb_func_end sub_80A60A8
-
- thumb_func_start sub_80A6244
-sub_80A6244: @ 80A6244
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080A62C8 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bgt _080A6256
- movs r0, 0x2
- strh r0, [r6, 0x4]
-_080A6256:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x7F
- ble _080A6262
- movs r0, 0x7F
- strh r0, [r6, 0x4]
-_080A6262:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x30]
- ldr r4, _080A62CC @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r1, [r5, 0x20]
- strh r1, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A62D4
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080A62D0 @ =0xffffec00
- b _080A62FA
- .align 2, 0
-_080A62C8: .4byte gBattleAnimArgs
-_080A62CC: .4byte gBattleAnimTarget
-_080A62D0: .4byte 0xffffec00
-_080A62D4:
- ldr r0, _080A6314 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A631C
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 5
-_080A62FA:
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080A6318 @ =0xfffff600
- bl __divsi3
- strh r0, [r5, 0x38]
- b _080A6358
- .align 2, 0
-_080A6314: .4byte gBattleAnimAttacker
-_080A6318: .4byte 0xfffff600
-_080A631C:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- subs r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080A6364 @ =0xffffec00
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 4
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
- orrs r0, r1
- strb r0, [r5, 0x3]
-_080A6358:
- ldr r0, _080A6368 @ =sub_80A636C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6364: .4byte 0xffffec00
-_080A6368: .4byte sub_80A636C
- thumb_func_end sub_80A6244
-
- thumb_func_start sub_80A636C
-sub_80A636C: @ 80A636C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x36]
- adds r1, r3
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A63A2
- ldrh r0, [r2, 0x3A]
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x22]
-_080A63A2:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080A63B0
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A63B0:
- pop {r0}
- bx r0
- thumb_func_end sub_80A636C
-
- thumb_func_start sub_80A63B4
-sub_80A63B4: @ 80A63B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080A6444 @ =gTasks
- adds r6, r0, r1
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x8]
- ldr r0, _080A6448 @ =0x00002771
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xA]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- lsls r0, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- ldr r2, _080A644C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r4, r0, 4
- movs r5, 0x1
- ldr r2, _080A6450 @ =gPlttBufferUnfaded
-_080A640C:
- adds r1, r3, r5
- lsls r1, 1
- adds r1, r2
- adds r0, r4, r5
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080A640C
- adds r0, r3, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0
- bl BlendPalette
- movs r0, 0
- strh r0, [r6, 0xE]
- movs r5, 0
- ldr r7, _080A644C @ =gSprites
- movs r1, 0x1C
- adds r1, r7
- mov r9, r1
- b _080A6488
- .align 2, 0
-_080A6444: .4byte gTasks
-_080A6448: .4byte 0x00002771
-_080A644C: .4byte gSprites
-_080A6450: .4byte gPlttBufferUnfaded
-_080A6454:
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r7
- ldrb r1, [r6, 0xA]
- lsls r1, 4
- ldrb r3, [r4, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0
- strh r0, [r4, 0x2E]
- lsls r0, r5, 7
- strh r0, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x32]
- add r2, r9
- ldr r0, _080A64BC @ =sub_80A653C
- str r0, [r2]
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080A6488:
- cmp r5, 0x1
- bhi _080A649A
- movs r0, 0
- bl CloneBattlerSpriteWithBlend
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A6454
-_080A649A:
- ldr r0, _080A64C0 @ =sub_80A64E0
- str r0, [r6]
- ldr r0, _080A64C4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteBGPriorityRank
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A64C8
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl ClearGpuRegBits
- b _080A64D2
- .align 2, 0
-_080A64BC: .4byte sub_80A653C
-_080A64C0: .4byte sub_80A64E0
-_080A64C4: .4byte gBattleAnimAttacker
-_080A64C8:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl ClearGpuRegBits
-_080A64D2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A63B4
-
- thumb_func_start sub_80A64E0
-sub_80A64E0: @ 80A64E0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A6514 @ =gTasks
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6532
- ldr r0, _080A6518 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteBGPriorityRank
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A651C
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl SetGpuRegBits
- b _080A6526
- .align 2, 0
-_080A6514: .4byte gTasks
-_080A6518: .4byte gBattleAnimAttacker
-_080A651C:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
-_080A6526:
- ldr r0, _080A6538 @ =0x00002771
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A6532:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6538: .4byte 0x00002771
- thumb_func_end sub_80A64E0
-
- thumb_func_start sub_80A653C
-sub_80A653C: @ 80A653C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A6558
- movs r0, 0
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_080A6558:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- ble _080A6580
- ldr r2, _080A657C @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xE]
- subs r1, 0x1
- strh r1, [r0, 0xE]
- adds r0, r5, 0
- bl obj_delete_but_dont_free_vram
- b _080A65C2
- .align 2, 0
-_080A657C: .4byte gTasks
-_080A6580:
- ldr r4, _080A65C8 @ =gSineTable
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x6
- bl __divsi3
- strh r0, [r5, 0x36]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0xD
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrh r1, [r5, 0x30]
- adds r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
-_080A65C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A65C8: .4byte gSineTable
- thumb_func_end sub_80A653C
-
- thumb_func_start sub_80A65CC
-sub_80A65CC: @ 80A65CC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080A65E0 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- ldr r0, _080A65E4 @ =RunStoredCallbackWhenAnimEnds
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A65E0: .4byte DestroyAnimSprite
-_080A65E4: .4byte RunStoredCallbackWhenAnimEnds
- thumb_func_end sub_80A65CC
-
- thumb_func_start sub_80A65E8
-sub_80A65E8: @ 80A65E8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _080A6698 @ =gUnknown_83E3898
- ldrh r0, [r4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- beq _080A662C
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r5, _080A669C @ =gPlttBufferFaded
-_080A6614:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r5
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080A6614
-_080A662C:
- movs r4, 0x1
- ldr r0, _080A6698 @ =gUnknown_83E3898
- mov r8, r0
-_080A6632:
- lsls r0, r4, 1
- adds r0, r4
- lsls r5, r0, 2
- mov r1, r8
- adds r0, r5, r1
- ldrh r0, [r0]
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, 0x1
- mov r12, r4
- cmp r3, 0xFF
- beq _080A667A
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r7, _080A669C @ =gPlttBufferFaded
- ldr r6, _080A6698 @ =gUnknown_83E3898
- adds r4, r5, 0
-_080A6660:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r7
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080A6660
-_080A667A:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080A6632
- mov r0, r9
- bl DestroyAnimVisualTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6698: .4byte gUnknown_83E3898
-_080A669C: .4byte gPlttBufferFaded
- thumb_func_end sub_80A65E8
-
- thumb_func_start sub_80A66A0
-sub_80A66A0: @ 80A66A0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0x1
- ldr r6, _080A66D0 @ =gUnknown_83E3898
-_080A66AA:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080A66AA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A66D0: .4byte gUnknown_83E3898
- thumb_func_end sub_80A66A0
-
- thumb_func_start sub_80A66D4
-sub_80A66D4: @ 80A66D4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl SetSpriteCoordsToAnimAttackerCoords
- ldr r4, _080A672C @ =gBattleAnimArgs
- ldrb r1, [r4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r2, _080A6730 @ =gUnknown_83E3898
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080A6710
- lsls r2, r0, 4
- ldrb r1, [r5, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
-_080A6710:
- ldrh r0, [r4, 0x2]
- movs r1, 0
- strh r0, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x34]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A6734
- movs r6, 0x30
- movs r3, 0x28
- b _080A674E
- .align 2, 0
-_080A672C: .4byte gBattleAnimArgs
-_080A6730: .4byte gUnknown_83E3898
-_080A6734:
- ldr r4, _080A6784 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r3, r0, 24
-_080A674E:
- ldrh r0, [r5, 0x20]
- lsls r1, r0, 4
- strh r1, [r5, 0x36]
- ldrh r1, [r5, 0x22]
- lsls r2, r1, 4
- strh r2, [r5, 0x38]
- subs r0, r6, r0
- lsls r0, 16
- asrs r0, 16
- subs r1, r3, r1
- lsls r1, 16
- asrs r1, 16
- adds r2, r5, 0
- adds r2, 0x3A
- adds r3, r5, 0
- adds r3, 0x3C
- movs r4, 0x28
- str r4, [sp]
- bl sub_80A678C
- ldr r0, _080A6788 @ =sub_80A67E4
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6784: .4byte gBattleAnimTarget
-_080A6788: .4byte sub_80A67E4
- thumb_func_end sub_80A66D4
-
- thumb_func_start sub_80A678C
-sub_80A678C: @ 80A678C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r2, 0
- mov r8, r3
- ldr r2, [sp, 0x18]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r1, r2, 24
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bge _080A67AE
- lsls r0, r1, 24
- negs r0, r0
- lsrs r1, r0, 24
-_080A67AE:
- lsls r5, r2, 8
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl __divsi3
- adds r4, r0, 0
- cmp r4, 0
- bne _080A67C2
- movs r4, 0x1
-_080A67C2:
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- strh r0, [r7]
- lsls r0, r6, 16
- asrs r0, 8
- adds r1, r4, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A678C
-
- thumb_func_start sub_80A67E4
-sub_80A67E4: @ 80A67E4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r1, r0, r1
- adds r0, r1, 0
- cmp r1, 0
- bge _080A6800
- adds r0, 0xFF
-_080A6800:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- ldrh r1, [r4, 0x3A]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- ldrh r3, [r4, 0x38]
- adds r2, r3
- strh r2, [r4, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xF
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bhi _080A684E
- lsls r0, r2, 16
- asrs r1, r0, 16
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _080A684E
- cmp r1, 0x80
- ble _080A6856
-_080A684E:
- adds r0, r4, 0
- bl DestroySpriteAndMatrix
- b _080A68A6
-_080A6856:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _080A68A6
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r1
- ble _080A68A6
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A687E
- strh r5, [r4, 0x30]
-_080A687E:
- ldr r2, _080A68AC @ =gUnknown_83E3898
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080A68A6
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080A68A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A68AC: .4byte gUnknown_83E3898
- thumb_func_end sub_80A67E4
-
- thumb_func_start sub_80A68B0
-sub_80A68B0: @ 80A68B0
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _080A6934 @ =gBattleAnimAttacker
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A68CE
- ldr r1, _080A6938 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A68CE:
- ldrb r0, [r7]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, _080A6938 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r7]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x32]
- strh r5, [r6, 0x34]
- ldrh r0, [r6, 0x20]
- lsls r0, 4
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x22]
- lsls r0, 4
- strh r0, [r6, 0x38]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- lsls r0, 4
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3A]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- lsls r0, 7
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3C]
- ldr r0, _080A693C @ =sub_80A6940
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6934: .4byte gBattleAnimAttacker
-_080A6938: .4byte gBattleAnimArgs
-_080A693C: .4byte sub_80A6940
- thumb_func_end sub_80A68B0
-
- thumb_func_start sub_80A6940
-sub_80A6940: @ 80A6940
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x22]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _080A699E
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080A699E
- ldrh r0, [r4, 0x32]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x12
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x12
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A699E
- movs r0, 0x1
- strh r0, [r4, 0x34]
-_080A699E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- bne _080A69B2
- adds r0, r4, 0
- bl DestroySpriteAndMatrix
-_080A69B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6940
-
- thumb_func_start sub_80A69B8
-sub_80A69B8: @ 80A69B8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080A69D8 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080A69DC
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
- movs r6, 0x10
- b _080A69DE
- .align 2, 0
-_080A69D8: .4byte gBattleAnimArgs
-_080A69DC:
- ldr r6, _080A6A18 @ =0x0000fff0
-_080A69DE:
- ldr r4, _080A6A1C @ =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x8
- strh r0, [r5, 0x22]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r0, _080A6A20 @ =WaitAnimForDuration
- str r0, [r5, 0x1C]
- ldr r1, _080A6A24 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A18: .4byte 0x0000fff0
-_080A6A1C: .4byte gBattleAnimAttacker
-_080A6A20: .4byte WaitAnimForDuration
-_080A6A24: .4byte DestroyAnimSprite
- thumb_func_end sub_80A69B8
-
- thumb_func_start sub_80A6A28
-sub_80A6A28: @ 80A6A28
- push {r4,r5,lr}
- adds r4, r0, 0
- bl SetSpriteCoordsToAnimAttackerCoords
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldr r5, _080A6AA0 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r2, _080A6AA4 @ =gUnknown_83E3898
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080A6A68
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080A6A68:
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- cmp r0, 0
- bne _080A6A74
- ldr r2, _080A6AA8 @ =0x0000ffe0
-_080A6A74:
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x20]
- strh r1, [r4, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- subs r0, 0x28
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x38]
- ldr r0, _080A6AAC @ =sub_80A6AB0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6AA0: .4byte gBattleAnimArgs
-_080A6AA4: .4byte gUnknown_83E3898
-_080A6AA8: .4byte 0x0000ffe0
-_080A6AAC: .4byte sub_80A6AB0
- thumb_func_end sub_80A6A28
-
- thumb_func_start sub_80A6AB0
-sub_80A6AB0: @ 80A6AB0
- push {r4,lr}
- adds r4, r0, 0
- bl AnimTranslateLinear
- lsls r0, 24
- cmp r0, 0
- bne _080A6B00
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r4, 0x24]
- movs r3, 0x24
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080A6ADC
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_080A6ADC:
- lsls r0, r1, 16
- asrs r0, 16
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- ldrh r3, [r4, 0x26]
- adds r0, r3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A6B06
-_080A6B00:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A6B06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6AB0
-
- thumb_func_start sub_80A6B0C
-sub_80A6B0C: @ 80A6B0C
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A6B2C
- adds r0, r5, 0
- movs r1, 0x5
- bl GetBattlerSpriteCoordAttr
- adds r0, 0x8
- b _080A6B36
-_080A6B2C:
- adds r0, r5, 0
- movs r1, 0x4
- bl GetBattlerSpriteCoordAttr
- subs r0, 0x8
-_080A6B36:
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0
- bl GetBattlerSpriteCoordAttr
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A6B58
- adds r0, 0x3
-_080A6B58:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6B0C
-
- thumb_func_start sub_80A6B64
-sub_80A6B64: @ 80A6B64
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080A6B78 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6B80
- ldr r0, _080A6B7C @ =gBattleAnimAttacker
- b _080A6B82
- .align 2, 0
-_080A6B78: .4byte gBattleAnimArgs
-_080A6B7C: .4byte gBattleAnimAttacker
-_080A6B80:
- ldr r0, _080A6BC0 @ =gBattleAnimTarget
-_080A6B82:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A6B0C
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- ldr r0, _080A6BC4 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0x2E]
- adds r0, r1, 0x2
- strh r0, [r5, 0x30]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _080A6BC8 @ =sub_80A6BD0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6BCC @ =RunStoredCallbackWhenAnimEnds
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6BC0: .4byte gBattleAnimTarget
-_080A6BC4: .4byte gBattleAnimArgs
-_080A6BC8: .4byte sub_80A6BD0
-_080A6BCC: .4byte RunStoredCallbackWhenAnimEnds
- thumb_func_end sub_80A6B64
-
- thumb_func_start sub_80A6BD0
-sub_80A6BD0: @ 80A6BD0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080A6BF8
- ldr r1, _080A6C00 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080A6C04 @ =RunStoredCallbackWhenAnimEnds
- str r0, [r4, 0x1C]
-_080A6BF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C00: .4byte DestroyAnimSprite
-_080A6C04: .4byte RunStoredCallbackWhenAnimEnds
- thumb_func_end sub_80A6BD0
-
- thumb_func_start sub_80A6C08
-sub_80A6C08: @ 80A6C08
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A6C1C @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6C24
- ldr r0, _080A6C20 @ =gBattleAnimAttacker
- b _080A6C26
- .align 2, 0
-_080A6C1C: .4byte gBattleAnimArgs
-_080A6C20: .4byte gBattleAnimAttacker
-_080A6C24:
- ldr r0, _080A6C44 @ =gBattleAnimTarget
-_080A6C26:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80A6B0C
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r1, _080A6C48 @ =sub_80A6C50
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6C4C @ =RunStoredCallbackWhenAffineAnimEnds
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C44: .4byte gBattleAnimTarget
-_080A6C48: .4byte sub_80A6C50
-_080A6C4C: .4byte RunStoredCallbackWhenAffineAnimEnds
- thumb_func_end sub_80A6C08
-
- thumb_func_start sub_80A6C50
-sub_80A6C50: @ 80A6C50
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A6C76
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080A6C7C @ =DestroySpriteAndMatrix
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6C80 @ =RunStoredCallbackWhenAffineAnimEnds
- str r0, [r4, 0x1C]
-_080A6C76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C7C: .4byte DestroySpriteAndMatrix
-_080A6C80: .4byte RunStoredCallbackWhenAffineAnimEnds
- thumb_func_end sub_80A6C50
-
- thumb_func_start sub_80A6C84
-sub_80A6C84: @ 80A6C84
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _080A6C98 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6CA0
- ldr r0, _080A6C9C @ =gBattleAnimAttacker
- b _080A6CA2
- .align 2, 0
-_080A6C98: .4byte gBattleAnimArgs
-_080A6C9C: .4byte gBattleAnimAttacker
-_080A6CA0:
- ldr r0, _080A6CF4 @ =gBattleAnimTarget
-_080A6CA2:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoordAttr
- strh r0, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080A6CCA
- movs r0, 0xA
- strh r0, [r4, 0x22]
-_080A6CCA:
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r6, [r4, 0x30]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- strh r0, [r4, 0x32]
- ldrb r0, [r1]
- adds r0, 0x4
- strh r0, [r4, 0x34]
- strh r6, [r4, 0x36]
- ldr r1, _080A6CF8 @ =sub_80A6D00
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6CFC @ =RunStoredCallbackWhenAffineAnimEnds
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6CF4: .4byte gBattleAnimTarget
-_080A6CF8: .4byte sub_80A6D00
-_080A6CFC: .4byte RunStoredCallbackWhenAffineAnimEnds
- thumb_func_end sub_80A6C84
-
- thumb_func_start sub_80A6D00
-sub_80A6D00: @ 80A6D00
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x36]
- adds r0, 0x1
- strh r0, [r1, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080A6D16
- ldr r0, _080A6D1C @ =sub_80A6D20
- str r0, [r1, 0x1C]
-_080A6D16:
- pop {r0}
- bx r0
- .align 2, 0
-_080A6D1C: .4byte sub_80A6D20
- thumb_func_end sub_80A6D00
-
- thumb_func_start sub_80A6D20
-sub_80A6D20: @ 80A6D20
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x4
- strh r1, [r2, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFE
- ble _080A6D52
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080A6D4C
- strh r0, [r2, 0x24]
- ldr r0, _080A6D48 @ =sub_80A6C50
- str r0, [r2, 0x1C]
- b _080A6D88
- .align 2, 0
-_080A6D48: .4byte sub_80A6C50
-_080A6D4C:
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2, 0x30]
-_080A6D52:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- ble _080A6D62
- ldrh r0, [r2, 0x34]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080A6D62:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0x9F
- ble _080A6D72
- ldrh r0, [r2, 0x32]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080A6D72:
- ldr r1, _080A6D8C @ =gSineTable
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- asrs r1, r0, 1
- adds r0, r1
- strh r0, [r2, 0x24]
-_080A6D88:
- pop {r0}
- bx r0
- .align 2, 0
-_080A6D8C: .4byte gSineTable
- thumb_func_end sub_80A6D20
-
- thumb_func_start sub_80A6D90
-sub_80A6D90: @ 80A6D90
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080A6DA4 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6DAC
- ldr r0, _080A6DA8 @ =gBattleAnimAttacker
- b _080A6DAE
- .align 2, 0
-_080A6DA4: .4byte gBattleAnimArgs
-_080A6DA8: .4byte gBattleAnimAttacker
-_080A6DAC:
- ldr r0, _080A6DD0 @ =gBattleAnimTarget
-_080A6DAE:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A6B0C
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A6DD4
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x2
- b _080A6DDE
- .align 2, 0
-_080A6DD0: .4byte gBattleAnimTarget
-_080A6DD4:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3
-_080A6DDE:
- strh r0, [r5, 0x2E]
- ldr r0, _080A6DEC @ =sub_80A6DF0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6DEC: .4byte sub_80A6DF0
- thumb_func_end sub_80A6D90
-
- thumb_func_start sub_80A6DF0
-sub_80A6DF0: @ 80A6DF0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080A6E1E
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, _080A6E24 @ =sub_80A6E2C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A6E28 @ =RunStoredCallbackWhenAnimEnds
- str r0, [r4, 0x1C]
-_080A6E1E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6E24: .4byte sub_80A6E2C
-_080A6E28: .4byte RunStoredCallbackWhenAnimEnds
- thumb_func_end sub_80A6DF0
-
- thumb_func_start sub_80A6E2C
-sub_80A6E2C: @ 80A6E2C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080A6E44
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A6E44:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6E2C
-
- .align 2, 0 @ Don't pad with nop.