pokeemerald/asm/dark.s

2200 lines
34 KiB
ArmAsm
Raw Normal View History

2018-10-23 04:08:38 +02:00
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_81136E8
sub_81136E8: @ 81136E8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, =gBattleAnimArgs
ldrh r1, [r1]
strh r1, [r0, 0x8]
ldr r1, =gBattleAnimAttacker
ldrb r4, [r1]
movs r1, 0x10
strh r1, [r0, 0xA]
movs r0, 0x52
bl SetGpuReg
adds r0, r4, 0
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08113734
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
b _0811373C
.pool
_08113734:
ldr r1, =0x00003f44
movs r0, 0x50
bl SetGpuReg
_0811373C:
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, =sub_811375C
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81136E8
thumb_func_start sub_811375C
sub_811375C: @ 811375C
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r6, r0, r1
ldrh r0, [r6, 0xA]
lsrs r4, r0, 8
lsls r0, 24
lsrs r1, r0, 24
movs r2, 0xC
ldrsh r0, [r6, r2]
ldrb r2, [r6, 0x8]
cmp r0, r2
bne _081137D8
adds r4, 0x1
lsls r4, 24
lsrs r4, 24
subs r0, r1, 0x1
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 8
orrs r1, r0
movs r5, 0
strh r1, [r6, 0xA]
ldrh r1, [r6, 0xA]
movs r0, 0x52
bl SetGpuReg
strh r5, [r6, 0xC]
cmp r4, 0x10
bne _081137DE
ldr r2, =gSprites
ldr r1, =gBattlerSpriteIds
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
adds r0, r7, 0
bl DestroyAnimVisualTask
b _081137DE
.pool
_081137D8:
ldrh r0, [r6, 0xC]
adds r0, 0x1
strh r0, [r6, 0xC]
_081137DE:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_811375C
thumb_func_start sub_81137E4
sub_81137E4: @ 81137E4
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, =gTasks
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
adds r2, r1
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r2, 0x8]
movs r1, 0x80
lsls r1, 5
strh r1, [r2, 0xA]
ldr r0, =sub_811381C
str r0, [r2]
movs r0, 0x52
bl SetGpuReg
pop {r0}
bx r0
.pool
thumb_func_end sub_81137E4
thumb_func_start sub_811381C
sub_811381C: @ 811381C
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r6, r0, r1
ldrh r0, [r6, 0xA]
lsrs r4, r0, 8
lsls r0, 24
lsrs r1, r0, 24
movs r2, 0xC
ldrsh r0, [r6, r2]
ldrb r2, [r6, 0x8]
cmp r0, r2
bne _0811387C
subs r4, 0x1
lsls r4, 24
lsrs r4, 24
adds r0, r1, 0x1
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 8
orrs r1, r0
movs r5, 0
strh r1, [r6, 0xA]
ldrh r1, [r6, 0xA]
movs r0, 0x52
bl SetGpuReg
strh r5, [r6, 0xC]
cmp r4, 0
bne _08113882
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r7, 0
bl DestroyAnimVisualTask
b _08113882
.pool
_0811387C:
ldrh r0, [r6, 0xC]
adds r0, 0x1
strh r0, [r6, 0xC]
_08113882:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_811381C
thumb_func_start sub_8113888
sub_8113888: @ 8113888
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r1, 0x80
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081138BC
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
b _081138C4
.pool
_081138BC:
ldr r1, =0x00003f44
movs r0, 0x50
bl SetGpuReg
_081138C4:
adds r0, r4, 0
bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113888
thumb_func_start sub_81138D4
sub_81138D4: @ 81138D4
push {r4-r6,lr}
adds r4, r0, 0
ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r6]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x34]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
movs r0, 0x7E
strh r0, [r4, 0x2E]
adds r0, r4, 0
2018-11-26 00:00:18 +01:00
bl InitSpriteDataForLinearTranslation
2018-10-23 04:08:38 +02:00
ldrh r0, [r4, 0x30]
negs r0, r0
strh r0, [r4, 0x34]
ldrh r0, [r4, 0x32]
negs r0, r0
strh r0, [r4, 0x36]
ldr r0, =0x0000ffd8
strh r0, [r4, 0x3A]
ldr r1, =sub_8113950
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81138D4
thumb_func_start sub_8113950
sub_8113950: @ 8113950
push {r4-r6,lr}
adds r4, r0, 0
ldrh r5, [r4, 0x30]
ldrh r0, [r4, 0x34]
adds r2, r5, r0
strh r2, [r4, 0x34]
ldrh r3, [r4, 0x32]
ldrh r6, [r4, 0x36]
adds r1, r3, r6
strh r1, [r4, 0x36]
lsls r0, r2, 16
asrs r0, 24
strh r0, [r4, 0x24]
lsls r0, r1, 16
asrs r0, 24
strh r0, [r4, 0x26]
movs r6, 0x3C
ldrsh r0, [r4, r6]
cmp r0, 0
bne _08113992
adds r0, r2, r5
strh r0, [r4, 0x34]
adds r1, r3
strh r1, [r4, 0x36]
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
lsls r1, 16
asrs r1, 24
strh r1, [r4, 0x26]
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
_08113992:
movs r1, 0x38
ldrsh r0, [r4, r1]
movs r2, 0x3A
ldrsh r1, [r4, r2]
bl Sin
ldrh r6, [r4, 0x26]
adds r0, r6
strh r0, [r4, 0x26]
ldrh r0, [r4, 0x38]
adds r0, 0x3
movs r1, 0xFF
ands r0, r1
strh r0, [r4, 0x38]
cmp r0, 0x7F
ble _081139C2
movs r0, 0
strh r0, [r4, 0x38]
ldrh r0, [r4, 0x3A]
adds r0, 0x14
strh r0, [r4, 0x3A]
ldrh r0, [r4, 0x3C]
adds r0, 0x1
strh r0, [r4, 0x3C]
_081139C2:
ldrh r0, [r4, 0x2E]
subs r0, 0x1
strh r0, [r4, 0x2E]
lsls r0, 16
cmp r0, 0
bne _081139D4
adds r0, r4, 0
bl DestroyAnimSprite
_081139D4:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8113950
thumb_func_start sub_81139DC
sub_81139DC: @ 81139DC
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrh r0, [r5]
ldrh r1, [r4, 0x20]
adds r0, r1
strh r0, [r4, 0x20]
ldrh r0, [r5, 0x2]
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
ldrb r1, [r5, 0x4]
adds r0, r4, 0
bl StartSpriteAffineAnim
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x8]
strh r0, [r4, 0x30]
ldrh r0, [r5, 0xA]
strh r0, [r4, 0x32]
ldr r0, =sub_8113A18
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81139DC
thumb_func_start sub_8113A18
sub_8113A18: @ 8113A18
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x2E]
ldrh r1, [r2, 0x36]
adds r0, r1
strh r0, [r2, 0x36]
ldrh r1, [r2, 0x30]
ldrh r3, [r2, 0x38]
adds r1, r3
strh r1, [r2, 0x38]
lsls r0, 16
asrs r0, 24
strh r0, [r2, 0x24]
lsls r1, 16
asrs r1, 24
strh r1, [r2, 0x26]
ldrh r0, [r2, 0x34]
adds r0, 0x1
strh r0, [r2, 0x34]
lsls r0, 16
asrs r0, 16
movs r3, 0x32
ldrsh r1, [r2, r3]
cmp r0, r1
bne _08113A4E
ldr r0, =sub_8113A58
str r0, [r2, 0x1C]
_08113A4E:
pop {r0}
bx r0
.pool
thumb_func_end sub_8113A18
thumb_func_start sub_8113A58
sub_8113A58: @ 8113A58
push {lr}
adds r3, r0, 0
ldrh r1, [r3, 0x36]
ldrh r0, [r3, 0x2E]
subs r1, r0
strh r1, [r3, 0x36]
ldrh r0, [r3, 0x38]
ldrh r2, [r3, 0x30]
subs r0, r2
strh r0, [r3, 0x38]
lsls r1, 16
asrs r1, 24
strh r1, [r3, 0x24]
lsls r0, 16
asrs r0, 24
strh r0, [r3, 0x26]
ldrh r0, [r3, 0x34]
subs r0, 0x1
strh r0, [r3, 0x34]
lsls r0, 16
cmp r0, 0
bne _08113A8A
adds r0, r3, 0
bl move_anim_8074EE0
_08113A8A:
pop {r0}
bx r0
thumb_func_end sub_8113A58
thumb_func_start sub_8113A90
sub_8113A90: @ 8113A90
push {r4-r7,lr}
adds r4, r0, 0
ldr r0, =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r3, r0, 0
cmp r1, 0
bne _08113AAC
ldr r0, =gBattleAnimAttacker
b _08113AAE
.pool
_08113AAC:
ldr r0, =gBattleAnimTarget
_08113AAE:
ldrb r5, [r0]
movs r6, 0x14
ldrh r2, [r4, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x4
ldr r7, =0x000003ff
adds r0, r7, 0
ands r1, r0
ldr r0, =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
movs r1, 0x2
ldrsh r0, [r3, r1]
cmp r0, 0x1
beq _08113B0C
cmp r0, 0x1
bgt _08113AE8
cmp r0, 0
beq _08113AF2
b _08113B60
.pool
_08113AE8:
cmp r0, 0x2
beq _08113B26
cmp r0, 0x3
beq _08113B3E
b _08113B60
_08113AF2:
adds r0, r5, 0
movs r1, 0x5
bl sub_80A861C
subs r0, 0x8
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
bl sub_80A861C
adds r0, 0x8
strh r0, [r4, 0x22]
b _08113B60
_08113B0C:
adds r0, r5, 0
movs r1, 0x5
bl sub_80A861C
subs r0, 0xE
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
bl sub_80A861C
adds r0, 0x10
strh r0, [r4, 0x22]
b _08113B60
_08113B26:
adds r0, r5, 0
movs r1, 0x4
bl sub_80A861C
adds r0, 0x8
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
bl sub_80A861C
adds r0, 0x8
b _08113B54
_08113B3E:
adds r0, r5, 0
movs r1, 0x4
bl sub_80A861C
adds r0, 0xE
strh r0, [r4, 0x20]
adds r0, r5, 0
movs r1, 0x2
bl sub_80A861C
adds r0, 0x10
_08113B54:
strh r0, [r4, 0x22]
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
movs r6, 0xEC
_08113B60:
movs r0, 0x20
strh r0, [r4, 0x2E]
lsls r0, r6, 24
asrs r0, 24
ldrh r2, [r4, 0x20]
adds r0, r2
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
adds r0, 0xC
strh r0, [r4, 0x36]
ldr r0, =0x0000fff4
strh r0, [r4, 0x38]
adds r0, r4, 0
2018-11-26 00:00:18 +01:00
bl InitAnimArcTranslation
2018-10-23 04:08:38 +02:00
ldr r0, =sub_8113B90
str r0, [r4, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113A90
thumb_func_start sub_8113B90
sub_8113B90: @ 8113B90
push {r4,lr}
adds r4, r0, 0
bl TranslateAnimArc
lsls r0, 24
cmp r0, 0
beq _08113BA4
adds r0, r4, 0
bl move_anim_8074EE0
_08113BA4:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8113B90
thumb_func_start sub_8113BAC
sub_8113BAC: @ 8113BAC
push {r4-r7,lr}
sub sp, 0x1C
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x1F
movs r6, 0
strh r0, [r5, 0x16]
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A861C
subs r0, 0x7
strh r0, [r5, 0x14]
ldrh r1, [r5, 0x16]
strh r1, [r5, 0x12]
strh r0, [r5, 0x10]
subs r1, r0
lsls r1, 8
strh r1, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
subs r1, 0x20
strh r1, [r5, 0x24]
adds r0, 0x20
strh r0, [r5, 0x26]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08113C1C
ldr r0, =0x0000fff4
b _08113C1E
.pool
_08113C1C:
ldr r0, =0x0000ffc0
_08113C1E:
strh r0, [r5, 0x18]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
cmp r0, 0x1
bne _08113C80
add r4, sp, 0xC
adds r0, r4, 0
bl sub_80A6B30
ldr r0, =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
ldrb r1, [r4, 0x8]
lsls r1, 4
movs r0, 0
movs r2, 0x20
bl FillPalette
ldr r0, =0x04000016
str r0, [sp]
movs r7, 0x2
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08113CB0
ldr r1, =gBattle_BG2_X
b _08113CAA
.pool
_08113C80:
ldr r0, =gBattle_BG2_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
ldr r1, =0x00003f44
movs r0, 0x50
bl SetGpuReg
movs r0, 0
movs r1, 0x90
movs r2, 0x20
bl FillPalette
ldr r0, =0x0400001a
str r0, [sp]
movs r7, 0x4
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08113CB0
ldr r1, =gBattle_BG1_X
_08113CAA:
ldrh r0, [r1]
adds r0, 0xF0
strh r0, [r1]
_08113CB0:
ldr r0, =0xa2600001
str r0, [sp, 0x4]
mov r2, sp
movs r1, 0
movs r0, 0x1
strb r0, [r2, 0x8]
mov r0, sp
strb r1, [r0, 0x9]
strh r1, [r5, 0x1E]
movs r0, 0x10
strh r0, [r5, 0x20]
strh r1, [r5, 0x8]
strh r1, [r5, 0xA]
strh r1, [r5, 0xC]
movs r0, 0x3
bl sub_8114374
movs r3, 0
ldr r4, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r4, r0
_08113CDC:
lsls r1, r3, 1
adds r2, r1, r4
ldrh r0, [r5, 0x1C]
strh r0, [r2]
adds r1, r6
ldrh r0, [r5, 0x1C]
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x6F
bls _08113CDC
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
bl ScanlineEffect_SetParams
movs r0, 0x3F
eors r7, r0
movs r1, 0xFC
lsls r1, 6
adds r0, r1, 0
orrs r7, r0
movs r0, 0x4A
adds r1, r7, 0
bl SetGpuReg
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r2, =gBattle_WIN0H
ldrh r0, [r5, 0x24]
lsls r0, 8
ldrh r1, [r5, 0x26]
orrs r0, r1
strh r0, [r2]
ldr r1, =gBattle_WIN0V
movs r0, 0xA0
strh r0, [r1]
ldr r0, =sub_8113D60
str r0, [r5]
add sp, 0x1C
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113BAC
thumb_func_start sub_8113D60
sub_8113D60: @ 8113D60
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x4
bls _08113D7A
b _08113E72
_08113D7A:
lsls r0, 2
ldr r1, =_08113D8C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08113D8C:
.4byte _08113DA0
.4byte _08113E02
.4byte _08113E1C
.4byte _08113E58
.4byte _08113E6C
_08113DA0:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08113E72
movs r0, 0
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _08113DD0
ldrh r1, [r4, 0x1E]
movs r2, 0x1E
ldrsh r0, [r4, r2]
cmp r0, 0xC
beq _08113DDE
adds r0, r1, 0x1
strh r0, [r4, 0x1E]
b _08113DDE
_08113DD0:
ldrh r1, [r4, 0x20]
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r0, 0x8
beq _08113DDE
subs r0, r1, 0x1
strh r0, [r4, 0x20]
_08113DDE:
ldrh r1, [r4, 0x20]
lsls r1, 8
ldrh r0, [r4, 0x1E]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0xC
bne _08113E72
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r0, 0x8
bne _08113E72
b _08113E5E
_08113E02:
ldrh r0, [r4, 0x10]
subs r0, 0x8
strh r0, [r4, 0x10]
adds r0, r4, 0
bl sub_8114244
movs r0, 0x10
ldrsh r1, [r4, r0]
movs r2, 0x18
ldrsh r0, [r4, r2]
cmp r1, r0
bge _08113E72
b _08113E5E
_08113E1C:
ldrh r0, [r4, 0x10]
subs r0, 0x8
strh r0, [r4, 0x10]
adds r0, r4, 0
bl sub_8114244
ldrh r1, [r4, 0x24]
adds r1, 0x4
strh r1, [r4, 0x24]
ldrh r0, [r4, 0x26]
subs r2, r0, 0x4
strh r2, [r4, 0x26]
lsls r1, 16
lsls r0, r2, 16
cmp r1, r0
blt _08113E3E
strh r2, [r4, 0x24]
_08113E3E:
ldr r3, =gBattle_WIN0H
ldrh r2, [r4, 0x24]
lsls r0, r2, 8
ldrh r1, [r4, 0x26]
orrs r0, r1
strh r0, [r3]
lsls r2, 16
lsls r1, 16
cmp r2, r1
bne _08113E72
b _08113E5E
.pool
_08113E58:
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08113E5E:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08113E72
.pool
_08113E6C:
adds r0, r2, 0
bl DestroyAnimVisualTask
_08113E72:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8113D60
thumb_func_start sub_8113E78
sub_8113E78: @ 8113E78
push {r4-r7,lr}
sub sp, 0x1C
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
movs r1, 0x8
ldrsh r0, [r5, r1]
cmp r0, 0x4
bls _08113E94
b _081140A6
_08113E94:
lsls r0, 2
ldr r1, =_08113EA8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_08113EA8:
.4byte _08113EBC
.4byte _08113F40
.4byte _08113F84
.4byte _08113FF0
.4byte _08114058
_08113EBC:
bl IsContest
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08113EF8
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
adds r0, r6, 0
bl DestroyAnimVisualTask
b _081140A6
.pool
_08113EF8:
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
cmp r0, 0x1
bne _08113F24
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
ldr r1, =gBattle_BG2_X
b _08113F2E
.pool
_08113F24:
ldr r1, =0x00003f44
movs r0, 0x50
bl SetGpuReg
ldr r1, =gBattle_BG1_X
_08113F2E:
ldrh r0, [r1]
adds r0, 0xF0
strh r0, [r1]
b _08114044
.pool
_08113F40:
movs r1, 0xE
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08113F68
mov r0, sp
bl sub_80A6B30
ldr r0, =gBattle_BG1_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
mov r0, sp
ldrb r1, [r0, 0x8]
lsls r1, 4
movs r0, 0
movs r2, 0x20
bl FillPalette
b _08113F78
.pool
_08113F68:
ldr r0, =gBattle_BG2_Y
ldrh r0, [r0]
strh r0, [r5, 0x1C]
movs r0, 0
movs r1, 0x90
movs r2, 0x20
bl FillPalette
_08113F78:
movs r0, 0x3
bl sub_8114374
b _08114044
.pool
_08113F84:
ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x1
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x1F
movs r6, 0
strh r0, [r5, 0x16]
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A861C
subs r0, 0x7
strh r0, [r5, 0x14]
ldrh r1, [r5, 0x16]
subs r1, r0
lsls r1, 8
strh r1, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r1, r0, 0x4
strh r1, [r5, 0x24]
adds r0, 0x4
strh r0, [r5, 0x26]
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08113FD8
ldr r0, =0x0000fff4
b _08113FDA
.pool
_08113FD8:
ldr r0, =0x0000ffc0
_08113FDA:
strh r0, [r5, 0x18]
ldrh r0, [r5, 0x18]
strh r0, [r5, 0x10]
strh r0, [r5, 0x12]
movs r0, 0xC
strh r0, [r5, 0x1E]
movs r0, 0x8
strh r0, [r5, 0x20]
b _08114044
.pool
_08113FF0:
movs r1, 0xE
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08114000
ldr r0, =0x04000016
b _08114002
.pool
_08114000:
ldr r0, =0x0400001a
_08114002:
str r0, [sp, 0x10]
movs r3, 0
add r4, sp, 0x10
ldr r6, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r7, r6, r0
_08114010:
lsls r1, r3, 1
adds r2, r1, r6
ldrh r0, [r5, 0x1C]
adds r0, 0x9F
subs r0, r3
strh r0, [r2]
adds r1, r7
ldrh r0, [r5, 0x1C]
adds r0, 0x9F
subs r0, r3
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x6F
bls _08114010
ldr r1, =0xa2600001
str r1, [r4, 0x4]
movs r2, 0
movs r0, 0x1
strb r0, [r4, 0x8]
strb r2, [r4, 0x9]
ldr r0, [sp, 0x10]
ldr r2, [r4, 0x8]
bl ScanlineEffect_SetParams
_08114044:
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
b _081140A6
.pool
_08114058:
movs r1, 0xE
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08114070
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
b _08114078
.pool
_08114070:
ldr r1, =0x00003f3b
movs r0, 0x4A
bl SetGpuReg
_08114078:
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r2, =gBattle_WIN0H
ldrh r0, [r5, 0x24]
lsls r0, 8
ldrh r1, [r5, 0x26]
orrs r0, r1
strh r0, [r2]
ldr r1, =gBattle_WIN0V
movs r0, 0xA0
strh r0, [r1]
movs r0, 0
strh r0, [r5, 0x8]
strh r0, [r5, 0xA]
strh r0, [r5, 0xC]
ldr r1, =0x0000080c
movs r0, 0x52
bl SetGpuReg
ldr r0, =sub_81140C8
str r0, [r5]
_081140A6:
add sp, 0x1C
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8113E78
thumb_func_start sub_81140C8
sub_81140C8: @ 81140C8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x4
bls _081140E2
b _08114232
_081140E2:
lsls r0, 2
ldr r1, =_081140F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081140F4:
.4byte _08114108
.4byte _08114134
.4byte _0811419C
.4byte _081141FE
.4byte _08114210
_08114108:
ldrh r0, [r4, 0x12]
adds r0, 0x8
strh r0, [r4, 0x12]
lsls r0, 16
asrs r0, 16
ldrh r2, [r4, 0x16]
movs r3, 0x16
ldrsh r1, [r4, r3]
cmp r0, r1
blt _0811411E
strh r2, [r4, 0x12]
_0811411E:
adds r0, r4, 0
bl sub_8114244
movs r0, 0x12
ldrsh r1, [r4, r0]
movs r2, 0x16
ldrsh r0, [r4, r2]
cmp r1, r0
beq _08114132
b _08114232
_08114132:
b _08114204
_08114134:
movs r3, 0x26
ldrsh r0, [r4, r3]
movs r2, 0x24
ldrsh r1, [r4, r2]
subs r0, r1
cmp r0, 0x3F
bgt _08114150
ldrh r0, [r4, 0x24]
subs r0, 0x4
strh r0, [r4, 0x24]
ldrh r0, [r4, 0x26]
adds r0, 0x4
strh r0, [r4, 0x26]
b _08114154
_08114150:
movs r0, 0x1
strh r0, [r4, 0xA]
_08114154:
ldr r2, =gBattle_WIN0H
ldrh r0, [r4, 0x24]
lsls r0, 8
ldrh r1, [r4, 0x26]
orrs r0, r1
strh r0, [r2]
ldrh r0, [r4, 0x10]
adds r0, 0x8
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
ldrh r2, [r4, 0x14]
movs r3, 0x14
ldrsh r1, [r4, r3]
cmp r0, r1
blt _08114176
strh r2, [r4, 0x10]
_08114176:
adds r0, r4, 0
bl sub_8114244
movs r0, 0x10
ldrsh r1, [r4, r0]
movs r2, 0x14
ldrsh r0, [r4, r2]
cmp r1, r0
bne _08114232
movs r3, 0xA
ldrsh r0, [r4, r3]
cmp r0, 0
beq _08114232
movs r0, 0
strh r0, [r4, 0xA]
b _08114204
.pool
_0811419C:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _08114232
movs r0, 0
strh r0, [r4, 0xA]
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _081141CC
ldrh r1, [r4, 0x1E]
movs r2, 0x1E
ldrsh r0, [r4, r2]
cmp r0, 0
beq _081141DA
subs r0, r1, 0x1
strh r0, [r4, 0x1E]
b _081141DA
_081141CC:
ldrh r1, [r4, 0x20]
movs r3, 0x20
ldrsh r0, [r4, r3]
cmp r0, 0xF
bgt _081141DA
adds r0, r1, 0x1
strh r0, [r4, 0x20]
_081141DA:
ldrh r1, [r4, 0x20]
lsls r1, 8
ldrh r0, [r4, 0x1E]
orrs r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0x52
bl SetGpuReg
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08114232
movs r2, 0x20
ldrsh r0, [r4, r2]
cmp r0, 0x10
bne _08114232
b _08114204
_081141FE:
ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08114204:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08114232
.pool
_08114210:
ldr r0, =gBattle_WIN0H
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_WIN0V
strh r1, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
adds r0, r5, 0
bl DestroyAnimVisualTask
_08114232:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_81140C8
thumb_func_start sub_8114244
sub_8114244: @ 8114244
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
ldrh r0, [r6, 0x12]
ldrh r4, [r6, 0x10]
subs r0, r4
lsls r0, 16
asrs r1, r0, 16
cmp r1, 0
beq _08114338
movs r2, 0x22
ldrsh r0, [r6, r2]
bl __divsi3
mov r8, r0
movs r3, 0x14
ldrsh r0, [r6, r3]
lsls r5, r0, 8
lsls r0, r4, 16
movs r4, 0
cmp r0, 0
ble _081142A4
ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
ldr r7, =gScanlineEffect
_08114278:
lsls r2, r4, 16
asrs r2, 16
lsls r3, r2, 1
ldrb r1, [r7, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r3, r0
add r3, r12
adds r1, r2, 0
subs r1, 0x9F
ldrh r0, [r6, 0x1C]
subs r0, r1
strh r0, [r3]
adds r2, 0x1
lsls r2, 16
lsrs r4, r2, 16
asrs r2, 16
movs r1, 0x10
ldrsh r0, [r6, r1]
cmp r2, r0
blt _08114278
_081142A4:
ldrh r4, [r6, 0x10]
lsls r3, r4, 16
asrs r1, r3, 16
movs r2, 0x12
ldrsh r0, [r6, r2]
cmp r1, r0
bgt _081142EE
ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
ldr r7, =gScanlineEffect
_081142B8:
asrs r4, r3, 16
cmp r4, 0
blt _081142DA
asrs r1, r5, 8
subs r1, r4
lsls r3, r4, 1
ldrb r2, [r7, 0x14]
lsls r0, r2, 4
subs r0, r2
lsls r0, 7
adds r3, r0
add r3, r12
lsls r1, 16
asrs r1, 16
ldrh r2, [r6, 0x1C]
adds r1, r2
strh r1, [r3]
_081142DA:
add r5, r8
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
lsls r3, r4, 16
asrs r1, r3, 16
movs r2, 0x12
ldrsh r0, [r6, r2]
cmp r1, r0
ble _081142B8
_081142EE:
movs r3, 0x1C
ldrsh r0, [r6, r3]
adds r0, 0x9F
lsls r2, r4, 16
asrs r1, r2, 16
subs r5, r0, r1
movs r3, 0x16
ldrsh r0, [r6, r3]
cmp r1, r0
bge _08114366
ldr r7, =gScanlineEffectRegBuffers
ldr r4, =gScanlineEffect
_08114306:
asrs r3, r2, 16
cmp r3, 0
blt _0811431E
lsls r2, r3, 1
ldrb r1, [r4, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r7
strh r5, [r2]
subs r5, 0x1
_0811431E:
adds r0, r3, 0x1
lsls r2, r0, 16
asrs r1, r2, 16
movs r3, 0x16
ldrsh r0, [r6, r3]
cmp r1, r0
blt _08114306
b _08114366
.pool
_08114338:
movs r1, 0x1C
ldrsh r0, [r6, r1]
adds r5, r0, 0
adds r5, 0x9F
movs r4, 0
ldr r3, =gScanlineEffectRegBuffers
movs r2, 0xF0
lsls r2, 3
adds r6, r3, r2
_0811434A:
lsls r0, r4, 16
asrs r0, 16
lsls r2, r0, 1
adds r1, r2, r3
strh r5, [r1]
adds r2, r6
strh r5, [r2]
subs r5, 0x1
adds r0, 0x1
lsls r0, 16
lsrs r4, r0, 16
asrs r0, 16
cmp r0, 0x6F
ble _0811434A
_08114366:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114244
thumb_func_start sub_8114374
sub_8114374: @ 8114374
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
movs r4, 0
ldr r7, =gSprites
movs r1, 0x3
ands r0, r1
lsls r5, r0, 2
movs r0, 0xD
negs r0, r0
adds r6, r0, 0
_0811438A:
lsls r0, r4, 24
lsrs r0, 24
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _081143AA
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r7
ldrb r0, [r1, 0x5]
ands r0, r6
orrs r0, r5
strb r0, [r1, 0x5]
_081143AA:
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x3
bls _0811438A
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114374
thumb_func_start sub_81143C0
sub_81143C0: @ 81143C0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r4, r1, 31
ldrb r0, [r6]
adds r1, r4, 0
movs r2, 0x1
bl sub_80A438C
ldr r0, =gSprites
mov r9, r0
ldr r0, =gBattlerSpriteIds
mov r8, r0
ldrb r0, [r6]
add r0, r8
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r9
adds r1, 0x3E
ldrb r2, [r1]
movs r7, 0x5
negs r7, r7
adds r0, r7, 0
ands r0, r2
strb r0, [r1]
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811444E
ldrb r0, [r6]
eors r0, r5
movs r1, 0x1
eors r4, r1
adds r1, r4, 0
movs r2, 0x1
bl sub_80A438C
ldrb r0, [r6]
eors r0, r5
add r0, r8
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r9
adds r0, 0x3E
ldrb r2, [r0]
adds r1, r7, 0
ands r1, r2
strb r1, [r0]
_0811444E:
mov r0, r10
bl DestroyAnimVisualTask
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81143C0
thumb_func_start sub_8114470
sub_8114470: @ 8114470
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r5, r1, 31
adds r0, r5, 0
bl sub_80A477C
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081144AC
movs r0, 0x1
eors r5, r0
adds r0, r5, 0
bl sub_80A477C
_081144AC:
adds r0, r6, 0
bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114470
thumb_func_start sub_81144BC
sub_81144BC: @ 81144BC
push {r4,lr}
adds r4, r0, 0
ldr r1, =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
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81144BC
thumb_func_start sub_81144F8
sub_81144F8: @ 81144F8
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r7, r0, 24
movs r6, 0
ldr r0, =gBattle_WIN0H
strh r6, [r0]
ldr r0, =gBattle_WIN0V
strh r6, [r0]
ldr r1, =0x00003f3f
movs r0, 0x48
bl SetGpuReg
ldr r1, =0x00003f3d
movs r0, 0x4A
bl SetGpuReg
movs r1, 0x80
lsls r1, 8
movs r0, 0
bl SetGpuRegBits
ldr r1, =0x00003f42
movs r0, 0x50
bl SetGpuReg
ldr r1, =0x00000c08
movs r0, 0x52
bl SetGpuReg
movs r0, 0x1
movs r1, 0x4
movs r2, 0
bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0811455C
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
_0811455C:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _081145D6
bl IsContest
lsls r0, 24
cmp r0, 0
bne _081145D6
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _0811458C
ldrb r0, [r4]
bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _081145D6
_0811458C:
ldrb r0, [r4]
movs r5, 0x2
eors r0, r5
bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081145D6
ldr r3, =gSprites
ldr r1, =gBattlerSpriteIds
ldrb r0, [r4]
eors r0, r5
adds r0, r1
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
subs r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
bl SetAnimBgAttribute
movs r6, 0x1
_081145D6:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08114614
ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r5, [r0]
b _0811465C
.pool
_08114614:
ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08114640
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
b _08114650
.pool
_08114640:
ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
_08114650:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
_0811465C:
movs r0, 0
bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
bl sub_80A89C8
lsls r0, 24
lsrs r5, r0, 24
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C1D210
bl sub_80A6D48
mov r0, sp
ldrb r0, [r0, 0x9]
ldr r1, =gUnknown_08C1D0AC
mov r2, sp
ldrh r2, [r2, 0xA]
bl sub_80A6CC0
ldr r0, =gUnknown_08C1D1E8
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
movs r2, 0x20
bl LoadCompressedPalette
ldr r2, =gBattle_BG1_X
ldr r0, =gSprites
lsls r1, r4, 4
adds r1, r4
lsls r1, 2
adds r1, r0
ldrh r0, [r1, 0x20]
negs r0, r0
adds r0, 0x60
strh r0, [r2]
ldr r2, =gBattle_BG1_Y
ldrh r0, [r1, 0x22]
negs r0, r0
adds r0, 0x20
strh r0, [r2]
ldrb r0, [r1, 0x5]
lsrs r0, 4
adds r0, 0x10
adds r1, r0, 0
ldr r2, =gBattleAnimArgs
movs r3, 0x2
ldrsh r0, [r2, r3]
cmp r0, 0
bne _08114708
adds r0, r1, 0
movs r1, 0
bl sub_80A750C
b _08114714
.pool
_08114708:
lsls r0, r1, 4
ldrh r3, [r2, 0x4]
movs r1, 0x10
movs r2, 0xB
bl BlendPalette
_08114714:
ldr r1, =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
strh r1, [r0, 0xA]
ldrh r1, [r2, 0x2]
strh r1, [r0, 0xC]
ldrh r1, [r2, 0x4]
strh r1, [r0, 0xE]
strh r6, [r0, 0x14]
ldr r1, =sub_8114748
str r1, [r0]
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81144F8
thumb_func_start sub_8114748
sub_8114748: @ 8114748
push {r4-r6,lr}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
ldr r1, =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x1C]
adds r0, 0x4
movs r5, 0
strh r0, [r4, 0x1C]
ldr r2, =gBattle_BG1_X
ldrh r3, [r2]
subs r1, r3, 0x4
strh r1, [r2]
lsls r0, 16
asrs r0, 16
cmp r0, 0x80
beq _08114776
b _08114886
_08114776:
strh r5, [r4, 0x1C]
adds r0, r3, 0
adds r0, 0x7C
strh r0, [r2]
ldrh r0, [r4, 0x1E]
adds r0, 0x1
strh r0, [r4, 0x1E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
bne _08114824
movs r0, 0
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r5, =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r0, [r1, 0x5]
lsrs r0, 4
adds r0, 0x10
adds r1, r0, 0
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0
bne _081147B8
adds r0, r1, 0
movs r1, 0x1
bl sub_80A750C
_081147B8:
movs r0, 0x8
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
bl DestroySprite
mov r0, sp
bl sub_80A6B30
mov r0, sp
ldrb r0, [r0, 0x9]
bl sub_80A6C68
movs r1, 0x14
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _08114886
ldr r2, =gBattlerSpriteIds
ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
adds r0, r2
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r5
ldrb r3, [r2, 0x5]
lsls r1, r3, 28
lsrs r1, 30
adds r1, 0x1
movs r0, 0x3
ands r1, r0
lsls r1, 2
movs r0, 0xD
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x5]
b _08114886
.pool
_08114824:
cmp r0, 0x3
bne _08114886
ldr r0, =gBattle_WIN0H
strh r5, [r0]
ldr r0, =gBattle_WIN0V
strh r5, [r0]
ldr r4, =0x00003f3f
movs r0, 0x48
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x4A
adds r1, r4, 0
bl SetGpuReg
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08114856
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl SetAnimBgAttribute
_08114856:
movs r0, 0
bl GetGpuReg
adds r1, r0, 0
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
eors r1, r0
lsls r1, 16
lsrs r1, 16
movs r0, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
adds r0, r6, 0
bl DestroyAnimVisualTask
_08114886:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8114748
thumb_func_start sub_811489C
sub_811489C: @ 811489C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r0, =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r2, r0, 0
cmp r1, 0x7
bhi _08114900
lsls r0, r1, 2
ldr r1, =_081148C4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_081148C4:
.4byte _081148E4
.4byte _081148E4
.4byte _081148E4
.4byte _081148E4
.4byte _081148F0
.4byte _081148F4
.4byte _081148F8
.4byte _081148FC
_081148E4:
ldrb r0, [r2]
bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
b _08114902
_081148F0:
movs r4, 0
b _08114908
_081148F4:
movs r4, 0x2
b _08114908
_081148F8:
movs r4, 0x1
b _08114908
_081148FC:
movs r4, 0x3
b _08114908
_08114900:
movs r2, 0xFF
_08114902:
movs r0, 0
cmp r0, 0
beq _0811492E
_08114908:
adds r0, r4, 0
bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811492C
ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r2, [r0]
b _0811492E
.pool
_0811492C:
movs r2, 0xFF
_0811492E:
cmp r2, 0xFF
beq _0811494A
ldr r1, =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x5]
lsrs r0, 4
adds r0, 0x10
ldr r1, =gBattleAnimArgs
ldrb r1, [r1, 0x2]
bl sub_80A750C
_0811494A:
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_811489C
thumb_func_start sub_8114960
sub_8114960: @ 8114960
push {lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r2, =gAnimMoveTurn
ldrb r0, [r2]
cmp r0, 0x1
bhi _08114974
ldr r1, =gBattleAnimArgs
movs r0, 0
strh r0, [r1, 0xE]
_08114974:
ldrb r0, [r2]
cmp r0, 0x2
bne _08114980
ldr r1, =gBattleAnimArgs
movs r0, 0x1
strh r0, [r1, 0xE]
_08114980:
adds r0, r3, 0
bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
thumb_func_end sub_8114960
.align 2, 0