summaryrefslogtreecommitdiff
path: root/asm/battle_anim_effects_2.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_anim_effects_2.s')
-rw-r--r--asm/battle_anim_effects_2.s7946
1 files changed, 0 insertions, 7946 deletions
diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s
deleted file mode 100644
index 24921239f..000000000
--- a/asm/battle_anim_effects_2.s
+++ /dev/null
@@ -1,7946 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A6E48
-sub_80A6E48: @ 80A6E48
- push {r4,r5,lr}
- adds r4, r0, 0
- bl SetSpriteCoordsToAnimAttackerCoords
- ldr r5, _080A6E8C @ =gBattleAnimArgs
- 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, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x36]
- ldr r1, _080A6E90 @ =DestroySpriteAndMatrix
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, _080A6E94 @ =TranslateSpriteInEllipseOverDuration
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6E8C: .4byte gBattleAnimArgs
-_080A6E90: .4byte DestroySpriteAndMatrix
-_080A6E94: .4byte TranslateSpriteInEllipseOverDuration
- thumb_func_end sub_80A6E48
-
- thumb_func_start sub_80A6E98
-sub_80A6E98: @ 80A6E98
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A6EAC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A6EB4
- ldr r0, _080A6EB0 @ =gBattleAnimAttacker
- b _080A6EB6
- .align 2, 0
-_080A6EAC: .4byte gBattleAnimArgs
-_080A6EB0: .4byte gBattleAnimAttacker
-_080A6EB4:
- ldr r0, _080A6ED0 @ =gBattleAnimTarget
-_080A6EB6:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80A6B0C
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x30]
- ldr r0, _080A6ED4 @ =sub_80A6ED8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6ED0: .4byte gBattleAnimTarget
-_080A6ED4: .4byte sub_80A6ED8
- thumb_func_end sub_80A6E98
-
- thumb_func_start sub_80A6ED8
-sub_80A6ED8: @ 80A6ED8
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080A6F0A
- cmp r0, 0x1
- bgt _080A6EEE
- cmp r0, 0
- beq _080A6EF4
- b _080A6F38
-_080A6EEE:
- cmp r0, 0x2
- beq _080A6F24
- b _080A6F38
-_080A6EF4:
- ldrh r0, [r1, 0x26]
- subs r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080A6F38
- b _080A6F1C
-_080A6F0A:
- ldrh r0, [r1, 0x26]
- adds r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080A6F38
-_080A6F1C:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080A6F38
-_080A6F24:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080A6F38
- adds r0, r1, 0
- bl DestroyAnimSprite
-_080A6F38:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6ED8
-
- thumb_func_start sub_80A6F3C
-sub_80A6F3C: @ 80A6F3C
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _080A6F88 @ =gSprites
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r4, 0x30]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080A6F7A
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
- adds r0, r4, 0
- bl DestroySpriteAndMatrix
-_080A6F7A:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6F88: .4byte gSprites
- thumb_func_end sub_80A6F3C
-
- thumb_func_start sub_80A6F8C
-sub_80A6F8C: @ 80A6F8C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080A6FD4 @ =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]
- ldr r1, _080A6FD8 @ =gBattlerSpriteIds
- ldr r0, _080A6FDC @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A6FE4
- ldr r0, _080A6FE0 @ =gBattleAnimArgs
- ldrh r1, [r5, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r5, 0x20]
- adds r1, r0, 0
- b _080A6FEE
- .align 2, 0
-_080A6FD4: .4byte gBattleAnimAttacker
-_080A6FD8: .4byte gBattlerSpriteIds
-_080A6FDC: .4byte gBattleAnimTarget
-_080A6FE0: .4byte gBattleAnimArgs
-_080A6FE4:
- ldr r1, _080A7018 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080A6FEE:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- strh r6, [r5, 0x32]
- ldr r0, _080A701C @ =sub_80A6F3C
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7018: .4byte gBattleAnimArgs
-_080A701C: .4byte sub_80A6F3C
- thumb_func_end sub_80A6F8C
-
- thumb_func_start sub_80A7020
-sub_80A7020: @ 80A7020
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r1, _080A704C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x38]
- ldr r0, _080A7050 @ =WaitAnimForDuration
- str r0, [r4, 0x1C]
- ldr r1, _080A7054 @ =sub_80A7058
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A704C: .4byte gBattleAnimArgs
-_080A7050: .4byte WaitAnimForDuration
-_080A7054: .4byte sub_80A7058
- thumb_func_end sub_80A7020
-
- thumb_func_start sub_80A7058
-sub_80A7058: @ 80A7058
- push {lr}
- ldrh r1, [r0, 0x30]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0xF
- strh r1, [r0, 0x36]
- ldr r1, _080A7078 @ =StartAnimLinearTranslation
- str r1, [r0, 0x1C]
- ldr r1, _080A707C @ =sub_80A7080
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A7078: .4byte StartAnimLinearTranslation
-_080A707C: .4byte sub_80A7080
- thumb_func_end sub_80A7058
-
- thumb_func_start sub_80A7080
-sub_80A7080: @ 80A7080
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x38]
- movs r3, 0x38
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080A7096
- adds r0, r1, 0
- bl DestroyAnimSprite
- b _080A709A
-_080A7096:
- subs r0, r2, 0x1
- strh r0, [r1, 0x38]
-_080A709A:
- pop {r0}
- bx r0
- thumb_func_end sub_80A7080
-
- thumb_func_start sub_80A70A0
-sub_80A70A0: @ 80A70A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A70CC @ =gBattlerSpriteIds
- ldr r0, _080A70D0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- ldr r1, _080A70D4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A70D8 @ =sub_80A70DC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A70CC: .4byte gBattlerSpriteIds
-_080A70D0: .4byte gBattleAnimAttacker
-_080A70D4: .4byte gTasks
-_080A70D8: .4byte sub_80A70DC
- thumb_func_end sub_80A70A0
-
- thumb_func_start sub_80A70DC
-sub_80A70DC: @ 80A70DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A710C @ =gBattlerSpriteIds
- ldr r0, _080A7110 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r1, r0, r1
- ldrb r4, [r1]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A7118
- ldr r1, _080A7114 @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- negs r0, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r6, r2, 0
- b _080A7126
- .align 2, 0
-_080A710C: .4byte gBattlerSpriteIds
-_080A7110: .4byte gBattleAnimAttacker
-_080A7114: .4byte gTasks
-_080A7118:
- ldr r2, _080A7158 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- ldrh r3, [r0, 0x8]
- adds r6, r1, 0
-_080A7126:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- bl SetSpriteRotScale
- ldr r1, _080A7158 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A7160
- ldrh r0, [r1, 0x8]
- adds r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080A715C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- b _080A718A
- .align 2, 0
-_080A7158: .4byte gTasks
-_080A715C: .4byte gSprites
-_080A7160:
- cmp r0, 0x1
- bne _080A7176
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- bne _080A71D0
- movs r0, 0x2
- b _080A71CE
-_080A7176:
- ldrh r0, [r1, 0x8]
- subs r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080A71C4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- subs r1, 0x1
-_080A718A:
- strh r1, [r0, 0x26]
- adds r0, r4, 0
- bl SetBattlerSpriteYOffsetFromRotation
- ldr r0, _080A71C8 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r2, [r1, r3]
- movs r0, 0xF2
- lsls r0, 4
- cmp r2, r0
- beq _080A71AA
- cmp r2, 0
- bne _080A71D0
-_080A71AA:
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bne _080A71CC
- adds r0, r4, 0
- bl ResetSpriteRotScale
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _080A71D0
- .align 2, 0
-_080A71C4: .4byte gSprites
-_080A71C8: .4byte gTasks
-_080A71CC:
- adds r0, r2, 0x1
-_080A71CE:
- strh r0, [r1, 0xA]
-_080A71D0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A70DC
-
- thumb_func_start sub_80A71D8
-sub_80A71D8: @ 80A71D8
- push {r4,r5,lr}
- adds r4, r0, 0
- bl SetSpriteCoordsToAnimAttackerCoords
- ldr r0, _080A71FC @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A7204
- ldr r0, _080A7200 @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080A7210
- .align 2, 0
-_080A71FC: .4byte gBattleAnimAttacker
-_080A7200: .4byte gBattleAnimArgs
-_080A7204:
- ldr r1, _080A7244 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r5, r1, 0
-_080A7210:
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080A7248 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A724C
- adds r3, r4, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x1
- adds r2, r0, 0
- orrs r2, r1
- strb r2, [r3]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080A7260
- movs r0, 0x2
- orrs r2, r0
- strb r2, [r3]
- b _080A7260
- .align 2, 0
-_080A7244: .4byte gBattleAnimArgs
-_080A7248: .4byte gBattleAnimAttacker
-_080A724C:
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080A7260
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_080A7260:
- ldr r0, _080A7274 @ =RunStoredCallbackWhenAnimEnds
- str r0, [r4, 0x1C]
- ldr r1, _080A7278 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7274: .4byte RunStoredCallbackWhenAnimEnds
-_080A7278: .4byte DestroyAnimSprite
- thumb_func_end sub_80A71D8
-
- thumb_func_start sub_80A727C
-sub_80A727C: @ 80A727C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimAttacker
- ldr r0, _080A7298 @ =RunStoredCallbackWhenAffineAnimEnds
- str r0, [r4, 0x1C]
- ldr r1, _080A729C @ =sub_80A72A0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7298: .4byte RunStoredCallbackWhenAffineAnimEnds
-_080A729C: .4byte sub_80A72A0
- thumb_func_end sub_80A727C
-
- thumb_func_start sub_80A72A0
-sub_80A72A0: @ 80A72A0
- push {lr}
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x36]
- ldr r1, _080A72C0 @ =StartAnimLinearTranslation
- str r1, [r0, 0x1C]
- ldr r1, _080A72C4 @ =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A72C0: .4byte StartAnimLinearTranslation
-_080A72C4: .4byte DestroyAnimSprite
- thumb_func_end sub_80A72A0
-
- thumb_func_start sub_80A72C8
-sub_80A72C8: @ 80A72C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A72EC
- ldr r1, _080A72E8 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080A730E
- .align 2, 0
-_080A72E8: .4byte gBattleAnimArgs
-_080A72EC:
- ldr r0, _080A73B4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A730E
- ldr r1, _080A73B8 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080A730E:
- adds r0, r5, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r4, _080A73BC @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r6, _080A73B8 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- ldrh r1, [r5, 0x20]
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2Neg
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 24
- adds r0, r1
- lsrs r4, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A7380
- ldr r2, _080A73C0 @ =0xffffa000
- adds r0, r4, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080A7380:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl TrySetSpriteRotScale
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- mov r0, r8
- strh r0, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080A73C4 @ =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _080A73C8 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A73B4: .4byte gBattleAnimAttacker
-_080A73B8: .4byte gBattleAnimArgs
-_080A73BC: .4byte gBattleAnimTarget
-_080A73C0: .4byte 0xffffa000
-_080A73C4: .4byte StartAnimLinearTranslation
-_080A73C8: .4byte DestroyAnimSprite
- thumb_func_end sub_80A72C8
-
- thumb_func_start sub_80A73CC
-sub_80A73CC: @ 80A73CC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080A73F6
- ldr r2, _080A73FC @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xA]
- subs r1, 0x1
- strh r1, [r0, 0xA]
- adds r0, r3, 0
- bl DestroySprite
-_080A73F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080A73FC: .4byte gTasks
- thumb_func_end sub_80A73CC
-
- thumb_func_start sub_80A7400
-sub_80A7400: @ 80A7400
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080A7430 @ =gTasks
- adds r4, r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _080A7434
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x38]
- adds r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x36]
- ldrh r3, [r2, 0x3A]
- adds r0, r3
- b _080A7442
- .align 2, 0
-_080A7430: .4byte gTasks
-_080A7434:
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x34]
- subs r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- subs r0, r1
-_080A7442:
- strh r0, [r2, 0x3A]
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x30]
- adds r3, r0, r1
- strh r3, [r2, 0x30]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7466
- lsls r0, r3, 16
- lsrs r0, 24
- negs r0, r0
- b _080A746A
-_080A7466:
- lsls r0, r3, 16
- lsrs r0, 24
-_080A746A:
- strh r0, [r2, 0x24]
- ldrh r1, [r4, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A747E
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080A7482
-_080A747E:
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
-_080A7482:
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080A7498
- movs r0, 0x1E
- strh r0, [r2, 0x2E]
- ldr r0, _080A74A0 @ =sub_80A73CC
- str r0, [r2, 0x1C]
-_080A7498:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A74A0: .4byte sub_80A73CC
- thumb_func_end sub_80A7400
-
- thumb_func_start sub_80A74A4
-sub_80A74A4: @ 80A74A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080A74E8 @ =gTasks
- adds r6, r0, r1
- ldrh r2, [r6, 0x16]
- movs r1, 0x2
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- ldrh r3, [r7, 0x30]
- adds r2, r0, r3
- strh r2, [r7, 0x30]
- ldrh r0, [r6, 0x18]
- ands r1, r0
- ldrh r0, [r7, 0x32]
- adds r1, r0
- strh r1, [r7, 0x32]
- ldrh r1, [r6, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A74EC
- lsls r0, r2, 16
- lsrs r0, 24
- negs r0, r0
- b _080A74F0
- .align 2, 0
-_080A74E8: .4byte gTasks
-_080A74EC:
- lsls r0, r2, 16
- lsrs r0, 24
-_080A74F0:
- strh r0, [r7, 0x24]
- ldrh r1, [r6, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7504
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080A7508
-_080A7504:
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
-_080A7508:
- strh r0, [r7, 0x26]
- ldrh r0, [r7, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r7, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080A75D4
- movs r4, 0
- movs r0, 0x8
- strh r0, [r7, 0x2E]
- movs r0, 0x4
- strh r0, [r6, 0x12]
- movs r0, 0x80
- lsls r0, 5
- bl sub_80D8B90
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r2, r0, r1
- strh r2, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r3, [r7, 0x22]
- adds r0, r3
- strh r0, [r7, 0x22]
- strh r4, [r7, 0x26]
- strh r4, [r7, 0x24]
- ldrh r3, [r6, 0x1E]
- movs r0, 0x1E
- ldrsh r1, [r6, r0]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- blt _080A7552
- subs r0, r3, r2
- b _080A7554
-_080A7552:
- subs r0, r2, r3
-_080A7554:
- lsls r0, 24
- lsrs r4, r0, 16
- ldrh r3, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r7, 0x22]
- movs r6, 0x22
- ldrsh r0, [r7, r6]
- cmp r1, r0
- blt _080A756C
- subs r0, r3, r2
- b _080A756E
-_080A756C:
- subs r0, r2, r3
-_080A756E:
- lsls r0, 24
- lsrs r0, 16
- mov r8, r0
- movs r0, 0
- strh r0, [r7, 0x32]
- strh r0, [r7, 0x30]
- strh r0, [r7, 0x3A]
- strh r0, [r7, 0x38]
- lsls r0, r4, 16
- asrs r0, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r5, 0
- bl sub_80D8AA0
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r6, 0
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- strh r0, [r7, 0x34]
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r5, 0
- bl sub_80D8AA0
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r6, 0
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- strh r0, [r7, 0x36]
- ldr r0, _080A75E0 @ =sub_80A7400
- str r0, [r7, 0x1C]
-_080A75D4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A75E0: .4byte sub_80A7400
- thumb_func_end sub_80A74A4
-
- thumb_func_start sub_80A75E4
-sub_80A75E4: @ 80A75E4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080A7608 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A7602
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080A7602:
- pop {r0}
- bx r0
- .align 2, 0
-_080A7608: .4byte gTasks
- thumb_func_end sub_80A75E4
-
- thumb_func_start sub_80A760C
-sub_80A760C: @ 80A760C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080A7660 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r1, r0, 0x1
- strh r1, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bgt _080A76E0
- ldr r0, _080A7664 @ =gUnknown_83E3C28
- movs r2, 0x1A
- ldrsh r1, [r5, r2]
- movs r3, 0x1C
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0xC]
- ldrb r4, [r5, 0xA]
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r0, 4
- add r0, r12
- lsls r0, 2
- ldr r1, _080A7668 @ =gSprites
- adds r6, r0, r1
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080A766C
- cmp r0, 0x2
- beq _080A7682
- b _080A7690
- .align 2, 0
-_080A7660: .4byte gTasks
-_080A7664: .4byte gUnknown_83E3C28
-_080A7668: .4byte gSprites
-_080A766C:
- ldrb r2, [r6, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x3]
- b _080A7690
-_080A7682:
- ldrb r0, [r6, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r6, 0x3]
-_080A7690:
- ldr r3, _080A76E8 @ =gTasks
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r4, r2, r3
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x14]
- subs r0, r1
- strh r0, [r6, 0x2E]
- strh r7, [r6, 0x3C]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xD
- lsls r0, 1
- adds r0, r2
- adds r3, 0x8
- adds r0, r3
- mov r2, r12
- strh r2, [r0]
- ldrh r0, [r4, 0xE]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r0, 0x3F
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x93
- bl PlaySE12WithPanning
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x2
- ble _080A76E0
- ldr r0, _080A76EC @ =sub_80A75E4
- str r0, [r4]
-_080A76E0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A76E8: .4byte gTasks
-_080A76EC: .4byte sub_80A75E4
- thumb_func_end sub_80A760C
-
- thumb_func_start sub_80A76F0
-sub_80A76F0: @ 80A76F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r9, r0
- movs r5, 0
- mov r0, sp
- mov r1, r9
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x2
- strh r1, [r4]
- bl IsContest
- lsls r0, 24
- mov r10, r4
- cmp r0, 0
- beq _080A775C
- ldr r1, _080A774C @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r3, _080A7750 @ =gBattleAnimArgs
- ldrh r0, [r3]
- negs r0, r0
- strh r0, [r3]
- ldrh r1, [r3, 0x4]
- movs r0, 0x1
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _080A7754
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strh r0, [r3, 0x4]
- b _080A77B6
- .align 2, 0
-_080A774C: .4byte gTasks
-_080A7750: .4byte gBattleAnimArgs
-_080A7754:
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _080A77B6
-_080A775C:
- ldr r1, _080A77A0 @ =gBattlerPositions
- ldr r0, _080A77A4 @ =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0
- bne _080A77B6
- ldr r1, _080A77A8 @ =gTasks
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x10]
- ldr r2, _080A77AC @ =gBattleAnimArgs
- ldrh r0, [r2]
- negs r0, r0
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- negs r0, r0
- strh r0, [r2, 0x2]
- ldrh r1, [r2, 0x4]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080A77B0
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- b _080A77B4
- .align 2, 0
-_080A77A0: .4byte gBattlerPositions
-_080A77A4: .4byte gBattleAnimTarget
-_080A77A8: .4byte gTasks
-_080A77AC: .4byte gBattleAnimArgs
-_080A77B0:
- movs r0, 0x1
- orrs r0, r1
-_080A77B4:
- strh r0, [r2, 0x4]
-_080A77B6:
- ldr r5, _080A7810 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- ldr r1, _080A7814 @ =gTasks
- mov r3, r8
- adds r4, r3, r7
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- adds r6, r0, 0
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- mov r9, r0
- ldr r0, _080A7818 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7820
- ldr r4, _080A781C @ =gBattleAnimTarget
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A7820
- ldrb r0, [r4]
- movs r1, 0
- mov r2, sp
- mov r3, r10
- bl SetAverageBattlerPositions
- b _080A7842
- .align 2, 0
-_080A7810: .4byte gBattleAnimAttacker
-_080A7814: .4byte gTasks
-_080A7818: .4byte gBattleTypeFlags
-_080A781C: .4byte gBattleAnimTarget
-_080A7820:
- mov r5, sp
- ldr r4, _080A787C @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r1, r10
- strh r0, [r1]
-_080A7842:
- mov r4, sp
- ldr r0, _080A7880 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- mov r2, sp
- ldr r3, _080A7884 @ =gBattleAnimArgs
- ldrh r0, [r3]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r1, 0x1E]
- strh r0, [r4]
- ldrh r0, [r3, 0x2]
- mov r3, r10
- ldrh r3, [r3]
- adds r0, r3
- strh r0, [r1, 0x20]
- mov r1, r10
- strh r0, [r1]
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r1, r6, 0
- cmp r0, r1
- blt _080A7888
- subs r0, r2, r1
- b _080A788A
- .align 2, 0
-_080A787C: .4byte gBattleAnimTarget
-_080A7880: .4byte gTasks
-_080A7884: .4byte gBattleAnimArgs
-_080A7888:
- subs r0, r1, r2
-_080A788A:
- lsls r0, 16
- lsrs r0, 16
- lsls r4, r0, 16
- asrs r4, 16
- ldr r5, _080A7900 @ =gBattleAnimArgs
- ldrh r1, [r5, 0x4]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- ldr r2, _080A7904 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r6, r1, r2
- strh r0, [r6, 0x12]
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- movs r1, 0x80
- bl sub_80D8AA0
- strh r0, [r6, 0x14]
- ldrh r0, [r5, 0x4]
- strh r0, [r6, 0x16]
- mov r2, r10
- ldrh r1, [r2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- mov r4, r9
- cmp r0, r4
- blt _080A7908
- subs r4, r1, r4
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- strh r1, [r6, 0x18]
- b _080A7928
- .align 2, 0
-_080A7900: .4byte gBattleAnimArgs
-_080A7904: .4byte gTasks
-_080A7908:
- subs r4, r1
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- bl sub_80D8B90
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_80D8AA0
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r6, 0x18]
-_080A7928:
- ldr r1, _080A7968 @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r4, _080A796C @ =gBattleAnimArgs
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0xE]
- ldrh r1, [r4, 0x8]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080A7978
- movs r0, 0x80
- eors r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080A79A0
- ldr r0, _080A7970 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A7974 @ =0x0000ffc0
- adds r1, r2, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080A79B0
- .align 2, 0
-_080A7968: .4byte gTasks
-_080A796C: .4byte gBattleAnimArgs
-_080A7970: .4byte gBattleAnimTarget
-_080A7974: .4byte 0x0000ffc0
-_080A7978:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080A79A0
- ldr r0, _080A7998 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080A799C @ =0x0000ffc0
- adds r1, r3, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080A79B0
- .align 2, 0
-_080A7998: .4byte gBattleAnimTarget
-_080A799C: .4byte 0x0000ffc0
-_080A79A0:
- ldr r0, _080A79DC @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x8]
- subs r0, r1
-_080A79B0:
- strh r0, [r5, 0xC]
- ldr r0, _080A79E0 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _080A79C8
- movs r0, 0x3
- strh r0, [r1, 0xC]
-_080A79C8:
- ldr r0, _080A79E4 @ =sub_80A760C
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A79DC: .4byte gBattleAnimTarget
-_080A79E0: .4byte gTasks
-_080A79E4: .4byte sub_80A760C
- thumb_func_end sub_80A76F0
-
- thumb_func_start sub_80A79E8
-sub_80A79E8: @ 80A79E8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimAttacker
- ldr r0, _080A7A10 @ =gUnknown_83E3D18
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x2E]
- ldr r0, _080A7A14 @ =sub_80A7A18
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7A10: .4byte gUnknown_83E3D18
-_080A7A14: .4byte sub_80A7A18
- thumb_func_end sub_80A79E8
-
- thumb_func_start sub_80A7A18
-sub_80A7A18: @ 80A7A18
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080A7A7C
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r5, [r4, 0x2E]
- ldr r1, _080A7A84 @ =gPlttBufferFaded
- adds r0, r5, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- adds r6, r1, 0
- adds r1, r5, 0
- adds r1, 0x9
- lsls r0, r5, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- movs r3, 0x7
- lsls r1, 1
- adds r1, r6
-_080A7A50:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080A7A50
- adds r0, r5, 0
- adds r0, 0xF
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- bne _080A7A7C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7A7C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7A84: .4byte gPlttBufferFaded
- thumb_func_end sub_80A7A18
-
- thumb_func_start sub_80A7A88
-sub_80A7A88: @ 80A7A88
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r4, _080A7B28 @ =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
- ldr r4, _080A7B2C @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080A7B30 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A7ACC
- ldrh r0, [r4, 0x4]
- negs r0, r0
- strh r0, [r4, 0x4]
-_080A7ACC:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r1, [r4, 0x4]
- adds r0, r1
- lsls r0, 16
- ldrh r1, [r5, 0x20]
- lsrs r6, r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2Neg
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl TrySetSpriteRotScale
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080A7B34 @ =sub_80756A4
- str r0, [r5, 0x1C]
- ldr r1, _080A7B38 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7B28: .4byte gBattleAnimTarget
-_080A7B2C: .4byte gBattleAnimArgs
-_080A7B30: .4byte gBattleAnimAttacker
-_080A7B34: .4byte sub_80756A4
-_080A7B38: .4byte DestroyAnimSprite
- thumb_func_end sub_80A7A88
-
- thumb_func_start sub_80A7B3C
-sub_80A7B3C: @ 80A7B3C
- ldr r1, _080A7B4C @ =0x0000fff0
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- ldr r1, _080A7B50 @ =sub_80A7B54
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A7B4C: .4byte 0x0000fff0
-_080A7B50: .4byte sub_80A7B54
- thumb_func_end sub_80A7B3C
-
- thumb_func_start sub_80A7B54
-sub_80A7B54: @ 80A7B54
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldr r0, _080A7BC0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A7B78
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_080A7B78:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080A7BB8
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080A7BB8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7BB8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7BC0: .4byte gBattleAnimAttacker
- thumb_func_end sub_80A7B54
-
- thumb_func_start sub_80A7BC4
-sub_80A7BC4: @ 80A7BC4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080A7C10 @ =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, _080A7C14 @ =StartAnimLinearTranslation
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080A7C18 @ =sub_80A7C1C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C10: .4byte gBattleAnimTarget
-_080A7C14: .4byte StartAnimLinearTranslation
-_080A7C18: .4byte sub_80A7C1C
- thumb_func_end sub_80A7BC4
-
- thumb_func_start sub_80A7C1C
-sub_80A7C1C: @ 80A7C1C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x9F
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- movs r2, 0
- movs r1, 0x7
- adds r0, r4, 0
- adds r0, 0x3C
-_080A7C50:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080A7C50
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- ands r0, r1
- ldr r2, _080A7C98 @ =0x0000fff4
- adds r1, r2, 0
- subs r1, r0
- strh r1, [r4, 0x3A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA0
- bl __umodsi3
- adds r0, 0xA0
- strh r0, [r4, 0x3C]
- ldr r0, _080A7C9C @ =sub_80A7CA0
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C98: .4byte 0x0000fff4
-_080A7C9C: .4byte sub_80A7CA0
- thumb_func_end sub_80A7C1C
-
- thumb_func_start sub_80A7CA0
-sub_80A7CA0: @ 80A7CA0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x2E]
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r2, r0, 24
- strh r2, [r4, 0x24]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A7CBE
- negs r0, r2
- strh r0, [r4, 0x24]
-_080A7CBE:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080A7CFE
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A7CFE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7CFE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7CA0
-
- thumb_func_start sub_80A7D04
-sub_80A7D04: @ 80A7D04
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimAttacker
- ldr r0, _080A7D54 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A7D22
- ldrh r0, [r4, 0x22]
- adds r0, 0x10
- strh r0, [r4, 0x22]
-_080A7D22:
- ldr r1, _080A7D58 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080A7D5C @ =TranslateSpriteInCircleOverDuration
- str r0, [r4, 0x1C]
- ldr r1, _080A7D60 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7D54: .4byte gBattleAnimAttacker
-_080A7D58: .4byte gBattleAnimArgs
-_080A7D5C: .4byte TranslateSpriteInCircleOverDuration
-_080A7D60: .4byte DestroyAnimSprite
- thumb_func_end sub_80A7D04
-
- thumb_func_start sub_80A7D64
-sub_80A7D64: @ 80A7D64
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r7, 0x20
- ldr r4, _080A7DE0 @ =0x0000ffe0
- movs r0, 0x10
- mov r8, r0
- ldr r6, _080A7DE4 @ =0x0000fff0
- ldr r0, _080A7DE8 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080A7D90
- adds r7, r4, 0
- movs r4, 0x20
- mov r8, r6
- movs r6, 0x10
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080A7D90:
- lsls r0, r7, 16
- asrs r0, 16
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080A7DEC @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- add r0, r8
- 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, _080A7DF0 @ =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _080A7DF4 @ =sub_80A7DF8
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7DE0: .4byte 0x0000ffe0
-_080A7DE4: .4byte 0x0000fff0
-_080A7DE8: .4byte gBattleAnimArgs
-_080A7DEC: .4byte gBattleAnimTarget
-_080A7DF0: .4byte StartAnimLinearTranslation
-_080A7DF4: .4byte sub_80A7DF8
- thumb_func_end sub_80A7D64
-
- thumb_func_start sub_80A7DF8
-sub_80A7DF8: @ 80A7DF8
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A7E0E
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080A7E0E:
- pop {r0}
- bx r0
- thumb_func_end sub_80A7DF8
-
- thumb_func_start sub_80A7E14
-sub_80A7E14: @ 80A7E14
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r0, 0x20
- mov r8, r0
- ldr r4, _080A7EA8 @ =0x0000ffe0
- movs r2, 0x10
- mov r9, r2
- ldr r6, _080A7EAC @ =0x0000fff0
- ldr r7, _080A7EB0 @ =gBattleAnimArgs
- ldrh r1, [r7]
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- beq _080A7E48
- mov r8, r4
- movs r4, 0x20
- mov r9, r6
- movs r6, 0x10
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
-_080A7E48:
- mov r0, r8
- lsls r1, r0, 16
- asrs r1, 16
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, _080A7EB4 @ =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- add r0, r9
- 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
- adds r0, r6
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldrh r0, [r7]
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x3A]
- ldr r0, _080A7EB8 @ =sub_80A7EBC
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7EA8: .4byte 0x0000ffe0
-_080A7EAC: .4byte 0x0000fff0
-_080A7EB0: .4byte gBattleAnimArgs
-_080A7EB4: .4byte gBattleAnimTarget
-_080A7EB8: .4byte sub_80A7EBC
- thumb_func_end sub_80A7E14
-
- thumb_func_start sub_80A7EBC
-sub_80A7EBC: @ 80A7EBC
- push {r4,lr}
- adds r4, r0, 0
- bl AnimTranslateLinear
- lsls r0, 24
- cmp r0, 0
- beq _080A7F20
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A7F20
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- ldr r0, _080A7F28 @ =0x0000fffe
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- eors r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x36]
- strh r2, [r4, 0x34]
- ldr r0, _080A7F2C @ =sub_80A7F30
- str r0, [r4, 0x1C]
-_080A7F20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7F28: .4byte 0x0000fffe
-_080A7F2C: .4byte sub_80A7F30
- thumb_func_end sub_80A7EBC
-
- thumb_func_start sub_80A7F30
-sub_80A7F30: @ 80A7F30
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A7F48
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080A7F48:
- ldrh r0, [r4, 0x34]
- movs r1, 0x1
- eors r0, r1
- movs r1, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080A7F8A
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- movs r1, 0x1
- eors r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080A7F90 @ =sub_80A7F94
- str r0, [r4, 0x1C]
-_080A7F8A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7F90: .4byte sub_80A7F94
- thumb_func_end sub_80A7F30
-
- thumb_func_start sub_80A7F94
-sub_80A7F94: @ 80A7F94
- push {r4,lr}
- adds r4, r0, 0
- bl AnimTranslateLinear
- lsls r0, 24
- cmp r0, 0
- beq _080A7FA8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A7FA8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7F94
-
- thumb_func_start sub_80A7FB0
-sub_80A7FB0: @ 80A7FB0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl PrepareBattlerSpriteForRotScale
- adds r0, r4, 0
- movs r1, 0xD0
- movs r2, 0xD0
- movs r3, 0
- bl SetSpriteRotScale
- ldr r1, _080A8008 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl SetGreyscaleOrOriginalPalette
- ldr r1, _080A800C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x50
- strh r1, [r0, 0x8]
- ldr r1, _080A8010 @ =sub_80A8014
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8008: .4byte gSprites
-_080A800C: .4byte gTasks
-_080A8010: .4byte sub_80A8014
- thumb_func_end sub_80A7FB0
-
- thumb_func_start sub_80A8014
-sub_80A8014: @ 80A8014
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A806C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A8064
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl ResetSpriteRotScale
- ldr r1, _080A8070 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0x1
- bl SetGreyscaleOrOriginalPalette
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A8064:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A806C: .4byte gTasks
-_080A8070: .4byte gSprites
- thumb_func_end sub_80A8014
-
- thumb_func_start sub_80A8074
-sub_80A8074: @ 80A8074
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A80C0 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x8]
- movs r1, 0
- bl PrepareBattlerSpriteForRotScale
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldr r0, _080A80C4 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r0, _080A80C8 @ =sub_80A80CC
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A80C0: .4byte gTasks
-_080A80C4: .4byte gBattleAnimAttacker
-_080A80C8: .4byte sub_80A80CC
- thumb_func_end sub_80A8074
-
- thumb_func_start sub_80A80CC
-sub_80A80CC: @ 80A80CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A80F0 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080A80E6
- b _080A81F6
-_080A80E6:
- lsls r0, 2
- ldr r1, _080A80F4 @ =_080A80F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A80F0: .4byte gTasks
-_080A80F4: .4byte _080A80F8
- .align 2, 0
-_080A80F8:
- .4byte _080A8110
- .4byte _080A8158
- .4byte _080A818E
- .4byte _080A8194
- .4byte _080A81A4
- .4byte _080A81D8
-_080A8110:
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080A8120
- cmp r0, 0x3
- beq _080A8120
- cmp r0, 0x6
- bne _080A8128
-_080A8120:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80A8200
-_080A8128:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x28
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl SetSpriteRotScale
- ldrb r0, [r4, 0x8]
- bl SetBattlerSpriteYOffsetFromYScale
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080A81F6
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _080A81D0
-_080A8158:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A81F6
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r1, 0x3
- bne _080A816E
- strh r0, [r4, 0xC]
- strh r1, [r4, 0xA]
- b _080A81F6
-_080A816E:
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r2, 0x80
- lsls r2, 1
- strh r2, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- adds r1, r2, 0
- movs r3, 0
- bl SetSpriteRotScale
- ldrb r0, [r4, 0x8]
- bl SetBattlerSpriteYOffsetFromYScale
- movs r0, 0x2
- strh r0, [r4, 0xA]
- b _080A81F6
-_080A818E:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080A81F6
-_080A8194:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _080A81F6
- b _080A81CC
-_080A81A4:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- subs r0, 0x50
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl SetSpriteRotScale
- ldrb r0, [r4, 0x8]
- bl SetBattlerSpriteYOffsetFromYScale
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080A81F6
-_080A81CC:
- movs r0, 0
- strh r0, [r4, 0xC]
-_080A81D0:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080A81F6
-_080A81D8:
- ldrb r0, [r4, 0x8]
- bl ResetSpriteRotScale
- ldr r2, _080A81FC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A81F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A81FC: .4byte gSprites
- thumb_func_end sub_80A80CC
-
- thumb_func_start sub_80A8200
-sub_80A8200: @ 80A8200
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0
- bl CloneBattlerSpriteWithBlend
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- blt _080A82DA
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080A8244
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _080A8240 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- b _080A82DA
- .align 2, 0
-_080A8240: .4byte gSprites
-_080A8244:
- ldr r5, _080A82E8 @ =gSprites
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r4, r3, r5
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- ldrb r0, [r7, 0x16]
- ldrb r1, [r7, 0xE]
- subs r0, r1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r7, 0xE]
- adds r0, 0x1
- strh r0, [r7, 0xE]
- ldrh r0, [r7, 0x14]
- adds r0, 0x1
- strh r0, [r7, 0x14]
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- movs r0, 0x6
- strh r0, [r4, 0x32]
- adds r5, 0x1C
- adds r3, r5
- ldr r0, _080A82EC @ =sub_80A82F0
- str r0, [r3]
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x10
- ldrsh r2, [r7, r1]
- adds r1, r2, 0
- movs r3, 0
- bl SetSpriteRotScale
- ldrb r0, [r4, 0x1]
- movs r3, 0x4
- negs r3, r3
- ands r3, r0
- movs r0, 0x1
- orrs r3, r0
- strb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
-_080A82DA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A82E8: .4byte gSprites
-_080A82EC: .4byte sub_80A82F0
- thumb_func_end sub_80A8200
-
- thumb_func_start sub_80A82F0
-sub_80A82F0: @ 80A82F0
- 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 _080A832E
- ldr r3, _080A8334 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_080A832E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8334: .4byte gTasks
- thumb_func_end sub_80A82F0
-
- thumb_func_start sub_80A8338
-sub_80A8338: @ 80A8338
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080A835C @ =gTasks
- adds r4, r0, r1
- ldr r5, _080A8360 @ =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A8364
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _080A838A
- .align 2, 0
-_080A835C: .4byte gTasks
-_080A8360: .4byte gBattleAnimArgs
-_080A8364:
- ldrb r0, [r5]
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- strh r1, [r4, 0x8]
- strh r2, [r4, 0xA]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- strh r2, [r4, 0xE]
- strh r2, [r4, 0x10]
- ldr r2, _080A8390 @ =gUnknown_83E3E60
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldr r0, _080A8394 @ =sub_80A8398
- str r0, [r4]
-_080A838A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8390: .4byte gUnknown_83E3E60
-_080A8394: .4byte sub_80A8398
- thumb_func_end sub_80A8338
-
- thumb_func_start sub_80A8398
-sub_80A8398: @ 80A8398
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A83BC @ =gTasks
- adds r4, r0, r1
- movs r0, 0xA
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080A8400
- cmp r5, 0x1
- bgt _080A83C0
- cmp r5, 0
- beq _080A83CA
- b _080A84A8
- .align 2, 0
-_080A83BC: .4byte gTasks
-_080A83C0:
- cmp r5, 0x2
- beq _080A8434
- cmp r5, 0x3
- beq _080A8464
- b _080A84A8
-_080A83CA:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- ldrh r2, [r4, 0x10]
- adds r2, 0x3
- strh r2, [r4, 0x10]
- ldr r3, _080A83FC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080A84A8
- strh r5, [r4, 0xE]
- b _080A845C
- .align 2, 0
-_080A83FC: .4byte gSprites
-_080A8400:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- ldr r2, _080A8430 @ =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]
- ldrh r2, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080A84A8
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080A845C
- .align 2, 0
-_080A8430: .4byte gSprites
-_080A8434:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A845C
- ldr r2, _080A8458 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0x10]
- subs r0, 0x2
- strh r0, [r4, 0x10]
- b _080A84A8
- .align 2, 0
-_080A8458: .4byte gSprites
-_080A845C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080A84A8
-_080A8464:
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A84A8
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080A849C
- ldr r2, _080A8498 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _080A84A8
- .align 2, 0
-_080A8498: .4byte gSprites
-_080A849C:
- ldrb r1, [r4, 0x8]
- ldr r2, _080A84B0 @ =gUnknown_83E3E60
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- strh r5, [r4, 0xA]
-_080A84A8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84B0: .4byte gUnknown_83E3E60
- thumb_func_end sub_80A8398
-
- thumb_func_start sub_80A84B4
-sub_80A84B4: @ 80A84B4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A84E4 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A84E8 @ =gUnknown_83E3E80
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldr r0, _080A84EC @ =sub_80A84F0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A84E4: .4byte gTasks
-_080A84E8: .4byte gUnknown_83E3E80
-_080A84EC: .4byte sub_80A84F0
- thumb_func_end sub_80A84B4
-
- thumb_func_start sub_80A84F0
-sub_80A84F0: @ 80A84F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A8518 @ =gTasks
- adds r0, r1
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _080A8510
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A8510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8518: .4byte gTasks
- thumb_func_end sub_80A84F0
-
- thumb_func_start sub_80A851C
-sub_80A851C: @ 80A851C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080A854C @ =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A8550
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080A856A
- .align 2, 0
-_080A854C: .4byte gBattleAnimAttacker
-_080A8550:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x20
- strh r0, [r4, 0x20]
- ldr r0, _080A859C @ =0x0000ffc0
-_080A856A:
- strh r0, [r4, 0x30]
- ldr r0, _080A85A0 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x22]
- movs r0, 0x34
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- strh r1, [r4, 0x36]
- ldr r1, _080A85A4 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A85A8 @ =TranslateSpriteLinearFixedPoint
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A859C: .4byte 0x0000ffc0
-_080A85A0: .4byte gBattleAnimAttacker
-_080A85A4: .4byte DestroyAnimSprite
-_080A85A8: .4byte TranslateSpriteLinearFixedPoint
- thumb_func_end sub_80A851C
-
- thumb_func_start sub_80A85AC
-sub_80A85AC: @ 80A85AC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080A85C0 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A85C8
- ldr r0, _080A85C4 @ =gBattleAnimAttacker
- b _080A85CA
- .align 2, 0
-_080A85C0: .4byte gBattleAnimArgs
-_080A85C4: .4byte gBattleAnimAttacker
-_080A85C8:
- ldr r0, _080A8628 @ =gBattleAnimTarget
-_080A85CA:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A85E4
- ldr r1, _080A862C @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080A85E4:
- adds r0, r5, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, _080A862C @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x4]
- adds r0, r4
- strh r0, [r6, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _080A8616
- movs r0, 0x8
- strh r0, [r6, 0x22]
-_080A8616:
- ldr r1, _080A8630 @ =DestroySpriteAndMatrix
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- ldr r0, _080A8634 @ =RunStoredCallbackWhenAffineAnimEnds
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8628: .4byte gBattleAnimTarget
-_080A862C: .4byte gBattleAnimArgs
-_080A8630: .4byte DestroySpriteAndMatrix
-_080A8634: .4byte RunStoredCallbackWhenAffineAnimEnds
- thumb_func_end sub_80A85AC
-
- thumb_func_start sub_80A8638
-sub_80A8638: @ 80A8638
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A866C @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- strh r1, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r2, _080A8670 @ =gUnknown_83E3F1C
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldr r0, _080A8674 @ =sub_80A8678
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A866C: .4byte gTasks
-_080A8670: .4byte gUnknown_83E3F1C
-_080A8674: .4byte sub_80A8678
- thumb_func_end sub_80A8638
-
- thumb_func_start sub_80A8678
-sub_80A8678: @ 80A8678
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A86A0 @ =gTasks
- adds r0, r1
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _080A8698
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A8698:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A86A0: .4byte gTasks
- thumb_func_end sub_80A8678
-
- thumb_func_start sub_80A86A4
-sub_80A86A4: @ 80A86A4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A8718 @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- movs r0, 0x4
- strh r0, [r4, 0xC]
- movs r0, 0x7
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x10]
- ldr r3, _080A871C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- strh r2, [r4, 0x16]
- strh r2, [r4, 0x18]
- movs r0, 0x2
- strh r0, [r4, 0x1A]
- ldr r0, _080A8720 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A870E
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xC]
-_080A870E:
- ldr r0, _080A8724 @ =sub_80A8728
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8718: .4byte gTasks
-_080A871C: .4byte gSprites
-_080A8720: .4byte gBattleAnimAttacker
-_080A8724: .4byte sub_80A8728
- thumb_func_end sub_80A86A4
-
- thumb_func_start sub_80A8728
-sub_80A8728: @ 80A8728
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A8770 @ =gTasks
- adds r3, r0, r1
- ldrh r0, [r3, 0x16]
- adds r0, 0x1
- strh r0, [r3, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080A878E
- movs r0, 0
- strh r0, [r3, 0x16]
- ldrh r0, [r3, 0x18]
- adds r0, 0x1
- strh r0, [r3, 0x18]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A8778
- ldr r2, _080A8774 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x1A]
- ldrh r2, [r0, 0x22]
- adds r1, r2
- b _080A878C
- .align 2, 0
-_080A8770: .4byte gTasks
-_080A8774: .4byte gSprites
-_080A8778:
- ldr r2, _080A87A0 @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
-_080A878C:
- strh r1, [r0, 0x22]
-_080A878E:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080A87DC
- cmp r0, 0x1
- bgt _080A87A4
- cmp r0, 0
- beq _080A87AA
- b _080A886C
- .align 2, 0
-_080A87A0: .4byte gSprites
-_080A87A4:
- cmp r0, 0x2
- beq _080A880C
- b _080A886C
-_080A87AA:
- ldr r2, _080A87D8 @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080A886C
- movs r0, 0xE
- strh r0, [r3, 0xE]
- movs r0, 0x1
- strh r0, [r3, 0xA]
- b _080A886C
- .align 2, 0
-_080A87D8: .4byte gSprites
-_080A87DC:
- ldr r2, _080A8808 @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- ldrh r2, [r3, 0xC]
- subs r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080A886C
- movs r0, 0x7
- strh r0, [r3, 0xE]
- movs r0, 0x2
- strh r0, [r3, 0xA]
- b _080A886C
- .align 2, 0
-_080A8808: .4byte gSprites
-_080A880C:
- ldr r2, _080A8844 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r5, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080A886C
- ldrh r0, [r3, 0x10]
- subs r0, 0x1
- strh r0, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- beq _080A8848
- movs r0, 0x7
- strh r0, [r3, 0xE]
- strh r1, [r3, 0xA]
- b _080A886C
- .align 2, 0
-_080A8844: .4byte gSprites
-_080A8848:
- ldrh r1, [r3, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A8866
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
- strh r1, [r0, 0x22]
-_080A8866:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A886C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8728
-
- thumb_func_start sub_80A8874
-sub_80A8874: @ 80A8874
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A88C4 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080A88C8 @ =gBattleAnimTarget
- ldrb r0, [r4]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- movs r1, 0
- strh r0, [r5, 0x8]
- movs r0, 0x4
- strh r0, [r5, 0xA]
- strh r1, [r5, 0xC]
- strh r1, [r5, 0xE]
- strh r1, [r5, 0x10]
- strh r1, [r5, 0x12]
- ldrb r0, [r4]
- bl GetBattlerSpriteCoordAttr
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl GetBattlerSpriteBGPriorityRank
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A88D4
- ldr r0, _080A88CC @ =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080A88D0 @ =0x04000014
- b _080A88DC
- .align 2, 0
-_080A88C4: .4byte gTasks
-_080A88C8: .4byte gBattleAnimTarget
-_080A88CC: .4byte gBattle_BG1_X
-_080A88D0: .4byte 0x04000014
-_080A88D4:
- ldr r0, _080A8940 @ =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080A8944 @ =0x04000018
-_080A88DC:
- str r0, [sp]
- ldrh r0, [r5, 0x8]
- adds r1, r0, 0
- subs r1, 0x40
- lsls r2, r1, 16
- lsls r0, 16
- cmp r2, r0
- bgt _080A891A
- ldr r4, _080A8948 @ =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080A88F4:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080A890C
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r1]
-_080A890C:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- cmp r1, r0
- ble _080A88F4
-_080A891A:
- ldr r0, _080A894C @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- ldr r0, _080A8950 @ =sub_80A8954
- str r0, [r5]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8940: .4byte gBattle_BG2_X
-_080A8944: .4byte 0x04000018
-_080A8948: .4byte gScanlineEffectRegBuffers
-_080A894C: .4byte 0xa2600001
-_080A8950: .4byte sub_80A8954
- thumb_func_end sub_80A8874
-
- thumb_func_start sub_80A8954
-sub_80A8954: @ 80A8954
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A8974 @ =gTasks
- adds r3, r0, r1
- movs r1, 0x10
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080A8978
- cmp r0, 0x1
- beq _080A898E
- b _080A8A0E
- .align 2, 0
-_080A8974: .4byte gTasks
-_080A8978:
- ldrh r0, [r3, 0x12]
- adds r0, 0x1
- strh r0, [r3, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080A8A0E
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
- b _080A8A0E
-_080A898E:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A8A0E
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xE]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- subs r0, r1
- strh r0, [r3, 0x12]
- movs r2, 0xC
- ldrsh r1, [r3, r2]
- cmp r1, 0x1
- beq _080A89C4
- cmp r1, 0x1
- ble _080A89CC
- cmp r1, 0x2
- beq _080A89C8
- cmp r1, 0x3
- beq _080A89C8
- b _080A89CC
-_080A89C4:
- subs r0, 0x2
- b _080A89CA
-_080A89C8:
- adds r0, 0x1
-_080A89CA:
- strh r0, [r3, 0x12]
-_080A89CC:
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- cmp r0, 0
- blt _080A89F0
- ldr r2, _080A8A14 @ =gScanlineEffectRegBuffers
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 1
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
-_080A89F0:
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _080A8A0E
- ldr r1, _080A8A18 @ =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A8A0E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A14: .4byte gScanlineEffectRegBuffers
-_080A8A18: .4byte gScanlineEffect
- thumb_func_end sub_80A8954
-
- thumb_func_start sub_80A8A1C
-sub_80A8A1C: @ 80A8A1C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080A8A70 @ =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- movs r0, 0x10
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x36]
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoordAttr
- adds r0, 0x2
- strh r0, [r4, 0x38]
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x3A]
- ldr r0, _080A8A74 @ =sub_80A8A78
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8A70: .4byte gBattleAnimTarget
-_080A8A74: .4byte sub_80A8A78
- thumb_func_end sub_80A8A1C
-
- thumb_func_start sub_80A8A78
-sub_80A8A78: @ 80A8A78
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080A8ADC
- cmp r1, 0x1
- bgt _080A8A8E
- cmp r1, 0
- beq _080A8A94
- b _080A8BBC
-_080A8A8E:
- cmp r1, 0x2
- beq _080A8B6E
- b _080A8BBC
-_080A8A94:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A8ABE
- strh r1, [r4, 0x32]
- 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]
-_080A8ABE:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A8BBC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- b _080A8B66
-_080A8ADC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A8B22
- ldrh r2, [r4, 0x32]
- movs r3, 0x32
- ldrsh r1, [r4, r3]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080A8B22
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080A8B22
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC6
- bl PlaySE12WithPanning
-_080A8B22:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- adds r1, r0, r2
- strh r1, [r4, 0x36]
- lsls r0, r1, 16
- asrs r2, r0, 16
- cmp r2, 0x1F
- ble _080A8B36
- movs r0, 0x40
- b _080A8B44
-_080A8B36:
- movs r0, 0x20
- negs r0, r0
- cmp r2, r0
- bgt _080A8B50
- movs r2, 0x40
- negs r2, r2
- adds r0, r2, 0
-_080A8B44:
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- negs r0, r0
- strh r0, [r4, 0x34]
-_080A8B50:
- ldrh r0, [r4, 0x36]
- movs r2, 0
- strh r0, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080A8BBC
- strh r2, [r4, 0x30]
- strh r2, [r4, 0x32]
-_080A8B66:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080A8BBC
-_080A8B6E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A8B9A
- movs r0, 0
- strh r0, [r4, 0x32]
- 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]
-_080A8B9A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080A8BBC
- 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
- bl DestroyAnimSprite
-_080A8BBC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8A78
-
- thumb_func_start sub_80A8BC4
-sub_80A8BC4: @ 80A8BC4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r5, 0
- mov r0, sp
- strh r5, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r5, [r1]
- ldr r0, _080A8BE8 @ =gBattleAnimArgs
- movs r3, 0x4
- ldrsh r2, [r0, r3]
- adds r7, r1, 0
- adds r1, r0, 0
- cmp r2, 0
- bne _080A8BF0
- ldr r0, _080A8BEC @ =gBattleAnimAttacker
- b _080A8BF2
- .align 2, 0
-_080A8BE8: .4byte gBattleAnimArgs
-_080A8BEC: .4byte gBattleAnimAttacker
-_080A8BF0:
- ldr r0, _080A8C2C @ =gBattleAnimTarget
-_080A8BF2:
- ldrb r5, [r0]
- ldrb r1, [r1, 0x6]
- movs r0, 0x1
- adds r4, r0, 0
- eors r4, r1
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080A8C6A
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A8C6A
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl SetAverageBattlerPositions
- cmp r4, 0
- bne _080A8C30
- adds r0, r5, 0
- movs r1, 0
- b _080A8C34
- .align 2, 0
-_080A8C2C: .4byte gBattleAnimTarget
-_080A8C30:
- adds r0, r5, 0
- movs r1, 0x2
-_080A8C34:
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A8C60
- ldr r2, _080A8C5C @ =gBattleAnimArgs
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r4
- ldrh r0, [r2]
- subs r1, r0
- subs r0, r1
- strh r0, [r2]
- b _080A8C6A
- .align 2, 0
-_080A8C5C: .4byte gBattleAnimArgs
-_080A8C60:
- ldr r1, _080A8C7C @ =gBattleAnimArgs
- mov r0, sp
- ldrh r0, [r0]
- subs r0, r4
- strh r0, [r1]
-_080A8C6A:
- ldr r1, _080A8C80 @ =AnimSpriteOnMonPos
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8C7C: .4byte gBattleAnimArgs
-_080A8C80: .4byte AnimSpriteOnMonPos
- thumb_func_end sub_80A8BC4
-
- thumb_func_start sub_80A8C84
-sub_80A8C84: @ 80A8C84
- push {r4,lr}
- adds r4, r0, 0
- bl AnimTranslateLinear
- lsls r0, 24
- cmp r0, 0
- beq _080A8C9E
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A8C9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A8C84
-
- thumb_func_start sub_80A8CA4
-sub_80A8CA4: @ 80A8CA4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r6, 0
- mov r0, sp
- strh r6, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r6, [r1]
- ldr r0, _080A8CD0 @ =gBattleAnimArgs
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080A8CDC
- ldr r0, _080A8CD4 @ =gBattleAnimAttacker
- ldrb r7, [r0]
- ldr r0, _080A8CD8 @ =gBattleAnimTarget
- b _080A8CE2
- .align 2, 0
-_080A8CD0: .4byte gBattleAnimArgs
-_080A8CD4: .4byte gBattleAnimAttacker
-_080A8CD8: .4byte gBattleAnimTarget
-_080A8CDC:
- ldr r0, _080A8CFC @ =gBattleAnimTarget
- ldrb r7, [r0]
- ldr r0, _080A8D00 @ =gBattleAnimAttacker
-_080A8CE2:
- ldrb r0, [r0]
- mov r8, r0
- ldr r0, _080A8D04 @ =gBattleAnimArgs
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080A8D08
- movs r0, 0
- mov r10, r0
- movs r1, 0x1
- str r1, [sp, 0x4]
- b _080A8D10
- .align 2, 0
-_080A8CFC: .4byte gBattleAnimTarget
-_080A8D00: .4byte gBattleAnimAttacker
-_080A8D04: .4byte gBattleAnimArgs
-_080A8D08:
- movs r2, 0x2
- mov r10, r2
- movs r3, 0x3
- str r3, [sp, 0x4]
-_080A8D10:
- adds r0, r7, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A8D6C
- adds r0, r7, 0
- mov r1, r10
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r1, _080A8D50 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x2
- mov r4, r8
- eors r4, r0
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A8D5C
- ldr r2, _080A8D54 @ =gSprites
- ldr r0, _080A8D58 @ =gBattlerSpriteIds
- adds r0, r4, r0
- b _080A8DEA
- .align 2, 0
-_080A8D50: .4byte gBattleAnimArgs
-_080A8D54: .4byte gSprites
-_080A8D58: .4byte gBattlerSpriteIds
-_080A8D5C:
- ldr r2, _080A8D64 @ =gSprites
- ldr r0, _080A8D68 @ =gBattlerSpriteIds
- add r0, r8
- b _080A8DEA
- .align 2, 0
-_080A8D64: .4byte gSprites
-_080A8D68: .4byte gBattlerSpriteIds
-_080A8D6C:
- adds r0, r7, 0
- mov r1, r10
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A8DD4 @ =gBattleAnimArgs
- ldrh r1, [r1]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A8DE4
- movs r0, 0x2
- adds r4, r7, 0
- eors r4, r0
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A8DE4
- ldr r3, _080A8DD8 @ =gSprites
- ldr r2, _080A8DDC @ =gBattlerSpriteIds
- adds r0, r7, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r3
- adds r2, r4, r2
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- movs r3, 0x20
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080A8DE0
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
- b _080A8DFA
- .align 2, 0
-_080A8DD4: .4byte gBattleAnimArgs
-_080A8DD8: .4byte gSprites
-_080A8DDC: .4byte gBattlerSpriteIds
-_080A8DE0:
- adds r0, r6, 0
- b _080A8DF4
-_080A8DE4:
- ldr r2, _080A8E40 @ =gSprites
- ldr r0, _080A8E44 @ =gBattlerSpriteIds
- adds r0, r7, r0
-_080A8DEA:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
-_080A8DF4:
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
-_080A8DFA:
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, _080A8E48 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A8E4C
- movs r1, 0x2
- mov r0, r8
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080A8E4C
- ldrb r1, [r4, 0xC]
- mov r0, r8
- mov r2, sp
- mov r3, sp
- adds r3, 0x2
- bl SetAverageBattlerPositions
- b _080A8E6C
- .align 2, 0
-_080A8E40: .4byte gSprites
-_080A8E44: .4byte gBattlerSpriteIds
-_080A8E48: .4byte gBattleAnimArgs
-_080A8E4C:
- mov r4, sp
- mov r0, r8
- mov r1, r10
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- mov r0, r8
- ldr r1, [sp, 0x4]
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r2, sp
- strh r0, [r2, 0x2]
-_080A8E6C:
- mov r0, r8
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A8E90
- mov r3, sp
- mov r2, sp
- ldr r1, _080A8E8C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r3]
- adds r2, r1, 0
- b _080A8E9E
- .align 2, 0
-_080A8E8C: .4byte gBattleAnimArgs
-_080A8E90:
- mov r3, sp
- mov r0, sp
- ldr r2, _080A8EE0 @ =gBattleAnimArgs
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r3]
-_080A8E9E:
- ldrh r1, [r2, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0x2]
- adds r1, r3
- mov r0, sp
- strh r1, [r0, 0x2]
- mov r3, r9
- strh r3, [r5, 0x30]
- strh r3, [r5, 0x20]
- strh r6, [r5, 0x34]
- strh r6, [r5, 0x22]
- ldrh r0, [r0]
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x36]
- ldrh r0, [r2]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldr r1, _080A8EE4 @ =sub_80A8C84
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8EE0: .4byte gBattleAnimArgs
-_080A8EE4: .4byte sub_80A8C84
- thumb_func_end sub_80A8CA4
-
- thumb_func_start sub_80A8EE8
-sub_80A8EE8: @ 80A8EE8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A8F28 @ =0x000027db
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080A8F0E
- lsls r0, 20
- ldr r1, _080A8F2C @ =0x01010000
- adds r0, r1
- lsrs r0, 16
- ldr r1, _080A8F30 @ =gBattleAnimArgs
- ldrb r2, [r1, 0xA]
- ldrh r3, [r1, 0x8]
- movs r1, 0xF
- bl BlendPalette
-_080A8F0E:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080A8F34 @ =AnimSpriteOnMonPos
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8F28: .4byte 0x000027db
-_080A8F2C: .4byte 0x01010000
-_080A8F30: .4byte gBattleAnimArgs
-_080A8F34: .4byte AnimSpriteOnMonPos
- thumb_func_end sub_80A8EE8
-
- thumb_func_start sub_80A8F38
-sub_80A8F38: @ 80A8F38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimAttacker
- ldr r0, _080A8F6C @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080A8F54
- ldr r1, _080A8F70 @ =0x0000ff60
-_080A8F54:
- movs r0, 0xE0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, _080A8F74 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080A8F78 @ =sub_80A8F7C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8F6C: .4byte gBattleAnimAttacker
-_080A8F70: .4byte 0x0000ff60
-_080A8F74: .4byte gBattleAnimArgs
-_080A8F78: .4byte sub_80A8F7C
- thumb_func_end sub_80A8F38
-
- thumb_func_start sub_80A8F7C
-sub_80A8F7C: @ 80A8F7C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- subs r1, r0
- movs r5, 0
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- subs r2, 0x20
- strh r2, [r4, 0x2E]
- ldr r0, _080A8FE8 @ =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080A8FAC
- ldr r1, _080A8FEC @ =0x0000ff60
-_080A8FAC:
- lsls r0, r1, 16
- asrs r0, 16
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x26]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080A8FE0
- ldrh r2, [r4, 0x22]
- adds r0, r1, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _080A8FF0 @ =sub_80A8FF4
- str r0, [r4, 0x1C]
-_080A8FE0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A8FE8: .4byte gBattleAnimAttacker
-_080A8FEC: .4byte 0x0000ff60
-_080A8FF0: .4byte sub_80A8FF4
- thumb_func_end sub_80A8F7C
-
- thumb_func_start sub_80A8FF4
-sub_80A8FF4: @ 80A8FF4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080A9012
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080A9018 @ =sub_80A901C
- str r0, [r4, 0x1C]
-_080A9012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9018: .4byte sub_80A901C
- thumb_func_end sub_80A8FF4
-
- thumb_func_start sub_80A901C
-sub_80A901C: @ 80A901C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080A9082
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9068
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _080A905C @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080A9060 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080A9064 @ =sub_80A9094
- b _080A9080
- .align 2, 0
-_080A905C: .4byte 0x000003ff
-_080A9060: .4byte 0xfffffc00
-_080A9064: .4byte sub_80A9094
-_080A9068:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r3, _080A9088 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080A908C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080A9090 @ =sub_80A911C
-_080A9080:
- str r0, [r4, 0x1C]
-_080A9082:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9088: .4byte 0x000003ff
-_080A908C: .4byte 0xfffffc00
-_080A9090: .4byte sub_80A911C
- thumb_func_end sub_80A901C
-
- thumb_func_start sub_80A9094
-sub_80A9094: @ 80A9094
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x26]
- subs r0, 0x2
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _080A90CA
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x2E]
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, _080A90D0 @ =sub_80A90D4
- str r0, [r4, 0x1C]
-_080A90CA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A90D0: .4byte sub_80A90D4
- thumb_func_end sub_80A9094
-
- thumb_func_start sub_80A90D4
-sub_80A90D4: @ 80A90D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080A9112
- ldrh r1, [r4, 0x2E]
- subs r1, 0x1
- strh r1, [r4, 0x2E]
- 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, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9112
- ldr r0, _080A9118 @ =sub_80A911C
- str r0, [r4, 0x1C]
-_080A9112:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9118: .4byte sub_80A911C
- thumb_func_end sub_80A90D4
-
- thumb_func_start sub_80A911C
-sub_80A911C: @ 80A911C
- push {lr}
- adds r3, r0, 0
- ldr r0, _080A9144 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080A9148 @ =0x0000ffff
- cmp r1, r0
- bne _080A9154
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080A9150
- ldr r0, _080A914C @ =sub_80A915C
- b _080A9152
- .align 2, 0
-_080A9144: .4byte gBattleAnimArgs
-_080A9148: .4byte 0x0000ffff
-_080A914C: .4byte sub_80A915C
-_080A9150:
- ldr r0, _080A9158 @ =DestroyAnimSprite
-_080A9152:
- str r0, [r3, 0x1C]
-_080A9154:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9158: .4byte DestroyAnimSprite
- thumb_func_end sub_80A911C
-
- thumb_func_start sub_80A915C
-sub_80A915C: @ 80A915C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A915C
-
- thumb_func_start sub_80A917C
-sub_80A917C: @ 80A917C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A91AC @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, _080A91B0 @ =gUnknown_83E4128
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldr r0, _080A91B4 @ =sub_80A91B8
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A91AC: .4byte gTasks
-_080A91B0: .4byte gUnknown_83E4128
-_080A91B4: .4byte sub_80A91B8
- thumb_func_end sub_80A917C
-
- thumb_func_start sub_80A91B8
-sub_80A91B8: @ 80A91B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9208 @ =gTasks
- adds r4, r0, r1
- adds r0, r4, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080A9202
- ldr r2, _080A920C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A9202:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9208: .4byte gTasks
-_080A920C: .4byte gSprites
- thumb_func_end sub_80A91B8
-
- thumb_func_start sub_80A9210
-sub_80A9210: @ 80A9210
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A9244 @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x20]
- ldr r0, _080A9248 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080A9250
- ldr r0, _080A924C @ =0x0000ffff
- strh r0, [r4, 0x22]
- movs r0, 0x8
- b _080A9256
- .align 2, 0
-_080A9244: .4byte gTasks
-_080A9248: .4byte gBattleAnimTarget
-_080A924C: .4byte 0x0000ffff
-_080A9250:
- movs r0, 0x1
- strh r0, [r4, 0x22]
- ldr r0, _080A9270 @ =0x0000fff8
-_080A9256:
- strh r0, [r4, 0x24]
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080A9274 @ =sub_80A9278
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9270: .4byte 0x0000fff8
-_080A9274: .4byte sub_80A9278
- thumb_func_end sub_80A9210
-
- thumb_func_start sub_80A9278
-sub_80A9278: @ 80A9278
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A929C @ =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- cmp r4, 0x1
- beq _080A92CC
- cmp r4, 0x1
- bgt _080A92A0
- cmp r4, 0
- beq _080A92AA
- b _080A9392
- .align 2, 0
-_080A929C: .4byte gTasks
-_080A92A0:
- cmp r4, 0x2
- beq _080A9348
- cmp r4, 0x3
- beq _080A9362
- b _080A9392
-_080A92AA:
- ldr r2, _080A92C8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- strh r4, [r3, 0xA]
- strh r4, [r3, 0xC]
- strh r4, [r3, 0xE]
- b _080A935A
- .align 2, 0
-_080A92C8: .4byte gSprites
-_080A92CC:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A9392
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- ands r0, r4
- lsls r0, 16
- cmp r0, 0
- beq _080A9304
- ldr r2, _080A9300 @ =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- adds r1, 0x6
- b _080A9316
- .align 2, 0
-_080A9300: .4byte gSprites
-_080A9304:
- ldr r2, _080A9344 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- subs r1, 0x6
-_080A9316:
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080A9392
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A935A
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- subs r0, 0x6
- strh r0, [r1, 0x24]
- b _080A935A
- .align 2, 0
-_080A9344: .4byte gSprites
-_080A9348:
- ldrh r0, [r3, 0x20]
- subs r0, 0x1
- strh r0, [r3, 0x20]
- lsls r0, 16
- cmp r0, 0
- beq _080A935A
- movs r0, 0
- strh r0, [r3, 0x8]
- b _080A9392
-_080A935A:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080A9392
-_080A9362:
- ldr r2, _080A9398 @ =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r4, [r0, 0x24]
- adds r1, r4
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080A9392
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A9392:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9398: .4byte gSprites
- thumb_func_end sub_80A9278
-
- thumb_func_start sub_80A939C
-sub_80A939C: @ 80A939C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A93D8 @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r0, 0xE
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080A93DC @ =sub_80A93E0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A93D8: .4byte gTasks
-_080A93DC: .4byte sub_80A93E0
- thumb_func_end sub_80A939C
-
- thumb_func_start sub_80A93E0
-sub_80A93E0: @ 80A93E0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080A9434 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080A94A6
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _080A94A6
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A943C
- ldr r3, _080A9438 @ =gSprites
- movs r6, 0x26
- ldrsh r1, [r4, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _080A9452
- .align 2, 0
-_080A9434: .4byte gTasks
-_080A9438: .4byte gSprites
-_080A943C:
- ldr r3, _080A9484 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_080A9452:
- strb r1, [r0]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x22
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080A94A6
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x24
- ldrsh r1, [r4, r6]
- cmp r0, r1
- bge _080A9488
- strh r2, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0xE]
- b _080A94A6
- .align 2, 0
-_080A9484: .4byte gSprites
-_080A9488:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A94A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A93E0
-
- thumb_func_start sub_80A94AC
-sub_80A94AC: @ 80A94AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080A94FC @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- movs r1, 0x4
- strh r1, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- strh r0, [r4, 0x12]
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- strh r0, [r4, 0x18]
- strh r0, [r4, 0x22]
- ldr r5, _080A9500 @ =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080A9504 @ =sub_80A9508
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A94FC: .4byte gTasks
-_080A9500: .4byte gBattleAnimAttacker
-_080A9504: .4byte sub_80A9508
- thumb_func_end sub_80A94AC
-
- thumb_func_start sub_80A9508
-sub_80A9508: @ 80A9508
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080A952C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x18
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080A9574
- cmp r2, 0x1
- bgt _080A9530
- cmp r2, 0
- beq _080A9536
- b _080A9590
- .align 2, 0
-_080A952C: .4byte gTasks
-_080A9530:
- cmp r2, 0x2
- beq _080A958C
- b _080A9590
-_080A9536:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080A9590
- strh r2, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080A9590
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A956E
- strh r2, [r4, 0x14]
- movs r0, 0x1
- strh r0, [r4, 0x18]
- b _080A9590
-_080A956E:
- movs r0, 0x2
- strh r0, [r4, 0x18]
- b _080A9590
-_080A9574:
- movs r1, 0
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080A9590
- strh r2, [r4, 0x16]
- strh r1, [r4, 0x18]
- b _080A9590
-_080A958C:
- movs r0, 0x1
- strh r0, [r4, 0x12]
-_080A9590:
- movs r2, 0x8
- ldrsh r5, [r4, r2]
- cmp r5, 0
- beq _080A959E
- cmp r5, 0x1
- beq _080A9634
- b _080A9642
-_080A959E:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080A9642
- strh r5, [r4, 0xA]
- ldr r0, _080A9628 @ =gUnknown_83E4154
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080A9642
- ldr r0, _080A962C @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- strh r6, [r1, 0x2E]
- movs r0, 0xD
- strh r0, [r1, 0x30]
- ldr r2, _080A9630 @ =gUnknown_83E416C
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x24]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080A9642
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080A9642
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080A9642
- .align 2, 0
-_080A9628: .4byte gUnknown_83E4154
-_080A962C: .4byte gSprites
-_080A9630: .4byte gUnknown_83E416C
-_080A9634:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9642
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A9642:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9508
-
- thumb_func_start sub_80A9648
-sub_80A9648: @ 80A9648
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _080A96B0 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r2, 0x1
- ldrb r1, [r0, 0x12]
- ands r1, r2
- lsls r1, 2
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A96AA
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x8
- adds r1, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r3, 0
- bl DestroySprite
-_080A96AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A96B0: .4byte gTasks
- thumb_func_end sub_80A9648
-
- thumb_func_start sub_80A96B4
-sub_80A96B4: @ 80A96B4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080A9750 @ =0x000027de
- bl IndexOfSpritePaletteTag
- mov r1, sp
- strb r0, [r1]
- movs r4, 0x1
- ldr r0, _080A9754 @ =0x00002710
- adds r5, r0, 0
-_080A96CC:
- subs r0, r5, r4
- lsls r0, 16
- lsrs r0, 16
- bl AllocSpritePalette
- mov r2, sp
- adds r1, r2, r4
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x2
- ble _080A96CC
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- adds r1, r0, 0
- ldr r0, _080A9758 @ =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r2, 0xBE
- lsls r2, 1
- adds r0, r2
- str r1, [r0]
- ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette
- bl LZDecompressWram
- movs r4, 0
-_080A9700:
- ldr r5, _080A9758 @ =gMonSpritesGfxPtr
- ldr r0, [r5]
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r1
- lsls r1, r4, 6
- ldr r0, [r0]
- adds r0, r1
- mov r2, sp
- adds r1, r2, r4
- ldrb r1, [r1]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x1
- cmp r4, 0x2
- ble _080A9700
- ldr r0, [r5]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- ldr r0, [r0]
- bl Free
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9750: .4byte 0x000027de
-_080A9754: .4byte 0x00002710
-_080A9758: .4byte gMonSpritesGfxPtr
-_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette
- thumb_func_end sub_80A96B4
-
- thumb_func_start sub_80A9760
-sub_80A9760: @ 80A9760
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080A9784 @ =gUnknown_83E41C8
- movs r4, 0x2
-_080A976A:
- ldrh r0, [r5]
- bl FreeSpritePaletteByTag
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080A976A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9784: .4byte gUnknown_83E41C8
- thumb_func_end sub_80A9760
-
- thumb_func_start sub_80A9788
-sub_80A9788: @ 80A9788
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- movs r0, 0x1
- ands r3, r0
- negs r0, r3
- orrs r0, r3
- asrs r0, 31
- movs r3, 0x20
- ands r0, r3
- ldrh r4, [r5, 0x4]
- lsls r3, r4, 22
- lsrs r3, 22
- lsrs r1, 22
- adds r0, r1
- adds r3, r0
- ldr r1, _080A97DC @ =0x000003ff
- adds r0, r1, 0
- ands r3, r0
- ldr r0, _080A97E0 @ =0xfffffc00
- ands r0, r4
- orrs r0, r3
- strh r0, [r5, 0x4]
- ldr r0, _080A97E4 @ =gUnknown_83E41C8
- lsrs r2, 25
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r5, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A97DC: .4byte 0x000003ff
-_080A97E0: .4byte 0xfffffc00
-_080A97E4: .4byte gUnknown_83E41C8
- thumb_func_end sub_80A9788
-
- thumb_func_start sub_80A97E8
-sub_80A97E8: @ 80A97E8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl InitSpritePosToAnimAttacker
- ldr r6, _080A9850 @ =gBattleAnimAttacker
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080A9808
- ldr r1, _080A9854 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080A9808:
- ldr r4, _080A9854 @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r6]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldr r0, _080A9858 @ =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _080A985C @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldrb r1, [r4, 0xA]
- ldrb r2, [r4, 0xC]
- adds r0, r5, 0
- bl sub_80A9788
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9850: .4byte gBattleAnimAttacker
-_080A9854: .4byte gBattleAnimArgs
-_080A9858: .4byte StartAnimLinearTranslation
-_080A985C: .4byte DestroyAnimSprite
- thumb_func_end sub_80A97E8
-
- thumb_func_start sub_80A9860
-sub_80A9860: @ 80A9860
- 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
- bne _080A987A
- adds r0, r4, 0
- movs r1, 0
- bl InitSpritePosToAnimAttacker
-_080A987A:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x32]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x7
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- subs r2, 0x80
- strh r2, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bne _080A98AA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A98AA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9860
-
- thumb_func_start sub_80A98B0
-sub_80A98B0: @ 80A98B0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- bl IsContest
- lsls r0, 24
- movs r6, 0xF0
- cmp r0, 0
- beq _080A98C4
- movs r6, 0x98
-_080A98C4:
- movs r5, 0
- ldr r1, _080A9918 @ =gBattle_WIN0H
- strh r6, [r1]
- ldr r4, _080A991C @ =gBattle_WIN0V
- movs r0, 0xA0
- strh r0, [r4]
- ldrh r1, [r1]
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x44
- bl SetGpuReg
- ldr r1, _080A9920 @ =0x00003f1f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, _080A9924 @ =0x00003f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0xC8
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0x10
- bl SetGpuReg
- ldr r1, _080A9928 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- ldr r1, _080A992C @ =sub_80A9930
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9918: .4byte gBattle_WIN0H
-_080A991C: .4byte gBattle_WIN0V
-_080A9920: .4byte 0x00003f1f
-_080A9924: .4byte 0x00003f3f
-_080A9928: .4byte gTasks
-_080A992C: .4byte sub_80A9930
- thumb_func_end sub_80A98B0
-
- thumb_func_start sub_80A9930
-sub_80A9930: @ 80A9930
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A9964 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x8]
- adds r4, r0, 0
- adds r4, 0xD
- strh r4, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r2, r0, 0
- subs r2, 0xD
- strh r2, [r3, 0xA]
- lsls r1, r4, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _080A9970
- ldr r0, _080A9968 @ =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080A996C @ =sub_80A9984
- str r0, [r3]
- b _080A9978
- .align 2, 0
-_080A9964: .4byte gTasks
-_080A9968: .4byte gBattle_WIN0H
-_080A996C: .4byte sub_80A9984
-_080A9970:
- ldr r1, _080A9980 @ =gBattle_WIN0H
- lsls r0, r4, 8
- orrs r2, r0
- strh r2, [r1]
-_080A9978:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9980: .4byte gBattle_WIN0H
- thumb_func_end sub_80A9930
-
- thumb_func_start sub_80A9984
-sub_80A9984: @ 80A9984
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080A99D0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080A99D8
- movs r0, 0x88
- strh r0, [r1, 0x1E]
- movs r0, 0x50
- movs r1, 0x88
- bl SetGpuReg
- 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
- ldr r2, _080A99D4 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- b _080A9A0C
- .align 2, 0
-_080A99D0: .4byte gTasks
-_080A99D4: .4byte 0x00007fff
-_080A99D8:
- cmp r0, 0x4
- ble _080A9A0C
- ldr r0, _080A9A14 @ =gBattle_WIN0H
- strh r4, [r0]
- ldr r0, _080A9A18 @ =gBattle_WIN0V
- strh r4, [r0]
- ldr r4, _080A9A1C @ =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080A9A0C:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9A14: .4byte gBattle_WIN0H
-_080A9A18: .4byte gBattle_WIN0V
-_080A9A1C: .4byte 0x00003f3f
- thumb_func_end sub_80A9984
-
- thumb_func_start sub_80A9A20
-sub_80A9A20: @ 80A9A20
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A9A70 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A9A7C
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A9A74 @ =gUnknown_83E4200
- adds r0, r5, 0
- bl PrepareAffineAnimInTaskData
- ldr r1, _080A9A78 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080A9AA4
- .align 2, 0
-_080A9A70: .4byte gTasks
-_080A9A74: .4byte gUnknown_83E4200
-_080A9A78: .4byte gSprites
-_080A9A7C:
- ldr r1, _080A9AAC @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A9AA4
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A9AA4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9AAC: .4byte gSprites
- thumb_func_end sub_80A9A20
-
- thumb_func_start sub_80A9AB0
-sub_80A9AB0: @ 80A9AB0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A9B00 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080A9B0C
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080A9B04 @ =gUnknown_83E4200
- adds r0, r5, 0
- bl PrepareAffineAnimInTaskData
- ldr r1, _080A9B08 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080A9B34
- .align 2, 0
-_080A9B00: .4byte gTasks
-_080A9B04: .4byte gUnknown_83E4200
-_080A9B08: .4byte gSprites
-_080A9B0C:
- ldr r1, _080A9B3C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080A9B34
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080A9B34:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9B3C: .4byte gSprites
- thumb_func_end sub_80A9AB0
-
- thumb_func_start sub_80A9B40
-sub_80A9B40: @ 80A9B40
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- movs r0, 0x5F
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080A9B84 @ =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
- ldr r0, _080A9B88 @ =sub_80A9B8C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9B84: .4byte gBattleAnimTarget
-_080A9B88: .4byte sub_80A9B8C
- thumb_func_end sub_80A9B40
-
- thumb_func_start sub_80A9B8C
-sub_80A9B8C: @ 80A9B8C
- push {r4,lr}
- adds r4, r0, 0
- bl AnimTranslateLinear
- lsls r0, 24
- cmp r0, 0
- bne _080A9BB6
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080A9BBC
-_080A9BB6:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A9BBC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9B8C
-
- thumb_func_start sub_80A9BC4
-sub_80A9BC4: @ 80A9BC4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A9BE8
- ldr r1, _080A9BE4 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080A9C44
- .align 2, 0
-_080A9BE4: .4byte gBattleAnimArgs
-_080A9BE8:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _080A9C36
- movs r0, 0x34
- 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]
-_080A9C36:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080A9C44
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A9C44:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9BC4
-
- thumb_func_start sub_80A9C4C
-sub_80A9C4C: @ 80A9C4C
- push {lr}
- ldr r2, _080A9C70 @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- movs r1, 0xA0
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x30]
- ldr r1, _080A9C74 @ =WaitAnimForDuration
- str r1, [r0, 0x1C]
- ldr r1, _080A9C78 @ =sub_80A9C7C
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .align 2, 0
-_080A9C70: .4byte gBattleAnimArgs
-_080A9C74: .4byte WaitAnimForDuration
-_080A9C78: .4byte sub_80A9C7C
- thumb_func_end sub_80A9C4C
-
- thumb_func_start sub_80A9C7C
-sub_80A9C7C: @ 80A9C7C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- lsls r0, 16
- lsrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x48
- bgt _080A9CE2
- movs r0, 0x34
- 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]
- cmp r5, 0x40
- bgt _080A9CE2
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080A9CE2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9C7C
-
- thumb_func_start sub_80A9CE8
-sub_80A9CE8: @ 80A9CE8
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9DA0 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x3
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A9D2A
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080A9D2A:
- ldr r0, _080A9DA4 @ =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080A9DA8 @ =gBattle_BG1_Y
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap
- bl AnimLoadCompressedBgTilemap
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl AnimLoadCompressedBgGfx
- ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A9D88
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080A9D88:
- ldr r0, _080A9DB8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A9DBC @ =sub_80A9DC0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A9DA0: .4byte 0x00003f42
-_080A9DA4: .4byte gBattle_BG1_X
-_080A9DA8: .4byte gBattle_BG1_Y
-_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap
-_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet
-_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette
-_080A9DB8: .4byte gTasks
-_080A9DBC: .4byte sub_80A9DC0
- thumb_func_end sub_80A9CE8
-
- thumb_func_start sub_80A9DC0
-sub_80A9DC0: @ 80A9DC0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A9DE8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080A9DDE
- b _080A9F08
-_080A9DDE:
- lsls r0, 2
- ldr r1, _080A9DEC @ =_080A9DF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A9DE8: .4byte gTasks
-_080A9DEC: .4byte _080A9DF0
- .align 2, 0
-_080A9DF0:
- .4byte _080A9E04
- .4byte _080A9E48
- .4byte _080A9E6A
- .4byte _080A9EAE
- .4byte _080A9ED4
-_080A9E04:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080A9F08
- strh r5, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- 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, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080A9F08
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _080A9F08
-_080A9E48:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8D
- bne _080A9F08
- movs r0, 0x10
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080A9F08
-_080A9E6A:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080A9F08
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080A9F08
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080A9F08
-_080A9EAE:
- mov r0, sp
- bl sub_80752A0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_8075358
- ldr r1, _080A9ED0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- b _080A9F08
- .align 2, 0
-_080A9ED0: .4byte gTasks
-_080A9ED4:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A9EE8
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080A9EE8:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080A9F08:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A9DC0
-
- thumb_func_start sub_80A9F10
-sub_80A9F10: @ 80A9F10
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A9F88 @ =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A9F52
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080A9F52:
- ldr r0, _080A9F8C @ =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080A9F90 @ =gBattle_BG1_Y
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80752A0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A9F98
- ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080A9FC6
- .align 2, 0
-_080A9F88: .4byte 0x00003f42
-_080A9F8C: .4byte gBattle_BG1_X
-_080A9F90: .4byte gBattle_BG1_Y
-_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
-_080A9F98:
- ldr r0, _080A9FB4 @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A9FBC
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
- bl AnimLoadCompressedBgTilemap
- b _080A9FC6
- .align 2, 0
-_080A9FB4: .4byte gBattleAnimTarget
-_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
-_080A9FBC:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
- bl AnimLoadCompressedBgTilemap
-_080A9FC6:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl AnimLoadCompressedBgGfx
- ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A9FFA
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80730C0
-_080A9FFA:
- ldr r0, _080AA01C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080AA020 @ =sub_80AA024
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
-_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
-_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
-_080AA01C: .4byte gTasks
-_080AA020: .4byte sub_80AA024
- thumb_func_end sub_80A9F10
-
- thumb_func_start sub_80AA024
-sub_80AA024: @ 80AA024
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080AA04C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080AA042
- b _080AA168
-_080AA042:
- lsls r0, 2
- ldr r1, _080AA050 @ =_080AA054
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080AA04C: .4byte gTasks
-_080AA050: .4byte _080AA054
- .align 2, 0
-_080AA054:
- .4byte _080AA068
- .4byte _080AA0AC
- .4byte _080AA0CE
- .4byte _080AA112
- .4byte _080AA134
-_080AA068:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080AA168
- strh r5, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- 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, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0xE
- bne _080AA168
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _080AA168
-_080AA0AC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080AA168
- movs r0, 0xE
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080AA168
-_080AA0CE:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080AA168
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080AA168
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080AA168
-_080AA112:
- mov r0, sp
- bl sub_80752A0
- movs r0, 0x1
- bl sub_8075358
- movs r0, 0x2
- bl sub_8075358
- ldr r0, _080AA170 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080AA134:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080AA148
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_080AA148:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AA168:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA170: .4byte gTasks
- thumb_func_end sub_80AA024
-
- thumb_func_start sub_80AA174
-sub_80AA174: @ 80AA174
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080AA1C8 @ =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]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080AA1CC @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- bl GetBattlerSpriteSubpriority
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x3C]
- ldr r1, _080AA1D0 @ =sub_80AA1D4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA1C8: .4byte gBattleAnimAttacker
-_080AA1CC: .4byte gBattleAnimArgs
-_080AA1D0: .4byte sub_80AA1D4
- thumb_func_end sub_80AA174
-
- thumb_func_start sub_80AA1D4
-sub_80AA1D4: @ 80AA1D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080AA1EA
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- b _080AA1EE
-_080AA1EA:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
-_080AA1EE:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- beq _080AA260
- cmp r2, 0x1
- bne _080AA290
- ldr r1, _080AA258 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, _080AA25C @ =0xffffff00
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080AA290
- movs r0, 0x2
- strh r0, [r4, 0x38]
- b _080AA2A0
- .align 2, 0
-_080AA258: .4byte 0xfffffc00
-_080AA25C: .4byte 0xffffff00
-_080AA260:
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080AA290
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
-_080AA290:
- ldr r0, _080AA2A8 @ =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, _080AA2AC @ =0x0000ffff
- cmp r1, r0
- bne _080AA2A0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA2A0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA2A8: .4byte gBattleAnimArgs
-_080AA2AC: .4byte 0x0000ffff
- thumb_func_end sub_80AA1D4
-
- thumb_func_start sub_80AA2B0
-sub_80AA2B0: @ 80AA2B0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080AA2F8 @ =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]
- ldr r4, _080AA2FC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldr r0, _080AA300 @ =sub_80AA304
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA2F8: .4byte gBattleAnimAttacker
-_080AA2FC: .4byte gBattleAnimArgs
-_080AA300: .4byte sub_80AA304
- thumb_func_end sub_80AA2B0
-
- thumb_func_start sub_80AA304
-sub_80AA304: @ 80AA304
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r3, 0x24
- ldrsh r1, [r2, r3]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080AA342
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080AA342
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080AA348
-_080AA342:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA348:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA304
-
- thumb_func_start sub_80AA34C
-sub_80AA34C: @ 80AA34C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _080AA378
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA378:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA34C
-
- thumb_func_start sub_80AA37C
-sub_80AA37C: @ 80AA37C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080AA3C8 @ =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]
- ldr r4, _080AA3CC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x32]
- ldr r0, _080AA3D0 @ =sub_80AA34C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA3C8: .4byte gBattleAnimAttacker
-_080AA3CC: .4byte gBattleAnimArgs
-_080AA3D0: .4byte sub_80AA34C
- thumb_func_end sub_80AA37C
-
- thumb_func_start sub_80AA3D4
-sub_80AA3D4: @ 80AA3D4
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AA3EA
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA3EA:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA3D4
-
- thumb_func_start sub_80AA3F0
-sub_80AA3F0: @ 80AA3F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl InitSpritePosToAnimAttacker
- ldr r0, _080AA404 @ =sub_80AA3D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA404: .4byte sub_80AA3D4
- thumb_func_end sub_80AA3F0
-
- thumb_func_start sub_80AA408
-sub_80AA408: @ 80AA408
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA426
- ldr r0, _080AA498 @ =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]
-_080AA426:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r5, r0, 1
- movs r0, 0xFF
- ands r5, r0
- adds r0, r5, 0
- movs r1, 0x50
- bl Sin
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4F
- bgt _080AA46A
- adds r0, r5, 0
- movs r1, 0x50
- bl Cos
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- lsls r0, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x26]
-_080AA46A:
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0x5A
- ble _080AA488
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
-_080AA488:
- cmp r2, 0x64
- ble _080AA492
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA492:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA498: .4byte gBattleAnimArgs
- thumb_func_end sub_80AA408
-
- thumb_func_start sub_80AA49C
-sub_80AA49C: @ 80AA49C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080AA4F2
- adds r1, r0, 0
- 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]
-_080AA4F2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- ble _080AA500
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA500:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA49C
-
- thumb_func_start sub_80AA508
-sub_80AA508: @ 80AA508
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA52C
- ldr r1, _080AA528 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080AA580
- .align 2, 0
-_080AA528: .4byte gBattleAnimArgs
-_080AA52C:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- movs r5, 0
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x46
- ble _080AA580
- ldr r0, _080AA588 @ =sub_80AA49C
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r0, r2, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x26]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB4
- bl __umodsi3
- strh r0, [r4, 0x34]
-_080AA580:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA588: .4byte sub_80AA49C
- thumb_func_end sub_80AA508
-
- thumb_func_start sub_80AA58C
-sub_80AA58C: @ 80AA58C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA5C6
- ldr r1, _080AA688 @ =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]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _080AA68C @ =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSpriteSubpriority
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080AA5C6:
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r0, r1, 0
- cmp r1, 0
- bge _080AA5DC
- adds r0, 0xFF
-_080AA5DC:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080AA5EE
- movs r0, 0
- strh r0, [r4, 0x30]
-_080AA5EE:
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080AA5FC
- adds r0, 0x3
-_080AA5FC:
- asrs r0, 2
- movs r1, 0x1E
- subs r1, r0
- adds r0, r2, 0
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080AA618
- adds r0, 0x7
-_080AA618:
- asrs r0, 3
- movs r1, 0xA
- subs r1, r0
- adds r0, r2, 0
- bl Sin
- strh r0, [r4, 0x26]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- ble _080AA63C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080AA63C
- ldr r0, _080AA690 @ =0x0000ffff
- strh r0, [r4, 0x32]
-_080AA63C:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA650
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080AA650
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080AA650:
- ldrh r0, [r4, 0x34]
- adds r1, r0, 0x1
- strh r1, [r4, 0x34]
- subs r0, 0x9
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x46
- bls _080AA694
- 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]
- b _080AA6A2
- .align 2, 0
-_080AA688: .4byte gBattleAnimArgs
-_080AA68C: .4byte gBattleAnimTarget
-_080AA690: .4byte 0x0000ffff
-_080AA694:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080AA6A2:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x5A
- ble _080AA6B0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA6B0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA58C
-
- thumb_func_start sub_80AA6B8
-sub_80AA6B8: @ 80AA6B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA6EC
- ldr r1, _080AA6E8 @ =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]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080AA700
- .align 2, 0
-_080AA6E8: .4byte gBattleAnimArgs
-_080AA6EC:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AA700
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA700:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AA6B8
-
- thumb_func_start sub_80AA708
-sub_80AA708: @ 80AA708
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _080AA720 @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080AA724
- adds r0, r5, 0
- bl DestroyAnimSprite
- b _080AA788
- .align 2, 0
-_080AA720: .4byte gBattleAnimArgs
-_080AA724:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080AA734
- ldr r4, _080AA730 @ =gBattleAnimAttacker
- b _080AA736
- .align 2, 0
-_080AA730: .4byte gBattleAnimAttacker
-_080AA734:
- ldr r4, _080AA764 @ =gBattleAnimTarget
-_080AA736:
- 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]
- ldr r0, _080AA768 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _080AA76C
- ldrh r0, [r5, 0x20]
- adds r0, 0x20
- b _080AA770
- .align 2, 0
-_080AA764: .4byte gBattleAnimTarget
-_080AA768: .4byte gBattleAnimArgs
-_080AA76C:
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
-_080AA770:
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080AA790 @ =sub_80AA794
- str r0, [r5, 0x1C]
-_080AA788:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA790: .4byte sub_80AA794
- thumb_func_end sub_80AA708
-
- thumb_func_start sub_80AA794
-sub_80AA794: @ 80AA794
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080AA7C4
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- beq _080AA7BE
- ldrh r1, [r2, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- b _080AA7C4
-_080AA7BE:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA7C4:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA794
-
- thumb_func_start sub_80AA7C8
-sub_80AA7C8: @ 80AA7C8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080AA7FC @ =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080AA800 @ =gTasks
- adds r4, r0
- ldr r2, _080AA804 @ =gUnknown_83E4410
- adds r0, r4, 0
- bl PrepareAffineAnimInTaskData
- ldr r0, _080AA808 @ =sub_80AA80C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA7FC: .4byte gBattleAnimArgs
-_080AA800: .4byte gTasks
-_080AA804: .4byte gUnknown_83E4410
-_080AA808: .4byte sub_80AA80C
- thumb_func_end sub_80AA7C8
-
- thumb_func_start sub_80AA80C
-sub_80AA80C: @ 80AA80C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080AA834 @ =gTasks
- adds r0, r1
- bl RunAffineAnimFromTaskData
- lsls r0, 24
- cmp r0, 0
- bne _080AA82C
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080AA82C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA834: .4byte gTasks
- thumb_func_end sub_80AA80C
-
- thumb_func_start sub_80AA838
-sub_80AA838: @ 80AA838
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080AA84C @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080AA854
- ldr r0, _080AA850 @ =gBattleAnimAttacker
- b _080AA856
- .align 2, 0
-_080AA84C: .4byte gBattleAnimArgs
-_080AA850: .4byte gBattleAnimAttacker
-_080AA854:
- ldr r0, _080AA8EC @ =gBattleAnimTarget
-_080AA856:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080AA870
- ldr r1, _080AA8F0 @ =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080AA870:
- adds r0, r6, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r7, _080AA8F0 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r3, [r7, 0x2]
- adds r0, r3
- movs r4, 0
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x4]
- adds r0, r1
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x2E]
- ldrh r1, [r5, 0x20]
- lsls r1, 3
- strh r1, [r5, 0x30]
- lsls r0, 3
- strh r0, [r5, 0x32]
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r0, 3
- cmp r0, 0
- bge _080AA8B0
- adds r0, 0x7
-_080AA8B0:
- asrs r0, 3
- strh r0, [r5, 0x34]
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- lsls r0, 3
- cmp r0, 0
- bge _080AA8C0
- adds r0, 0x7
-_080AA8C0:
- asrs r0, 3
- strh r0, [r5, 0x36]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- lsls r0, 4
- adds r1, r0
- ldr r3, _080AA8F4 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080AA8F8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080AA8FC @ =sub_80AA900
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA8EC: .4byte gBattleAnimTarget
-_080AA8F0: .4byte gBattleAnimArgs
-_080AA8F4: .4byte 0x000003ff
-_080AA8F8: .4byte 0xfffffc00
-_080AA8FC: .4byte sub_80AA900
- thumb_func_end sub_80AA838
-
- thumb_func_start sub_80AA900
-sub_80AA900: @ 80AA900
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r3, [r2, 0x32]
- adds r1, r3
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080AA934
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080AA934:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA900
-
- thumb_func_start sub_80AA938
-sub_80AA938: @ 80AA938
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080AA95A
- ldr r0, _080AA994 @ =gBattleAnimArgs
- ldrh r1, [r0]
- movs r0, 0x78
- subs r0, r1
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080AA95A:
- 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
- bne _080AA978
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl SetGreyscaleOrOriginalPalette
-_080AA978:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, 0x50
- cmp r1, r0
- bne _080AA98C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AA98C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080AA994: .4byte gBattleAnimArgs
- thumb_func_end sub_80AA938
-
- thumb_func_start sub_80AA998
-sub_80AA998: @ 80AA998
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080AA9C6
- movs r5, 0x78
- strh r5, [r6, 0x20]
- ldr r4, _080AAA48 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- subs r0, 0xF
- strh r0, [r6, 0x22]
- ldrb r1, [r4, 0x2]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x38]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x34]
-_080AA9C6:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r6, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r6, 0x30]
- movs r2, 0x2E
- ldrsh r0, [r6, r2]
- lsls r4, r0, 1
- adds r4, r0
- ldrh r0, [r6, 0x34]
- adds r4, r0
- movs r2, 0xFF
- ldrh r0, [r6, 0x3A]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3A]
- ands r4, r2
- adds r0, r4, 0
- movs r1, 0x64
- bl Cos
- strh r0, [r6, 0x24]
- adds r0, r4, 0
- movs r1, 0xA
- bl Sin
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r1, 0x4
- bl Cos
- ldrh r2, [r6, 0x30]
- adds r4, r2
- adds r0, r4
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x38
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080AAA42
- ldr r0, _080AAA4C @ =sub_80AAA50
- str r0, [r6, 0x1C]
- strh r5, [r6, 0x2E]
- adds r0, r6, 0
- bl SetSpritePrimaryCoordsFromSecondaryCoords
- movs r0, 0x5
- strh r0, [r6, 0x32]
- strh r5, [r6, 0x36]
- strh r5, [r6, 0x34]
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080AAA42:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA48: .4byte gBattleAnimArgs
-_080AAA4C: .4byte sub_80AAA50
- thumb_func_end sub_80AA998
-
- thumb_func_start sub_80AAA50
-sub_80AAA50: @ 80AAA50
- 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, 0xA
- ble _080AAA6A
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080AAA70 @ =sub_80AAA74
- str r0, [r1, 0x1C]
-_080AAA6A:
- pop {r0}
- bx r0
- .align 2, 0
-_080AAA70: .4byte sub_80AAA74
- thumb_func_end sub_80AAA50
-
- thumb_func_start sub_80AAA74
-sub_80AAA74: @ 80AAA74
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- strh r0, [r4, 0x26]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- ble _080AAA9E
- lsls r0, r1, 16
- cmp r0, 0
- ble _080AAA9E
- ldrh r0, [r4, 0x36]
- subs r1, r0, 0x5
- strh r1, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x36]
-_080AAA9E:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _080AAAD0
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- 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]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AAAD0:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _080AAADE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080AAADE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80AAA74
-
- thumb_func_start sub_80AAAE4
-sub_80AAAE4: @ 80AAAE4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080AAB28 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AAB30
- ldr r4, _080AAB2C @ =gBattleAnimAttacker
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080AAB30
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl SetAverageBattlerPositions
- ldrh r0, [r5, 0x22]
- adds r0, 0x28
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080AAB50
- .align 2, 0
-_080AAB28: .4byte gBattleTypeFlags
-_080AAB2C: .4byte gBattleAnimAttacker
-_080AAB30:
- ldr r4, _080AAB70 @ =gBattleAnimAttacker
- 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
- adds r0, 0x28
- strh r0, [r5, 0x22]
-_080AAB50:
- movs r0, 0xD
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- subs r0, 0x48
- strh r0, [r5, 0x36]
- ldr r0, _080AAB74 @ =StartAnimLinearTranslation
- str r0, [r5, 0x1C]
- ldr r1, _080AAB78 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB70: .4byte gBattleAnimAttacker
-_080AAB74: .4byte StartAnimLinearTranslation
-_080AAB78: .4byte DestroyAnimSprite
- thumb_func_end sub_80AAAE4
-
- thumb_func_start sub_80AAB7C
-sub_80AAB7C: @ 80AAB7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080AAB98 @ =gBattleAnimArgs
- ldr r1, _080AAB9C @ =gAnimDisableStructPtr
- ldr r1, [r1]
- ldrb r2, [r1, 0x10]
- movs r1, 0x1
- ands r1, r2
- strh r1, [r3, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080AAB98: .4byte gBattleAnimArgs
-_080AAB9C: .4byte gAnimDisableStructPtr
- thumb_func_end sub_80AAB7C
-
- thumb_func_start update_fury_cutter_counter_copy
-update_fury_cutter_counter_copy: @ 80AABA0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080AABB8 @ =gBattleAnimArgs
- ldr r1, _080AABBC @ =gAnimDisableStructPtr
- ldr r1, [r1]
- ldrb r1, [r1, 0x10]
- strh r1, [r2, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080AABB8: .4byte gBattleAnimArgs
-_080AABBC: .4byte gAnimDisableStructPtr
- thumb_func_end update_fury_cutter_counter_copy
-
- .align 2, 0 @ Don't pad with nop.