pokefirered/asm/ground.s

1788 lines
31 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80B8B6C
sub_80B8B6C: @ 80B8B6C
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, _080B8BC4 @ =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]
movs r0, 0x14
strh r0, [r4, 0x2E]
ldr r5, _080B8BC8 @ =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, _080B8BCC @ =0x0000ffd8
strh r0, [r4, 0x38]
adds r0, r4, 0
bl sub_8075068
ldr r0, _080B8BD0 @ =sub_80B8BD4
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B8BC4: .4byte gBattleAnimAttacker
_080B8BC8: .4byte gBattleAnimTarget
_080B8BCC: .4byte 0x0000ffd8
_080B8BD0: .4byte sub_80B8BD4
thumb_func_end sub_80B8B6C
thumb_func_start sub_80B8BD4
sub_80B8BD4: @ 80B8BD4
push {r4,r5,lr}
adds r5, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _080B8C28
ldrh r0, [r5, 0x24]
ldrh r1, [r5, 0x20]
adds r0, r1
movs r1, 0
strh r0, [r5, 0x20]
ldrh r0, [r5, 0x26]
ldrh r2, [r5, 0x22]
adds r0, r2
strh r0, [r5, 0x22]
strh r1, [r5, 0x26]
strh r1, [r5, 0x24]
movs r0, 0x14
strh r0, [r5, 0x2E]
ldr r4, _080B8C30 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
movs r0, 0x28
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_8075068
ldr r0, _080B8C34 @ =sub_80B8C38
str r0, [r5, 0x1C]
_080B8C28:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B8C30: .4byte gBattleAnimAttacker
_080B8C34: .4byte sub_80B8C38
thumb_func_end sub_80B8BD4
thumb_func_start sub_80B8C38
sub_80B8C38: @ 80B8C38
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _080B8C4C
adds r0, r4, 0
bl DestroyAnimSprite
_080B8C4C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80B8C38
thumb_func_start sub_80B8C54
sub_80B8C54: @ 80B8C54
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
bl sub_8075114
ldr r0, _080B8CB4 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080B8C74
ldr r1, _080B8CB8 @ =gBattleAnimArgs
ldrh r0, [r1, 0x4]
negs r0, r0
strh r0, [r1, 0x4]
_080B8C74:
ldr r4, _080B8CB8 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
ldr r5, _080B8CBC @ =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
adds r0, r1
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x6]
adds r0, r4
strh r0, [r6, 0x36]
ldr r0, _080B8CC0 @ =StartAnimLinearTranslation
str r0, [r6, 0x1C]
ldr r1, _080B8CC4 @ =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B8CB4: .4byte gBattleAnimAttacker
_080B8CB8: .4byte gBattleAnimArgs
_080B8CBC: .4byte gBattleAnimTarget
_080B8CC0: .4byte StartAnimLinearTranslation
_080B8CC4: .4byte DestroyAnimSprite
thumb_func_end sub_80B8C54
thumb_func_start sub_80B8CC8
sub_80B8CC8: @ 80B8CC8
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
movs r1, 0x1
bl sub_8075160
ldr r4, _080B8D48 @ =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8074844
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldrb r0, [r4]
movs r1, 0x3
bl sub_8074844
lsls r0, 24
lsrs r7, r0, 24
bl Random
movs r4, 0x1F
adds r5, r4, 0
ands r5, r0
bl Random
ands r4, r0
adds r1, r5, 0
cmp r1, 0x10
ble _080B8D10
movs r0, 0x10
subs r0, r1
lsls r0, 16
lsrs r5, r0, 16
_080B8D10:
lsls r0, r4, 16
asrs r1, r0, 16
cmp r1, 0x10
ble _080B8D20
movs r0, 0x10
subs r0, r1
lsls r0, 16
lsrs r4, r0, 16
_080B8D20:
ldr r0, _080B8D4C @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r6, 0x2E]
mov r1, r8
adds r0, r1, r5
strh r0, [r6, 0x32]
adds r0, r7, r4
strh r0, [r6, 0x36]
ldr r0, _080B8D50 @ =StartAnimLinearTranslation
str r0, [r6, 0x1C]
ldr r1, _080B8D54 @ =move_anim_8074EE0
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B8D48: .4byte gBattleAnimTarget
_080B8D4C: .4byte gBattleAnimArgs
_080B8D50: .4byte StartAnimLinearTranslation
_080B8D54: .4byte move_anim_8074EE0
thumb_func_end sub_80B8CC8
thumb_func_start sub_80B8D58
sub_80B8D58: @ 80B8D58
push {r4-r6,lr}
adds r5, r0, 0
ldrh r2, [r5, 0x4]
lsls r1, r2, 22
lsrs r1, 22
adds r1, 0x1
ldr r3, _080B8DB8 @ =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, _080B8DBC @ =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
ldr r6, _080B8DC0 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080B8DCC
ldr r4, _080B8DC4 @ =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r6, 0x2]
adds r0, r2
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r3, [r6, 0x4]
adds r0, r3
strh r0, [r5, 0x22]
movs r1, 0x2
ldrsh r0, [r6, r1]
movs r2, 0x1
negs r2, r2
adds r1, r2, 0
cmp r0, 0
ble _080B8DB2
movs r1, 0x1
_080B8DB2:
strh r1, [r5, 0x2E]
ldr r0, _080B8DC8 @ =sub_80B8DE8
b _080B8DDA
.align 2, 0
_080B8DB8: .4byte 0x000003ff
_080B8DBC: .4byte 0xfffffc00
_080B8DC0: .4byte gBattleAnimArgs
_080B8DC4: .4byte gBattleAnimAttacker
_080B8DC8: .4byte sub_80B8DE8
_080B8DCC:
ldrh r0, [r6, 0x2]
strh r0, [r5, 0x20]
ldrh r0, [r6, 0x4]
strh r0, [r5, 0x22]
negs r0, r0
strh r0, [r5, 0x26]
ldr r0, _080B8DE4 @ =sub_80B8E24
_080B8DDA:
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B8DE4: .4byte sub_80B8E24
thumb_func_end sub_80B8D58
thumb_func_start sub_80B8DE8
sub_80B8DE8: @ 80B8DE8
push {lr}
adds r2, r0, 0
ldrh r0, [r2, 0x30]
adds r0, 0x1
strh r0, [r2, 0x30]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _080B8E06
movs r0, 0
strh r0, [r2, 0x30]
ldrh r0, [r2, 0x2E]
ldrh r1, [r2, 0x20]
adds r0, r1
strh r0, [r2, 0x20]
_080B8E06:
ldrh r0, [r2, 0x22]
subs r0, 0x4
strh r0, [r2, 0x22]
lsls r0, 16
asrs r0, 16
movs r1, 0x4
negs r1, r1
cmp r0, r1
bge _080B8E1E
adds r0, r2, 0
bl DestroyAnimSprite
_080B8E1E:
pop {r0}
bx r0
thumb_func_end sub_80B8DE8
thumb_func_start sub_80B8E24
sub_80B8E24: @ 80B8E24
push {lr}
adds r3, r0, 0
movs r0, 0x2E
ldrsh r1, [r3, r0]
cmp r1, 0
beq _080B8E36
cmp r1, 0x1
beq _080B8E4C
b _080B8E8E
_080B8E36:
ldrh r0, [r3, 0x26]
adds r0, 0x4
strh r0, [r3, 0x26]
lsls r0, 16
cmp r0, 0
blt _080B8E8E
strh r1, [r3, 0x26]
ldrh r0, [r3, 0x2E]
adds r0, 0x1
strh r0, [r3, 0x2E]
b _080B8E8E
_080B8E4C:
ldrh r0, [r3, 0x30]
adds r0, 0x1
strh r0, [r3, 0x30]
lsls r0, 16
cmp r0, 0
ble _080B8E8E
movs r0, 0
strh r0, [r3, 0x30]
movs r1, 0x3E
adds r1, r3
mov r12, r1
ldrb r2, [r1]
lsls r0, r2, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
mov r1, r12
strb r0, [r1]
ldrh r0, [r3, 0x32]
adds r0, 0x1
strh r0, [r3, 0x32]
lsls r0, 16
asrs r0, 16
cmp r0, 0xA
bne _080B8E8E
adds r0, r3, 0
bl DestroyAnimSprite
_080B8E8E:
pop {r0}
bx r0
thumb_func_end sub_80B8E24
thumb_func_start sub_80B8E94
sub_80B8E94: @ 80B8E94
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, _080B8EB4 @ =gTasks
adds r1, r0, r1
ldr r0, _080B8EB8 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
bne _080B8EC0
ldr r0, _080B8EBC @ =sub_80B8ED4
b _080B8EC2
.align 2, 0
_080B8EB4: .4byte gTasks
_080B8EB8: .4byte gBattleAnimArgs
_080B8EBC: .4byte sub_80B8ED4
_080B8EC0:
ldr r0, _080B8ED0 @ =sub_80B908C
_080B8EC2:
str r0, [r1]
ldr r1, [r1]
adds r0, r2, 0
bl _call_via_r1
pop {r0}
bx r0
.align 2, 0
_080B8ED0: .4byte sub_80B908C
thumb_func_end sub_80B8E94
thumb_func_start sub_80B8ED4
sub_80B8ED4: @ 80B8ED4
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, _080B8EF8 @ =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x4
bls _080B8EEE
b _080B9082
_080B8EEE:
lsls r0, 2
ldr r1, _080B8EFC @ =_080B8F00
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080B8EF8: .4byte gTasks
_080B8EFC: .4byte _080B8F00
.align 2, 0
_080B8F00:
.4byte _080B8F14
.4byte _080B8F9C
.4byte _080B8FAC
.4byte _080B9050
.4byte _080B9064
_080B8F14:
movs r0, 0
bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
ldr r0, _080B8F3C @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80768B0
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
cmp r0, 0x1
bne _080B8F48
ldr r0, _080B8F40 @ =gBattle_BG1_X
ldrh r0, [r0]
strh r0, [r4, 0x20]
ldr r0, _080B8F44 @ =gBattle_BG1_Y
b _080B8F50
.align 2, 0
_080B8F3C: .4byte gBattleAnimAttacker
_080B8F40: .4byte gBattle_BG1_X
_080B8F44: .4byte gBattle_BG1_Y
_080B8F48:
ldr r0, _080B8F8C @ =gBattle_BG2_X
ldrh r0, [r0]
strh r0, [r4, 0x20]
ldr r0, _080B8F90 @ =gBattle_BG2_Y
_080B8F50:
ldrh r0, [r0]
strh r0, [r4, 0x22]
ldr r0, _080B8F94 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_807492C
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
subs r1, 0x20
strh r1, [r4, 0x24]
adds r0, 0x20
strh r0, [r4, 0x26]
cmp r1, 0
bge _080B8F72
movs r0, 0
strh r0, [r4, 0x24]
_080B8F72:
ldr r2, _080B8F98 @ =gSprites
movs r3, 0x1C
ldrsh r1, [r4, r3]
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]
b _080B9056
.align 2, 0
_080B8F8C: .4byte gBattle_BG2_X
_080B8F90: .4byte gBattle_BG2_Y
_080B8F94: .4byte gBattleAnimAttacker
_080B8F98: .4byte gSprites
_080B8F9C:
ldrb r0, [r4, 0x1E]
movs r2, 0x24
ldrsh r1, [r4, r2]
movs r3, 0x26
ldrsh r2, [r4, r3]
bl sub_80B92B8
b _080B9056
_080B8FAC:
ldrh r0, [r4, 0xC]
adds r0, 0x6
movs r1, 0x7F
ands r0, r1
strh r0, [r4, 0xC]
ldrh r0, [r4, 0x10]
adds r0, 0x1
strh r0, [r4, 0x10]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _080B8FCE
movs r0, 0
strh r0, [r4, 0x10]
ldrh r0, [r4, 0xE]
adds r0, 0x1
strh r0, [r4, 0xE]
_080B8FCE:
ldr r1, _080B8FF0 @ =gSineTable
movs r2, 0xC
ldrsh r0, [r4, r2]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
lsls r0, 16
asrs r0, 20
ldrh r3, [r4, 0xE]
adds r2, r0, r3
strh r2, [r4, 0x12]
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080B8FF8
ldr r1, _080B8FF4 @ =gBattle_BG1_Y
b _080B8FFA
.align 2, 0
_080B8FF0: .4byte gSineTable
_080B8FF4: .4byte gBattle_BG1_Y
_080B8FF8:
ldr r1, _080B901C @ =gBattle_BG2_Y
_080B8FFA:
ldrh r0, [r4, 0x22]
subs r0, r2
strh r0, [r1]
movs r2, 0x12
ldrsh r0, [r4, r2]
cmp r0, 0x3F
ble _080B9082
ldrh r0, [r4, 0x24]
movs r1, 0x78
subs r2, r1, r0
strh r2, [r4, 0x12]
movs r3, 0x1E
ldrsh r0, [r4, r3]
cmp r0, 0x1
bne _080B9024
ldr r1, _080B9020 @ =gBattle_BG1_Y
b _080B9026
.align 2, 0
_080B901C: .4byte gBattle_BG2_Y
_080B9020: .4byte gBattle_BG1_Y
_080B9024:
ldr r1, _080B9048 @ =gBattle_BG2_Y
_080B9026:
ldrh r0, [r4, 0x22]
subs r0, r2
strh r0, [r1]
ldr r2, _080B904C @ =gSprites
movs r1, 0x1C
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
ldrh r2, [r1, 0x20]
movs r3, 0x88
lsls r3, 1
adds r0, r3, 0
subs r0, r2
strh r0, [r1, 0x24]
b _080B9056
.align 2, 0
_080B9048: .4byte gBattle_BG2_Y
_080B904C: .4byte gSprites
_080B9050:
ldr r1, _080B9060 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080B9056:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080B9082
.align 2, 0
_080B9060: .4byte gScanlineEffect
_080B9064:
adds r0, r2, 0
bl DestroyAnimVisualTask
ldr r2, _080B9088 @ =gSprites
movs r0, 0x1C
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]
_080B9082:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B9088: .4byte gSprites
thumb_func_end sub_80B8ED4
thumb_func_start sub_80B908C
sub_80B908C: @ 80B908C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080B90CC @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r2
adds r3, r1, 0
adds r3, 0x3E
ldrb r0, [r3]
movs r2, 0x4
orrs r0, r2
strb r0, [r3]
movs r4, 0
strh r4, [r1, 0x24]
strh r4, [r1, 0x26]
ldr r0, _080B90D0 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80768B0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080B90D8
ldr r0, _080B90D4 @ =gBattle_BG1_Y
b _080B90DA
.align 2, 0
_080B90CC: .4byte gSprites
_080B90D0: .4byte gBattleAnimAttacker
_080B90D4: .4byte gBattle_BG1_Y
_080B90D8:
ldr r0, _080B90E8 @ =gBattle_BG2_Y
_080B90DA:
strh r4, [r0]
adds r0, r5, 0
bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080B90E8: .4byte gBattle_BG2_Y
thumb_func_end sub_80B908C
thumb_func_start sub_80B90EC
sub_80B90EC: @ 80B90EC
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, _080B910C @ =gTasks
adds r1, r0, r1
ldr r0, _080B9110 @ =gBattleAnimArgs
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
bne _080B9118
ldr r0, _080B9114 @ =sub_80B912C
b _080B911A
.align 2, 0
_080B910C: .4byte gTasks
_080B9110: .4byte gBattleAnimArgs
_080B9114: .4byte sub_80B912C
_080B9118:
ldr r0, _080B9128 @ =sub_80B91B0
_080B911A:
str r0, [r1]
ldr r1, [r1]
adds r0, r2, 0
bl _call_via_r1
pop {r0}
bx r0
.align 2, 0
_080B9128: .4byte sub_80B91B0
thumb_func_end sub_80B90EC
thumb_func_start sub_80B912C
sub_80B912C: @ 80B912C
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, _080B914C @ =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r5, [r4, r0]
cmp r5, 0
beq _080B9150
cmp r5, 0x1
beq _080B91A4
b _080B91AA
.align 2, 0
_080B914C: .4byte gTasks
_080B9150:
movs r0, 0
bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
ldr r3, _080B91A0 @ =gSprites
movs r0, 0x1C
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]
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
strh r5, [r0, 0x24]
movs r1, 0x1C
ldrsh r0, [r4, r1]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r3
ldrh r2, [r1, 0x22]
movs r0, 0xA0
subs r0, r2
strh r0, [r1, 0x26]
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080B91AA
.align 2, 0
_080B91A0: .4byte gSprites
_080B91A4:
adds r0, r2, 0
bl DestroyAnimVisualTask
_080B91AA:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80B912C
thumb_func_start sub_80B91B0
sub_80B91B0: @ 80B91B0
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, _080B91D4 @ =gTasks
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x4
bhi _080B92B2
lsls r0, 2
ldr r1, _080B91D8 @ =_080B91DC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080B91D4: .4byte gTasks
_080B91D8: .4byte _080B91DC
.align 2, 0
_080B91DC:
.4byte _080B91F0
.4byte _080B9244
.4byte _080B9252
.4byte _080B926C
.4byte _080B92AC
_080B91F0:
movs r0, 0
bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
ldr r0, _080B9214 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80768B0
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
cmp r0, 0x1
bne _080B921C
ldr r0, _080B9218 @ =gBattle_BG1_X
b _080B921E
.align 2, 0
_080B9214: .4byte gBattleAnimAttacker
_080B9218: .4byte gBattle_BG1_X
_080B921C:
ldr r0, _080B923C @ =gBattle_BG2_X
_080B921E:
ldrh r0, [r0]
strh r0, [r4, 0x20]
ldr r0, _080B9240 @ =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_807492C
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
subs r1, 0x20
strh r1, [r4, 0x24]
adds r0, 0x20
strh r0, [r4, 0x26]
b _080B929A
.align 2, 0
_080B923C: .4byte gBattle_BG2_X
_080B9240: .4byte gBattleAnimAttacker
_080B9244:
ldrb r0, [r4, 0x1E]
movs r1, 0x26
ldrsh r2, [r4, r1]
movs r1, 0
bl sub_80B92B8
b _080B929A
_080B9252:
ldr r2, _080B9268 @ =gSprites
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x60
strh r1, [r0, 0x26]
b _080B929A
.align 2, 0
_080B9268: .4byte gSprites
_080B926C:
ldr r2, _080B92A4 @ =gSprites
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldrh r1, [r0, 0x26]
subs r1, 0x8
strh r1, [r0, 0x26]
movs r0, 0x1C
ldrsh r1, [r4, r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x26
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080B92B2
ldr r1, _080B92A8 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080B929A:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080B92B2
.align 2, 0
_080B92A4: .4byte gSprites
_080B92A8: .4byte gScanlineEffect
_080B92AC:
adds r0, r2, 0
bl DestroyAnimVisualTask
_080B92B2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80B91B0
thumb_func_start sub_80B92B8
sub_80B92B8: @ 80B92B8
push {r4-r6,lr}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
lsls r1, 16
lsrs r1, 16
lsls r2, 16
lsrs r4, r2, 16
cmp r0, 0x1
bne _080B92DC
ldr r0, _080B92D4 @ =gBattle_BG1_X
ldrh r3, [r0]
ldr r0, _080B92D8 @ =0x04000014
b _080B92E2
.align 2, 0
_080B92D4: .4byte gBattle_BG1_X
_080B92D8: .4byte 0x04000014
_080B92DC:
ldr r0, _080B9368 @ =gBattle_BG2_X
ldrh r3, [r0]
ldr r0, _080B936C @ =0x04000018
_080B92E2:
str r0, [sp]
lsls r0, r1, 16
cmp r0, 0
bge _080B92EC
movs r1, 0
_080B92EC:
lsls r2, r1, 16
lsls r0, r4, 16
asrs r4, r0, 16
cmp r2, r0
bge _080B9318
ldr r5, _080B9370 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
_080B92FE:
asrs r2, 16
lsls r1, r2, 1
adds r0, r1, r5
strh r3, [r0]
adds r1, r6
strh r3, [r1]
adds r2, 0x1
lsls r2, 16
lsrs r1, r2, 16
lsls r2, r1, 16
asrs r0, r2, 16
cmp r0, r4
blt _080B92FE
_080B9318:
lsls r1, 16
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080B9346
ldr r4, _080B9370 @ =gScanlineEffectRegBuffers
lsls r0, r3, 16
asrs r0, 16
adds r3, r0, 0
adds r3, 0xF0
movs r0, 0xF0
lsls r0, 3
adds r5, r4, r0
_080B9330:
asrs r2, r1, 16
lsls r1, r2, 1
adds r0, r1, r4
strh r3, [r0]
adds r1, r5
strh r3, [r1]
adds r2, 0x1
lsls r1, r2, 16
asrs r0, r1, 16
cmp r0, 0x9F
ble _080B9330
_080B9346:
ldr r0, _080B9374 @ =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
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B9368: .4byte gBattle_BG2_X
_080B936C: .4byte 0x04000018
_080B9370: .4byte gScanlineEffectRegBuffers
_080B9374: .4byte 0xa2600001
thumb_func_end sub_80B92B8
thumb_func_start sub_80B9378
sub_80B9378: @ 80B9378
push {r4-r7,lr}
adds r5, r0, 0
ldr r0, _080B938C @ =gBattleAnimArgs
movs r2, 0
ldrsh r1, [r0, r2]
adds r7, r0, 0
cmp r1, 0
bne _080B9394
ldr r0, _080B9390 @ =gBattleAnimAttacker
b _080B9396
.align 2, 0
_080B938C: .4byte gBattleAnimArgs
_080B9390: .4byte gBattleAnimAttacker
_080B9394:
ldr r0, _080B93F8 @ =gBattleAnimTarget
_080B9396:
ldrb r4, [r0]
movs r6, 0x18
adds r1, r7, 0
movs r2, 0x2
ldrsh r0, [r1, r2]
cmp r0, 0x1
bne _080B93B2
negs r0, r6
lsls r0, 16
lsrs r6, r0, 16
movs r2, 0x4
ldrsh r0, [r1, r2]
negs r0, r0
strh r0, [r1, 0x4]
_080B93B2:
adds r0, r4, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
strh r0, [r5, 0x20]
adds r0, r4, 0
bl sub_807492C
lsls r0, 24
lsrs r0, 24
adds r0, 0x1E
strh r0, [r5, 0x22]
ldrh r1, [r7, 0xA]
strh r1, [r5, 0x2E]
ldrh r1, [r7, 0x4]
ldrh r2, [r5, 0x20]
adds r1, r2
strh r1, [r5, 0x32]
ldrh r1, [r7, 0x6]
adds r0, r1
strh r0, [r5, 0x36]
ldrh r0, [r7, 0x8]
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_8075068
ldr r0, _080B93FC @ =sub_80B9400
str r0, [r5, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B93F8: .4byte gBattleAnimTarget
_080B93FC: .4byte sub_80B9400
thumb_func_end sub_80B9378
thumb_func_start sub_80B9400
sub_80B9400: @ 80B9400
push {r4,lr}
adds r4, r0, 0
bl AnimateBallThrow
lsls r0, 24
cmp r0, 0
beq _080B9414
adds r0, r4, 0
bl DestroyAnimSprite
_080B9414:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80B9400
thumb_func_start sub_80B941C
sub_80B941C: @ 80B941C
push {r4-r6,lr}
adds r6, r0, 0
ldr r0, _080B9430 @ =gBattleAnimArgs
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080B9438
ldr r0, _080B9434 @ =gBattleAnimAttacker
b _080B943A
.align 2, 0
_080B9430: .4byte gBattleAnimArgs
_080B9434: .4byte gBattleAnimAttacker
_080B9438:
ldr r0, _080B9498 @ =gBattleAnimTarget
_080B943A:
ldrb r5, [r0]
adds r0, r5, 0
movs r1, 0
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r2, _080B949C @ =0x0000fff0
adds r0, r2
ldr r4, _080B94A0 @ =gBattleAnimArgs
movs r3, 0x2
ldrsh r1, [r4, r3]
lsls r1, 5
adds r0, r1
strh r0, [r6, 0x20]
adds r0, r5, 0
bl sub_807492C
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
strh r0, [r6, 0x22]
ldrh r2, [r6, 0x4]
lsls r1, r2, 22
lsrs r1, 22
movs r3, 0x2
ldrsh r0, [r4, r3]
lsls r0, 3
adds r1, r0
ldr r3, _080B94A4 @ =0x000003ff
adds r0, r3, 0
ands r1, r0
ldr r0, _080B94A8 @ =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r6, 0x4]
ldr r1, _080B94AC @ =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
ldrh r0, [r4, 0x4]
strh r0, [r6, 0x2E]
ldr r0, _080B94B0 @ =sub_8074C44
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B9498: .4byte gBattleAnimTarget
_080B949C: .4byte 0x0000fff0
_080B94A0: .4byte gBattleAnimArgs
_080B94A4: .4byte 0x000003ff
_080B94A8: .4byte 0xfffffc00
_080B94AC: .4byte DestroyAnimSprite
_080B94B0: .4byte sub_8074C44
thumb_func_end sub_80B941C
thumb_func_start sub_80B94B4
sub_80B94B4: @ 80B94B4
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _080B94D8 @ =gTasks
adds r4, r0, r1
ldr r0, _080B94DC @ =gBattleAnimArgs
ldrh r2, [r0, 0x2]
movs r3, 0x2
ldrsh r1, [r0, r3]
adds r6, r0, 0
cmp r1, 0
beq _080B94E0
adds r0, r2, 0x3
b _080B94EC
.align 2, 0
_080B94D8: .4byte gTasks
_080B94DC: .4byte gBattleAnimArgs
_080B94E0:
ldr r0, _080B950C @ =gAnimMovePower
ldrh r0, [r0]
movs r1, 0xA
bl __udivsi3
adds r0, 0x3
_080B94EC:
strh r0, [r4, 0x26]
strh r0, [r4, 0x24]
adds r1, r6, 0
ldrh r0, [r1, 0x4]
strh r0, [r4, 0xE]
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0x4
beq _080B9518
cmp r0, 0x5
bne _080B9558
ldr r0, _080B9510 @ =gBattle_BG3_X
ldrh r0, [r0]
strh r0, [r4, 0x22]
ldr r0, _080B9514 @ =sub_80B9584
b _080B9576
.align 2, 0
_080B950C: .4byte gAnimMovePower
_080B9510: .4byte gBattle_BG3_X
_080B9514: .4byte sub_80B9584
_080B9518:
movs r0, 0
strh r0, [r4, 0x22]
movs r5, 0
_080B951E:
lsls r0, r5, 24
lsrs r0, 24
bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080B9548
movs r3, 0x22
ldrsh r0, [r4, r3]
adds r0, 0x9
lsls r0, 1
adds r1, r4, 0
adds r1, 0x8
adds r1, r0
ldr r0, _080B9554 @ =gBattlerSpriteIds
adds r0, r5, r0
ldrb r0, [r0]
strh r0, [r1]
ldrh r0, [r4, 0x22]
adds r0, 0x1
strh r0, [r4, 0x22]
_080B9548:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0x3
bls _080B951E
b _080B9574
.align 2, 0
_080B9554: .4byte gBattlerSpriteIds
_080B9558:
ldrb r0, [r6]
bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
cmp r0, 0xFF
bne _080B9570
adds r0, r5, 0
bl DestroyAnimVisualTask
b _080B9578
_080B9570:
movs r0, 0x1
strh r0, [r4, 0x22]
_080B9574:
ldr r0, _080B9580 @ =sub_80B967C
_080B9576:
str r0, [r4]
_080B9578:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080B9580: .4byte sub_80B967C
thumb_func_end sub_80B94B4
thumb_func_start sub_80B9584
sub_80B9584: @ 80B9584
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, _080B95A8 @ =gTasks
adds r3, r0, r1
movs r0, 0x8
ldrsh r1, [r3, r0]
cmp r1, 0x1
beq _080B9608
cmp r1, 0x1
bgt _080B95AC
cmp r1, 0
beq _080B95B2
b _080B9674
.align 2, 0
_080B95A8: .4byte gTasks
_080B95AC:
cmp r1, 0x2
beq _080B9668
b _080B9674
_080B95B2:
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _080B9674
strh r1, [r3, 0xA]
ldrh r1, [r3, 0xC]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080B95DC
ldr r1, _080B95D8 @ =gBattle_BG3_X
ldrh r0, [r3, 0x26]
ldrh r2, [r3, 0x22]
adds r0, r2
strh r0, [r1]
b _080B95E6
.align 2, 0
_080B95D8: .4byte gBattle_BG3_X
_080B95DC:
ldr r0, _080B9604 @ =gBattle_BG3_X
ldrh r1, [r3, 0x22]
ldrh r2, [r3, 0x26]
subs r1, r2
strh r1, [r0]
_080B95E6:
ldrh r0, [r3, 0xC]
adds r0, 0x1
strh r0, [r3, 0xC]
lsls r0, 16
asrs r0, 16
movs r2, 0xE
ldrsh r1, [r3, r2]
cmp r0, r1
bne _080B9674
movs r0, 0
strh r0, [r3, 0xC]
ldrh r0, [r3, 0x24]
subs r0, 0x1
strh r0, [r3, 0x24]
b _080B965C
.align 2, 0
_080B9604: .4byte gBattle_BG3_X
_080B9608:
ldrh r0, [r3, 0xA]
adds r0, 0x1
strh r0, [r3, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _080B9674
movs r0, 0
strh r0, [r3, 0xA]
ldrh r0, [r3, 0xC]
ands r1, r0
cmp r1, 0
bne _080B9634
ldr r1, _080B9630 @ =gBattle_BG3_X
ldrh r0, [r3, 0x24]
ldrh r2, [r3, 0x22]
adds r0, r2
strh r0, [r1]
b _080B963E
.align 2, 0
_080B9630: .4byte gBattle_BG3_X
_080B9634:
ldr r0, _080B9664 @ =gBattle_BG3_X
ldrh r1, [r3, 0x22]
ldrh r2, [r3, 0x24]
subs r1, r2
strh r1, [r0]
_080B963E:
ldrh r0, [r3, 0xC]
adds r0, 0x1
strh r0, [r3, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _080B9674
movs r0, 0
strh r0, [r3, 0xC]
ldrh r0, [r3, 0x24]
subs r0, 0x1
strh r0, [r3, 0x24]
lsls r0, 16
cmp r0, 0
bne _080B9674
_080B965C:
ldrh r0, [r3, 0x8]
adds r0, 0x1
strh r0, [r3, 0x8]
b _080B9674
.align 2, 0
_080B9664: .4byte gBattle_BG3_X
_080B9668:
ldr r1, _080B9678 @ =gBattle_BG3_X
ldrh r0, [r3, 0x22]
strh r0, [r1]
adds r0, r2, 0
bl DestroyAnimVisualTask
_080B9674:
pop {r0}
bx r0
.align 2, 0
_080B9678: .4byte gBattle_BG3_X
thumb_func_end sub_80B9584
thumb_func_start sub_80B967C
sub_80B967C: @ 80B967C
push {r4-r7,lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
ldr r1, _080B96A0 @ =gTasks
adds r4, r0, r1
movs r0, 0x8
ldrsh r5, [r4, r0]
cmp r5, 0x1
beq _080B96DC
cmp r5, 0x1
bgt _080B96A4
cmp r5, 0
beq _080B96AA
b _080B9756
.align 2, 0
_080B96A0: .4byte gTasks
_080B96A4:
cmp r5, 0x2
beq _080B9718
b _080B9756
_080B96AA:
ldrh r0, [r4, 0xA]
adds r0, 0x1
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _080B9756
strh r5, [r4, 0xA]
adds r0, r4, 0
bl sub_80B9760
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
movs r2, 0xE
ldrsh r1, [r4, r2]
cmp r0, r1
bne _080B9756
strh r5, [r4, 0xC]
ldrh r0, [r4, 0x24]
subs r0, 0x1
strh r0, [r4, 0x24]
b _080B9710
_080B96DC:
ldrh r0, [r4, 0xA]
adds r0, 0x1
movs r5, 0
strh r0, [r4, 0xA]
lsls r0, 16
asrs r0, 16
cmp r0, 0x1
ble _080B9756
strh r5, [r4, 0xA]
adds r0, r4, 0
bl sub_80B9760
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
lsls r0, 16
asrs r0, 16
cmp r0, 0x4
bne _080B9756
strh r5, [r4, 0xC]
ldrh r0, [r4, 0x24]
subs r0, 0x1
strh r0, [r4, 0x24]
lsls r0, 16
cmp r0, 0
bne _080B9756
_080B9710:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080B9756
_080B9718:
movs r2, 0
movs r7, 0x22
ldrsh r0, [r4, r7]
cmp r2, r0
bge _080B9750
ldr r0, _080B975C @ =gSprites
mov r12, r0
adds r5, r4, 0
adds r5, 0x8
movs r6, 0
_080B972C:
adds r0, r2, 0
adds r0, 0x9
lsls r0, 1
adds r0, r5, r0
movs r7, 0
ldrsh r1, [r0, r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r12
strh r6, [r0, 0x24]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
movs r1, 0x22
ldrsh r0, [r4, r1]
cmp r2, r0
blt _080B972C
_080B9750:
adds r0, r3, 0
bl DestroyAnimVisualTask
_080B9756:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B975C: .4byte gSprites
thumb_func_end sub_80B967C
thumb_func_start sub_80B9760
sub_80B9760: @ 80B9760
push {r4-r7,lr}
adds r3, r0, 0
ldrh r1, [r3, 0xC]
movs r4, 0x1
adds r0, r4, 0
ands r0, r1
cmp r0, 0
bne _080B9788
movs r0, 0x24
ldrsh r1, [r3, r0]
lsrs r0, r1, 31
adds r1, r0
asrs r1, 1
ldrh r2, [r3, 0x24]
adds r0, r4, 0
ands r0, r2
adds r1, r0
lsls r1, 16
lsrs r4, r1, 16
b _080B9798
_080B9788:
movs r1, 0x24
ldrsh r0, [r3, r1]
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
negs r0, r0
lsls r0, 16
lsrs r4, r0, 16
_080B9798:
movs r2, 0
movs r7, 0x22
ldrsh r0, [r3, r7]
cmp r2, r0
bge _080B97CC
ldr r6, _080B97D4 @ =gSprites
adds r5, r3, 0
adds r5, 0x8
_080B97A8:
adds r0, r2, 0
adds r0, 0x9
lsls r0, 1
adds r0, r5, r0
movs r7, 0
ldrsh r1, [r0, r7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
strh r4, [r0, 0x24]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
movs r1, 0x22
ldrsh r0, [r3, r1]
cmp r2, r0
blt _080B97A8
_080B97CC:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B97D4: .4byte gSprites
thumb_func_end sub_80B9760
thumb_func_start sub_80B97D8
sub_80B97D8: @ 80B97D8
push {lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r3, _080B97F8 @ =gBattleAnimArgs
movs r2, 0
ldr r0, _080B97FC @ =gAnimMovePower
ldrh r0, [r0]
cmp r0, 0x63
bls _080B97EC
movs r2, 0x1
_080B97EC:
strh r2, [r3, 0x1E]
adds r0, r1, 0
bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
_080B97F8: .4byte gBattleAnimArgs
_080B97FC: .4byte gAnimMovePower
thumb_func_end sub_80B97D8
thumb_func_start sub_80B9800
sub_80B9800: @ 80B9800
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
ldr r2, _080B9818 @ =gBattleAnimArgs
ldrh r1, [r2]
movs r0, 0x1
ands r0, r1
adds r6, r2, 0
cmp r0, 0
beq _080B9820
ldr r0, _080B981C @ =gBattleAnimTarget
b _080B9822
.align 2, 0
_080B9818: .4byte gBattleAnimArgs
_080B981C: .4byte gBattleAnimTarget
_080B9820:
ldr r0, _080B9890 @ =gBattleAnimAttacker
_080B9822:
ldrb r0, [r0]
adds r5, r0, 0
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0x1
ble _080B9832
movs r0, 0x2
eors r5, r0
_080B9832:
ldr r0, _080B9894 @ =sub_80B98A8
ldrb r1, [r6, 0x2]
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _080B9898 @ =gTasks
adds r4, r0
adds r0, r5, 0
movs r1, 0x2
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0x20
subs r1, r0
ldr r2, _080B989C @ =0x000001ff
adds r0, r2, 0
ands r1, r0
strh r1, [r4, 0xA]
adds r0, r5, 0
movs r1, 0x3
bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0x40
subs r1, r0
movs r0, 0xFF
ands r1, r0
strh r1, [r4, 0xC]
ldr r2, _080B98A0 @ =gBattle_BG3_X
ldrh r0, [r4, 0xA]
strh r0, [r2]
ldr r0, _080B98A4 @ =gBattle_BG3_Y
strh r1, [r0]
ldrh r0, [r6, 0x4]
strh r0, [r4, 0xE]
adds r0, r7, 0
bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080B9890: .4byte gBattleAnimAttacker
_080B9894: .4byte sub_80B98A8
_080B9898: .4byte gTasks
_080B989C: .4byte 0x000001ff
_080B98A0: .4byte gBattle_BG3_X
_080B98A4: .4byte gBattle_BG3_Y
thumb_func_end sub_80B9800
thumb_func_start sub_80B98A8
sub_80B98A8: @ 80B98A8
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r0, r3, 2
adds r0, r3
lsls r0, 3
ldr r1, _080B98D8 @ =gTasks
adds r2, r0, r1
ldr r0, _080B98DC @ =gBattleAnimArgs
movs r4, 0xE
ldrsh r1, [r0, r4]
movs r4, 0xE
ldrsh r0, [r2, r4]
cmp r1, r0
bne _080B98E8
ldr r0, _080B98E0 @ =gBattle_BG3_X
movs r1, 0
strh r1, [r0]
ldr r0, _080B98E4 @ =gBattle_BG3_Y
strh r1, [r0]
adds r0, r3, 0
bl DestroyTask
b _080B98F4
.align 2, 0
_080B98D8: .4byte gTasks
_080B98DC: .4byte gBattleAnimArgs
_080B98E0: .4byte gBattle_BG3_X
_080B98E4: .4byte gBattle_BG3_Y
_080B98E8:
ldr r1, _080B98FC @ =gBattle_BG3_X
ldrh r0, [r2, 0xA]
strh r0, [r1]
ldr r1, _080B9900 @ =gBattle_BG3_Y
ldrh r0, [r2, 0xC]
strh r0, [r1]
_080B98F4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080B98FC: .4byte gBattle_BG3_X
_080B9900: .4byte gBattle_BG3_Y
thumb_func_end sub_80B98A8
.align 2, 0 @ Don't pad with nop.