Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
1715 lines (1698 sloc) 28.8 KB
.include "constants/gba_constants.inc"
.include "include/macros.inc"
.syntax unified
.text
thumb_func_start sub_81318F0
sub_81318F0: @ 81318F0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r3, _0813193C @ =gBattleAnimArgs
movs r2, 0
strh r2, [r3, 0xE]
ldr r1, _08131940 @ =gAnimFriendship
ldrb r0, [r1]
ldrb r1, [r1]
adds r0, r1, 0
subs r0, 0x3D
lsls r0, 24
lsrs r0, 24
adds r2, r1, 0
cmp r0, 0x1E
bhi _08131914
movs r0, 0x1
strh r0, [r3, 0xE]
_08131914:
adds r0, r2, 0
subs r0, 0x5C
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6C
bhi _08131924
movs r0, 0x2
strh r0, [r3, 0xE]
_08131924:
lsls r0, r1, 24
lsrs r0, 24
cmp r0, 0xC8
bls _08131930
movs r0, 0x3
strh r0, [r3, 0xE]
_08131930:
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813193C: .4byte gBattleAnimArgs
_08131940: .4byte gAnimFriendship
thumb_func_end sub_81318F0
thumb_func_start sub_8131944
sub_8131944: @ 8131944
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r1, _08131974 @ =gTasks
lsls r0, 2
add r0, r8
lsls r0, 3
adds r0, r1
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, 0x4
bls _0813196A
b _08131EA0
_0813196A:
lsls r0, 2
ldr r1, _08131978 @ =_0813197C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08131974: .4byte gTasks
_08131978: .4byte _0813197C
.align 2, 0
_0813197C:
.4byte _08131990
.4byte _08131A44
.4byte _08131C20
.4byte _08131D40
.4byte _08131DC4
_08131990:
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _081319DC @ =gTasks
mov r2, r8
lsls r4, r2, 2
adds r0, r4, r2
lsls r0, 3
adds r6, r0, r1
movs r3, 0x80
lsls r3, 4
adds r0, r3, 0
ldrh r1, [r6, 0xA]
adds r0, r1
strh r0, [r6, 0xA]
ldr r0, _081319E0 @ =gAnimBankAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
mov r9, r4
cmp r0, 0
bne _081319E8
ldr r2, _081319E4 @ =gSprites
lsls r3, r7, 4
adds r1, r3, r7
lsls r1, 2
adds r1, r2
ldrh r0, [r6, 0xA]
lsls r0, 16
asrs r0, 24
ldrh r4, [r1, 0x24]
adds r0, r4
strh r0, [r1, 0x24]
b _08131A02
.align 2, 0
_081319DC: .4byte gTasks
_081319E0: .4byte gAnimBankAttacker
_081319E4: .4byte gSprites
_081319E8:
ldr r3, _08131A3C @ =gSprites
lsls r4, r7, 4
adds r2, r4, r7
lsls r2, 2
adds r2, r3
ldrh r1, [r6, 0xA]
lsls r1, 16
asrs r1, 24
ldrh r0, [r2, 0x24]
subs r0, r1
strh r0, [r2, 0x24]
adds r2, r3, 0
adds r3, r4, 0
_08131A02:
ldr r1, _08131A40 @ =gTasks
mov r0, r9
add r0, r8
lsls r0, 3
adds r4, r0, r1
ldrb r0, [r4, 0xA]
strh r0, [r4, 0xA]
adds r1, r3, r7
lsls r1, 2
adds r1, r2
ldrh r0, [r1, 0x24]
ldrh r1, [r1, 0x20]
adds r0, r1
lsls r0, 16
movs r1, 0x80
lsls r1, 14
adds r0, r1
movs r1, 0x98
lsls r1, 17
cmp r0, r1
bhi _08131A2E
b _08131EA0
_08131A2E:
movs r0, 0
strh r0, [r4, 0xA]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08131EA0
.align 2, 0
_08131A3C: .4byte gSprites
_08131A40: .4byte gTasks
_08131A44:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08131A74
ldr r0, _08131A6C @ =gSharedMem + 0x19348
ldr r2, [r0, 0x8]
mov r10, r2
ldr r3, [r0, 0xC]
mov r9, r3
ldrh r5, [r0]
ldr r0, _08131A70 @ =gAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
lsrs r4, r0, 24
movs r7, 0
b _08131B92
.align 2, 0
_08131A6C: .4byte gSharedMem + 0x19348
_08131A70: .4byte gAnimBankAttacker
_08131A74:
ldr r4, _08131AD4 @ =gAnimBankAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08131B10
ldr r7, _08131AD8 @ =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r7
ldrh r0, [r0]
movs r6, 0x64
muls r0, r6
ldr r5, _08131ADC @ =gPlayerParty
adds r0, r5
movs r1, 0
bl GetMonData
mov r10, r0
ldrb r0, [r4]
lsls r0, 1
adds r0, r7
ldrh r0, [r0]
muls r0, r6
adds r0, r5
movs r1, 0x1
bl GetMonData
mov r9, r0
ldrb r2, [r4]
lsls r1, r2, 2
ldr r0, _08131AE0 @ =gSharedMem + 0x17800
adds r1, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _08131AE4
lsls r0, r2, 1
adds r0, r7
ldrh r0, [r0]
muls r0, r6
adds r0, r5
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
b _08131AE6
.align 2, 0
_08131AD4: .4byte gAnimBankAttacker
_08131AD8: .4byte gBattlerPartyIndexes
_08131ADC: .4byte gPlayerParty
_08131AE0: .4byte gSharedMem + 0x17800
_08131AE4:
ldrh r5, [r1, 0x2]
_08131AE6:
movs r0, 0x1
bl GetAnimBattlerSpriteId
ldr r2, _08131B0C @ =gSprites
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x43
ldrb r0, [r1]
adds r0, 0x1
lsls r0, 24
lsrs r4, r0, 24
movs r7, 0
movs r6, 0x88
lsls r6, 1
b _08131B94
.align 2, 0
_08131B0C: .4byte gSprites
_08131B10:
ldr r7, _08131B64 @ =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r7
ldrh r0, [r0]
movs r6, 0x64
muls r0, r6
ldr r5, _08131B68 @ =gEnemyParty
adds r0, r5
movs r1, 0
bl GetMonData
mov r10, r0
ldrb r0, [r4]
lsls r0, 1
adds r0, r7
ldrh r0, [r0]
muls r0, r6
adds r0, r5
movs r1, 0x1
bl GetMonData
mov r9, r0
ldrb r2, [r4]
lsls r1, r2, 2
ldr r0, _08131B6C @ =gSharedMem + 0x17800
adds r1, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _08131B70
lsls r0, r2, 1
adds r0, r7
ldrh r0, [r0]
muls r0, r6
adds r0, r5
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
b _08131B72
.align 2, 0
_08131B64: .4byte gBattlerPartyIndexes
_08131B68: .4byte gEnemyParty
_08131B6C: .4byte gSharedMem + 0x17800
_08131B70:
ldrh r5, [r1, 0x2]
_08131B72:
movs r0, 0x1
bl GetAnimBattlerSpriteId
ldr r2, _08131C04 @ =gSprites
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x43
ldrb r0, [r1]
subs r0, 0x1
lsls r0, 24
lsrs r4, r0, 24
movs r7, 0x1
_08131B92:
ldr r6, _08131C08 @ =0x0000ffe0
_08131B94:
ldr r0, _08131C0C @ =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
lsls r3, r6, 16
asrs r3, 16
str r0, [sp]
str r4, [sp, 0x4]
mov r4, r10
str r4, [sp, 0x8]
mov r0, r9
str r0, [sp, 0xC]
adds r0, r5, 0
adds r1, r7, 0
movs r2, 0
bl sub_8079F44
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _08131C10 @ =gAnimBankAttacker
ldrb r0, [r0]
lsls r0, 2
ldr r1, _08131C14 @ =gSharedMem + 0x17800
adds r0, r1
ldrh r0, [r0, 0x2]
cmp r0, 0
beq _08131BF2
ldr r1, _08131C04 @ =gSprites
lsls r0, r5, 4
adds r0, r5
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x5]
lsrs r0, 4
lsls r0, 4
movs r2, 0x80
lsls r2, 1
adds r1, r2, 0
orrs r0, r1
ldr r3, _08131C18 @ =0x00007fff
movs r1, 0x10
movs r2, 0x6
bl BlendPalette
_08131BF2:
ldr r0, _08131C1C @ =gTasks
mov r3, r8
lsls r1, r3, 2
add r1, r8
lsls r1, 3
adds r1, r0
strh r5, [r1, 0x26]
b _08131DB6
.align 2, 0
_08131C04: .4byte gSprites
_08131C08: .4byte 0x0000ffe0
_08131C0C: .4byte gAnimBankTarget
_08131C10: .4byte gAnimBankAttacker
_08131C14: .4byte gSharedMem + 0x17800
_08131C18: .4byte 0x00007fff
_08131C1C: .4byte gTasks
_08131C20:
ldr r1, _08131C6C @ =gTasks
mov r0, r8
lsls r4, r0, 2
adds r0, r4, r0
lsls r0, 3
adds r6, r0, r1
ldrh r0, [r6, 0x26]
lsls r0, 24
lsrs r5, r0, 24
movs r1, 0x80
lsls r1, 4
adds r0, r1, 0
ldrh r2, [r6, 0xA]
adds r0, r2
strh r0, [r6, 0xA]
ldr r0, _08131C70 @ =gAnimBankAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
mov r9, r4
cmp r0, 0
bne _08131C78
ldr r3, _08131C74 @ =gSprites
lsls r4, r5, 4
adds r2, r4, r5
lsls r2, 2
adds r2, r3
ldrh r1, [r6, 0xA]
lsls r1, 16
asrs r1, 24
ldrh r0, [r2, 0x24]
subs r0, r1
strh r0, [r2, 0x24]
adds r2, r3, 0
adds r3, r4, 0
b _08131C8E
.align 2, 0
_08131C6C: .4byte gTasks
_08131C70: .4byte gAnimBankAttacker
_08131C74: .4byte gSprites
_08131C78:
ldr r2, _08131CDC @ =gSprites
lsls r3, r5, 4
adds r1, r3, r5
lsls r1, 2
adds r1, r2
ldrh r0, [r6, 0xA]
lsls r0, 16
asrs r0, 24
ldrh r4, [r1, 0x24]
adds r0, r4
strh r0, [r1, 0x24]
_08131C8E:
ldr r1, _08131CE0 @ =gTasks
mov r0, r9
add r0, r8
lsls r0, 3
adds r6, r0, r1
ldrb r0, [r6, 0xA]
strh r0, [r6, 0xA]
adds r1, r3, r5
lsls r1, 2
adds r1, r2
ldrh r0, [r1, 0x24]
ldrh r1, [r1, 0x20]
adds r0, r1
lsls r0, 16
lsrs r5, r0, 16
movs r1, 0x24
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08131D0E
ldr r0, _08131CE4 @ =gAnimBankAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08131CEC
lsls r4, r5, 16
asrs r4, 16
ldr r0, _08131CE8 @ =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
cmp r4, r0
bge _08131D0E
b _08131D02
.align 2, 0
_08131CDC: .4byte gSprites
_08131CE0: .4byte gTasks
_08131CE4: .4byte gAnimBankAttacker
_08131CE8: .4byte gAnimBankTarget
_08131CEC:
lsls r4, r5, 16
asrs r4, 16
ldr r0, _08131D30 @ =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
cmp r4, r0
ble _08131D0E
_08131D02:
ldrh r0, [r6, 0x24]
adds r0, 0x1
strh r0, [r6, 0x24]
ldr r1, _08131D34 @ =gBattleAnimArgs
ldr r0, _08131D38 @ =0x0000ffff
strh r0, [r1, 0xE]
_08131D0E:
lsls r0, r5, 16
movs r2, 0x80
lsls r2, 14
adds r0, r2
movs r1, 0x98
lsls r1, 17
cmp r0, r1
bhi _08131D20
b _08131EA0
_08131D20:
ldr r0, _08131D3C @ =gTasks
mov r1, r9
add r1, r8
lsls r1, 3
adds r1, r0
movs r0, 0
strh r0, [r1, 0xA]
b _08131DB6
.align 2, 0
_08131D30: .4byte gAnimBankTarget
_08131D34: .4byte gBattleAnimArgs
_08131D38: .4byte 0x0000ffff
_08131D3C: .4byte gTasks
_08131D40:
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _08131D8C @ =gTasks
mov r3, r8
lsls r4, r3, 2
adds r0, r4, r3
lsls r0, 3
adds r0, r1
ldrh r0, [r0, 0x26]
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 4
adds r0, r5
lsls r0, 2
ldr r5, _08131D90 @ =gSprites
adds r0, r5
bl sub_807A0F4
ldr r0, _08131D94 @ =gAnimBankAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
mov r9, r4
cmp r0, 0
bne _08131D98
lsls r1, r7, 4
adds r1, r7
lsls r1, 2
adds r1, r5
ldrh r0, [r1, 0x20]
negs r0, r0
subs r0, 0x20
strh r0, [r1, 0x24]
b _08131DAC
.align 2, 0
_08131D8C: .4byte gTasks
_08131D90: .4byte gSprites
_08131D94: .4byte gAnimBankAttacker
_08131D98:
lsls r0, r7, 4
adds r0, r7
lsls r0, 2
adds r0, r5
ldrh r2, [r0, 0x20]
movs r4, 0x88
lsls r4, 1
adds r1, r4, 0
subs r1, r2
strh r1, [r0, 0x24]
_08131DAC:
ldr r0, _08131DC0 @ =gTasks
mov r1, r9
add r1, r8
lsls r1, 3
adds r1, r0
_08131DB6:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _08131EA0
.align 2, 0
_08131DC0: .4byte gTasks
_08131DC4:
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _08131E38 @ =gTasks
mov r0, r8
lsls r4, r0, 2
adds r0, r4, r0
lsls r0, 3
adds r2, r0, r1
movs r1, 0x80
lsls r1, 4
adds r0, r1, 0
ldrh r3, [r2, 0xA]
adds r0, r3
strh r0, [r2, 0xA]
ldr r0, _08131E3C @ =gAnimBankAttacker
mov r10, r0
ldrb r0, [r0]
str r2, [sp, 0x10]
bl GetBattlerSide
lsls r0, 24
mov r9, r4
ldr r2, [sp, 0x10]
cmp r0, 0
bne _08131E44
ldr r1, _08131E40 @ =gSprites
lsls r5, r7, 4
adds r0, r5, r7
lsls r0, 2
adds r6, r0, r1
ldrh r0, [r2, 0xA]
lsls r0, 16
asrs r0, 24
ldrh r1, [r6, 0x24]
adds r0, r1
strh r0, [r6, 0x24]
movs r2, 0x24
ldrsh r4, [r6, r2]
movs r3, 0x20
ldrsh r0, [r6, r3]
adds r4, r0
mov r1, r10
ldrb r0, [r1]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r3, r5, 0
cmp r4, r0
blt _08131E7C
movs r2, 0
strh r2, [r6, 0x24]
b _08131E7C
.align 2, 0
_08131E38: .4byte gTasks
_08131E3C: .4byte gAnimBankAttacker
_08131E40: .4byte gSprites
_08131E44:
ldr r1, _08131EB0 @ =gSprites
lsls r5, r7, 4
adds r0, r5, r7
lsls r0, 2
adds r6, r0, r1
ldrh r1, [r2, 0xA]
lsls r1, 16
asrs r1, 24
ldrh r0, [r6, 0x24]
subs r0, r1
strh r0, [r6, 0x24]
movs r3, 0x24
ldrsh r4, [r6, r3]
movs r1, 0x20
ldrsh r0, [r6, r1]
adds r4, r0
mov r2, r10
ldrb r0, [r2]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r3, r5, 0
cmp r4, r0
bgt _08131E7C
movs r4, 0
strh r4, [r6, 0x24]
_08131E7C:
ldr r1, _08131EB4 @ =gTasks
mov r0, r9
add r0, r8
lsls r0, 3
adds r0, r1
ldrb r1, [r0, 0xA]
strh r1, [r0, 0xA]
ldr r1, _08131EB0 @ =gSprites
adds r0, r3, r7
lsls r0, 2
adds r0, r1
movs r1, 0x24
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08131EA0
mov r0, r8
bl DestroyAnimVisualTask
_08131EA0:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08131EB0: .4byte gSprites
_08131EB4: .4byte gTasks
thumb_func_end sub_8131944
thumb_func_start sub_8131EB8
sub_8131EB8: @ 8131EB8
push {r4,lr}
adds r4, r0, 0
movs r1, 0x3C
ldrsh r0, [r4, r1]
cmp r0, 0
beq _08131ECA
cmp r0, 0x1
beq _08131F72
b _08131FF4
_08131ECA:
ldr r0, _08131F50 @ =gBattleAnimArgs
movs r2, 0xE
ldrsh r1, [r0, r2]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _08131F64
movs r0, 0x3F
bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0x7A
bl PlaySE12WithPanning
ldr r0, _08131F54 @ =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
strh r0, [r4, 0x22]
ldr r0, _08131F58 @ =0x0000ffe0
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
ldr r0, _08131F5C @ =gAnimBankAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08131FF4
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08131FF4
movs r0, 0x1
bl GetAnimBattlerSpriteId
ldr r2, _08131F60 @ =gSprites
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r1, 0x43
ldrb r0, [r1]
subs r0, 0x1
adds r1, r4, 0
adds r1, 0x43
strb r0, [r1]
b _08131FF4
.align 2, 0
_08131F50: .4byte gBattleAnimArgs
_08131F54: .4byte gAnimBankTarget
_08131F58: .4byte 0x0000ffe0
_08131F5C: .4byte gAnimBankAttacker
_08131F60: .4byte gSprites
_08131F64:
adds r0, r4, 0
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
b _08131FF4
_08131F72:
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r2, 0x2E
ldrsh r1, [r4, r2]
bl Sin
strh r0, [r4, 0x26]
ldrh r2, [r4, 0x30]
adds r0, r2, 0x5
strh r0, [r4, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x7F
ble _08131FA6
movs r1, 0x2E
ldrsh r0, [r4, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x34]
adds r0, 0x1
strh r0, [r4, 0x34]
adds r0, r2, 0
subs r0, 0x7A
strh r0, [r4, 0x30]
_08131FA6:
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
ldr r0, _08131FD0 @ =gAnimBankAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08131FD4
ldrh r2, [r4, 0x32]
lsls r1, r2, 16
asrs r1, 24
ldrh r0, [r4, 0x24]
subs r0, r1
strh r0, [r4, 0x24]
adds r1, r2, 0
b _08131FE0
.align 2, 0
_08131FD0: .4byte gAnimBankAttacker
_08131FD4:
ldrh r1, [r4, 0x32]
lsls r0, r1, 16
asrs r0, 24
ldrh r2, [r4, 0x24]
adds r0, r2
strh r0, [r4, 0x24]
_08131FE0:
movs r0, 0xFF
ands r0, r1
strh r0, [r4, 0x32]
movs r1, 0x34
ldrsh r0, [r4, r1]
cmp r0, 0x2
bne _08131FF4
adds r0, r4, 0
bl DestroyAnimSprite
_08131FF4:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8131EB8
thumb_func_start sub_8131FFC
sub_8131FFC: @ 8131FFC
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08132024 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r2, 0x26
ldrsh r0, [r0, r2]
adds r3, r1, 0
cmp r0, 0x4
bls _08132018
b _0813216A
_08132018:
lsls r0, 2
ldr r1, _08132028 @ =_0813202C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08132024: .4byte gTasks
_08132028: .4byte _0813202C
.align 2, 0
_0813202C:
.4byte _08132040
.4byte _08132090
.4byte _081320EC
.4byte _08132104
.4byte _0813216A
_08132040:
ldr r0, _08132084 @ =gAnimBankAttacker
ldrb r0, [r0]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
ldr r0, _08132088 @ =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r2, r0, 0
ldr r1, _0813208C @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r1, r0, r1
movs r0, 0x6
strh r0, [r1, 0x8]
cmp r5, r2
ble _08132076
negs r0, r0
strh r0, [r1, 0x8]
_08132076:
strh r5, [r1, 0xA]
strh r2, [r1, 0xC]
ldrh r0, [r1, 0x26]
adds r0, 0x1
strh r0, [r1, 0x26]
b _08132188
.align 2, 0
_08132084: .4byte gAnimBankAttacker
_08132088: .4byte gAnimBankTarget
_0813208C: .4byte gTasks
_08132090:
ldr r1, _081320CC @ =gBankSpriteIds
ldr r0, _081320D0 @ =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
ldr r1, _081320D4 @ =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r1, r0, r1
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r2, r0, r3
ldrh r0, [r2, 0x8]
ldrh r3, [r1, 0x24]
adds r0, r3
strh r0, [r1, 0x24]
movs r3, 0x8
ldrsh r0, [r2, r3]
cmp r0, 0
ble _081320D8
movs r3, 0x20
ldrsh r0, [r1, r3]
movs r3, 0x24
ldrsh r1, [r1, r3]
adds r0, r1
movs r3, 0xC
ldrsh r1, [r2, r3]
b _0813215E
.align 2, 0
_081320CC: .4byte gBankSpriteIds
_081320D0: .4byte gAnimBankAttacker
_081320D4: .4byte gSprites
_081320D8:
movs r3, 0x20
ldrsh r0, [r1, r3]
movs r3, 0x24
ldrsh r1, [r1, r3]
adds r0, r1
movs r3, 0xC
ldrsh r1, [r2, r3]
cmp r0, r1
bgt _08132188
b _08132162
_081320EC:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r3
movs r2, 0x8
ldrsh r1, [r0, r2]
negs r1, r1
strh r1, [r0, 0x8]
ldrh r1, [r0, 0x26]
adds r1, 0x1
strh r1, [r0, 0x26]
b _08132188
_08132104:
ldr r1, _08132144 @ =gBankSpriteIds
ldr r0, _08132148 @ =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
ldr r1, _0813214C @ =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r1, r0, r1
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r2, r0, r3
ldrh r0, [r2, 0x8]
ldrh r3, [r1, 0x24]
adds r0, r3
strh r0, [r1, 0x24]
movs r3, 0x8
ldrsh r0, [r2, r3]
cmp r0, 0
bge _08132150
movs r3, 0x20
ldrsh r0, [r1, r3]
movs r3, 0x24
ldrsh r1, [r1, r3]
adds r0, r1
movs r3, 0xA
ldrsh r1, [r2, r3]
cmp r0, r1
bgt _08132188
b _08132162
.align 2, 0
_08132144: .4byte gBankSpriteIds
_08132148: .4byte gAnimBankAttacker
_0813214C: .4byte gSprites
_08132150:
movs r3, 0x20
ldrsh r0, [r1, r3]
movs r3, 0x24
ldrsh r1, [r1, r3]
adds r0, r1
movs r3, 0xA
ldrsh r1, [r2, r3]
_0813215E:
cmp r0, r1
blt _08132188
_08132162:
ldrh r0, [r2, 0x26]
adds r0, 0x1
strh r0, [r2, 0x26]
b _08132188
_0813216A:
ldr r1, _08132190 @ =gBankSpriteIds
ldr r0, _08132194 @ =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
ldr r1, _08132198 @ =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0
strh r1, [r0, 0x24]
adds r0, r4, 0
bl DestroyAnimVisualTask
_08132188:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08132190: .4byte gBankSpriteIds
_08132194: .4byte gAnimBankAttacker
_08132198: .4byte gSprites
thumb_func_end sub_8131FFC
thumb_func_start sub_813219C
sub_813219C: @ 813219C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _08132204 @ =gTasks
adds r4, r1, r0
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0xE]
ldr r0, _08132208 @ =gAnimBankAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
adds r1, r2, 0
cmp r0, 0
bne _081321D0
movs r1, 0x1
_081321D0:
strh r1, [r4, 0x10]
ldr r2, _0813220C @ =gSprites
movs r0, 0xE
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x22]
strh r0, [r4, 0x14]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r0, [r0, 0x20]
strh r0, [r4, 0x12]
strh r5, [r4, 0x1A]
strh r5, [r4, 0x1E]
movs r0, 0x1
strh r0, [r4, 0x1C]
strh r5, [r4, 0x20]
ldr r0, _08132210 @ =sub_8132214
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08132204: .4byte gTasks
_08132208: .4byte gAnimBankAttacker
_0813220C: .4byte gSprites
_08132210: .4byte sub_8132214
thumb_func_end sub_813219C
thumb_func_start sub_8132214
sub_8132214: @ 8132214
push {r4-r6,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, _08132238 @ =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _081322BC
cmp r0, 0x1
bgt _0813223C
cmp r0, 0
beq _08132242
b _08132312
.align 2, 0
_08132238: .4byte gTasks
_0813223C:
cmp r0, 0x2
beq _0813230C
b _08132312
_08132242:
ldrh r0, [r4, 0x1E]
adds r0, 0x8
movs r2, 0xFF
ands r0, r2
strh r0, [r4, 0x1E]
ldr r5, _081322B4 @ =gSprites
movs r6, 0xE
ldrsh r0, [r4, r6]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldr r3, _081322B8 @ =gSineTable
movs r6, 0x1E
ldrsh r0, [r4, r6]
lsls r0, 1
adds r0, r3
ldrh r0, [r0]
lsls r0, 16
asrs r0, 21
strh r0, [r1, 0x24]
ldrh r0, [r4, 0x1A]
adds r0, 0x2
ands r0, r2
strh r0, [r4, 0x1A]
movs r1, 0xE
ldrsh r0, [r4, r1]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r5
movs r6, 0x1A
ldrsh r0, [r4, r6]
lsls r0, 1
adds r0, r3
ldrh r0, [r0]
lsls r0, 16
asrs r0, 19
ldrh r1, [r4, 0x10]
muls r0, r1
ldrh r1, [r4, 0x12]
adds r0, r1
strh r0, [r2, 0x20]
movs r6, 0x1A
ldrsh r0, [r4, r6]
cmp r0, 0
bne _08132312
movs r0, 0xE
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r4, 0x12]
strh r1, [r0, 0x20]
b _081322FC
.align 2, 0
_081322B4: .4byte gSprites
_081322B8: .4byte gSineTable
_081322BC:
ldrh r0, [r4, 0x1E]
adds r0, 0x8
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x1E]
ldr r3, _08132304 @ =gSprites
movs r1, 0xE
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldr r2, _08132308 @ =gSineTable
movs r5, 0x1E
ldrsh r0, [r4, r5]
lsls r0, 1
adds r0, r2
ldrh r0, [r0]
lsls r0, 16
asrs r0, 21
strh r0, [r1, 0x24]
movs r6, 0x1E
ldrsh r2, [r4, r6]
cmp r2, 0
bne _08132312
movs r1, 0xE
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
strh r2, [r1, 0x24]
_081322FC:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08132312
.align 2, 0
_08132304: .4byte gSprites
_08132308: .4byte gSineTable
_0813230C:
adds r0, r2, 0
bl DestroyAnimVisualTask
_08132312:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8132214
thumb_func_start sub_8132318
sub_8132318: @ 8132318
push {r4,lr}
adds r4, r0, 0
ldr r0, _0813236C @ =gAnimBankTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
ldrh r0, [r4, 0x2E]
ldrh r1, [r4, 0x30]
adds r0, r1
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x30]
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x14
bl Cos
strh r0, [r4, 0x24]
movs r1, 0x30
ldrsh r0, [r4, r1]
movs r1, 0x14
bl Sin
strh r0, [r4, 0x26]
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0813235E
adds r0, r4, 0
bl DestroyAnimSprite
_0813235E:
ldrh r0, [r4, 0x32]
adds r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813236C: .4byte gAnimBankTarget
thumb_func_end sub_8132318
thumb_func_start sub_8132370
sub_8132370: @ 8132370
push {r4,lr}
adds r4, r0, 0
ldr r0, _081323A8 @ =gAnimBankTarget
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081323B4
ldr r2, _081323AC @ =gBattleAnimArgs
ldrh r0, [r4, 0x20]
ldrh r1, [r2]
subs r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r2, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldr r0, _081323B0 @ =0x0000fff5
strh r0, [r4, 0x2E]
movs r0, 0xC0
strh r0, [r4, 0x30]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
b _081323CE
.align 2, 0
_081323A8: .4byte gAnimBankTarget
_081323AC: .4byte gBattleAnimArgs
_081323B0: .4byte 0x0000fff5
_081323B4:
movs r0, 0xB
strh r0, [r4, 0x2E]
movs r0, 0xC0
strh r0, [r4, 0x30]
ldr r1, _081323D8 @ =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]
_081323CE:
ldr r0, _081323DC @ =sub_8132318
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081323D8: .4byte gBattleAnimArgs
_081323DC: .4byte sub_8132318
thumb_func_end sub_8132370
thumb_func_start sub_81323E0
sub_81323E0: @ 81323E0
push {r4,r5,lr}
adds r5, r0, 0
ldr r4, _08132424 @ =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x2
bl sub_807A100
strh r0, [r5, 0x22]
lsls r0, 16
asrs r0, 16
cmp r0, 0xF
bgt _0813240A
movs r0, 0x10
strh r0, [r5, 0x22]
_0813240A:
movs r0, 0
strh r0, [r5, 0x3A]
movs r1, 0x10
strh r1, [r5, 0x3C]
ldr r0, _08132428 @ =sub_8132430
str r0, [r5, 0x1C]
ldr r0, _0813242C @ =REG_BLDALPHA
lsls r1, 8
strh r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08132424: .4byte gAnimBankAttacker
_08132428: .4byte sub_8132430
_0813242C: .4byte REG_BLDALPHA
thumb_func_end sub_81323E0
thumb_func_start sub_8132430
sub_8132430: @ 8132430
push {r4,lr}
adds r3, r0, 0
movs r0, 0x32
ldrsh r1, [r3, r0]
cmp r1, 0x1
beq _081324A8
cmp r1, 0x1
bgt _08132446
cmp r1, 0
beq _08132450
b _08132522
_08132446:
cmp r1, 0x2
beq _081324BE
cmp r1, 0x3
beq _0813251C
b _08132522
_08132450:
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08132522
strh r1, [r3, 0x2E]
ldrh r1, [r3, 0x30]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0813247A
ldrh r2, [r3, 0x3A]
movs r4, 0x3A
ldrsh r0, [r3, r4]
cmp r0, 0xF
bgt _08132488
adds r0, r2, 0x1
strh r0, [r3, 0x3A]
b _08132488
_0813247A:
ldrh r2, [r3, 0x3C]
movs r4, 0x3C
ldrsh r0, [r3, r4]
cmp r0, 0
beq _08132488
subs r0, r2, 0x1
strh r0, [r3, 0x3C]
_08132488:
adds r0, r1, 0x1
strh r0, [r3, 0x30]
ldr r2, _081324A4 @ =REG_BLDALPHA
ldrh r0, [r3, 0x3C]
lsls r0, 8
ldrh r1, [r3, 0x3A]
orrs r0, r1
strh r0, [r2]
movs r1, 0x3C
ldrsh r0, [r3, r1]
cmp r0, 0
bne _08132522
b _08132510
.align 2, 0
_081324A4: .4byte REG_BLDALPHA
_081324A8:
ldrh r0, [r3, 0x2E]
adds r0, 0x1
movs r1, 0
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
bne _08132522
strh r1, [r3, 0x2E]
strh r1, [r3, 0x30]
b _08132510
_081324BE:
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08132522
movs r0, 0
strh r0, [r3, 0x2E]
ldrh r1, [r3, 0x30]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _081324EA
ldrh r2, [r3, 0x3A]
movs r4, 0x3A
ldrsh r0, [r3, r4]
cmp r0, 0
beq _081324F8
subs r0, r2, 0x1
strh r0, [r3, 0x3A]
b _081324F8
_081324EA:
ldrh r2, [r3, 0x3C]
movs r4, 0x3C
ldrsh r0, [r3, r4]
cmp r0, 0xF
bgt _081324F8
adds r0, r2, 0x1
strh r0, [r3, 0x3C]
_081324F8:
adds r0, r1, 0x1
strh r0, [r3, 0x30]
ldr r2, _08132518 @ =REG_BLDALPHA
ldrh r0, [r3, 0x3C]
lsls r0, 8
ldrh r1, [r3, 0x3A]
orrs r0, r1
strh r0, [r2]
movs r1, 0x3C
ldrsh r0, [r3, r1]
cmp r0, 0x10
bne _08132522
_08132510:
ldrh r0, [r3, 0x32]
adds r0, 0x1
strh r0, [r3, 0x32]
b _08132522
.align 2, 0
_08132518: .4byte REG_BLDALPHA
_0813251C:
adds r0, r3, 0
bl move_anim_8074EE0
_08132522:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8132430
thumb_func_start sub_8132528
sub_8132528: @ 8132528
push {lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r2, _08132544 @ =gBattleAnimArgs
movs r0, 0
strh r0, [r2, 0xE]
ldr r0, _08132548 @ =gWeatherMoveAnim
ldrh r1, [r0]
movs r0, 0x60
ands r0, r1
cmp r0, 0
beq _0813254C
movs r0, 0x1
b _0813256E
.align 2, 0
_08132544: .4byte gBattleAnimArgs
_08132548: .4byte gWeatherMoveAnim
_0813254C:
movs r0, 0x7
ands r0, r1
cmp r0, 0
beq _08132558
movs r0, 0x2
b _0813256E
_08132558:
movs r0, 0x18
ands r0, r1
cmp r0, 0
beq _08132564
movs r0, 0x3
b _0813256E
_08132564:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08132570
movs r0, 0x4
_0813256E:
strh r0, [r2, 0xE]
_08132570:
adds r0, r3, 0
bl DestroyAnimVisualTask
pop {r0}
bx r0
thumb_func_end sub_8132528
thumb_func_start sub_813257C
sub_813257C: @ 813257C
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _081325B4 @ =gTasks
adds r4, r0
movs r0, 0
strh r0, [r4, 0x8]
ldr r0, _081325B8 @ =gBattleAnimArgs
ldrb r0, [r0]
bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
strh r1, [r4, 0x26]
ldr r2, _081325BC @ =gUnknown_08402B28
adds r0, r4, 0
bl sub_80798F4
ldr r0, _081325C0 @ =sub_81325C4
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081325B4: .4byte gTasks
_081325B8: .4byte gBattleAnimArgs
_081325BC: .4byte gUnknown_08402B28
_081325C0: .4byte sub_81325C4
thumb_func_end sub_813257C
thumb_func_start sub_81325C4
sub_81325C4: @ 81325C4
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r2, _0813261C @ =gTasks
adds r3, r0, r2
ldrh r0, [r3, 0x8]
adds r1, r0, 0x1
movs r5, 0
strh r1, [r3, 0x8]
subs r0, 0x10
lsls r0, 16
lsrs r0, 16
adds r6, r2, 0
cmp r0, 0x16
bhi _08132628
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08132638
strh r5, [r3, 0xA]
ldrh r0, [r3, 0xC]
adds r0, 0x1
strh r0, [r3, 0xC]
movs r5, 0x1
ands r0, r5
cmp r0, 0
bne _08132628
ldr r2, _08132620 @ =gSprites
movs r0, 0x26
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, _08132624 @ =0x0000ffff
strh r1, [r0, 0x24]
b _08132638
.align 2, 0
_0813261C: .4byte gTasks
_08132620: .4byte gSprites
_08132624: .4byte 0x0000ffff
_08132628:
ldr r2, _08132658 @ =gSprites
movs r0, 0x26
ldrsh r1, [r3, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r5, [r0, 0x24]
_08132638:
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r6
bl sub_807992C
lsls r0, 24
cmp r0, 0
bne _08132650
adds r0, r4, 0
bl DestroyAnimVisualTask
_08132650:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08132658: .4byte gSprites
thumb_func_end sub_81325C4
.align 2, 0 @ Don't pad with nop.