mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 22:28:44 -05:00
5134 lines
88 KiB
ArmAsm
5134 lines
88 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80BA7F8
|
|
sub_80BA7F8: @ 80BA7F8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r4, _080BA838 @ =gBattleAnimArgs
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_80B9A14
|
|
adds r6, r0, 0
|
|
ldrh r3, [r4]
|
|
lsls r3, 16
|
|
asrs r0, r3, 23
|
|
movs r4, 0x1
|
|
ands r0, r4
|
|
asrs r1, r3, 24
|
|
ands r1, r4
|
|
asrs r2, r3, 25
|
|
ands r2, r4
|
|
asrs r3, 26
|
|
ands r3, r4
|
|
bl sub_8075CB8
|
|
orrs r6, r0
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80BAA4C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA838: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BA7F8
|
|
|
|
thumb_func_start sub_80BA83C
|
|
sub_80BA83C: @ 80BA83C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
mov r1, sp
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x1
|
|
bl sub_80B9A14
|
|
adds r5, r0, 0
|
|
ldr r0, _080BA868 @ =gBattleAnimArgs
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x7
|
|
bhi _080BA8E6
|
|
lsls r0, 2
|
|
ldr r1, _080BA86C @ =_080BA870
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BA868: .4byte gBattleAnimArgs
|
|
_080BA86C: .4byte _080BA870
|
|
.align 2, 0
|
|
_080BA870:
|
|
.4byte _080BA892
|
|
.4byte _080BA89E
|
|
.4byte _080BA890
|
|
.4byte _080BA89C
|
|
.4byte _080BA8AC
|
|
.4byte _080BA8C4
|
|
.4byte _080BA8CC
|
|
.4byte _080BA8D8
|
|
_080BA890:
|
|
movs r5, 0
|
|
_080BA892:
|
|
mov r0, sp
|
|
ldr r1, _080BA898 @ =gBattleAnimAttacker
|
|
b _080BA8A2
|
|
.align 2, 0
|
|
_080BA898: .4byte gBattleAnimAttacker
|
|
_080BA89C:
|
|
movs r5, 0
|
|
_080BA89E:
|
|
mov r0, sp
|
|
ldr r1, _080BA8A8 @ =gBattleAnimTarget
|
|
_080BA8A2:
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
b _080BA8E6
|
|
.align 2, 0
|
|
_080BA8A8: .4byte gBattleAnimTarget
|
|
_080BA8AC:
|
|
mov r1, sp
|
|
ldr r0, _080BA8BC @ =gBattleAnimAttacker
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, _080BA8C0 @ =gBattleAnimTarget
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x1]
|
|
b _080BA8E6
|
|
.align 2, 0
|
|
_080BA8BC: .4byte gBattleAnimAttacker
|
|
_080BA8C0: .4byte gBattleAnimTarget
|
|
_080BA8C4:
|
|
mov r1, sp
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
b _080BA8E6
|
|
_080BA8CC:
|
|
movs r5, 0
|
|
mov r2, sp
|
|
ldr r0, _080BA8D4 @ =gBattleAnimAttacker
|
|
b _080BA8DE
|
|
.align 2, 0
|
|
_080BA8D4: .4byte gBattleAnimAttacker
|
|
_080BA8D8:
|
|
movs r5, 0
|
|
mov r2, sp
|
|
ldr r0, _080BA930 @ =gBattleAnimTarget
|
|
_080BA8DE:
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
strb r0, [r2]
|
|
_080BA8E6:
|
|
movs r4, 0
|
|
mov r6, sp
|
|
_080BA8EA:
|
|
ldrb r0, [r6]
|
|
cmp r4, r0
|
|
beq _080BA914
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r4, r0
|
|
beq _080BA914
|
|
adds r0, r4, 0
|
|
bl IsBattlerSpriteVisible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BA914
|
|
adds r0, r4, 0
|
|
bl sub_8075D80
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
lsls r1, r0
|
|
orrs r5, r1
|
|
_080BA914:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _080BA8EA
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80BAA4C
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA930: .4byte gBattleAnimTarget
|
|
thumb_func_end sub_80BA83C
|
|
|
|
thumb_func_start sub_80BA934
|
|
sub_80BA934: @ 80BA934
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080BA958 @ =gBattleAnimArgs
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80B9A14
|
|
adds r2, r0, 0
|
|
ldr r0, _080BA95C @ =gBattleTerrain
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bhi _080BAA0A
|
|
lsls r0, 2
|
|
ldr r1, _080BA960 @ =_080BA964
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BA958: .4byte gBattleAnimArgs
|
|
_080BA95C: .4byte gBattleTerrain
|
|
_080BA960: .4byte _080BA964
|
|
.align 2, 0
|
|
_080BA964:
|
|
.4byte _080BA98C
|
|
.4byte _080BA99C
|
|
.4byte _080BA9A8
|
|
.4byte _080BA9B8
|
|
.4byte _080BA9C4
|
|
.4byte _080BA9D4
|
|
.4byte _080BA9E4
|
|
.4byte _080BA9F4
|
|
.4byte _080BAA04
|
|
.4byte _080BAA04
|
|
_080BA98C:
|
|
ldr r1, _080BA994 @ =gBattleAnimArgs
|
|
ldr r0, _080BA998 @ =0x00000b0c
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA994: .4byte gBattleAnimArgs
|
|
_080BA998: .4byte 0x00000b0c
|
|
_080BA99C:
|
|
ldr r1, _080BA9A4 @ =gBattleAnimArgs
|
|
movs r0, 0x9E
|
|
lsls r0, 4
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9A4: .4byte gBattleAnimArgs
|
|
_080BA9A8:
|
|
ldr r1, _080BA9B0 @ =gBattleAnimArgs
|
|
ldr r0, _080BA9B4 @ =0x00002f1e
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9B0: .4byte gBattleAnimArgs
|
|
_080BA9B4: .4byte 0x00002f1e
|
|
_080BA9B8:
|
|
ldr r1, _080BA9C0 @ =gBattleAnimArgs
|
|
movs r0, 0x90
|
|
lsls r0, 7
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9C0: .4byte gBattleAnimArgs
|
|
_080BA9C4:
|
|
ldr r1, _080BA9CC @ =gBattleAnimArgs
|
|
ldr r0, _080BA9D0 @ =0x00007ecb
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9CC: .4byte gBattleAnimArgs
|
|
_080BA9D0: .4byte 0x00007ecb
|
|
_080BA9D4:
|
|
ldr r1, _080BA9DC @ =gBattleAnimArgs
|
|
ldr r0, _080BA9E0 @ =0x00007ecb
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9DC: .4byte gBattleAnimArgs
|
|
_080BA9E0: .4byte 0x00007ecb
|
|
_080BA9E4:
|
|
ldr r1, _080BA9EC @ =gBattleAnimArgs
|
|
ldr r0, _080BA9F0 @ =0x00002a16
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9EC: .4byte gBattleAnimArgs
|
|
_080BA9F0: .4byte 0x00002a16
|
|
_080BA9F4:
|
|
ldr r1, _080BA9FC @ =gBattleAnimArgs
|
|
ldr r0, _080BAA00 @ =0x00000d2e
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9FC: .4byte gBattleAnimArgs
|
|
_080BAA00: .4byte 0x00000d2e
|
|
_080BAA04:
|
|
ldr r1, _080BAA18 @ =gBattleAnimArgs
|
|
ldr r0, _080BAA1C @ =0x00007fff
|
|
_080BAA08:
|
|
strh r0, [r1, 0x8]
|
|
_080BAA0A:
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_80BAA4C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAA18: .4byte gBattleAnimArgs
|
|
_080BAA1C: .4byte 0x00007fff
|
|
thumb_func_end sub_80BA934
|
|
|
|
thumb_func_start sub_80BAA20
|
|
sub_80BAA20: @ 80BAA20
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080BAA48 @ =gBattleAnimArgs
|
|
ldrh r0, [r0]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x10
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
adds r0, r4, 0
|
|
bl sub_80BAA4C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAA48: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BAA20
|
|
|
|
thumb_func_start sub_80BAA4C
|
|
sub_80BAA4C: @ 80BAA4C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _080BAA84 @ =gTasks
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, r3
|
|
strh r1, [r2, 0x8]
|
|
lsrs r1, 16
|
|
strh r1, [r2, 0xA]
|
|
ldr r3, _080BAA88 @ =gBattleAnimArgs
|
|
ldrh r1, [r3, 0x2]
|
|
strh r1, [r2, 0xC]
|
|
ldrh r1, [r3, 0x4]
|
|
strh r1, [r2, 0xE]
|
|
ldrh r1, [r3, 0x6]
|
|
strh r1, [r2, 0x10]
|
|
ldrh r1, [r3, 0x8]
|
|
strh r1, [r2, 0x12]
|
|
ldrh r1, [r3, 0x4]
|
|
strh r1, [r2, 0x1C]
|
|
ldr r1, _080BAA8C @ =sub_80BAA90
|
|
str r1, [r2]
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAA84: .4byte gTasks
|
|
_080BAA88: .4byte gBattleAnimArgs
|
|
_080BAA8C: .4byte sub_80BAA90
|
|
thumb_func_end sub_80BAA4C
|
|
|
|
thumb_func_start sub_80BAA90
|
|
sub_80BAA90: @ 80BAA90
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
ldr r2, _080BAB10 @ =gTasks
|
|
lsls r5, r7, 2
|
|
adds r0, r5, r7
|
|
lsls r0, 3
|
|
adds r3, r0, r2
|
|
ldrh r0, [r3, 0x1A]
|
|
mov r8, r0
|
|
movs r4, 0x1A
|
|
ldrsh r1, [r3, r4]
|
|
movs r4, 0xC
|
|
ldrsh r0, [r3, r4]
|
|
mov r9, r2
|
|
cmp r1, r0
|
|
bne _080BAB26
|
|
strh r6, [r3, 0x1A]
|
|
movs r0, 0x8
|
|
ldrsh r4, [r3, r0]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r3, r1]
|
|
lsls r0, 16
|
|
orrs r4, r0
|
|
mov r8, r5
|
|
cmp r4, 0
|
|
beq _080BAAF2
|
|
adds r5, r3, 0
|
|
_080BAAD0:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080BAAE4
|
|
ldrb r2, [r5, 0x1C]
|
|
ldrh r3, [r5, 0x12]
|
|
adds r0, r6, 0
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
_080BAAE4:
|
|
adds r0, r6, 0
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsrs r4, 1
|
|
cmp r4, 0
|
|
bne _080BAAD0
|
|
_080BAAF2:
|
|
mov r4, r8
|
|
adds r0, r4, r7
|
|
lsls r0, 3
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2, 0x1C]
|
|
movs r4, 0x1C
|
|
ldrsh r3, [r2, r4]
|
|
movs r4, 0x10
|
|
ldrsh r1, [r2, r4]
|
|
cmp r3, r1
|
|
bge _080BAB14
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x1C]
|
|
b _080BAB2C
|
|
.align 2, 0
|
|
_080BAB10: .4byte gTasks
|
|
_080BAB14:
|
|
cmp r3, r1
|
|
ble _080BAB1E
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x1C]
|
|
b _080BAB2C
|
|
_080BAB1E:
|
|
adds r0, r7, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080BAB2C
|
|
_080BAB26:
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x1A]
|
|
_080BAB2C:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BAA90
|
|
|
|
thumb_func_start sub_80BAB38
|
|
sub_80BAB38: @ 80BAB38
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r4, _080BAB6C @ =gBattleAnimArgs
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x2]
|
|
ldrb r2, [r4, 0x4]
|
|
ldrb r3, [r4, 0x6]
|
|
ldrb r4, [r4, 0x8]
|
|
str r4, [sp]
|
|
bl BeginHardwarePaletteFade
|
|
ldr r1, _080BAB70 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080BAB74 @ =sub_80BAB78
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAB6C: .4byte gBattleAnimArgs
|
|
_080BAB70: .4byte gTasks
|
|
_080BAB74: .4byte sub_80BAB78
|
|
thumb_func_end sub_80BAB38
|
|
|
|
thumb_func_start sub_80BAB78
|
|
sub_80BAB78: @ 80BAB78
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080BAB94 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080BAB90
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BAB90:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAB94: .4byte gPaletteFade
|
|
thumb_func_end sub_80BAB78
|
|
|
|
thumb_func_start sub_80BAB98
|
|
sub_80BAB98: @ 80BAB98
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080BABC4 @ =gTasks
|
|
adds r1, r0
|
|
ldr r2, _080BABC8 @ =gBattleAnimArgs
|
|
ldrh r0, [r2]
|
|
movs r3, 0
|
|
strh r0, [r1, 0x8]
|
|
strh r3, [r1, 0xA]
|
|
ldrh r0, [r2, 0x2]
|
|
strh r0, [r1, 0xC]
|
|
ldrh r0, [r2, 0x4]
|
|
strh r0, [r1, 0xE]
|
|
ldrh r0, [r2, 0x6]
|
|
strh r0, [r1, 0x10]
|
|
strh r3, [r1, 0x12]
|
|
ldr r0, _080BABCC @ =sub_80BABD0
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080BABC4: .4byte gTasks
|
|
_080BABC8: .4byte gBattleAnimArgs
|
|
_080BABCC: .4byte sub_80BABD0
|
|
thumb_func_end sub_80BAB98
|
|
|
|
thumb_func_start sub_80BABD0
|
|
sub_80BABD0: @ 80BABD0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r2, r5, 0
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080BABFC @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080BAC94
|
|
ldrh r1, [r4, 0xA]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080BAC00
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080BACA2
|
|
.align 2, 0
|
|
_080BABFC: .4byte gTasks
|
|
_080BAC00:
|
|
ldrb r0, [r4, 0x8]
|
|
bl duplicate_obj_of_side_rel2move_in_transparent_mode
|
|
strh r0, [r4, 0x14]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080BAC7E
|
|
ldr r6, _080BAC8C @ =gSprites
|
|
movs r1, 0x14
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r3, r1, r6
|
|
movs r2, 0x8
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x2
|
|
cmp r0, 0
|
|
beq _080BAC28
|
|
movs r2, 0x1
|
|
_080BAC28:
|
|
lsls r2, 2
|
|
ldrb r1, [r3, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r3, 0x5]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrh r1, [r4, 0xE]
|
|
strh r1, [r0, 0x2E]
|
|
movs r2, 0x14
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
strh r5, [r0, 0x30]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x5
|
|
strh r1, [r0, 0x32]
|
|
movs r2, 0x14
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r6, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, _080BAC90 @ =sub_80BACA8
|
|
str r1, [r0]
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
_080BAC7E:
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xA]
|
|
b _080BACA2
|
|
.align 2, 0
|
|
_080BAC8C: .4byte gSprites
|
|
_080BAC90: .4byte sub_80BACA8
|
|
_080BAC94:
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080BACA2
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BACA2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BABD0
|
|
|
|
thumb_func_start sub_80BACA8
|
|
sub_80BACA8: @ 80BACA8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080BACBC
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080BACE0
|
|
_080BACBC:
|
|
ldr r3, _080BACE8 @ =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]
|
|
adds r0, r4, 0
|
|
bl obj_delete_but_dont_free_vram
|
|
_080BACE0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BACE8: .4byte gTasks
|
|
thumb_func_end sub_80BACA8
|
|
|
|
thumb_func_start sub_80BACEC
|
|
sub_80BACEC: @ 80BACEC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
movs r7, 0
|
|
ldr r0, _080BAE20 @ =gUnknown_2022984
|
|
strh r7, [r0]
|
|
ldr r0, _080BAE24 @ =gUnknown_2022986
|
|
strh r7, [r0]
|
|
ldr r1, _080BAE28 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _080BAE2C @ =0x00003f3d
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _080BAE30 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r1, _080BAE34 @ =0x00000c08
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
add r4, sp, 0x10
|
|
strh r0, [r4]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
mov r2, sp
|
|
adds r2, 0x11
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrh r1, [r4]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BAD7A
|
|
ldrb r1, [r4]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrh r1, [r4]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
_080BAD7A:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BADFE
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BADFE
|
|
ldr r5, _080BAE38 @ =gBattleAnimAttacker
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _080BADAA
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BADFE
|
|
_080BADAA:
|
|
ldrb r0, [r5]
|
|
movs r6, 0x2
|
|
eors r0, r6
|
|
bl IsBattlerSpriteVisible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080BADFE
|
|
ldr r3, _080BAE3C @ =gSprites
|
|
ldr r1, _080BAE40 @ =gBattlerSpriteIds
|
|
ldrb r0, [r5]
|
|
eors r0, r6
|
|
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]
|
|
ldrb r1, [r4]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrh r1, [r4]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r7, 0x1
|
|
_080BADFE:
|
|
ldr r4, _080BAE38 @ =gBattleAnimAttacker
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BAE4C
|
|
ldr r1, _080BAE44 @ =gBattlerPartyIndexes
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BAE48 @ =gEnemyParty
|
|
b _080BAE5C
|
|
.align 2, 0
|
|
_080BAE20: .4byte gUnknown_2022984
|
|
_080BAE24: .4byte gUnknown_2022986
|
|
_080BAE28: .4byte 0x00003f3f
|
|
_080BAE2C: .4byte 0x00003f3d
|
|
_080BAE30: .4byte 0x00003f42
|
|
_080BAE34: .4byte 0x00000c08
|
|
_080BAE38: .4byte gBattleAnimAttacker
|
|
_080BAE3C: .4byte gSprites
|
|
_080BAE40: .4byte gBattlerSpriteIds
|
|
_080BAE44: .4byte gBattlerPartyIndexes
|
|
_080BAE48: .4byte gEnemyParty
|
|
_080BAE4C:
|
|
ldr r1, _080BAF0C @ =gBattlerPartyIndexes
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BAF10 @ =gPlayerParty
|
|
_080BAE5C:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r0, _080BAF14 @ =gBattleAnimAttacker
|
|
ldrb r0, [r0]
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap
|
|
bl sub_807543C
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BAEAC
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080BAEAC:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BAF1C @ =gFile_graphics_battle_anims_masks_curse_sheet
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080BAF20 @ =gUnknown_83E7CC8
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
adds r1, 0x1
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
ldr r2, _080BAF24 @ =gBattle_BG1_X
|
|
ldr r0, _080BAF28 @ =gSprites
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x20]
|
|
negs r0, r0
|
|
adds r0, 0x20
|
|
strh r0, [r2]
|
|
ldr r2, _080BAF2C @ =gBattle_BG1_Y
|
|
ldrh r0, [r1, 0x22]
|
|
negs r0, r0
|
|
adds r0, 0x20
|
|
strh r0, [r2]
|
|
ldr r1, _080BAF30 @ =gTasks
|
|
mov r2, r9
|
|
lsls r0, r2, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r4, [r0, 0x8]
|
|
strh r7, [r0, 0x14]
|
|
ldr r1, _080BAF34 @ =sub_80BAF38
|
|
str r1, [r0]
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAF0C: .4byte gBattlerPartyIndexes
|
|
_080BAF10: .4byte gPlayerParty
|
|
_080BAF14: .4byte gBattleAnimAttacker
|
|
_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap
|
|
_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet
|
|
_080BAF20: .4byte gUnknown_83E7CC8
|
|
_080BAF24: .4byte gBattle_BG1_X
|
|
_080BAF28: .4byte gSprites
|
|
_080BAF2C: .4byte gBattle_BG1_Y
|
|
_080BAF30: .4byte gTasks
|
|
_080BAF34: .4byte sub_80BAF38
|
|
thumb_func_end sub_80BACEC
|
|
|
|
thumb_func_start sub_80BAF38
|
|
sub_80BAF38: @ 80BAF38
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
ldr r1, _080BB068 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x4
|
|
movs r1, 0
|
|
mov r8, r1
|
|
strh r0, [r5, 0x1C]
|
|
ldr r7, _080BB06C @ =gBattle_BG1_Y
|
|
ldrh r2, [r7]
|
|
subs r1, r2, 0x4
|
|
strh r1, [r7]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x40
|
|
bne _080BB05A
|
|
mov r0, r8
|
|
strh r0, [r5, 0x1C]
|
|
adds r0, r2, 0
|
|
adds r0, 0x3C
|
|
strh r0, [r7]
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080BB05A
|
|
movs r0, 0
|
|
bl sub_8073128
|
|
ldr r0, _080BB070 @ =gUnknown_2022984
|
|
mov r1, r8
|
|
strh r1, [r0]
|
|
ldr r0, _080BB074 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r4, _080BB078 @ =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 _080BAFCA
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
add r1, sp, 0x10
|
|
strh r0, [r1]
|
|
ldrb r2, [r1]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrh r1, [r1]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
_080BAFCA:
|
|
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
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
ldr r4, _080BB07C @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
bl sub_8075358
|
|
movs r1, 0x14
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080BB050
|
|
ldr r2, _080BB080 @ =gBattlerSpriteIds
|
|
ldr r0, _080BB084 @ =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, r4
|
|
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]
|
|
_080BB050:
|
|
mov r2, r8
|
|
strh r2, [r7]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BB05A:
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB068: .4byte gTasks
|
|
_080BB06C: .4byte gBattle_BG1_Y
|
|
_080BB070: .4byte gUnknown_2022984
|
|
_080BB074: .4byte gUnknown_2022986
|
|
_080BB078: .4byte 0x00003f3f
|
|
_080BB07C: .4byte gSprites
|
|
_080BB080: .4byte gBattlerSpriteIds
|
|
_080BB084: .4byte gBattleAnimAttacker
|
|
thumb_func_end sub_80BAF38
|
|
|
|
thumb_func_start sub_80BB088
|
|
sub_80BB088: @ 80BB088
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _080BB0C8 @ =gUnknown_20399B4
|
|
movs r0, 0x18
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r2, 0
|
|
ldr r3, _080BB0CC @ =gBattleAnimArgs
|
|
_080BB09C:
|
|
ldr r1, [r4]
|
|
lsls r0, r2, 1
|
|
adds r1, 0x4
|
|
adds r1, r0
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x7
|
|
bls _080BB09C
|
|
ldr r0, _080BB0D0 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080BB0D4 @ =sub_80BB0D8
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB0C8: .4byte gUnknown_20399B4
|
|
_080BB0CC: .4byte gBattleAnimArgs
|
|
_080BB0D0: .4byte gTasks
|
|
_080BB0D4: .4byte sub_80BB0D8
|
|
thumb_func_end sub_80BB088
|
|
|
|
thumb_func_start sub_80BB0D8
|
|
sub_80BB0D8: @ 80BB0D8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _080BB0F0 @ =gUnknown_20399B4
|
|
ldr r1, [r0]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080BB0F8
|
|
ldr r0, _080BB0F4 @ =gBattleAnimAttacker
|
|
b _080BB0FA
|
|
.align 2, 0
|
|
_080BB0F0: .4byte gUnknown_20399B4
|
|
_080BB0F4: .4byte gBattleAnimAttacker
|
|
_080BB0F8:
|
|
ldr r0, _080BB230 @ =gBattleAnimTarget
|
|
_080BB0FA:
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r4, _080BB234 @ =gUnknown_20399B4
|
|
ldr r2, [r4]
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
strb r0, [r2, 0x1]
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BB12A
|
|
ldr r1, [r4]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _080BB130
|
|
ldrb r0, [r1, 0x1]
|
|
bl IsBattlerSpriteVisible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BB130
|
|
_080BB12A:
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
strh r0, [r1, 0xA]
|
|
_080BB130:
|
|
ldr r0, _080BB238 @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BB23C @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r1, _080BB240 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _080BB244 @ =0x00003f3d
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _080BB248 @ =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, 0
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BB18E
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
_080BB18E:
|
|
bl IsDoubleBattle
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB20A
|
|
ldr r4, _080BB234 @ =gUnknown_20399B4
|
|
ldr r1, [r4]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080BB20A
|
|
ldrb r0, [r1]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _080BB1C0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BB20A
|
|
_080BB1C0:
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl IsBattlerSpriteVisible
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bne _080BB20A
|
|
ldr r3, _080BB24C @ =gSprites
|
|
ldr r1, _080BB250 @ =gBattlerSpriteIds
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
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
|
|
ldr r0, [r4]
|
|
strb r5, [r0, 0x2]
|
|
_080BB20A:
|
|
ldr r4, _080BB234 @ =gUnknown_20399B4
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB25C
|
|
ldr r1, _080BB254 @ =gBattlerPartyIndexes
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BB258 @ =gEnemyParty
|
|
b _080BB26E
|
|
.align 2, 0
|
|
_080BB230: .4byte gBattleAnimTarget
|
|
_080BB234: .4byte gUnknown_20399B4
|
|
_080BB238: .4byte gUnknown_2022984
|
|
_080BB23C: .4byte gUnknown_2022986
|
|
_080BB240: .4byte 0x00003f3f
|
|
_080BB244: .4byte 0x00003f3d
|
|
_080BB248: .4byte 0x00003f42
|
|
_080BB24C: .4byte gSprites
|
|
_080BB250: .4byte gBattlerSpriteIds
|
|
_080BB254: .4byte gBattlerPartyIndexes
|
|
_080BB258: .4byte gEnemyParty
|
|
_080BB25C:
|
|
ldr r1, _080BB290 @ =gBattlerPartyIndexes
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BB294 @ =gPlayerParty
|
|
_080BB26E:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0x14]
|
|
ldr r0, _080BB298 @ =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080BB29C @ =sub_80BB2A0
|
|
str r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB290: .4byte gBattlerPartyIndexes
|
|
_080BB294: .4byte gPlayerParty
|
|
_080BB298: .4byte gTasks
|
|
_080BB29C: .4byte sub_80BB2A0
|
|
thumb_func_end sub_80BB0D8
|
|
|
|
thumb_func_start sub_80BB2A0
|
|
sub_80BB2A0: @ 80BB2A0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r6, _080BB300 @ =gBattlerSpriteIds
|
|
ldr r4, _080BB304 @ =gUnknown_20399B4
|
|
ldr r2, [r4]
|
|
ldrb r0, [r2]
|
|
adds r1, r0, r6
|
|
ldrb r1, [r1]
|
|
ldrh r2, [r2, 0x14]
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r2, [r4]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
beq _080BB2E2
|
|
ldrb r0, [r2, 0x1]
|
|
adds r1, r0, r6
|
|
ldrb r1, [r1]
|
|
ldrh r2, [r2, 0x14]
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
_080BB2E2:
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
ldr r0, [r4]
|
|
movs r4, 0x4
|
|
ldrsh r0, [r0, r4]
|
|
cmp r0, 0
|
|
bne _080BB30C
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BB308 @ =gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
|
|
bl sub_807543C
|
|
b _080BB316
|
|
.align 2, 0
|
|
_080BB300: .4byte gBattlerSpriteIds
|
|
_080BB304: .4byte gUnknown_20399B4
|
|
_080BB308: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
|
|
_080BB30C:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
|
|
bl sub_807543C
|
|
_080BB316:
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB32E
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080BB32E:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BB358 @ =gFile_graphics_battle_anims_masks_stat_sheet
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080BB35C @ =gUnknown_20399B4
|
|
ldr r0, [r0]
|
|
movs r1, 0x6
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x6
|
|
bhi _080BB3C4
|
|
lsls r0, 2
|
|
ldr r1, _080BB360 @ =_080BB364
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BB354: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
|
|
_080BB358: .4byte gFile_graphics_battle_anims_masks_stat_sheet
|
|
_080BB35C: .4byte gUnknown_20399B4
|
|
_080BB360: .4byte _080BB364
|
|
.align 2, 0
|
|
_080BB364:
|
|
.4byte _080BB380
|
|
.4byte _080BB388
|
|
.4byte _080BB390
|
|
.4byte _080BB398
|
|
.4byte _080BB3A0
|
|
.4byte _080BB3A8
|
|
.4byte _080BB3B0
|
|
_080BB380:
|
|
ldr r0, _080BB384 @ =gFile_graphics_battle_anims_masks_stat2_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB384: .4byte gFile_graphics_battle_anims_masks_stat2_palette
|
|
_080BB388:
|
|
ldr r0, _080BB38C @ =gFile_graphics_battle_anims_masks_stat1_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB38C: .4byte gFile_graphics_battle_anims_masks_stat1_palette
|
|
_080BB390:
|
|
ldr r0, _080BB394 @ =gFile_graphics_battle_anims_masks_stat3_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB394: .4byte gFile_graphics_battle_anims_masks_stat3_palette
|
|
_080BB398:
|
|
ldr r0, _080BB39C @ =gFile_graphics_battle_anims_masks_stat4_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB39C: .4byte gFile_graphics_battle_anims_masks_stat4_palette
|
|
_080BB3A0:
|
|
ldr r0, _080BB3A4 @ =gFile_graphics_battle_anims_masks_stat6_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB3A4: .4byte gFile_graphics_battle_anims_masks_stat6_palette
|
|
_080BB3A8:
|
|
ldr r0, _080BB3AC @ =gFile_graphics_battle_anims_masks_stat7_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB3AC: .4byte gFile_graphics_battle_anims_masks_stat7_palette
|
|
_080BB3B0:
|
|
ldr r0, _080BB3C0 @ =gFile_graphics_battle_anims_masks_stat8_palette
|
|
_080BB3B2:
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
b _080BB3D2
|
|
.align 2, 0
|
|
_080BB3C0: .4byte gFile_graphics_battle_anims_masks_stat8_palette
|
|
_080BB3C4:
|
|
ldr r0, _080BB3FC @ =gFile_graphics_battle_anims_masks_stat5_palette
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
_080BB3D2:
|
|
ldr r3, _080BB400 @ =gBattle_BG1_X
|
|
movs r2, 0
|
|
strh r2, [r3]
|
|
ldr r0, _080BB404 @ =gBattle_BG1_Y
|
|
strh r2, [r0]
|
|
ldr r1, _080BB408 @ =gUnknown_20399B4
|
|
ldr r0, [r1]
|
|
movs r4, 0x4
|
|
ldrsh r0, [r0, r4]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x1
|
|
bne _080BB414
|
|
movs r0, 0x40
|
|
strh r0, [r3]
|
|
ldr r2, _080BB40C @ =gTasks
|
|
lsls r3, r5, 2
|
|
adds r0, r3, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, _080BB410 @ =0x0000fffd
|
|
b _080BB420
|
|
.align 2, 0
|
|
_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette
|
|
_080BB400: .4byte gBattle_BG1_X
|
|
_080BB404: .4byte gBattle_BG1_Y
|
|
_080BB408: .4byte gUnknown_20399B4
|
|
_080BB40C: .4byte gTasks
|
|
_080BB410: .4byte 0x0000fffd
|
|
_080BB414:
|
|
ldr r2, _080BB43C @ =gTasks
|
|
lsls r3, r5, 2
|
|
adds r0, r3, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
_080BB420:
|
|
strh r1, [r0, 0xA]
|
|
ldr r0, [r4]
|
|
movs r1, 0xC
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080BB440
|
|
adds r0, r3, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0xA
|
|
strh r1, [r0, 0x10]
|
|
movs r1, 0x14
|
|
b _080BB44C
|
|
.align 2, 0
|
|
_080BB43C: .4byte gTasks
|
|
_080BB440:
|
|
adds r0, r3, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0xD
|
|
strh r1, [r0, 0x10]
|
|
movs r1, 0x1E
|
|
_080BB44C:
|
|
strh r1, [r0, 0x12]
|
|
adds r1, r3, r5
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r7, [r1, 0x8]
|
|
ldr r3, [r4]
|
|
ldrh r0, [r3, 0xA]
|
|
strh r0, [r1, 0xC]
|
|
mov r4, r8
|
|
strh r4, [r1, 0xE]
|
|
ldrb r0, [r3, 0x2]
|
|
strh r0, [r1, 0x14]
|
|
ldr r2, _080BB490 @ =gBattlerSpriteIds
|
|
ldrb r0, [r3, 0x1]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x16]
|
|
ldr r0, _080BB494 @ =sub_80BB4B8
|
|
str r0, [r1]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _080BB498
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073B08
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xE8
|
|
bl PlaySE12WithPanning
|
|
b _080BB4AC
|
|
.align 2, 0
|
|
_080BB490: .4byte gBattlerSpriteIds
|
|
_080BB494: .4byte sub_80BB4B8
|
|
_080BB498:
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073B08
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xEE
|
|
bl PlaySE12WithPanning
|
|
_080BB4AC:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BB2A0
|
|
|
|
thumb_func_start sub_80BB4B8
|
|
sub_80BB4B8: @ 80BB4B8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r2, _080BB4E4 @ =gBattle_BG1_Y
|
|
ldr r1, _080BB4E8 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0xA]
|
|
ldrh r1, [r2]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
movs r0, 0x26
|
|
ldrsh r2, [r5, r0]
|
|
cmp r2, 0x1
|
|
beq _080BB52E
|
|
cmp r2, 0x1
|
|
bgt _080BB4EC
|
|
cmp r2, 0
|
|
beq _080BB4F6
|
|
b _080BB644
|
|
.align 2, 0
|
|
_080BB4E4: .4byte gBattle_BG1_Y
|
|
_080BB4E8: .4byte gTasks
|
|
_080BB4EC:
|
|
cmp r2, 0x2
|
|
beq _080BB544
|
|
cmp r2, 0x3
|
|
beq _080BB582
|
|
b _080BB644
|
|
_080BB4F6:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080BB504
|
|
b _080BB644
|
|
_080BB504:
|
|
strh r2, [r5, 0x1E]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r1, 0x1
|
|
strh r1, [r5, 0x20]
|
|
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, 0x20
|
|
ldrsh r1, [r5, r2]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
beq _080BB52C
|
|
b _080BB644
|
|
_080BB52C:
|
|
b _080BB57A
|
|
_080BB52E:
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x12
|
|
ldrsh r1, [r5, r2]
|
|
cmp r0, r1
|
|
beq _080BB542
|
|
b _080BB644
|
|
_080BB542:
|
|
b _080BB57A
|
|
_080BB544:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080BB644
|
|
movs r0, 0
|
|
strh r0, [r5, 0x1E]
|
|
ldrh r1, [r5, 0x20]
|
|
subs r1, 0x1
|
|
strh r1, [r5, 0x20]
|
|
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, 0x20
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080BB644
|
|
movs r0, 0
|
|
bl sub_8073128
|
|
_080BB57A:
|
|
ldrh r0, [r5, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x26]
|
|
b _080BB644
|
|
_080BB582:
|
|
ldr r0, _080BB64C @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BB650 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r4, _080BB654 @ =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 _080BB5B2
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
_080BB5B2:
|
|
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
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _080BB658 @ =gSprites
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080BB606
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
_080BB606:
|
|
movs r1, 0x14
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080BB632
|
|
movs r2, 0x16
|
|
ldrsh r0, [r5, r2]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
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]
|
|
_080BB632:
|
|
ldr r4, _080BB65C @ =gUnknown_20399B4
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BB644:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB64C: .4byte gUnknown_2022984
|
|
_080BB650: .4byte gUnknown_2022986
|
|
_080BB654: .4byte 0x00003f3f
|
|
_080BB658: .4byte gSprites
|
|
_080BB65C: .4byte gUnknown_20399B4
|
|
thumb_func_end sub_80BB4B8
|
|
|
|
thumb_func_start sub_80BB660
|
|
sub_80BB660: @ 80BB660
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8075CB8
|
|
adds r6, r0, 0
|
|
movs r1, 0
|
|
bl sub_80BB790
|
|
ldr r0, _080BB6C0 @ =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
lsrs r0, r6, 16
|
|
movs r5, 0
|
|
strh r0, [r4, 0x24]
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8075BE8
|
|
adds r6, r0, 0
|
|
ldr r1, _080BB6C4 @ =0x0000ffff
|
|
ands r6, r1
|
|
adds r0, r6, 0
|
|
bl sub_80BB790
|
|
strh r6, [r4, 0x26]
|
|
strh r5, [r4, 0x8]
|
|
strh r5, [r4, 0xA]
|
|
ldr r0, _080BB6C8 @ =sub_80BB6CC
|
|
str r0, [r4]
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB6C0: .4byte gTasks
|
|
_080BB6C4: .4byte 0x0000ffff
|
|
_080BB6C8: .4byte sub_80BB6CC
|
|
thumb_func_end sub_80BB660
|
|
|
|
thumb_func_start sub_80BB6CC
|
|
sub_80BB6CC: @ 80BB6CC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080BB6F0 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0x1
|
|
beq _080BB710
|
|
cmp r1, 0x1
|
|
bgt _080BB6F4
|
|
cmp r1, 0
|
|
beq _080BB6FA
|
|
b _080BB78A
|
|
.align 2, 0
|
|
_080BB6F0: .4byte gTasks
|
|
_080BB6F4:
|
|
cmp r1, 0x2
|
|
beq _080BB784
|
|
b _080BB78A
|
|
_080BB6FA:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
ble _080BB78A
|
|
strh r1, [r4, 0xA]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0xC]
|
|
b _080BB778
|
|
_080BB710:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080BB78A
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
movs r5, 0
|
|
movs r6, 0x1
|
|
_080BB72C:
|
|
movs r1, 0x26
|
|
ldrsh r0, [r4, r1]
|
|
asrs r0, r5
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _080BB746
|
|
lsls r0, r5, 20
|
|
lsrs r0, 16
|
|
ldrb r2, [r4, 0xC]
|
|
movs r1, 0x10
|
|
ldr r3, _080BB780 @ =0x0000ffff
|
|
bl BlendPalette
|
|
_080BB746:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r4, r1]
|
|
asrs r0, r5
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _080BB766
|
|
lsls r0, r5, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
ldrb r2, [r4, 0xC]
|
|
movs r1, 0x10
|
|
movs r3, 0
|
|
bl BlendPalette
|
|
_080BB766:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0xF
|
|
bls _080BB72C
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080BB78A
|
|
_080BB778:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080BB78A
|
|
.align 2, 0
|
|
_080BB780: .4byte 0x0000ffff
|
|
_080BB784:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BB78A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BB6CC
|
|
|
|
thumb_func_start sub_80BB790
|
|
sub_80BB790: @ 80BB790
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
movs r2, 0
|
|
_080BB79A:
|
|
movs r0, 0x1
|
|
ands r0, r3
|
|
lsrs r4, r3, 1
|
|
adds r5, r2, 0x1
|
|
cmp r0, 0
|
|
beq _080BB7C6
|
|
lsls r0, r2, 20
|
|
lsrs r2, r0, 16
|
|
adds r0, r2, 0
|
|
adds r0, 0x10
|
|
cmp r2, r0
|
|
bge _080BB7C6
|
|
ldr r1, _080BB7D8 @ =gPlttBufferFaded
|
|
adds r3, r0, 0
|
|
_080BB7B6:
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
strh r6, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, r3
|
|
blt _080BB7B6
|
|
_080BB7C6:
|
|
adds r3, r4, 0
|
|
lsls r0, r5, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x1F
|
|
bls _080BB79A
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB7D8: .4byte gPlttBufferFaded
|
|
thumb_func_end sub_80BB790
|
|
|
|
thumb_func_start sub_80BB7DC
|
|
sub_80BB7DC: @ 80BB7DC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r4, 0
|
|
movs r2, 0
|
|
ldr r0, _080BB824 @ =gBattleAnimAttacker
|
|
ldrb r3, [r0]
|
|
movs r5, 0x1
|
|
_080BB7EC:
|
|
cmp r3, r2
|
|
beq _080BB7FA
|
|
adds r1, r2, 0
|
|
adds r1, 0x10
|
|
adds r0, r5, 0
|
|
lsls r0, r1
|
|
orrs r4, r0
|
|
_080BB7FA:
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bls _080BB7EC
|
|
movs r2, 0x5
|
|
ldr r0, _080BB828 @ =gBattleAnimArgs
|
|
adds r1, r0, 0
|
|
adds r1, 0x8
|
|
_080BB808:
|
|
ldrh r0, [r1]
|
|
strh r0, [r1, 0x2]
|
|
subs r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080BB808
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80BAA4C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB824: .4byte gBattleAnimAttacker
|
|
_080BB828: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BB7DC
|
|
|
|
thumb_func_start sub_80BB82C
|
|
sub_80BB82C: @ 80BB82C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r0, 0
|
|
bl sub_8075458
|
|
ldr r0, _080BB894 @ =sub_80BB8A4
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _080BB898 @ =gBattleAnimArgs
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080BB868
|
|
ldr r0, _080BB89C @ =gBattleAnimAttacker
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB868
|
|
ldrh r0, [r4]
|
|
negs r0, r0
|
|
strh r0, [r4]
|
|
ldrh r0, [r4, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x2]
|
|
_080BB868:
|
|
ldr r0, _080BB8A0 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r2, _080BB898 @ =gBattleAnimArgs
|
|
ldrh r0, [r2]
|
|
strh r0, [r1, 0xA]
|
|
ldrh r0, [r2, 0x2]
|
|
strh r0, [r1, 0xC]
|
|
ldrh r0, [r2, 0x6]
|
|
strh r0, [r1, 0xE]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB894: .4byte sub_80BB8A4
|
|
_080BB898: .4byte gBattleAnimArgs
|
|
_080BB89C: .4byte gBattleAnimAttacker
|
|
_080BB8A0: .4byte gTasks
|
|
thumb_func_end sub_80BB82C
|
|
|
|
thumb_func_start sub_80BB8A4
|
|
sub_80BB8A4: @ 80BB8A4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _080BB910 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r3, [r1, 0xA]
|
|
ldrh r0, [r1, 0x1C]
|
|
adds r3, r0
|
|
movs r4, 0
|
|
mov r12, r4
|
|
strh r3, [r1, 0x1C]
|
|
ldrh r2, [r1, 0xC]
|
|
ldrh r7, [r1, 0x1E]
|
|
adds r2, r7
|
|
strh r2, [r1, 0x1E]
|
|
ldr r6, _080BB914 @ =gBattle_BG3_X
|
|
lsls r0, r3, 16
|
|
asrs r0, 24
|
|
ldrh r4, [r6]
|
|
adds r0, r4
|
|
strh r0, [r6]
|
|
ldr r4, _080BB918 @ =gBattle_BG3_Y
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
ldrh r7, [r4]
|
|
adds r0, r7
|
|
strh r0, [r4]
|
|
movs r0, 0xFF
|
|
ands r3, r0
|
|
strh r3, [r1, 0x1C]
|
|
ands r2, r0
|
|
strh r2, [r1, 0x1E]
|
|
ldr r0, _080BB91C @ =gBattleAnimArgs
|
|
movs r3, 0xE
|
|
ldrsh r2, [r0, r3]
|
|
movs r7, 0xE
|
|
ldrsh r0, [r1, r7]
|
|
cmp r2, r0
|
|
bne _080BB90A
|
|
mov r0, r12
|
|
strh r0, [r6]
|
|
strh r0, [r4]
|
|
movs r0, 0x1
|
|
bl sub_8075458
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080BB90A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB910: .4byte gTasks
|
|
_080BB914: .4byte gBattle_BG3_X
|
|
_080BB918: .4byte gBattle_BG3_Y
|
|
_080BB91C: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BB8A4
|
|
|
|
thumb_func_start sub_80BB920
|
|
sub_80BB920: @ 80BB920
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080BB944 @ =gBattleAnimAttacker
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
ldr r1, _080BB948 @ =gBattleAnimArgs
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0xE]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB944: .4byte gBattleAnimAttacker
|
|
_080BB948: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BB920
|
|
|
|
thumb_func_start sub_80BB94C
|
|
sub_80BB94C: @ 80BB94C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080BB970 @ =gBattleAnimTarget
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
ldr r1, _080BB974 @ =gBattleAnimArgs
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0xE]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB970: .4byte gBattleAnimTarget
|
|
_080BB974: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BB94C
|
|
|
|
thumb_func_start sub_80BB978
|
|
sub_80BB978: @ 80BB978
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r5, _080BB9A4 @ =gBattleAnimArgs
|
|
movs r4, 0
|
|
ldr r0, _080BB9A8 @ =gBattleAnimAttacker
|
|
ldrb r2, [r0]
|
|
movs r0, 0x2
|
|
ldr r1, _080BB9AC @ =gBattleAnimTarget
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _080BB994
|
|
movs r4, 0x1
|
|
_080BB994:
|
|
strh r4, [r5, 0xE]
|
|
adds r0, r3, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB9A4: .4byte gBattleAnimArgs
|
|
_080BB9A8: .4byte gBattleAnimAttacker
|
|
_080BB9AC: .4byte gBattleAnimTarget
|
|
thumb_func_end sub_80BB978
|
|
|
|
thumb_func_start sub_80BB9B0
|
|
sub_80BB9B0: @ 80BB9B0
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r6, _080BBA10 @ =gSprites
|
|
_080BB9BA:
|
|
ldr r0, _080BBA14 @ =gBattleAnimAttacker
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
beq _080BB9F8
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl IsBattlerSpriteVisible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB9F8
|
|
ldr r0, _080BBA18 @ =gBattlerSpriteIds
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r6
|
|
ldr r1, _080BBA1C @ =gBattleAnimArgs
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
ldrb r3, [r1]
|
|
ands r3, r0
|
|
lsls r3, 2
|
|
ldrb r0, [r2]
|
|
movs r7, 0x5
|
|
negs r7, r7
|
|
adds r1, r7, 0
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
_080BB9F8:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _080BB9BA
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBA10: .4byte gSprites
|
|
_080BBA14: .4byte gBattleAnimAttacker
|
|
_080BBA18: .4byte gBattlerSpriteIds
|
|
_080BBA1C: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BB9B0
|
|
|
|
thumb_func_start sub_80BBA20
|
|
sub_80BBA20: @ 80BBA20
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
ldr r1, [sp, 0x44]
|
|
ldr r4, [sp, 0x48]
|
|
ldr r5, [sp, 0x4C]
|
|
ldr r6, [sp, 0x50]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
str r2, [sp, 0x14]
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp, 0x18]
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
str r5, [sp, 0x1C]
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r10, r6
|
|
movs r0, 0
|
|
str r0, [sp, 0x20]
|
|
movs r0, 0x2
|
|
adds r6, r7, 0
|
|
eors r6, r0
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BBA82
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _080BBA86
|
|
adds r0, r6, 0
|
|
bl IsBattlerSpriteVisible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BBA86
|
|
_080BBA82:
|
|
movs r2, 0
|
|
mov r8, r2
|
|
_080BBA86:
|
|
ldr r0, _080BBB20 @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BBB24 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r1, _080BBB28 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _080BBB2C @ =0x00003f3d
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _080BBB30 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
add r4, sp, 0x10
|
|
strh r0, [r4]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
mov r2, sp
|
|
adds r2, 0x11
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r2]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BBAFC
|
|
ldrb r0, [r4]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
strb r1, [r4]
|
|
_080BBAFC:
|
|
ldrh r1, [r4]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
adds r0, r7, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BBB3C
|
|
ldr r1, _080BBB34 @ =gBattlerPartyIndexes
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BBB38 @ =gEnemyParty
|
|
b _080BBB4A
|
|
.align 2, 0
|
|
_080BBB20: .4byte gUnknown_2022984
|
|
_080BBB24: .4byte gUnknown_2022986
|
|
_080BBB28: .4byte 0x00003f3f
|
|
_080BBB2C: .4byte 0x00003f3d
|
|
_080BBB30: .4byte 0x00003f42
|
|
_080BBB34: .4byte gBattlerPartyIndexes
|
|
_080BBB38: .4byte gEnemyParty
|
|
_080BBB3C:
|
|
ldr r1, _080BBC10 @ =gBattlerPartyIndexes
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BBC14 @ =gPlayerParty
|
|
_080BBB4A:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r5, _080BBC18 @ =gBattlerSpriteIds
|
|
adds r0, r7, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _080BBB80
|
|
adds r0, r6, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
adds r2, r4, 0
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x20]
|
|
_080BBB80:
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, [sp, 0x58]
|
|
bl sub_807543C
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BBBA8
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080BBBA8:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
mov r1, sp
|
|
ldrh r2, [r1, 0xA]
|
|
ldr r1, [sp, 0x54]
|
|
bl sub_80753B4
|
|
mov r0, sp
|
|
ldrb r1, [r0, 0x8]
|
|
lsls r1, 4
|
|
ldr r0, [sp, 0x5C]
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldr r0, _080BBC1C @ =gBattle_BG1_X
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BBC20 @ =gBattle_BG1_Y
|
|
strh r1, [r0]
|
|
ldr r1, _080BBC24 @ =gTasks
|
|
mov r2, r9
|
|
lsls r0, r2, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x14]
|
|
strh r1, [r0, 0xA]
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0x18]
|
|
strh r2, [r0, 0x10]
|
|
mov r1, r10
|
|
strh r1, [r0, 0x12]
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0x1C]
|
|
strh r2, [r0, 0x14]
|
|
strh r7, [r0, 0x8]
|
|
mov r1, r8
|
|
strh r1, [r0, 0xC]
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0x20]
|
|
strh r2, [r0, 0xE]
|
|
ldr r1, _080BBC28 @ =sub_80BBC2C
|
|
str r1, [r0]
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBC10: .4byte gBattlerPartyIndexes
|
|
_080BBC14: .4byte gPlayerParty
|
|
_080BBC18: .4byte gBattlerSpriteIds
|
|
_080BBC1C: .4byte gBattle_BG1_X
|
|
_080BBC20: .4byte gBattle_BG1_Y
|
|
_080BBC24: .4byte gTasks
|
|
_080BBC28: .4byte sub_80BBC2C
|
|
thumb_func_end sub_80BBA20
|
|
|
|
thumb_func_start sub_80BBC2C
|
|
sub_80BBC2C: @ 80BBC2C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _080BBC68 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
movs r0, 0xA
|
|
ldrsh r2, [r3, r0]
|
|
adds r5, r1, 0
|
|
cmp r2, 0
|
|
bge _080BBC4A
|
|
negs r2, r2
|
|
_080BBC4A:
|
|
ldrh r0, [r3, 0x22]
|
|
adds r4, r0, r2
|
|
strh r4, [r3, 0x22]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bge _080BBC70
|
|
ldr r2, _080BBC6C @ =gBattle_BG1_Y
|
|
lsls r1, r4, 16
|
|
asrs r1, 24
|
|
ldrh r0, [r2]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
b _080BBC7C
|
|
.align 2, 0
|
|
_080BBC68: .4byte gTasks
|
|
_080BBC6C: .4byte gBattle_BG1_Y
|
|
_080BBC70:
|
|
ldr r1, _080BBCA0 @ =gBattle_BG1_Y
|
|
lsls r0, r4, 16
|
|
asrs r0, 24
|
|
ldrh r2, [r1]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
_080BBC7C:
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r5
|
|
ldrh r1, [r5, 0x22]
|
|
movs r0, 0xFF
|
|
ands r0, r1
|
|
movs r2, 0
|
|
strh r0, [r5, 0x22]
|
|
movs r3, 0x26
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, 0x1
|
|
beq _080BBCE6
|
|
cmp r0, 0x1
|
|
bgt _080BBCA4
|
|
cmp r0, 0
|
|
beq _080BBCAA
|
|
b _080BBDD8
|
|
.align 2, 0
|
|
_080BBCA0: .4byte gBattle_BG1_Y
|
|
_080BBCA4:
|
|
cmp r0, 0x2
|
|
beq _080BBD00
|
|
b _080BBDD8
|
|
_080BBCAA:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x14
|
|
ldrsh r1, [r5, r3]
|
|
cmp r0, r1
|
|
bge _080BBCBE
|
|
b _080BBDD8
|
|
_080BBCBE:
|
|
strh r2, [r5, 0x1E]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r1, 0x1
|
|
strh r1, [r5, 0x20]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x20
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
bne _080BBDD8
|
|
b _080BBCF8
|
|
_080BBCE6:
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x12
|
|
ldrsh r1, [r5, r3]
|
|
cmp r0, r1
|
|
bne _080BBDD8
|
|
_080BBCF8:
|
|
ldrh r0, [r5, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x26]
|
|
b _080BBDD8
|
|
_080BBD00:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x14
|
|
ldrsh r1, [r5, r3]
|
|
cmp r0, r1
|
|
blt _080BBDD8
|
|
strh r2, [r5, 0x1E]
|
|
ldrh r1, [r5, 0x20]
|
|
subs r1, 0x1
|
|
strh r1, [r5, 0x20]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x20
|
|
ldrsh r4, [r5, r0]
|
|
cmp r4, 0
|
|
bne _080BBDD8
|
|
movs r0, 0
|
|
bl sub_8073128
|
|
ldr r0, _080BBDE0 @ =gUnknown_2022984
|
|
strh r4, [r0]
|
|
ldr r0, _080BBDE4 @ =gUnknown_2022986
|
|
strh r4, [r0]
|
|
ldr r4, _080BBDE8 @ =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 _080BBD7E
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
mov r2, sp
|
|
ldrb r1, [r2]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
_080BBD7E:
|
|
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
|
|
movs r3, 0x8
|
|
ldrsh r1, [r5, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _080BBDEC @ =gSprites
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080BBDD2
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
_080BBDD2:
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BBDD8:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBDE0: .4byte gUnknown_2022984
|
|
_080BBDE4: .4byte gUnknown_2022986
|
|
_080BBDE8: .4byte 0x00003f3f
|
|
_080BBDEC: .4byte gSprites
|
|
thumb_func_end sub_80BBC2C
|
|
|
|
thumb_func_start sub_80BBDF0
|
|
sub_80BBDF0: @ 80BBDF0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080BBE08 @ =gBattleAnimArgs
|
|
ldr r1, _080BBE0C @ =gBattleTerrain
|
|
ldrb r1, [r1]
|
|
strh r1, [r2]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBE08: .4byte gBattleAnimArgs
|
|
_080BBE0C: .4byte gBattleTerrain
|
|
thumb_func_end sub_80BBDF0
|
|
|
|
thumb_func_start sub_80BBE10
|
|
sub_80BBE10: @ 80BBE10
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl AllocZeroed
|
|
ldr r1, _080BBE38 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
movs r2, 0xBE
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBE38: .4byte gMonSpritesGfxPtr
|
|
thumb_func_end sub_80BBE10
|
|
|
|
thumb_func_start sub_80BBE3C
|
|
sub_80BBE3C: @ 80BBE3C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r6, _080BBE68 @ =gMonSpritesGfxPtr
|
|
ldr r0, [r6]
|
|
movs r5, 0xBE
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBE68: .4byte gMonSpritesGfxPtr
|
|
thumb_func_end sub_80BBE3C
|
|
|
|
thumb_func_start sub_80BBE6C
|
|
sub_80BBE6C: @ 80BBE6C
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _080BBEAC @ =gBattleAnimArgs
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080BBEB0
|
|
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
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080BBEC8
|
|
movs r2, 0x1
|
|
_080BBE9E:
|
|
lsrs r1, 1
|
|
adds r4, 0x1
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080BBE9E
|
|
b _080BBEC8
|
|
.align 2, 0
|
|
_080BBEAC: .4byte gBattleAnimArgs
|
|
_080BBEB0:
|
|
cmp r0, 0x1
|
|
bne _080BBEBC
|
|
ldr r0, _080BBEB8 @ =gBattleAnimAttacker
|
|
b _080BBEC2
|
|
.align 2, 0
|
|
_080BBEB8: .4byte gBattleAnimAttacker
|
|
_080BBEBC:
|
|
cmp r0, 0x2
|
|
bne _080BBEC8
|
|
ldr r0, _080BBEF8 @ =gBattleAnimTarget
|
|
_080BBEC2:
|
|
ldrb r0, [r0]
|
|
adds r4, r0, 0
|
|
adds r4, 0x10
|
|
_080BBEC8:
|
|
ldr r0, _080BBEFC @ =gMonSpritesGfxPtr
|
|
ldr r1, [r0]
|
|
ldr r0, _080BBF00 @ =gBattleAnimArgs
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
movs r2, 0xBE
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
lsls r1, r4, 5
|
|
ldr r2, _080BBF04 @ =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
movs r2, 0x20
|
|
bl memcpy
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBEF8: .4byte gBattleAnimTarget
|
|
_080BBEFC: .4byte gMonSpritesGfxPtr
|
|
_080BBF00: .4byte gBattleAnimArgs
|
|
_080BBF04: .4byte gPlttBufferUnfaded
|
|
thumb_func_end sub_80BBE6C
|
|
|
|
thumb_func_start sub_80BBF08
|
|
sub_80BBF08: @ 80BBF08
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _080BBF48 @ =gBattleAnimArgs
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080BBF4C
|
|
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
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080BBF64
|
|
movs r2, 0x1
|
|
_080BBF3A:
|
|
lsrs r1, 1
|
|
adds r4, 0x1
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080BBF3A
|
|
b _080BBF64
|
|
.align 2, 0
|
|
_080BBF48: .4byte gBattleAnimArgs
|
|
_080BBF4C:
|
|
cmp r0, 0x1
|
|
bne _080BBF58
|
|
ldr r0, _080BBF54 @ =gBattleAnimAttacker
|
|
b _080BBF5E
|
|
.align 2, 0
|
|
_080BBF54: .4byte gBattleAnimAttacker
|
|
_080BBF58:
|
|
cmp r0, 0x2
|
|
bne _080BBF64
|
|
ldr r0, _080BBF94 @ =gBattleAnimTarget
|
|
_080BBF5E:
|
|
ldrb r0, [r0]
|
|
adds r4, r0, 0
|
|
adds r4, 0x10
|
|
_080BBF64:
|
|
lsls r0, r4, 5
|
|
ldr r1, _080BBF98 @ =gPlttBufferUnfaded
|
|
adds r0, r1
|
|
ldr r1, _080BBF9C @ =gMonSpritesGfxPtr
|
|
ldr r2, [r1]
|
|
ldr r1, _080BBFA0 @ =gBattleAnimArgs
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
movs r3, 0xBE
|
|
lsls r3, 1
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
lsls r1, 5
|
|
adds r1, r2
|
|
movs r2, 0x20
|
|
bl memcpy
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBF94: .4byte gBattleAnimTarget
|
|
_080BBF98: .4byte gPlttBufferUnfaded
|
|
_080BBF9C: .4byte gMonSpritesGfxPtr
|
|
_080BBFA0: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BBF08
|
|
|
|
thumb_func_start sub_80BBFA4
|
|
sub_80BBFA4: @ 80BBFA4
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _080BBFE4 @ =gBattleAnimArgs
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080BBFE8
|
|
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
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080BC000
|
|
movs r2, 0x1
|
|
_080BBFD6:
|
|
lsrs r1, 1
|
|
adds r4, 0x1
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080BBFD6
|
|
b _080BC000
|
|
.align 2, 0
|
|
_080BBFE4: .4byte gBattleAnimArgs
|
|
_080BBFE8:
|
|
cmp r0, 0x1
|
|
bne _080BBFF4
|
|
ldr r0, _080BBFF0 @ =gBattleAnimAttacker
|
|
b _080BBFFA
|
|
.align 2, 0
|
|
_080BBFF0: .4byte gBattleAnimAttacker
|
|
_080BBFF4:
|
|
cmp r0, 0x2
|
|
bne _080BC000
|
|
ldr r0, _080BC020 @ =gBattleAnimTarget
|
|
_080BBFFA:
|
|
ldrb r0, [r0]
|
|
adds r4, r0, 0
|
|
adds r4, 0x10
|
|
_080BC000:
|
|
lsls r1, r4, 5
|
|
ldr r0, _080BC024 @ =gPlttBufferUnfaded
|
|
adds r0, r1, r0
|
|
ldr r2, _080BC028 @ =gPlttBufferFaded
|
|
adds r1, r2
|
|
movs r2, 0x20
|
|
bl memcpy
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC020: .4byte gBattleAnimTarget
|
|
_080BC024: .4byte gPlttBufferUnfaded
|
|
_080BC028: .4byte gPlttBufferFaded
|
|
thumb_func_end sub_80BBFA4
|
|
|
|
thumb_func_start sub_80BC02C
|
|
sub_80BC02C: @ 80BC02C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl IsContest
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080BC04C
|
|
ldr r1, _080BC048 @ =gBattleAnimArgs
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0xE]
|
|
b _080BC050
|
|
.align 2, 0
|
|
_080BC048: .4byte gBattleAnimArgs
|
|
_080BC04C:
|
|
ldr r0, _080BC05C @ =gBattleAnimArgs
|
|
strh r1, [r0, 0xE]
|
|
_080BC050:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC05C: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BC02C
|
|
|
|
thumb_func_start sub_80BC060
|
|
sub_80BC060: @ 80BC060
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080BC080 @ =gBattleAnimAttacker
|
|
ldr r1, _080BC084 @ =gBattlerTarget
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
ldr r2, _080BC088 @ =gBattleAnimTarget
|
|
ldr r1, _080BC08C @ =gEffectBattler
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC080: .4byte gBattleAnimAttacker
|
|
_080BC084: .4byte gBattlerTarget
|
|
_080BC088: .4byte gBattleAnimTarget
|
|
_080BC08C: .4byte gEffectBattler
|
|
thumb_func_end sub_80BC060
|
|
|
|
thumb_func_start sub_80BC090
|
|
sub_80BC090: @ 80BC090
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _080BC0B8 @ =gBattleAnimAttacker
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldr r0, _080BC0BC @ =gBattleAnimTarget
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _080BC0C4
|
|
ldr r1, _080BC0C0 @ =gBattleAnimArgs
|
|
movs r0, 0x1
|
|
b _080BC0C8
|
|
.align 2, 0
|
|
_080BC0B8: .4byte gBattleAnimAttacker
|
|
_080BC0BC: .4byte gBattleAnimTarget
|
|
_080BC0C0: .4byte gBattleAnimArgs
|
|
_080BC0C4:
|
|
ldr r1, _080BC0D8 @ =gBattleAnimArgs
|
|
movs r0, 0
|
|
_080BC0C8:
|
|
strh r0, [r1, 0xE]
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC0D8: .4byte gBattleAnimArgs
|
|
thumb_func_end sub_80BC090
|
|
|
|
thumb_func_start sub_80BC0DC
|
|
sub_80BC0DC: @ 80BC0DC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080BC0F4 @ =gBattleAnimTarget
|
|
ldr r1, _080BC0F8 @ =gBattlerTarget
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC0F4: .4byte gBattleAnimTarget
|
|
_080BC0F8: .4byte gBattlerTarget
|
|
thumb_func_end sub_80BC0DC
|
|
|
|
thumb_func_start sub_80BC0FC
|
|
sub_80BC0FC: @ 80BC0FC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080BC11C @ =gBattleAnimAttacker
|
|
ldr r1, _080BC120 @ =gBattlerAttacker
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
ldr r2, _080BC124 @ =gBattleAnimTarget
|
|
ldr r1, _080BC128 @ =gEffectBattler
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC11C: .4byte gBattleAnimAttacker
|
|
_080BC120: .4byte gBattlerAttacker
|
|
_080BC124: .4byte gBattleAnimTarget
|
|
_080BC128: .4byte gEffectBattler
|
|
thumb_func_end sub_80BC0FC
|
|
|
|
thumb_func_start sub_80BC12C
|
|
sub_80BC12C: @ 80BC12C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl IsContest
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BC144
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080BC180
|
|
_080BC144:
|
|
ldr r0, _080BC188 @ =gTasks
|
|
lsls r3, r4, 2
|
|
adds r3, r4
|
|
lsls r3, 3
|
|
adds r3, r0
|
|
ldr r0, _080BC18C @ =gBattleSpritesDataPtr
|
|
ldr r4, [r0]
|
|
ldr r2, _080BC190 @ =gBattleAnimAttacker
|
|
ldrb r0, [r2]
|
|
ldr r1, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
strh r0, [r3, 0x8]
|
|
ldrb r1, [r2]
|
|
ldr r0, [r4]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, _080BC194 @ =sub_80BC19C
|
|
str r0, [r3]
|
|
ldr r1, _080BC198 @ =gUnknown_2037EE2
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_080BC180:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC188: .4byte gTasks
|
|
_080BC18C: .4byte gBattleSpritesDataPtr
|
|
_080BC190: .4byte gBattleAnimAttacker
|
|
_080BC194: .4byte sub_80BC19C
|
|
_080BC198: .4byte gUnknown_2037EE2
|
|
thumb_func_end sub_80BC12C
|
|
|
|
thumb_func_start sub_80BC19C
|
|
sub_80BC19C: @ 80BC19C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080BC1E8 @ =gBattleAnimArgs
|
|
movs r2, 0xE
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
cmp r1, r0
|
|
bne _080BC1E0
|
|
ldr r0, _080BC1EC @ =gBattleSpritesDataPtr
|
|
ldr r1, [r0]
|
|
ldr r0, _080BC1F0 @ =gBattleAnimAttacker
|
|
ldrb r3, [r0]
|
|
ldr r0, [r1]
|
|
lsls r3, 2
|
|
adds r3, r0
|
|
ldr r1, _080BC1F4 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x8]
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_080BC1E0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC1E8: .4byte gBattleAnimArgs
|
|
_080BC1EC: .4byte gBattleSpritesDataPtr
|
|
_080BC1F0: .4byte gBattleAnimAttacker
|
|
_080BC1F4: .4byte gTasks
|
|
thumb_func_end sub_80BC19C
|
|
|
|
thumb_func_start SetAnimBgAttribute
|
|
SetAnimBgAttribute: @ 80BC1F8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
cmp r6, 0x3
|
|
bls _080BC20C
|
|
b _080BC2FE
|
|
_080BC20C:
|
|
ldr r0, _080BC228 @ =gUnknown_83E7CCA
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
bl GetGpuReg
|
|
ldr r1, _080BC22C @ =gUnknown_20399B8
|
|
strh r0, [r1]
|
|
cmp r5, 0x6
|
|
bhi _080BC2F0
|
|
lsls r0, r5, 2
|
|
ldr r1, _080BC230 @ =_080BC234
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BC228: .4byte gUnknown_83E7CCA
|
|
_080BC22C: .4byte gUnknown_20399B8
|
|
_080BC230: .4byte _080BC234
|
|
.align 2, 0
|
|
_080BC234:
|
|
.4byte _080BC250
|
|
.4byte _080BC264
|
|
.4byte _080BC27C
|
|
.4byte _080BC294
|
|
.4byte _080BC2AC
|
|
.4byte _080BC2C8
|
|
.4byte _080BC2DC
|
|
_080BC250:
|
|
ldr r2, _080BC260 @ =gUnknown_20399B8
|
|
lsls r3, r4, 6
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2, 0x1]
|
|
b _080BC2F0
|
|
.align 2, 0
|
|
_080BC260: .4byte gUnknown_20399B8
|
|
_080BC264:
|
|
ldr r3, _080BC278 @ =gUnknown_20399B8
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 5
|
|
ldrb r2, [r3, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
b _080BC2EA
|
|
.align 2, 0
|
|
_080BC278: .4byte gUnknown_20399B8
|
|
_080BC27C:
|
|
ldr r3, _080BC290 @ =gUnknown_20399B8
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 6
|
|
ldrb r2, [r3]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
b _080BC2BA
|
|
.align 2, 0
|
|
_080BC290: .4byte gUnknown_20399B8
|
|
_080BC294:
|
|
ldr r3, _080BC2A8 @ =gUnknown_20399B8
|
|
movs r0, 0x3
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
b _080BC2BA
|
|
.align 2, 0
|
|
_080BC2A8: .4byte gUnknown_20399B8
|
|
_080BC2AC:
|
|
ldr r3, _080BC2C4 @ =gUnknown_20399B8
|
|
movs r0, 0x3
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
_080BC2BA:
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
b _080BC2F0
|
|
.align 2, 0
|
|
_080BC2C4: .4byte gUnknown_20399B8
|
|
_080BC2C8:
|
|
ldr r2, _080BC2D8 @ =gUnknown_20399B8
|
|
lsls r3, r4, 7
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
b _080BC2F0
|
|
.align 2, 0
|
|
_080BC2D8: .4byte gUnknown_20399B8
|
|
_080BC2DC:
|
|
ldr r3, _080BC304 @ =gUnknown_20399B8
|
|
movs r0, 0x1F
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
ldrb r2, [r3, 0x1]
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
_080BC2EA:
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x1]
|
|
_080BC2F0:
|
|
ldr r0, _080BC308 @ =gUnknown_83E7CCA
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
ldr r1, _080BC304 @ =gUnknown_20399B8
|
|
ldrh r1, [r1]
|
|
bl SetGpuReg
|
|
_080BC2FE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC304: .4byte gUnknown_20399B8
|
|
_080BC308: .4byte gUnknown_83E7CCA
|
|
thumb_func_end SetAnimBgAttribute
|
|
|
|
thumb_func_start sub_80BC30C
|
|
sub_80BC30C: @ 80BC30C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
cmp r2, 0x3
|
|
bhi _080BC394
|
|
ldr r0, _080BC338 @ =gUnknown_83E7CCE
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
bl GetGpuReg
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
cmp r4, 0x6
|
|
bhi _080BC394
|
|
lsls r0, r4, 2
|
|
ldr r1, _080BC33C @ =_080BC340
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BC338: .4byte gUnknown_83E7CCE
|
|
_080BC33C: .4byte _080BC340
|
|
.align 2, 0
|
|
_080BC340:
|
|
.4byte _080BC35C
|
|
.4byte _080BC364
|
|
.4byte _080BC36C
|
|
.4byte _080BC374
|
|
.4byte _080BC37C
|
|
.4byte _080BC384
|
|
.4byte _080BC38C
|
|
_080BC35C:
|
|
ldr r0, [sp]
|
|
lsls r0, 16
|
|
lsrs r0, 30
|
|
b _080BC396
|
|
_080BC364:
|
|
ldr r0, [sp]
|
|
lsls r0, 18
|
|
lsrs r0, 31
|
|
b _080BC396
|
|
_080BC36C:
|
|
ldr r0, [sp]
|
|
lsls r0, 25
|
|
lsrs r0, 31
|
|
b _080BC396
|
|
_080BC374:
|
|
ldr r0, [sp]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
b _080BC396
|
|
_080BC37C:
|
|
ldr r0, [sp]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
b _080BC396
|
|
_080BC384:
|
|
ldr r0, [sp]
|
|
lsls r0, 24
|
|
lsrs r0, 31
|
|
b _080BC396
|
|
_080BC38C:
|
|
ldr r0, [sp]
|
|
lsls r0, 19
|
|
lsrs r0, 27
|
|
b _080BC396
|
|
_080BC394:
|
|
movs r0, 0
|
|
_080BC396:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80BC30C
|
|
|
|
thumb_func_start HandleIntroSlide
|
|
HandleIntroSlide: @ 80BC3A0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080BC3B8 @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC3C0
|
|
ldr r0, _080BC3BC @ =sub_80BCC4C
|
|
b _080BC3E8
|
|
.align 2, 0
|
|
_080BC3B8: .4byte gBattleTypeFlags
|
|
_080BC3BC: .4byte sub_80BCC4C
|
|
_080BC3C0:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080BC3E0
|
|
ldr r0, _080BC3D8 @ =gGameVersion
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _080BC3E0
|
|
movs r4, 0x3
|
|
ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8
|
|
b _080BC3E8
|
|
.align 2, 0
|
|
_080BC3D8: .4byte gGameVersion
|
|
_080BC3DC: .4byte task00_battle_intro_80BC6C8
|
|
_080BC3E0:
|
|
ldr r1, _080BC414 @ =gUnknown_83E7CD4
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
_080BC3E8:
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080BC418 @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x8]
|
|
strh r4, [r1, 0xA]
|
|
strh r0, [r1, 0xC]
|
|
strh r0, [r1, 0xE]
|
|
strh r0, [r1, 0x10]
|
|
strh r0, [r1, 0x12]
|
|
strh r0, [r1, 0x14]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC414: .4byte gUnknown_83E7CD4
|
|
_080BC418: .4byte gTasks
|
|
thumb_func_end HandleIntroSlide
|
|
|
|
thumb_func_start sub_80BC41C
|
|
sub_80BC41C: @ 80BC41C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
ldr r0, _080BC468 @ =gBattle_BG1_X
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BC46C @ =gBattle_BG1_Y
|
|
strh r1, [r0]
|
|
ldr r0, _080BC470 @ =gBattle_BG2_X
|
|
strh r1, [r0]
|
|
ldr r0, _080BC474 @ =gBattle_BG2_Y
|
|
strh r1, [r0]
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r4, _080BC478 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC468: .4byte gBattle_BG1_X
|
|
_080BC46C: .4byte gBattle_BG1_Y
|
|
_080BC470: .4byte gBattle_BG2_X
|
|
_080BC474: .4byte gBattle_BG2_Y
|
|
_080BC478: .4byte 0x00003f3f
|
|
thumb_func_end sub_80BC41C
|
|
|
|
thumb_func_start task_battle_intro_80BC47C
|
|
task_battle_intro_80BC47C: @ 80BC47C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080BC4B4 @ =gBattle_BG1_X
|
|
ldrh r0, [r1]
|
|
adds r0, 0x6
|
|
strh r0, [r1]
|
|
ldr r1, _080BC4B8 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
mov r8, r1
|
|
cmp r0, 0x4
|
|
bls _080BC4A8
|
|
b _080BC6BA
|
|
_080BC4A8:
|
|
lsls r0, 2
|
|
ldr r1, _080BC4BC @ =_080BC4C0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BC4B4: .4byte gBattle_BG1_X
|
|
_080BC4B8: .4byte gTasks
|
|
_080BC4BC: .4byte _080BC4C0
|
|
.align 2, 0
|
|
_080BC4C0:
|
|
.4byte _080BC4D4
|
|
.4byte _080BC504
|
|
.4byte _080BC52C
|
|
.4byte _080BC574
|
|
.4byte _080BC6B4
|
|
_080BC4D4:
|
|
ldr r0, _080BC4EC @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC4F0
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
add r0, r8
|
|
movs r1, 0x10
|
|
b _080BC4FA
|
|
.align 2, 0
|
|
_080BC4EC: .4byte gBattleTypeFlags
|
|
_080BC4F0:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
add r0, r8
|
|
movs r1, 0x1
|
|
_080BC4FA:
|
|
strh r1, [r0, 0xC]
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
b _080BC6BA
|
|
_080BC504:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
mov r3, r8
|
|
adds r1, r0, r3
|
|
ldrh r0, [r1, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080BC51C
|
|
b _080BC6BA
|
|
_080BC51C:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x48
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
b _080BC6BA
|
|
_080BC52C:
|
|
ldr r1, _080BC568 @ =gUnknown_2022986
|
|
ldrh r0, [r1]
|
|
subs r0, 0xFF
|
|
strh r0, [r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
cmp r0, r1
|
|
beq _080BC544
|
|
b _080BC6BA
|
|
_080BC544:
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
add r1, r8
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xF0
|
|
strh r0, [r1, 0xC]
|
|
movs r0, 0x20
|
|
strh r0, [r1, 0xE]
|
|
ldr r2, _080BC56C @ =gIntroSlideFlags
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BC570 @ =0x0000fffe
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
b _080BC6BA
|
|
.align 2, 0
|
|
_080BC568: .4byte gUnknown_2022986
|
|
_080BC56C: .4byte gIntroSlideFlags
|
|
_080BC570: .4byte 0x0000fffe
|
|
_080BC574:
|
|
lsls r0, r4, 2
|
|
adds r1, r0, r4
|
|
lsls r1, 3
|
|
mov r5, r8
|
|
adds r2, r1, r5
|
|
ldrh r3, [r2, 0xE]
|
|
movs r5, 0xE
|
|
ldrsh r1, [r2, r5]
|
|
mov r12, r0
|
|
cmp r1, 0
|
|
beq _080BC590
|
|
subs r0, r3, 0x1
|
|
strh r0, [r2, 0xE]
|
|
b _080BC5BE
|
|
_080BC590:
|
|
movs r1, 0xA
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x1
|
|
bne _080BC5B0
|
|
ldr r2, _080BC5A8 @ =gBattle_BG1_Y
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BC5AC @ =0x0000ffb0
|
|
cmp r1, r0
|
|
beq _080BC5BE
|
|
subs r0, r1, 0x2
|
|
b _080BC5BC
|
|
.align 2, 0
|
|
_080BC5A8: .4byte gBattle_BG1_Y
|
|
_080BC5AC: .4byte 0x0000ffb0
|
|
_080BC5B0:
|
|
ldr r2, _080BC690 @ =gBattle_BG1_Y
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BC694 @ =0x0000ffc8
|
|
cmp r1, r0
|
|
beq _080BC5BE
|
|
subs r0, r1, 0x1
|
|
_080BC5BC:
|
|
strh r0, [r2]
|
|
_080BC5BE:
|
|
ldr r2, _080BC698 @ =gUnknown_2022986
|
|
ldrh r1, [r2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC5D2
|
|
ldr r3, _080BC69C @ =0xfffffc04
|
|
adds r0, r1, r3
|
|
strh r0, [r2]
|
|
_080BC5D2:
|
|
mov r5, r12
|
|
adds r0, r5, r4
|
|
lsls r0, 3
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BC5EA
|
|
subs r0, r2, 0x2
|
|
strh r0, [r1, 0xC]
|
|
_080BC5EA:
|
|
movs r3, 0
|
|
ldr r5, _080BC6A0 @ =gScanlineEffect
|
|
mov r9, r5
|
|
ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers
|
|
mov r6, r9
|
|
adds r5, r1, 0
|
|
_080BC5F6:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r7
|
|
ldrh r0, [r5, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x4F
|
|
ble _080BC5F6
|
|
cmp r3, 0x9F
|
|
bgt _080BC63A
|
|
ldr r7, _080BC6A4 @ =gScanlineEffectRegBuffers
|
|
ldr r6, _080BC6A0 @ =gScanlineEffect
|
|
ldr r1, _080BC6A8 @ =gTasks
|
|
mov r2, r12
|
|
adds r0, r2, r4
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
_080BC620:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r7
|
|
ldrh r0, [r5, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9F
|
|
ble _080BC620
|
|
_080BC63A:
|
|
mov r3, r12
|
|
adds r0, r3, r4
|
|
lsls r0, 3
|
|
mov r5, r8
|
|
adds r1, r0, r5
|
|
movs r0, 0xC
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, 0
|
|
bne _080BC6BA
|
|
movs r0, 0x3
|
|
mov r3, r9
|
|
strb r0, [r3, 0x15]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
str r2, [sp]
|
|
ldr r1, _080BC6AC @ =0x0600e000
|
|
ldr r2, _080BC6B0 @ =0x05000200
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r1, 0x9C
|
|
lsls r1, 8
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r1, 0xBC
|
|
lsls r1, 7
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
b _080BC6BA
|
|
.align 2, 0
|
|
_080BC690: .4byte gBattle_BG1_Y
|
|
_080BC694: .4byte 0x0000ffc8
|
|
_080BC698: .4byte gUnknown_2022986
|
|
_080BC69C: .4byte 0xfffffc04
|
|
_080BC6A0: .4byte gScanlineEffect
|
|
_080BC6A4: .4byte gScanlineEffectRegBuffers
|
|
_080BC6A8: .4byte gTasks
|
|
_080BC6AC: .4byte 0x0600e000
|
|
_080BC6B0: .4byte 0x05000200
|
|
_080BC6B4:
|
|
adds r0, r4, 0
|
|
bl sub_80BC41C
|
|
_080BC6BA:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end task_battle_intro_80BC47C
|
|
|
|
thumb_func_start task00_battle_intro_80BC6C8
|
|
task00_battle_intro_80BC6C8: @ 80BC6C8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080BC6F4 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0xA
|
|
ldrsh r0, [r0, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x3
|
|
beq _080BC708
|
|
cmp r0, 0x3
|
|
bgt _080BC6F8
|
|
cmp r0, 0x2
|
|
beq _080BC6FC
|
|
b _080BC710
|
|
.align 2, 0
|
|
_080BC6F4: .4byte gTasks
|
|
_080BC6F8:
|
|
cmp r0, 0x4
|
|
bne _080BC710
|
|
_080BC6FC:
|
|
ldr r1, _080BC704 @ =gBattle_BG1_X
|
|
ldrh r0, [r1]
|
|
adds r0, 0x8
|
|
b _080BC70E
|
|
.align 2, 0
|
|
_080BC704: .4byte gBattle_BG1_X
|
|
_080BC708:
|
|
ldr r1, _080BC74C @ =gBattle_BG1_X
|
|
ldrh r0, [r1]
|
|
adds r0, 0x6
|
|
_080BC70E:
|
|
strh r0, [r1]
|
|
_080BC710:
|
|
lsls r0, r5, 2
|
|
adds r1, r0, r5
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
movs r3, 0xA
|
|
ldrsh r1, [r4, r3]
|
|
adds r6, r0, 0
|
|
cmp r1, 0x4
|
|
bne _080BC774
|
|
ldr r7, _080BC750 @ =gBattle_BG1_Y
|
|
ldrh r0, [r4, 0x14]
|
|
bl Cos2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _080BC736
|
|
ldr r1, _080BC754 @ =0x000001ff
|
|
adds r0, r1
|
|
_080BC736:
|
|
asrs r0, 9
|
|
subs r0, 0x8
|
|
strh r0, [r7]
|
|
ldrh r1, [r4, 0x14]
|
|
movs r2, 0x14
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xB3
|
|
bgt _080BC758
|
|
adds r0, r1, 0x4
|
|
b _080BC75A
|
|
.align 2, 0
|
|
_080BC74C: .4byte gBattle_BG1_X
|
|
_080BC750: .4byte gBattle_BG1_Y
|
|
_080BC754: .4byte 0x000001ff
|
|
_080BC758:
|
|
adds r0, r1, 0x6
|
|
_080BC75A:
|
|
strh r0, [r4, 0x14]
|
|
ldr r2, _080BC790 @ =gTasks
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r3, r0, r2
|
|
movs r0, 0x14
|
|
ldrsh r1, [r3, r0]
|
|
movs r0, 0xB4
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _080BC774
|
|
movs r0, 0
|
|
strh r0, [r3, 0x14]
|
|
_080BC774:
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x4
|
|
bls _080BC784
|
|
b _080BC9AA
|
|
_080BC784:
|
|
lsls r0, 2
|
|
ldr r1, _080BC794 @ =_080BC798
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BC790: .4byte gTasks
|
|
_080BC794: .4byte _080BC798
|
|
.align 2, 0
|
|
_080BC798:
|
|
.4byte _080BC7AC
|
|
.4byte _080BC7DC
|
|
.4byte _080BC808
|
|
.4byte _080BC858
|
|
.4byte _080BC9A4
|
|
_080BC7AC:
|
|
ldr r1, _080BC7C8 @ =gTasks
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
movs r3, 0x10
|
|
strh r3, [r2, 0x10]
|
|
ldr r0, _080BC7CC @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC7D0
|
|
strh r3, [r2, 0xC]
|
|
b _080BC7D4
|
|
.align 2, 0
|
|
_080BC7C8: .4byte gTasks
|
|
_080BC7CC: .4byte gBattleTypeFlags
|
|
_080BC7D0:
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0xC]
|
|
_080BC7D4:
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
b _080BC9AA
|
|
_080BC7DC:
|
|
ldr r0, _080BC804 @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080BC7F2
|
|
b _080BC9AA
|
|
_080BC7F2:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x48
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
b _080BC9AA
|
|
.align 2, 0
|
|
_080BC804: .4byte gTasks
|
|
_080BC808:
|
|
ldr r1, _080BC848 @ =gUnknown_2022986
|
|
ldrh r0, [r1]
|
|
subs r0, 0xFF
|
|
strh r0, [r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
cmp r0, r1
|
|
beq _080BC820
|
|
b _080BC9AA
|
|
_080BC820:
|
|
ldr r0, _080BC84C @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xF0
|
|
strh r0, [r1, 0xC]
|
|
movs r0, 0x20
|
|
strh r0, [r1, 0xE]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x12]
|
|
ldr r2, _080BC850 @ =gIntroSlideFlags
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BC854 @ =0x0000fffe
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
b _080BC9AA
|
|
.align 2, 0
|
|
_080BC848: .4byte gUnknown_2022986
|
|
_080BC84C: .4byte gTasks
|
|
_080BC850: .4byte gIntroSlideFlags
|
|
_080BC854: .4byte 0x0000fffe
|
|
_080BC858:
|
|
ldr r0, _080BC890 @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BC898
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xE]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080BC8B8
|
|
ldr r1, _080BC894 @ =0x00001842
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0xF
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
b _080BC8B8
|
|
.align 2, 0
|
|
_080BC890: .4byte gTasks
|
|
_080BC894: .4byte 0x00001842
|
|
_080BC898:
|
|
ldrh r2, [r1, 0x10]
|
|
movs r0, 0x1F
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080BC8B8
|
|
ldrh r0, [r1, 0x12]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x12]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080BC8B8
|
|
adds r0, r2, 0
|
|
adds r0, 0xFF
|
|
strh r0, [r1, 0x10]
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x12]
|
|
_080BC8B8:
|
|
ldr r2, _080BC988 @ =gUnknown_2022986
|
|
ldrh r1, [r2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC8CC
|
|
ldr r3, _080BC98C @ =0xfffffc04
|
|
adds r0, r1, r3
|
|
strh r0, [r2]
|
|
_080BC8CC:
|
|
ldr r0, _080BC990 @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BC8E2
|
|
subs r0, r2, 0x2
|
|
strh r0, [r1, 0xC]
|
|
_080BC8E2:
|
|
movs r3, 0
|
|
ldr r0, _080BC994 @ =gScanlineEffect
|
|
mov r8, r0
|
|
ldr r2, _080BC998 @ =gScanlineEffectRegBuffers
|
|
mov r12, r2
|
|
mov r7, r8
|
|
adds r4, r1, 0
|
|
_080BC8F0:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
add r2, r12
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x4F
|
|
ble _080BC8F0
|
|
cmp r3, 0x9F
|
|
bgt _080BC934
|
|
ldr r0, _080BC998 @ =gScanlineEffectRegBuffers
|
|
mov r12, r0
|
|
ldr r7, _080BC994 @ =gScanlineEffect
|
|
ldr r1, _080BC990 @ =gTasks
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
_080BC91A:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
add r2, r12
|
|
ldrh r0, [r4, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9F
|
|
ble _080BC91A
|
|
_080BC934:
|
|
ldr r1, _080BC990 @ =gTasks
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
movs r3, 0xC
|
|
ldrsh r2, [r1, r3]
|
|
cmp r2, 0
|
|
bne _080BC9AA
|
|
movs r0, 0x3
|
|
mov r3, r8
|
|
strb r0, [r3, 0x15]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
str r2, [sp]
|
|
ldr r1, _080BC99C @ =0x0600e000
|
|
ldr r2, _080BC9A0 @ =0x05000200
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r1, 0x9C
|
|
lsls r1, 8
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r1, 0xBC
|
|
lsls r1, 7
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
b _080BC9AA
|
|
.align 2, 0
|
|
_080BC988: .4byte gUnknown_2022986
|
|
_080BC98C: .4byte 0xfffffc04
|
|
_080BC990: .4byte gTasks
|
|
_080BC994: .4byte gScanlineEffect
|
|
_080BC998: .4byte gScanlineEffectRegBuffers
|
|
_080BC99C: .4byte 0x0600e000
|
|
_080BC9A0: .4byte 0x05000200
|
|
_080BC9A4:
|
|
adds r0, r5, 0
|
|
bl sub_80BC41C
|
|
_080BC9AA:
|
|
ldr r0, _080BC9D0 @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x4
|
|
beq _080BC9C2
|
|
ldrh r1, [r1, 0x10]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
_080BC9C2:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC9D0: .4byte gTasks
|
|
thumb_func_end task00_battle_intro_80BC6C8
|
|
|
|
thumb_func_start task_battle_intro_anim
|
|
task_battle_intro_anim: @ 80BC9D4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080BCA08 @ =gBattle_BG1_X
|
|
ldrh r0, [r1]
|
|
adds r0, 0x8
|
|
strh r0, [r1]
|
|
ldr r1, _080BCA0C @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x4
|
|
bls _080BC9FE
|
|
b _080BCC22
|
|
_080BC9FE:
|
|
lsls r0, 2
|
|
ldr r1, _080BCA10 @ =_080BCA14
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BCA08: .4byte gBattle_BG1_X
|
|
_080BCA0C: .4byte gTasks
|
|
_080BCA10: .4byte _080BCA14
|
|
.align 2, 0
|
|
_080BCA14:
|
|
.4byte _080BCA28
|
|
.4byte _080BCA7C
|
|
.4byte _080BCAA8
|
|
.4byte _080BCAF8
|
|
.4byte _080BCC1C
|
|
_080BCA28:
|
|
ldr r1, _080BCA60 @ =0x00001842
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r4, _080BCA64 @ =0x00000808
|
|
movs r0, 0x52
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, _080BCA68 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
strh r4, [r2, 0x10]
|
|
ldr r0, _080BCA6C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BCA70
|
|
movs r0, 0x10
|
|
b _080BCA72
|
|
.align 2, 0
|
|
_080BCA60: .4byte 0x00001842
|
|
_080BCA64: .4byte 0x00000808
|
|
_080BCA68: .4byte gTasks
|
|
_080BCA6C: .4byte gBattleTypeFlags
|
|
_080BCA70:
|
|
movs r0, 0x1
|
|
_080BCA72:
|
|
strh r0, [r2, 0xC]
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
b _080BCC22
|
|
_080BCA7C:
|
|
ldr r0, _080BCAA4 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080BCA94
|
|
b _080BCC22
|
|
_080BCA94:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x48
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
b _080BCC22
|
|
.align 2, 0
|
|
_080BCAA4: .4byte gTasks
|
|
_080BCAA8:
|
|
ldr r1, _080BCAE8 @ =gUnknown_2022986
|
|
ldrh r0, [r1]
|
|
subs r0, 0xFF
|
|
strh r0, [r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
cmp r0, r1
|
|
beq _080BCAC0
|
|
b _080BCC22
|
|
_080BCAC0:
|
|
ldr r0, _080BCAEC @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xF0
|
|
strh r0, [r1, 0xC]
|
|
movs r0, 0x20
|
|
strh r0, [r1, 0xE]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x12]
|
|
ldr r2, _080BCAF0 @ =gIntroSlideFlags
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BCAF4 @ =0x0000fffe
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
b _080BCC22
|
|
.align 2, 0
|
|
_080BCAE8: .4byte gUnknown_2022986
|
|
_080BCAEC: .4byte gTasks
|
|
_080BCAF0: .4byte gIntroSlideFlags
|
|
_080BCAF4: .4byte 0x0000fffe
|
|
_080BCAF8:
|
|
lsls r0, r5, 2
|
|
adds r1, r0, r5
|
|
lsls r1, 3
|
|
adds r2, r1, r4
|
|
ldrh r3, [r2, 0xE]
|
|
movs r6, 0xE
|
|
ldrsh r1, [r2, r6]
|
|
mov r12, r0
|
|
cmp r1, 0
|
|
beq _080BCB12
|
|
subs r0, r3, 0x1
|
|
strh r0, [r2, 0xE]
|
|
b _080BCB32
|
|
_080BCB12:
|
|
ldrh r1, [r2, 0x10]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BCB32
|
|
ldrh r0, [r2, 0x12]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x12]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080BCB32
|
|
adds r0, r1, 0
|
|
adds r0, 0xFF
|
|
strh r0, [r2, 0x10]
|
|
movs r0, 0x6
|
|
strh r0, [r2, 0x12]
|
|
_080BCB32:
|
|
ldr r2, _080BCC00 @ =gUnknown_2022986
|
|
ldrh r1, [r2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BCB46
|
|
ldr r3, _080BCC04 @ =0xfffffc04
|
|
adds r0, r1, r3
|
|
strh r0, [r2]
|
|
_080BCB46:
|
|
mov r6, r12
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r4
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BCB5C
|
|
subs r0, r2, 0x2
|
|
strh r0, [r1, 0xC]
|
|
_080BCB5C:
|
|
movs r3, 0
|
|
ldr r6, _080BCC08 @ =gScanlineEffect
|
|
mov r8, r6
|
|
ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers
|
|
adds r4, r1, 0
|
|
_080BCB66:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r7
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x4F
|
|
ble _080BCB66
|
|
cmp r3, 0x9F
|
|
bgt _080BCBAA
|
|
ldr r7, _080BCC0C @ =gScanlineEffectRegBuffers
|
|
ldr r6, _080BCC08 @ =gScanlineEffect
|
|
ldr r1, _080BCC10 @ =gTasks
|
|
mov r2, r12
|
|
adds r0, r2, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
_080BCB90:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r7
|
|
ldrh r0, [r4, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9F
|
|
ble _080BCB90
|
|
_080BCBAA:
|
|
ldr r1, _080BCC10 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
movs r3, 0xC
|
|
ldrsh r2, [r1, r3]
|
|
cmp r2, 0
|
|
bne _080BCC22
|
|
movs r0, 0x3
|
|
mov r6, r8
|
|
strb r0, [r6, 0x15]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
str r2, [sp]
|
|
ldr r1, _080BCC14 @ =0x0600e000
|
|
ldr r2, _080BCC18 @ =0x05000200
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r1, 0x9C
|
|
lsls r1, 8
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r1, 0xBC
|
|
lsls r1, 7
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
b _080BCC22
|
|
.align 2, 0
|
|
_080BCC00: .4byte gUnknown_2022986
|
|
_080BCC04: .4byte 0xfffffc04
|
|
_080BCC08: .4byte gScanlineEffect
|
|
_080BCC0C: .4byte gScanlineEffectRegBuffers
|
|
_080BCC10: .4byte gTasks
|
|
_080BCC14: .4byte 0x0600e000
|
|
_080BCC18: .4byte 0x05000200
|
|
_080BCC1C:
|
|
adds r0, r5, 0
|
|
bl sub_80BC41C
|
|
_080BCC22:
|
|
ldr r0, _080BCC48 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x4
|
|
beq _080BCC3C
|
|
ldrh r1, [r1, 0x10]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
_080BCC3C:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BCC48: .4byte gTasks
|
|
thumb_func_end task_battle_intro_anim
|
|
|
|
thumb_func_start sub_80BCC4C
|
|
sub_80BCC4C: @ 80BCC4C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _080BCC98 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r7, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0x1
|
|
ble _080BCCC2
|
|
movs r2, 0x10
|
|
ldrsh r0, [r7, r2]
|
|
cmp r0, 0
|
|
bne _080BCCC2
|
|
ldr r2, _080BCC9C @ =gBattle_BG1_X
|
|
ldrh r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0
|
|
bne _080BCC8A
|
|
cmp r1, 0x4F
|
|
bhi _080BCCA4
|
|
_080BCC8A:
|
|
adds r0, r1, 0x3
|
|
strh r0, [r2]
|
|
ldr r1, _080BCCA0 @ =gBattle_BG2_X
|
|
ldrh r0, [r1]
|
|
subs r0, 0x3
|
|
strh r0, [r1]
|
|
b _080BCCC2
|
|
.align 2, 0
|
|
_080BCC98: .4byte gTasks
|
|
_080BCC9C: .4byte gBattle_BG1_X
|
|
_080BCCA0: .4byte gBattle_BG2_X
|
|
_080BCCA4:
|
|
str r5, [sp]
|
|
ldr r1, _080BCCE4 @ =0x0600e000
|
|
ldr r4, _080BCCE8 @ =0x05000200
|
|
mov r0, sp
|
|
adds r2, r4, 0
|
|
bl CpuSet
|
|
str r5, [sp, 0x4]
|
|
add r0, sp, 0x4
|
|
ldr r1, _080BCCEC @ =0x0600f000
|
|
adds r2, r4, 0
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
strh r0, [r7, 0x10]
|
|
_080BCCC2:
|
|
ldr r0, _080BCCF0 @ =gTasks
|
|
lsls r2, r6, 2
|
|
adds r1, r2, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r3, 0x8
|
|
ldrsh r1, [r1, r3]
|
|
mov r9, r0
|
|
adds r5, r2, 0
|
|
cmp r1, 0x4
|
|
bls _080BCCDA
|
|
b _080BCEE6
|
|
_080BCCDA:
|
|
lsls r0, r1, 2
|
|
ldr r1, _080BCCF4 @ =_080BCCF8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BCCE4: .4byte 0x0600e000
|
|
_080BCCE8: .4byte 0x05000200
|
|
_080BCCEC: .4byte 0x0600f000
|
|
_080BCCF0: .4byte gTasks
|
|
_080BCCF4: .4byte _080BCCF8
|
|
.align 2, 0
|
|
_080BCCF8:
|
|
.4byte _080BCD0C
|
|
.4byte _080BCD1E
|
|
.4byte _080BCDC4
|
|
.4byte _080BCE08
|
|
.4byte _080BCEE0
|
|
_080BCD0C:
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
add r0, r9
|
|
movs r1, 0x20
|
|
strh r1, [r0, 0xC]
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
b _080BCEE6
|
|
_080BCD1E:
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080BCD34
|
|
b _080BCEE6
|
|
_080BCD34:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
ldr r4, _080BCDB4 @ =gSprites
|
|
ldr r5, _080BCDB8 @ =gBattleStruct
|
|
ldr r0, [r5]
|
|
adds r0, 0x7D
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r3, [r1, 0x1]
|
|
movs r2, 0xD
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
movs r3, 0x8
|
|
mov r9, r3
|
|
mov r3, r9
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x1]
|
|
ldr r3, [r5]
|
|
adds r0, r3, 0
|
|
adds r0, 0x7D
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
movs r1, 0x1C
|
|
adds r1, r4
|
|
mov r8, r1
|
|
add r0, r8
|
|
ldr r6, _080BCDBC @ =sub_801182C
|
|
str r6, [r0]
|
|
adds r3, 0x7E
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x1]
|
|
ands r2, r1
|
|
mov r3, r9
|
|
orrs r2, r3
|
|
strb r2, [r0, 0x1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
str r6, [r0]
|
|
movs r0, 0x48
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
ldr r1, _080BCDC0 @ =0x00003f06
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
b _080BCEE6
|
|
.align 2, 0
|
|
_080BCDB4: .4byte gSprites
|
|
_080BCDB8: .4byte gBattleStruct
|
|
_080BCDBC: .4byte sub_801182C
|
|
_080BCDC0: .4byte 0x00003f06
|
|
_080BCDC4:
|
|
ldr r1, _080BCDFC @ =gUnknown_2022986
|
|
ldrh r0, [r1]
|
|
subs r0, 0xFF
|
|
strh r0, [r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
cmp r0, r1
|
|
beq _080BCDDC
|
|
b _080BCEE6
|
|
_080BCDDC:
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
add r1, r9
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xF0
|
|
strh r0, [r1, 0xC]
|
|
movs r0, 0x20
|
|
strh r0, [r1, 0xE]
|
|
ldr r2, _080BCE00 @ =gIntroSlideFlags
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BCE04 @ =0x0000fffe
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
b _080BCEE6
|
|
.align 2, 0
|
|
_080BCDFC: .4byte gUnknown_2022986
|
|
_080BCE00: .4byte gIntroSlideFlags
|
|
_080BCE04: .4byte 0x0000fffe
|
|
_080BCE08:
|
|
ldr r2, _080BCECC @ =gUnknown_2022986
|
|
ldrh r1, [r2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BCE1C
|
|
ldr r3, _080BCED0 @ =0xfffffc04
|
|
adds r0, r1, r3
|
|
strh r0, [r2]
|
|
_080BCE1C:
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BCE32
|
|
subs r0, r2, 0x2
|
|
strh r0, [r1, 0xC]
|
|
_080BCE32:
|
|
movs r3, 0
|
|
ldr r0, _080BCED4 @ =gScanlineEffect
|
|
mov r12, r0
|
|
ldr r2, _080BCED8 @ =gScanlineEffectRegBuffers
|
|
mov r8, r2
|
|
mov r7, r12
|
|
adds r4, r1, 0
|
|
_080BCE40:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
add r2, r8
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x4F
|
|
ble _080BCE40
|
|
cmp r3, 0x9F
|
|
bgt _080BCE84
|
|
ldr r0, _080BCED8 @ =gScanlineEffectRegBuffers
|
|
mov r8, r0
|
|
ldr r7, _080BCED4 @ =gScanlineEffect
|
|
ldr r1, _080BCEDC @ =gTasks
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
_080BCE6A:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
add r2, r8
|
|
ldrh r0, [r4, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9F
|
|
ble _080BCE6A
|
|
_080BCE84:
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bne _080BCEE6
|
|
movs r0, 0x3
|
|
mov r2, r12
|
|
strb r0, [r2, 0x15]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r1, 0x9C
|
|
lsls r1, 8
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r1, 0xBC
|
|
lsls r1, 7
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
b _080BCEE6
|
|
.align 2, 0
|
|
_080BCECC: .4byte gUnknown_2022986
|
|
_080BCED0: .4byte 0xfffffc04
|
|
_080BCED4: .4byte gScanlineEffect
|
|
_080BCED8: .4byte gScanlineEffectRegBuffers
|
|
_080BCEDC: .4byte gTasks
|
|
_080BCEE0:
|
|
adds r0, r6, 0
|
|
bl sub_80BC41C
|
|
_080BCEE6:
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BCC4C
|
|
|
|
thumb_func_start sub_80BCEF4
|
|
sub_80BCEF4: @ 80BCEF4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
str r0, [sp]
|
|
adds r6, r2, 0
|
|
adds r4, r3, 0
|
|
ldr r0, [sp, 0x24]
|
|
ldr r7, [sp, 0x28]
|
|
ldr r2, [sp, 0x2C]
|
|
mov r9, r2
|
|
ldr r5, [sp, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr
|
|
ldr r2, [r1]
|
|
lsls r4, 2
|
|
adds r2, 0x4
|
|
adds r2, r4
|
|
ldr r1, _080BCFC8 @ =gBattleMonForms
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 11
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r1, r7, 0
|
|
bl CpuSet
|
|
ldr r1, [sp]
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r1, r7, 0
|
|
adds r3, r5, 0
|
|
bl LoadBgTiles
|
|
adds r0, r6, 0
|
|
adds r0, 0x8
|
|
cmp r6, r0
|
|
bge _080BCFA0
|
|
mov r12, r0
|
|
mov r2, r8
|
|
lsls r7, r2, 1
|
|
_080BCF72:
|
|
mov r1, r8
|
|
adds r2, r1, 0
|
|
adds r2, 0x8
|
|
adds r4, r6, 0x1
|
|
cmp r1, r2
|
|
bge _080BCF9A
|
|
mov r0, r10
|
|
lsls r3, r0, 12
|
|
lsls r0, r6, 6
|
|
add r0, r9
|
|
adds r6, r7, r0
|
|
subs r1, r2, r1
|
|
_080BCF8A:
|
|
adds r0, r5, 0
|
|
orrs r0, r3
|
|
strh r0, [r6]
|
|
adds r5, 0x1
|
|
adds r6, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _080BCF8A
|
|
_080BCF9A:
|
|
adds r6, r4, 0
|
|
cmp r6, r12
|
|
blt _080BCF72
|
|
_080BCFA0:
|
|
ldr r1, [sp]
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
mov r1, r9
|
|
movs r3, 0
|
|
bl LoadBgTilemap
|
|
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
|
|
_080BCFC4: .4byte gMonSpritesGfxPtr
|
|
_080BCFC8: .4byte gBattleMonForms
|
|
thumb_func_end sub_80BCEF4
|
|
|
|
thumb_func_start sub_80BCFCC
|
|
sub_80BCFCC: @ 80BCFCC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r4, [sp, 0x24]
|
|
ldr r5, [sp, 0x28]
|
|
mov r8, r5
|
|
ldr r5, [sp, 0x2C]
|
|
ldr r6, [sp, 0x30]
|
|
mov r9, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
lsls r1, 24
|
|
lsls r2, 24
|
|
lsls r3, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r10, r4
|
|
mov r7, r8
|
|
lsls r7, 16
|
|
lsrs r6, r7, 16
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
mov r0, r9
|
|
lsls r0, 24
|
|
mov r9, r0
|
|
ldr r4, _080BD090 @ =0x040000d4
|
|
ldr r0, _080BD094 @ =gMonSpritesGfxPtr
|
|
ldr r0, [r0]
|
|
lsrs r2, 22
|
|
adds r0, 0x4
|
|
adds r0, r2
|
|
lsrs r3, 13
|
|
ldr r0, [r0]
|
|
adds r0, r3
|
|
str r0, [r4]
|
|
movs r0, 0xC0
|
|
lsls r0, 19
|
|
adds r6, r0
|
|
str r6, [r4, 0x4]
|
|
ldr r0, _080BD098 @ =0x80000400
|
|
str r0, [r4, 0x8]
|
|
ldr r0, [r4, 0x8]
|
|
adds r2, r7, 0
|
|
lsrs r2, 21
|
|
mov r6, r9
|
|
lsrs r6, 15
|
|
subs r4, r2, r6
|
|
lsrs r0, r1, 24
|
|
adds r1, r0, 0
|
|
adds r1, 0x8
|
|
cmp r0, r1
|
|
bge _080BD080
|
|
mov r9, r1
|
|
mov r7, r12
|
|
lsls r7, 1
|
|
mov r8, r7
|
|
lsls r5, 11
|
|
str r5, [sp]
|
|
_080BD048:
|
|
mov r2, r12
|
|
adds r3, r2, 0
|
|
adds r3, 0x8
|
|
adds r5, r0, 0x1
|
|
cmp r2, r3
|
|
bge _080BD07A
|
|
mov r1, r10
|
|
lsls r6, r1, 12
|
|
lsls r0, 6
|
|
movs r7, 0xC0
|
|
lsls r7, 19
|
|
adds r0, r7
|
|
ldr r1, [sp]
|
|
adds r0, r1, r0
|
|
mov r7, r8
|
|
adds r1, r7, r0
|
|
subs r2, r3, r2
|
|
_080BD06A:
|
|
adds r0, r4, 0
|
|
orrs r0, r6
|
|
strh r0, [r1]
|
|
adds r4, 0x1
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080BD06A
|
|
_080BD07A:
|
|
adds r0, r5, 0
|
|
cmp r0, r9
|
|
blt _080BD048
|
|
_080BD080:
|
|
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
|
|
_080BD090: .4byte 0x040000d4
|
|
_080BD094: .4byte gMonSpritesGfxPtr
|
|
_080BD098: .4byte 0x80000400
|
|
thumb_func_end sub_80BCFCC
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|