mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-19 13:07:38 +01:00
3060 lines
46 KiB
ArmAsm
3060 lines
46 KiB
ArmAsm
|
.include "asm/macros.inc"
|
||
|
.include "constants/constants.inc"
|
||
|
|
||
|
.syntax unified
|
||
|
|
||
|
.text
|
||
|
|
||
|
thumb_func_start sub_8116620
|
||
|
sub_8116620: @ 8116620
|
||
|
push {r4-r6,lr}
|
||
|
adds r5, r0, 0
|
||
|
lsls r5, 24
|
||
|
lsrs r5, 24
|
||
|
ldr r4, =gBattleAnimArgs
|
||
|
movs r1, 0
|
||
|
ldrsh r0, [r4, r1]
|
||
|
bl sub_811583C
|
||
|
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_80A76C4
|
||
|
orrs r6, r0
|
||
|
adds r0, r5, 0
|
||
|
adds r1, r6, 0
|
||
|
bl sub_8116874
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8116620
|
||
|
|
||
|
thumb_func_start sub_8116664
|
||
|
sub_8116664: @ 8116664
|
||
|
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_811583C
|
||
|
adds r5, r0, 0
|
||
|
ldr r0, =gBattleAnimArgs
|
||
|
movs r1, 0
|
||
|
ldrsh r0, [r0, r1]
|
||
|
cmp r0, 0x7
|
||
|
bhi _0811670E
|
||
|
lsls r0, 2
|
||
|
ldr r1, =_08116698
|
||
|
adds r0, r1
|
||
|
ldr r0, [r0]
|
||
|
mov pc, r0
|
||
|
.pool
|
||
|
.align 2, 0
|
||
|
_08116698:
|
||
|
.4byte _081166BA
|
||
|
.4byte _081166C6
|
||
|
.4byte _081166B8
|
||
|
.4byte _081166C4
|
||
|
.4byte _081166D4
|
||
|
.4byte _081166EC
|
||
|
.4byte _081166F4
|
||
|
.4byte _08116700
|
||
|
_081166B8:
|
||
|
movs r5, 0
|
||
|
_081166BA:
|
||
|
mov r0, sp
|
||
|
ldr r1, =gBattleAnimAttacker
|
||
|
b _081166CA
|
||
|
.pool
|
||
|
_081166C4:
|
||
|
movs r5, 0
|
||
|
_081166C6:
|
||
|
mov r0, sp
|
||
|
ldr r1, =gBattleAnimTarget
|
||
|
_081166CA:
|
||
|
ldrb r1, [r1]
|
||
|
strb r1, [r0]
|
||
|
b _0811670E
|
||
|
.pool
|
||
|
_081166D4:
|
||
|
mov r1, sp
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r0, [r0]
|
||
|
strb r0, [r1]
|
||
|
ldr r0, =gBattleAnimTarget
|
||
|
ldrb r0, [r0]
|
||
|
strb r0, [r1, 0x1]
|
||
|
b _0811670E
|
||
|
.pool
|
||
|
_081166EC:
|
||
|
mov r1, sp
|
||
|
movs r0, 0xFF
|
||
|
strb r0, [r1]
|
||
|
b _0811670E
|
||
|
_081166F4:
|
||
|
movs r5, 0
|
||
|
mov r2, sp
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
b _08116706
|
||
|
.pool
|
||
|
_08116700:
|
||
|
movs r5, 0
|
||
|
mov r2, sp
|
||
|
ldr r0, =gBattleAnimTarget
|
||
|
_08116706:
|
||
|
ldrb r0, [r0]
|
||
|
movs r1, 0x2
|
||
|
eors r0, r1
|
||
|
strb r0, [r2]
|
||
|
_0811670E:
|
||
|
movs r4, 0
|
||
|
mov r6, sp
|
||
|
_08116712:
|
||
|
ldrb r0, [r6]
|
||
|
cmp r4, r0
|
||
|
beq _0811673C
|
||
|
ldrb r0, [r6, 0x1]
|
||
|
cmp r4, r0
|
||
|
beq _0811673C
|
||
|
adds r0, r4, 0
|
||
|
bl IsBattlerSpriteVisible
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _0811673C
|
||
|
adds r0, r4, 0
|
||
|
bl sub_80A77AC
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
movs r1, 0x80
|
||
|
lsls r1, 9
|
||
|
lsls r1, r0
|
||
|
orrs r5, r1
|
||
|
_0811673C:
|
||
|
adds r0, r4, 0x1
|
||
|
lsls r0, 24
|
||
|
lsrs r4, r0, 24
|
||
|
cmp r4, 0x3
|
||
|
bls _08116712
|
||
|
adds r0, r7, 0
|
||
|
adds r1, r5, 0
|
||
|
bl sub_8116874
|
||
|
add sp, 0x4
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8116664
|
||
|
|
||
|
thumb_func_start sub_811675C
|
||
|
sub_811675C: @ 811675C
|
||
|
push {r4,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r4, r0, 24
|
||
|
ldr r0, =gBattleAnimArgs
|
||
|
movs r1, 0
|
||
|
ldrsh r0, [r0, r1]
|
||
|
bl sub_811583C
|
||
|
adds r2, r0, 0
|
||
|
ldr r0, =gBattleTerrain
|
||
|
ldrb r0, [r0]
|
||
|
cmp r0, 0x9
|
||
|
bhi _08116832
|
||
|
lsls r0, 2
|
||
|
ldr r1, =_0811678C
|
||
|
adds r0, r1
|
||
|
ldr r0, [r0]
|
||
|
mov pc, r0
|
||
|
.pool
|
||
|
.align 2, 0
|
||
|
_0811678C:
|
||
|
.4byte _081167B4
|
||
|
.4byte _081167C4
|
||
|
.4byte _081167D0
|
||
|
.4byte _081167E0
|
||
|
.4byte _081167EC
|
||
|
.4byte _081167FC
|
||
|
.4byte _0811680C
|
||
|
.4byte _0811681C
|
||
|
.4byte _0811682C
|
||
|
.4byte _0811682C
|
||
|
_081167B4:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
ldr r0, =0x00000b0c
|
||
|
b _08116830
|
||
|
.pool
|
||
|
_081167C4:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
movs r0, 0x9E
|
||
|
lsls r0, 4
|
||
|
b _08116830
|
||
|
.pool
|
||
|
_081167D0:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
ldr r0, =0x00002f1e
|
||
|
b _08116830
|
||
|
.pool
|
||
|
_081167E0:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
movs r0, 0x90
|
||
|
lsls r0, 7
|
||
|
b _08116830
|
||
|
.pool
|
||
|
_081167EC:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
ldr r0, =0x00007ecb
|
||
|
b _08116830
|
||
|
.pool
|
||
|
_081167FC:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
ldr r0, =0x00007ecb
|
||
|
b _08116830
|
||
|
.pool
|
||
|
_0811680C:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
ldr r0, =0x00002a16
|
||
|
b _08116830
|
||
|
.pool
|
||
|
_0811681C:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
ldr r0, =0x00000d2e
|
||
|
b _08116830
|
||
|
.pool
|
||
|
_0811682C:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
ldr r0, =0x00007fff
|
||
|
_08116830:
|
||
|
strh r0, [r1, 0x8]
|
||
|
_08116832:
|
||
|
adds r0, r4, 0
|
||
|
adds r1, r2, 0
|
||
|
bl sub_8116874
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_811675C
|
||
|
|
||
|
thumb_func_start AnimTask_BlendParticle
|
||
|
AnimTask_BlendParticle: @ 8116848
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
ldr r0, =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_8116874
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end AnimTask_BlendParticle
|
||
|
|
||
|
thumb_func_start sub_8116874
|
||
|
sub_8116874: @ 8116874
|
||
|
push {lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
ldr r3, =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, =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, =sub_81168B8
|
||
|
str r1, [r2]
|
||
|
bl _call_via_r1
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8116874
|
||
|
|
||
|
thumb_func_start sub_81168B8
|
||
|
sub_81168B8: @ 81168B8
|
||
|
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, =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 _0811694E
|
||
|
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 _0811691A
|
||
|
adds r5, r3, 0
|
||
|
_081168F8:
|
||
|
movs r0, 0x1
|
||
|
ands r0, r4
|
||
|
cmp r0, 0
|
||
|
beq _0811690C
|
||
|
ldrb r2, [r5, 0x1C]
|
||
|
ldrh r3, [r5, 0x12]
|
||
|
adds r0, r6, 0
|
||
|
movs r1, 0x10
|
||
|
bl BlendPalette
|
||
|
_0811690C:
|
||
|
adds r0, r6, 0
|
||
|
adds r0, 0x10
|
||
|
lsls r0, 16
|
||
|
lsrs r6, r0, 16
|
||
|
lsrs r4, 1
|
||
|
cmp r4, 0
|
||
|
bne _081168F8
|
||
|
_0811691A:
|
||
|
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 _0811693C
|
||
|
adds r0, 0x1
|
||
|
strh r0, [r2, 0x1C]
|
||
|
b _08116954
|
||
|
.pool
|
||
|
_0811693C:
|
||
|
cmp r3, r1
|
||
|
ble _08116946
|
||
|
subs r0, 0x1
|
||
|
strh r0, [r2, 0x1C]
|
||
|
b _08116954
|
||
|
_08116946:
|
||
|
adds r0, r7, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
b _08116954
|
||
|
_0811694E:
|
||
|
mov r0, r8
|
||
|
adds r0, 0x1
|
||
|
strh r0, [r3, 0x1A]
|
||
|
_08116954:
|
||
|
pop {r3,r4}
|
||
|
mov r8, r3
|
||
|
mov r9, r4
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81168B8
|
||
|
|
||
|
thumb_func_start sub_8116960
|
||
|
sub_8116960: @ 8116960
|
||
|
push {r4,r5,lr}
|
||
|
sub sp, 0x4
|
||
|
adds r5, r0, 0
|
||
|
lsls r5, 24
|
||
|
lsrs r5, 24
|
||
|
ldr r4, =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, =gTasks
|
||
|
lsls r0, r5, 2
|
||
|
adds r0, r5
|
||
|
lsls r0, 3
|
||
|
adds r0, r1
|
||
|
ldr r1, =sub_81169A0
|
||
|
str r1, [r0]
|
||
|
add sp, 0x4
|
||
|
pop {r4,r5}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8116960
|
||
|
|
||
|
thumb_func_start sub_81169A0
|
||
|
sub_81169A0: @ 81169A0
|
||
|
push {lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r2, r0, 24
|
||
|
ldr r0, =gPaletteFade
|
||
|
ldrb r1, [r0, 0x7]
|
||
|
movs r0, 0x80
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
bne _081169B8
|
||
|
adds r0, r2, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
_081169B8:
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81169A0
|
||
|
|
||
|
thumb_func_start sub_81169C0
|
||
|
sub_81169C0: @ 81169C0
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
lsls r1, r0, 2
|
||
|
adds r1, r0
|
||
|
lsls r1, 3
|
||
|
ldr r0, =gTasks
|
||
|
adds r1, r0
|
||
|
ldr r2, =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, =sub_81169F8
|
||
|
str r0, [r1]
|
||
|
bx lr
|
||
|
.pool
|
||
|
thumb_func_end sub_81169C0
|
||
|
|
||
|
thumb_func_start sub_81169F8
|
||
|
sub_81169F8: @ 81169F8
|
||
|
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, =gTasks
|
||
|
adds r4, r0, r1
|
||
|
movs r1, 0x10
|
||
|
ldrsh r0, [r4, r1]
|
||
|
cmp r0, 0
|
||
|
beq _08116ABC
|
||
|
ldrh r1, [r4, 0xA]
|
||
|
movs r2, 0xA
|
||
|
ldrsh r0, [r4, r2]
|
||
|
cmp r0, 0
|
||
|
beq _08116A28
|
||
|
subs r0, r1, 0x1
|
||
|
strh r0, [r4, 0xA]
|
||
|
b _08116ACA
|
||
|
.pool
|
||
|
_08116A28:
|
||
|
ldrb r0, [r4, 0x8]
|
||
|
bl duplicate_obj_of_side_rel2move_in_transparent_mode
|
||
|
strh r0, [r4, 0x14]
|
||
|
lsls r0, 16
|
||
|
cmp r0, 0
|
||
|
blt _08116AA6
|
||
|
ldr r6, =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 _08116A50
|
||
|
movs r2, 0x1
|
||
|
_08116A50:
|
||
|
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, =sub_8116AD0
|
||
|
str r1, [r0]
|
||
|
ldrh r0, [r4, 0x12]
|
||
|
adds r0, 0x1
|
||
|
strh r0, [r4, 0x12]
|
||
|
_08116AA6:
|
||
|
ldrh r0, [r4, 0x10]
|
||
|
subs r0, 0x1
|
||
|
strh r0, [r4, 0x10]
|
||
|
ldrh r0, [r4, 0xC]
|
||
|
strh r0, [r4, 0xA]
|
||
|
b _08116ACA
|
||
|
.pool
|
||
|
_08116ABC:
|
||
|
movs r1, 0x12
|
||
|
ldrsh r0, [r4, r1]
|
||
|
cmp r0, 0
|
||
|
bne _08116ACA
|
||
|
adds r0, r2, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
_08116ACA:
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81169F8
|
||
|
|
||
|
thumb_func_start sub_8116AD0
|
||
|
sub_8116AD0: @ 8116AD0
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
ldrh r1, [r4, 0x2E]
|
||
|
movs r2, 0x2E
|
||
|
ldrsh r0, [r4, r2]
|
||
|
cmp r0, 0
|
||
|
beq _08116AE4
|
||
|
subs r0, r1, 0x1
|
||
|
strh r0, [r4, 0x2E]
|
||
|
b _08116B08
|
||
|
_08116AE4:
|
||
|
ldr r3, =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
|
||
|
_08116B08:
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8116AD0
|
||
|
|
||
|
thumb_func_start sub_8116B14
|
||
|
sub_8116B14: @ 8116B14
|
||
|
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, =gBattle_WIN0H
|
||
|
strh r7, [r0]
|
||
|
ldr r0, =gBattle_WIN0V
|
||
|
strh r7, [r0]
|
||
|
ldr r1, =0x00003f3f
|
||
|
movs r0, 0x48
|
||
|
bl SetGpuReg
|
||
|
ldr r1, =0x00003f3d
|
||
|
movs r0, 0x4A
|
||
|
bl SetGpuReg
|
||
|
movs r1, 0x80
|
||
|
lsls r1, 8
|
||
|
movs r0, 0
|
||
|
bl SetGpuRegBits
|
||
|
ldr r1, =0x00003f42
|
||
|
movs r0, 0x50
|
||
|
bl SetGpuReg
|
||
|
ldr r1, =0x00000c08
|
||
|
movs r0, 0x52
|
||
|
bl SetGpuReg
|
||
|
movs r0, 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 _08116BA2
|
||
|
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
|
||
|
_08116BA2:
|
||
|
bl IsDoubleBattle
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _08116C26
|
||
|
bl IsContest
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _08116C26
|
||
|
ldr r5, =gBattleAnimAttacker
|
||
|
ldrb r0, [r5]
|
||
|
bl GetBattlerPosition
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
cmp r0, 0x3
|
||
|
beq _08116BD2
|
||
|
ldrb r0, [r5]
|
||
|
bl GetBattlerPosition
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _08116C26
|
||
|
_08116BD2:
|
||
|
ldrb r0, [r5]
|
||
|
movs r6, 0x2
|
||
|
eors r0, r6
|
||
|
bl IsBattlerSpriteVisible
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
cmp r0, 0x1
|
||
|
bne _08116C26
|
||
|
ldr r3, =gSprites
|
||
|
ldr r1, =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
|
||
|
_08116C26:
|
||
|
bl IsContest
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _08116C64
|
||
|
ldr r0, =gContestResources
|
||
|
ldr r0, [r0]
|
||
|
ldr r0, [r0, 0x18]
|
||
|
ldrh r5, [r0]
|
||
|
b _08116CAC
|
||
|
.pool
|
||
|
_08116C64:
|
||
|
ldr r4, =gBattleAnimAttacker
|
||
|
ldrb r0, [r4]
|
||
|
bl GetBattlerSide
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _08116C90
|
||
|
ldr r1, =gBattlerPartyIndexes
|
||
|
ldrb r0, [r4]
|
||
|
lsls r0, 1
|
||
|
adds r0, r1
|
||
|
ldrh r1, [r0]
|
||
|
movs r0, 0x64
|
||
|
muls r0, r1
|
||
|
ldr r1, =gEnemyParty
|
||
|
b _08116CA0
|
||
|
.pool
|
||
|
_08116C90:
|
||
|
ldr r1, =gBattlerPartyIndexes
|
||
|
ldrb r0, [r4]
|
||
|
lsls r0, 1
|
||
|
adds r0, r1
|
||
|
ldrh r1, [r0]
|
||
|
movs r0, 0x64
|
||
|
muls r0, r1
|
||
|
ldr r1, =gPlayerParty
|
||
|
_08116CA0:
|
||
|
adds r0, r1
|
||
|
movs r1, 0xB
|
||
|
bl GetMonData
|
||
|
lsls r0, 16
|
||
|
lsrs r5, r0, 16
|
||
|
_08116CAC:
|
||
|
movs r0, 0
|
||
|
bl GetAnimBattlerSpriteId
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r0, [r0]
|
||
|
adds r1, r4, 0
|
||
|
adds r2, r5, 0
|
||
|
bl sub_80A89C8
|
||
|
adds r5, r0, 0
|
||
|
lsls r5, 24
|
||
|
lsrs r5, 24
|
||
|
mov r0, sp
|
||
|
bl sub_80A6B30
|
||
|
ldr r1, =gUnknown_08C20684
|
||
|
mov r0, sp
|
||
|
movs r2, 0
|
||
|
bl sub_80A6D60
|
||
|
mov r0, sp
|
||
|
ldrb r0, [r0, 0x9]
|
||
|
ldr r1, =gUnknown_08C20668
|
||
|
mov r2, sp
|
||
|
ldrh r2, [r2, 0xA]
|
||
|
bl sub_80A6CC0
|
||
|
ldr r0, =gUnknown_08597418
|
||
|
mov r1, sp
|
||
|
ldrb r1, [r1, 0x8]
|
||
|
lsls r1, 4
|
||
|
adds r1, 0x1
|
||
|
movs r2, 0x2
|
||
|
bl LoadPalette
|
||
|
ldr r2, =gBattle_BG1_X
|
||
|
ldr r0, =gSprites
|
||
|
lsls r1, r4, 4
|
||
|
adds r1, r4
|
||
|
lsls r1, 2
|
||
|
adds r1, r0
|
||
|
ldrh r0, [r1, 0x20]
|
||
|
negs r0, r0
|
||
|
adds r0, 0x20
|
||
|
strh r0, [r2]
|
||
|
ldr r2, =gBattle_BG1_Y
|
||
|
ldrh r0, [r1, 0x22]
|
||
|
negs r0, r0
|
||
|
adds r0, 0x20
|
||
|
strh r0, [r2]
|
||
|
ldr r1, =gTasks
|
||
|
mov r2, r9
|
||
|
lsls r0, r2, 2
|
||
|
add r0, r9
|
||
|
lsls r0, 3
|
||
|
adds r0, r1
|
||
|
strh r5, [r0, 0x8]
|
||
|
strh r7, [r0, 0x14]
|
||
|
ldr r1, =sub_8116D64
|
||
|
str r1, [r0]
|
||
|
add sp, 0x14
|
||
|
pop {r3,r4}
|
||
|
mov r8, r3
|
||
|
mov r9, r4
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8116B14
|
||
|
|
||
|
thumb_func_start sub_8116D64
|
||
|
sub_8116D64: @ 8116D64
|
||
|
push {r4-r7,lr}
|
||
|
mov r7, r8
|
||
|
push {r7}
|
||
|
sub sp, 0x14
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
adds r6, r0, 0
|
||
|
ldr r1, =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, =gBattle_BG1_Y
|
||
|
ldrh r2, [r7]
|
||
|
subs r1, r2, 0x4
|
||
|
strh r1, [r7]
|
||
|
lsls r0, 16
|
||
|
asrs r0, 16
|
||
|
cmp r0, 0x40
|
||
|
bne _08116E86
|
||
|
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 _08116E86
|
||
|
movs r0, 0
|
||
|
bl sub_80A477C
|
||
|
ldr r0, =gBattle_WIN0H
|
||
|
mov r1, r8
|
||
|
strh r1, [r0]
|
||
|
ldr r0, =gBattle_WIN0V
|
||
|
strh r1, [r0]
|
||
|
ldr r4, =0x00003f3f
|
||
|
movs r0, 0x48
|
||
|
adds r1, r4, 0
|
||
|
bl SetGpuReg
|
||
|
movs r0, 0x4A
|
||
|
adds r1, r4, 0
|
||
|
bl SetGpuReg
|
||
|
bl IsContest
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _08116DF6
|
||
|
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
|
||
|
_08116DF6:
|
||
|
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 GetAnimBattlerSpriteId
|
||
|
ldr r4, =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_80A6B30
|
||
|
mov r0, sp
|
||
|
ldrb r0, [r0, 0x9]
|
||
|
bl sub_80A6C68
|
||
|
movs r1, 0x14
|
||
|
ldrsh r0, [r5, r1]
|
||
|
cmp r0, 0x1
|
||
|
bne _08116E7C
|
||
|
ldr r2, =gBattlerSpriteIds
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r1, [r0]
|
||
|
movs r0, 0x2
|
||
|
eors r0, r1
|
||
|
adds r0, r2
|
||
|
ldrb r0, [r0]
|
||
|
lsls r2, r0, 4
|
||
|
adds r2, r0
|
||
|
lsls r2, 2
|
||
|
adds r2, 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]
|
||
|
_08116E7C:
|
||
|
mov r2, r8
|
||
|
strh r2, [r7]
|
||
|
adds r0, r6, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
_08116E86:
|
||
|
add sp, 0x14
|
||
|
pop {r3}
|
||
|
mov r8, r3
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8116D64
|
||
|
|
||
|
thumb_func_start sub_8116EB4
|
||
|
sub_8116EB4: @ 8116EB4
|
||
|
push {r4,r5,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r5, r0, 24
|
||
|
ldr r4, =gUnknown_0203A110
|
||
|
movs r0, 0x18
|
||
|
bl AllocZeroed
|
||
|
str r0, [r4]
|
||
|
movs r2, 0
|
||
|
ldr r3, =gBattleAnimArgs
|
||
|
_08116EC8:
|
||
|
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 _08116EC8
|
||
|
ldr r0, =gTasks
|
||
|
lsls r1, r5, 2
|
||
|
adds r1, r5
|
||
|
lsls r1, 3
|
||
|
adds r1, r0
|
||
|
ldr r0, =sub_8116F04
|
||
|
str r0, [r1]
|
||
|
pop {r4,r5}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8116EB4
|
||
|
|
||
|
thumb_func_start sub_8116F04
|
||
|
sub_8116F04: @ 8116F04
|
||
|
push {r4-r6,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r6, r0, 24
|
||
|
ldr r0, =gUnknown_0203A110
|
||
|
ldr r1, [r0]
|
||
|
movs r2, 0x8
|
||
|
ldrsh r0, [r1, r2]
|
||
|
cmp r0, 0
|
||
|
bne _08116F24
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
b _08116F26
|
||
|
.pool
|
||
|
_08116F24:
|
||
|
ldr r0, =gBattleAnimTarget
|
||
|
_08116F26:
|
||
|
ldrb r0, [r0]
|
||
|
strb r0, [r1]
|
||
|
ldr r4, =gUnknown_0203A110
|
||
|
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 _08116F56
|
||
|
ldr r1, [r4]
|
||
|
movs r2, 0xA
|
||
|
ldrsh r0, [r1, r2]
|
||
|
cmp r0, 0
|
||
|
beq _08116F5C
|
||
|
ldrb r0, [r1, 0x1]
|
||
|
bl IsBattlerSpriteVisible
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _08116F5C
|
||
|
_08116F56:
|
||
|
ldr r1, [r4]
|
||
|
movs r0, 0
|
||
|
strh r0, [r1, 0xA]
|
||
|
_08116F5C:
|
||
|
ldr r0, =gBattle_WIN0H
|
||
|
movs r1, 0
|
||
|
strh r1, [r0]
|
||
|
ldr r0, =gBattle_WIN0V
|
||
|
strh r1, [r0]
|
||
|
ldr r1, =0x00003f3f
|
||
|
movs r0, 0x48
|
||
|
bl SetGpuReg
|
||
|
ldr r1, =0x00003f3d
|
||
|
movs r0, 0x4A
|
||
|
bl SetGpuReg
|
||
|
movs r1, 0x80
|
||
|
lsls r1, 8
|
||
|
movs r0, 0
|
||
|
bl SetGpuRegBits
|
||
|
ldr r1, =0x00003f42
|
||
|
movs r0, 0x50
|
||
|
bl SetGpuReg
|
||
|
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 _08116FBA
|
||
|
movs r0, 0x1
|
||
|
movs r1, 0x3
|
||
|
movs r2, 0x1
|
||
|
bl SetAnimBgAttribute
|
||
|
_08116FBA:
|
||
|
bl IsDoubleBattle
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _08117036
|
||
|
ldr r4, =gUnknown_0203A110
|
||
|
ldr r1, [r4]
|
||
|
movs r2, 0xA
|
||
|
ldrsh r0, [r1, r2]
|
||
|
cmp r0, 0
|
||
|
bne _08117036
|
||
|
ldrb r0, [r1]
|
||
|
bl GetBattlerPosition
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
cmp r0, 0x3
|
||
|
beq _08116FEC
|
||
|
ldr r0, [r4]
|
||
|
ldrb r0, [r0]
|
||
|
bl GetBattlerPosition
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _08117036
|
||
|
_08116FEC:
|
||
|
ldr r0, [r4]
|
||
|
ldrb r0, [r0, 0x1]
|
||
|
bl IsBattlerSpriteVisible
|
||
|
lsls r0, 24
|
||
|
lsrs r5, r0, 24
|
||
|
cmp r5, 0x1
|
||
|
bne _08117036
|
||
|
ldr r3, =gSprites
|
||
|
ldr r1, =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]
|
||
|
_08117036:
|
||
|
bl IsContest
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _08117078
|
||
|
ldr r0, =gUnknown_0203A110
|
||
|
ldr r1, [r0]
|
||
|
ldr r0, =gContestResources
|
||
|
ldr r0, [r0]
|
||
|
ldr r0, [r0, 0x18]
|
||
|
ldrh r0, [r0]
|
||
|
b _081170C4
|
||
|
.pool
|
||
|
_08117078:
|
||
|
ldr r4, =gUnknown_0203A110
|
||
|
ldr r0, [r4]
|
||
|
ldrb r0, [r0]
|
||
|
bl GetBattlerSide
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _081170A8
|
||
|
ldr r1, =gBattlerPartyIndexes
|
||
|
ldr r0, [r4]
|
||
|
ldrb r0, [r0]
|
||
|
lsls r0, 1
|
||
|
adds r0, r1
|
||
|
ldrh r1, [r0]
|
||
|
movs r0, 0x64
|
||
|
muls r0, r1
|
||
|
ldr r1, =gEnemyParty
|
||
|
b _081170BA
|
||
|
.pool
|
||
|
_081170A8:
|
||
|
ldr r1, =gBattlerPartyIndexes
|
||
|
ldr r0, [r4]
|
||
|
ldrb r0, [r0]
|
||
|
lsls r0, 1
|
||
|
adds r0, r1
|
||
|
ldrh r1, [r0]
|
||
|
movs r0, 0x64
|
||
|
muls r0, r1
|
||
|
ldr r1, =gPlayerParty
|
||
|
_081170BA:
|
||
|
adds r0, r1
|
||
|
movs r1, 0xB
|
||
|
bl GetMonData
|
||
|
ldr r1, [r4]
|
||
|
_081170C4:
|
||
|
strh r0, [r1, 0x14]
|
||
|
ldr r0, =gTasks
|
||
|
lsls r1, r6, 2
|
||
|
adds r1, r6
|
||
|
lsls r1, 3
|
||
|
adds r1, r0
|
||
|
ldr r0, =sub_81170EC
|
||
|
str r0, [r1]
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8116F04
|
||
|
|
||
|
thumb_func_start sub_81170EC
|
||
|
sub_81170EC: @ 81170EC
|
||
|
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, =gBattlerSpriteIds
|
||
|
ldr r4, =gUnknown_0203A110
|
||
|
ldr r2, [r4]
|
||
|
ldrb r0, [r2]
|
||
|
adds r1, r0, r6
|
||
|
ldrb r1, [r1]
|
||
|
ldrh r2, [r2, 0x14]
|
||
|
bl sub_80A89C8
|
||
|
lsls r0, 24
|
||
|
lsrs r7, r0, 24
|
||
|
ldr r2, [r4]
|
||
|
movs r1, 0xA
|
||
|
ldrsh r0, [r2, r1]
|
||
|
cmp r0, 0
|
||
|
beq _0811712E
|
||
|
ldrb r0, [r2, 0x1]
|
||
|
adds r1, r0, r6
|
||
|
ldrb r1, [r1]
|
||
|
ldrh r2, [r2, 0x14]
|
||
|
bl sub_80A89C8
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
mov r8, r0
|
||
|
_0811712E:
|
||
|
mov r0, sp
|
||
|
bl sub_80A6B30
|
||
|
ldr r0, [r4]
|
||
|
movs r4, 0x4
|
||
|
ldrsh r0, [r0, r4]
|
||
|
cmp r0, 0
|
||
|
bne _08117158
|
||
|
ldr r1, =gUnknown_08C2D930
|
||
|
mov r0, sp
|
||
|
movs r2, 0
|
||
|
bl sub_80A6D60
|
||
|
b _08117162
|
||
|
.pool
|
||
|
_08117158:
|
||
|
ldr r1, =gUnknown_08C2DA4C
|
||
|
mov r0, sp
|
||
|
movs r2, 0
|
||
|
bl sub_80A6D60
|
||
|
_08117162:
|
||
|
mov r0, sp
|
||
|
ldrb r0, [r0, 0x9]
|
||
|
ldr r1, =gUnknown_08C2D720
|
||
|
mov r2, sp
|
||
|
ldrh r2, [r2, 0xA]
|
||
|
bl sub_80A6CC0
|
||
|
ldr r0, =gUnknown_0203A110
|
||
|
ldr r0, [r0]
|
||
|
movs r1, 0x6
|
||
|
ldrsh r0, [r0, r1]
|
||
|
cmp r0, 0x6
|
||
|
bhi _081171F8
|
||
|
lsls r0, 2
|
||
|
ldr r1, =_08117198
|
||
|
adds r0, r1
|
||
|
ldr r0, [r0]
|
||
|
mov pc, r0
|
||
|
.pool
|
||
|
.align 2, 0
|
||
|
_08117198:
|
||
|
.4byte _081171B4
|
||
|
.4byte _081171BC
|
||
|
.4byte _081171C4
|
||
|
.4byte _081171CC
|
||
|
.4byte _081171D4
|
||
|
.4byte _081171DC
|
||
|
.4byte _081171E4
|
||
|
_081171B4:
|
||
|
ldr r0, =gUnknown_08C2DB88
|
||
|
b _081171E6
|
||
|
.pool
|
||
|
_081171BC:
|
||
|
ldr r0, =gUnknown_08C2DB68
|
||
|
b _081171E6
|
||
|
.pool
|
||
|
_081171C4:
|
||
|
ldr r0, =gUnknown_08C2DBA8
|
||
|
b _081171E6
|
||
|
.pool
|
||
|
_081171CC:
|
||
|
ldr r0, =gUnknown_08C2DBC8
|
||
|
b _081171E6
|
||
|
.pool
|
||
|
_081171D4:
|
||
|
ldr r0, =gUnknown_08C2DC08
|
||
|
b _081171E6
|
||
|
.pool
|
||
|
_081171DC:
|
||
|
ldr r0, =gUnknown_08C2DC28
|
||
|
b _081171E6
|
||
|
.pool
|
||
|
_081171E4:
|
||
|
ldr r0, =gUnknown_08C2DC48
|
||
|
_081171E6:
|
||
|
mov r1, sp
|
||
|
ldrb r1, [r1, 0x8]
|
||
|
lsls r1, 4
|
||
|
movs r2, 0x20
|
||
|
bl LoadCompressedPalette
|
||
|
b _08117206
|
||
|
.pool
|
||
|
_081171F8:
|
||
|
ldr r0, =gUnknown_08C2DBE8
|
||
|
mov r1, sp
|
||
|
ldrb r1, [r1, 0x8]
|
||
|
lsls r1, 4
|
||
|
movs r2, 0x20
|
||
|
bl LoadCompressedPalette
|
||
|
_08117206:
|
||
|
ldr r3, =gBattle_BG1_X
|
||
|
movs r2, 0
|
||
|
strh r2, [r3]
|
||
|
ldr r0, =gBattle_BG1_Y
|
||
|
strh r2, [r0]
|
||
|
ldr r1, =gUnknown_0203A110
|
||
|
ldr r0, [r1]
|
||
|
movs r4, 0x4
|
||
|
ldrsh r0, [r0, r4]
|
||
|
adds r4, r1, 0
|
||
|
cmp r0, 0x1
|
||
|
bne _08117248
|
||
|
movs r0, 0x40
|
||
|
strh r0, [r3]
|
||
|
ldr r2, =gTasks
|
||
|
lsls r3, r5, 2
|
||
|
adds r0, r3, r5
|
||
|
lsls r0, 3
|
||
|
adds r0, r2
|
||
|
ldr r1, =0x0000fffd
|
||
|
b _08117254
|
||
|
.pool
|
||
|
_08117248:
|
||
|
ldr r2, =gTasks
|
||
|
lsls r3, r5, 2
|
||
|
adds r0, r3, r5
|
||
|
lsls r0, 3
|
||
|
adds r0, r2
|
||
|
movs r1, 0x3
|
||
|
_08117254:
|
||
|
strh r1, [r0, 0xA]
|
||
|
ldr r0, [r4]
|
||
|
movs r1, 0xC
|
||
|
ldrsh r0, [r0, r1]
|
||
|
cmp r0, 0
|
||
|
bne _08117274
|
||
|
adds r0, r3, r5
|
||
|
lsls r0, 3
|
||
|
adds r0, r2
|
||
|
movs r1, 0xA
|
||
|
strh r1, [r0, 0x10]
|
||
|
movs r1, 0x14
|
||
|
b _08117280
|
||
|
.pool
|
||
|
_08117274:
|
||
|
adds r0, r3, r5
|
||
|
lsls r0, 3
|
||
|
adds r0, r2
|
||
|
movs r1, 0xD
|
||
|
strh r1, [r0, 0x10]
|
||
|
movs r1, 0x1E
|
||
|
_08117280:
|
||
|
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, =gBattlerSpriteIds
|
||
|
ldrb r0, [r3, 0x1]
|
||
|
adds r0, r2
|
||
|
ldrb r0, [r0]
|
||
|
strh r0, [r1, 0x16]
|
||
|
ldr r0, =sub_81172EC
|
||
|
str r0, [r1]
|
||
|
movs r1, 0x4
|
||
|
ldrsh r0, [r3, r1]
|
||
|
cmp r0, 0
|
||
|
bne _081172CC
|
||
|
movs r0, 0x40
|
||
|
negs r0, r0
|
||
|
bl BattleAnimAdjustPanning2
|
||
|
adds r1, r0, 0
|
||
|
lsls r1, 24
|
||
|
asrs r1, 24
|
||
|
movs r0, 0xEF
|
||
|
bl PlaySE12WithPanning
|
||
|
b _081172E0
|
||
|
.pool
|
||
|
_081172CC:
|
||
|
movs r0, 0x40
|
||
|
negs r0, r0
|
||
|
bl BattleAnimAdjustPanning2
|
||
|
adds r1, r0, 0
|
||
|
lsls r1, 24
|
||
|
asrs r1, 24
|
||
|
movs r0, 0xF5
|
||
|
bl PlaySE12WithPanning
|
||
|
_081172E0:
|
||
|
add sp, 0x10
|
||
|
pop {r3}
|
||
|
mov r8, r3
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_81170EC
|
||
|
|
||
|
thumb_func_start sub_81172EC
|
||
|
sub_81172EC: @ 81172EC
|
||
|
push {r4-r6,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r6, r0, 24
|
||
|
ldr r2, =gBattle_BG1_Y
|
||
|
ldr r1, =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 _08117362
|
||
|
cmp r2, 0x1
|
||
|
bgt _08117320
|
||
|
cmp r2, 0
|
||
|
beq _0811732A
|
||
|
b _08117478
|
||
|
.pool
|
||
|
_08117320:
|
||
|
cmp r2, 0x2
|
||
|
beq _08117378
|
||
|
cmp r2, 0x3
|
||
|
beq _081173B6
|
||
|
b _08117478
|
||
|
_0811732A:
|
||
|
ldrh r0, [r5, 0x1E]
|
||
|
adds r1, r0, 0x1
|
||
|
strh r1, [r5, 0x1E]
|
||
|
lsls r0, 16
|
||
|
cmp r0, 0
|
||
|
bgt _08117338
|
||
|
b _08117478
|
||
|
_08117338:
|
||
|
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 _08117360
|
||
|
b _08117478
|
||
|
_08117360:
|
||
|
b _081173AE
|
||
|
_08117362:
|
||
|
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 _08117376
|
||
|
b _08117478
|
||
|
_08117376:
|
||
|
b _081173AE
|
||
|
_08117378:
|
||
|
ldrh r0, [r5, 0x1E]
|
||
|
adds r1, r0, 0x1
|
||
|
strh r1, [r5, 0x1E]
|
||
|
lsls r0, 16
|
||
|
cmp r0, 0
|
||
|
ble _08117478
|
||
|
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 _08117478
|
||
|
movs r0, 0
|
||
|
bl sub_80A477C
|
||
|
_081173AE:
|
||
|
ldrh r0, [r5, 0x26]
|
||
|
adds r0, 0x1
|
||
|
strh r0, [r5, 0x26]
|
||
|
b _08117478
|
||
|
_081173B6:
|
||
|
ldr r0, =gBattle_WIN0H
|
||
|
movs r1, 0
|
||
|
strh r1, [r0]
|
||
|
ldr r0, =gBattle_WIN0V
|
||
|
strh r1, [r0]
|
||
|
ldr r4, =0x00003f3f
|
||
|
movs r0, 0x48
|
||
|
adds r1, r4, 0
|
||
|
bl SetGpuReg
|
||
|
movs r0, 0x4A
|
||
|
adds r1, r4, 0
|
||
|
bl SetGpuReg
|
||
|
bl IsContest
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081173E6
|
||
|
movs r0, 0x1
|
||
|
movs r1, 0x3
|
||
|
movs r2, 0
|
||
|
bl SetAnimBgAttribute
|
||
|
_081173E6:
|
||
|
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, =gSprites
|
||
|
adds r0, r4
|
||
|
bl DestroySprite
|
||
|
movs r1, 0xC
|
||
|
ldrsh r0, [r5, r1]
|
||
|
cmp r0, 0
|
||
|
beq _0811743A
|
||
|
movs r2, 0xE
|
||
|
ldrsh r1, [r5, r2]
|
||
|
lsls r0, r1, 4
|
||
|
adds r0, r1
|
||
|
lsls r0, 2
|
||
|
adds r0, r4
|
||
|
bl DestroySprite
|
||
|
_0811743A:
|
||
|
movs r1, 0x14
|
||
|
ldrsh r0, [r5, r1]
|
||
|
cmp r0, 0x1
|
||
|
bne _08117466
|
||
|
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]
|
||
|
_08117466:
|
||
|
ldr r4, =gUnknown_0203A110
|
||
|
ldr r0, [r4]
|
||
|
bl Free
|
||
|
movs r0, 0
|
||
|
str r0, [r4]
|
||
|
adds r0, r6, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
_08117478:
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81172EC
|
||
|
|
||
|
thumb_func_start sub_8117494
|
||
|
sub_8117494: @ 8117494
|
||
|
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_80A76C4
|
||
|
adds r6, r0, 0
|
||
|
movs r1, 0
|
||
|
bl sub_81175C4
|
||
|
ldr r0, =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_80A75AC
|
||
|
adds r6, r0, 0
|
||
|
ldr r1, =0x0000ffff
|
||
|
ands r6, r1
|
||
|
adds r0, r6, 0
|
||
|
bl sub_81175C4
|
||
|
strh r6, [r4, 0x26]
|
||
|
strh r5, [r4, 0x8]
|
||
|
strh r5, [r4, 0xA]
|
||
|
ldr r0, =sub_8117500
|
||
|
str r0, [r4]
|
||
|
add sp, 0xC
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8117494
|
||
|
|
||
|
thumb_func_start sub_8117500
|
||
|
sub_8117500: @ 8117500
|
||
|
push {r4-r6,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r2, r0, 24
|
||
|
lsls r0, r2, 2
|
||
|
adds r0, r2
|
||
|
lsls r0, 3
|
||
|
ldr r1, =gTasks
|
||
|
adds r4, r0, r1
|
||
|
movs r0, 0x8
|
||
|
ldrsh r1, [r4, r0]
|
||
|
cmp r1, 0x1
|
||
|
beq _08117544
|
||
|
cmp r1, 0x1
|
||
|
bgt _08117528
|
||
|
cmp r1, 0
|
||
|
beq _0811752E
|
||
|
b _081175BE
|
||
|
.pool
|
||
|
_08117528:
|
||
|
cmp r1, 0x2
|
||
|
beq _081175B8
|
||
|
b _081175BE
|
||
|
_0811752E:
|
||
|
ldrh r0, [r4, 0xA]
|
||
|
adds r0, 0x1
|
||
|
strh r0, [r4, 0xA]
|
||
|
lsls r0, 16
|
||
|
asrs r0, 16
|
||
|
cmp r0, 0x6
|
||
|
ble _081175BE
|
||
|
strh r1, [r4, 0xA]
|
||
|
movs r0, 0x10
|
||
|
strh r0, [r4, 0xC]
|
||
|
b _081175AC
|
||
|
_08117544:
|
||
|
ldrh r0, [r4, 0xA]
|
||
|
adds r0, 0x1
|
||
|
strh r0, [r4, 0xA]
|
||
|
lsls r0, 16
|
||
|
asrs r0, 16
|
||
|
cmp r0, 0x1
|
||
|
ble _081175BE
|
||
|
movs r0, 0
|
||
|
strh r0, [r4, 0xA]
|
||
|
ldrh r0, [r4, 0xC]
|
||
|
subs r0, 0x1
|
||
|
strh r0, [r4, 0xC]
|
||
|
movs r5, 0
|
||
|
movs r6, 0x1
|
||
|
_08117560:
|
||
|
movs r1, 0x26
|
||
|
ldrsh r0, [r4, r1]
|
||
|
asrs r0, r5
|
||
|
ands r0, r6
|
||
|
cmp r0, 0
|
||
|
beq _0811757A
|
||
|
lsls r0, r5, 20
|
||
|
lsrs r0, 16
|
||
|
ldrb r2, [r4, 0xC]
|
||
|
movs r1, 0x10
|
||
|
ldr r3, =0x0000ffff
|
||
|
bl BlendPalette
|
||
|
_0811757A:
|
||
|
movs r1, 0x24
|
||
|
ldrsh r0, [r4, r1]
|
||
|
asrs r0, r5
|
||
|
ands r0, r6
|
||
|
cmp r0, 0
|
||
|
beq _0811759A
|
||
|
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
|
||
|
_0811759A:
|
||
|
adds r0, r5, 0x1
|
||
|
lsls r0, 16
|
||
|
lsrs r5, r0, 16
|
||
|
cmp r5, 0xF
|
||
|
bls _08117560
|
||
|
movs r1, 0xC
|
||
|
ldrsh r0, [r4, r1]
|
||
|
cmp r0, 0
|
||
|
bne _081175BE
|
||
|
_081175AC:
|
||
|
ldrh r0, [r4, 0x8]
|
||
|
adds r0, 0x1
|
||
|
strh r0, [r4, 0x8]
|
||
|
b _081175BE
|
||
|
.pool
|
||
|
_081175B8:
|
||
|
adds r0, r2, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
_081175BE:
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
thumb_func_end sub_8117500
|
||
|
|
||
|
thumb_func_start sub_81175C4
|
||
|
sub_81175C4: @ 81175C4
|
||
|
push {r4-r6,lr}
|
||
|
adds r3, r0, 0
|
||
|
lsls r1, 16
|
||
|
lsrs r6, r1, 16
|
||
|
movs r2, 0
|
||
|
_081175CE:
|
||
|
movs r0, 0x1
|
||
|
ands r0, r3
|
||
|
lsrs r4, r3, 1
|
||
|
adds r5, r2, 0x1
|
||
|
cmp r0, 0
|
||
|
beq _081175FA
|
||
|
lsls r0, r2, 20
|
||
|
lsrs r2, r0, 16
|
||
|
adds r0, r2, 0
|
||
|
adds r0, 0x10
|
||
|
cmp r2, r0
|
||
|
bge _081175FA
|
||
|
ldr r1, =gPlttBufferFaded
|
||
|
adds r3, r0, 0
|
||
|
_081175EA:
|
||
|
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 _081175EA
|
||
|
_081175FA:
|
||
|
adds r3, r4, 0
|
||
|
lsls r0, r5, 16
|
||
|
lsrs r2, r0, 16
|
||
|
cmp r2, 0x1F
|
||
|
bls _081175CE
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81175C4
|
||
|
|
||
|
thumb_func_start sub_8117610
|
||
|
sub_8117610: @ 8117610
|
||
|
push {r4-r6,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r6, r0, 24
|
||
|
movs r4, 0
|
||
|
movs r2, 0
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r3, [r0]
|
||
|
movs r5, 0x1
|
||
|
_08117620:
|
||
|
cmp r3, r2
|
||
|
beq _0811762E
|
||
|
adds r1, r2, 0
|
||
|
adds r1, 0x10
|
||
|
adds r0, r5, 0
|
||
|
lsls r0, r1
|
||
|
orrs r4, r0
|
||
|
_0811762E:
|
||
|
adds r2, 0x1
|
||
|
cmp r2, 0x3
|
||
|
bls _08117620
|
||
|
movs r2, 0x5
|
||
|
ldr r0, =gBattleAnimArgs
|
||
|
adds r1, r0, 0
|
||
|
adds r1, 0x8
|
||
|
_0811763C:
|
||
|
ldrh r0, [r1]
|
||
|
strh r0, [r1, 0x2]
|
||
|
subs r1, 0x2
|
||
|
subs r2, 0x1
|
||
|
cmp r2, 0
|
||
|
bne _0811763C
|
||
|
adds r0, r6, 0
|
||
|
adds r1, r4, 0
|
||
|
bl sub_8116874
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8117610
|
||
|
|
||
|
thumb_func_start sub_8117660
|
||
|
sub_8117660: @ 8117660
|
||
|
push {r4-r6,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r6, r0, 24
|
||
|
movs r0, 0
|
||
|
bl sub_80A6DAC
|
||
|
ldr r0, =sub_81176D8
|
||
|
movs r1, 0x5
|
||
|
bl CreateTask
|
||
|
lsls r0, 24
|
||
|
lsrs r5, r0, 24
|
||
|
ldr r4, =gBattleAnimArgs
|
||
|
movs r1, 0x4
|
||
|
ldrsh r0, [r4, r1]
|
||
|
cmp r0, 0
|
||
|
beq _0811769C
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r0, [r0]
|
||
|
bl GetBattlerSide
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _0811769C
|
||
|
ldrh r0, [r4]
|
||
|
negs r0, r0
|
||
|
strh r0, [r4]
|
||
|
ldrh r0, [r4, 0x2]
|
||
|
negs r0, r0
|
||
|
strh r0, [r4, 0x2]
|
||
|
_0811769C:
|
||
|
ldr r0, =gTasks
|
||
|
lsls r1, r5, 2
|
||
|
adds r1, r5
|
||
|
lsls r1, 3
|
||
|
adds r1, r0
|
||
|
ldr r2, =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
|
||
|
.pool
|
||
|
thumb_func_end sub_8117660
|
||
|
|
||
|
thumb_func_start sub_81176D8
|
||
|
sub_81176D8: @ 81176D8
|
||
|
push {r4-r7,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r5, r0, 24
|
||
|
ldr r0, =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, =gBattle_BG3_X
|
||
|
lsls r0, r3, 16
|
||
|
asrs r0, 24
|
||
|
ldrh r4, [r6]
|
||
|
adds r0, r4
|
||
|
strh r0, [r6]
|
||
|
ldr r4, =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, =gBattleAnimArgs
|
||
|
movs r3, 0xE
|
||
|
ldrsh r2, [r0, r3]
|
||
|
movs r7, 0xE
|
||
|
ldrsh r0, [r1, r7]
|
||
|
cmp r2, r0
|
||
|
bne _0811773E
|
||
|
mov r0, r12
|
||
|
strh r0, [r6]
|
||
|
strh r0, [r4]
|
||
|
movs r0, 0x1
|
||
|
bl sub_80A6DAC
|
||
|
adds r0, r5, 0
|
||
|
bl DestroyTask
|
||
|
_0811773E:
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81176D8
|
||
|
|
||
|
thumb_func_start AnimTask_IsAttackerOpponentSide
|
||
|
AnimTask_IsAttackerOpponentSide: @ 8117754
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r0, [r0]
|
||
|
bl GetBattlerSide
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
strh r0, [r1, 0xE]
|
||
|
adds r0, r4, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end AnimTask_IsAttackerOpponentSide
|
||
|
|
||
|
thumb_func_start AnimTask_IsTargetOpponentSide
|
||
|
AnimTask_IsTargetOpponentSide: @ 8117780
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
ldr r0, =gBattleAnimTarget
|
||
|
ldrb r0, [r0]
|
||
|
bl GetBattlerSide
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
strh r0, [r1, 0xE]
|
||
|
adds r0, r4, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end AnimTask_IsTargetOpponentSide
|
||
|
|
||
|
thumb_func_start AnimTask_IsTargetPartner
|
||
|
AnimTask_IsTargetPartner: @ 81177AC
|
||
|
push {r4,r5,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r3, r0, 24
|
||
|
ldr r5, =gBattleAnimArgs
|
||
|
movs r4, 0
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r2, [r0]
|
||
|
movs r0, 0x2
|
||
|
ldr r1, =gBattleAnimTarget
|
||
|
eors r0, r2
|
||
|
ldrb r1, [r1]
|
||
|
cmp r0, r1
|
||
|
bne _081177C8
|
||
|
movs r4, 0x1
|
||
|
_081177C8:
|
||
|
strh r4, [r5, 0xE]
|
||
|
adds r0, r3, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r4,r5}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end AnimTask_IsTargetPartner
|
||
|
|
||
|
thumb_func_start sub_81177E4
|
||
|
sub_81177E4: @ 81177E4
|
||
|
push {r4-r7,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r5, r0, 24
|
||
|
movs r4, 0
|
||
|
ldr r6, =gSprites
|
||
|
_081177EE:
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r0, [r0]
|
||
|
cmp r4, r0
|
||
|
beq _0811782C
|
||
|
lsls r0, r4, 24
|
||
|
lsrs r0, 24
|
||
|
bl IsBattlerSpriteVisible
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _0811782C
|
||
|
ldr r0, =gBattlerSpriteIds
|
||
|
adds r0, r4, r0
|
||
|
ldrb r0, [r0]
|
||
|
lsls r2, r0, 4
|
||
|
adds r2, r0
|
||
|
lsls r2, 2
|
||
|
adds r2, r6
|
||
|
ldr r1, =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]
|
||
|
_0811782C:
|
||
|
adds r0, r4, 0x1
|
||
|
lsls r0, 16
|
||
|
lsrs r4, r0, 16
|
||
|
cmp r4, 0x3
|
||
|
bls _081177EE
|
||
|
adds r0, r5, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r4-r7}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_81177E4
|
||
|
|
||
|
thumb_func_start sub_8117854
|
||
|
sub_8117854: @ 8117854
|
||
|
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 _081178B6
|
||
|
mov r1, r8
|
||
|
cmp r1, 0
|
||
|
beq _081178BA
|
||
|
adds r0, r6, 0
|
||
|
bl IsBattlerSpriteVisible
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _081178BA
|
||
|
_081178B6:
|
||
|
movs r2, 0
|
||
|
mov r8, r2
|
||
|
_081178BA:
|
||
|
ldr r0, =gBattle_WIN0H
|
||
|
movs r1, 0
|
||
|
strh r1, [r0]
|
||
|
ldr r0, =gBattle_WIN0V
|
||
|
strh r1, [r0]
|
||
|
ldr r1, =0x00003f3f
|
||
|
movs r0, 0x48
|
||
|
bl SetGpuReg
|
||
|
ldr r1, =0x00003f3d
|
||
|
movs r0, 0x4A
|
||
|
bl SetGpuReg
|
||
|
movs r1, 0x80
|
||
|
lsls r1, 8
|
||
|
movs r0, 0
|
||
|
bl SetGpuRegBits
|
||
|
ldr r1, =0x00003f42
|
||
|
movs r0, 0x50
|
||
|
bl SetGpuReg
|
||
|
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 _08117930
|
||
|
ldrb r0, [r4]
|
||
|
movs r1, 0xD
|
||
|
negs r1, r1
|
||
|
ands r1, r0
|
||
|
movs r0, 0x4
|
||
|
orrs r1, r0
|
||
|
strb r1, [r4]
|
||
|
_08117930:
|
||
|
ldrh r1, [r4]
|
||
|
movs r0, 0xA
|
||
|
bl SetGpuReg
|
||
|
bl IsContest
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _08117964
|
||
|
ldr r0, =gContestResources
|
||
|
ldr r0, [r0]
|
||
|
ldr r0, [r0, 0x18]
|
||
|
ldrh r4, [r0]
|
||
|
b _081179A2
|
||
|
.pool
|
||
|
_08117964:
|
||
|
adds r0, r7, 0
|
||
|
bl GetBattlerSide
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _08117988
|
||
|
ldr r1, =gBattlerPartyIndexes
|
||
|
lsls r0, r7, 1
|
||
|
adds r0, r1
|
||
|
ldrh r1, [r0]
|
||
|
movs r0, 0x64
|
||
|
muls r0, r1
|
||
|
ldr r1, =gEnemyParty
|
||
|
b _08117996
|
||
|
.pool
|
||
|
_08117988:
|
||
|
ldr r1, =gBattlerPartyIndexes
|
||
|
lsls r0, r7, 1
|
||
|
adds r0, r1
|
||
|
ldrh r1, [r0]
|
||
|
movs r0, 0x64
|
||
|
muls r0, r1
|
||
|
ldr r1, =gPlayerParty
|
||
|
_08117996:
|
||
|
adds r0, r1
|
||
|
movs r1, 0xB
|
||
|
bl GetMonData
|
||
|
lsls r0, 16
|
||
|
lsrs r4, r0, 16
|
||
|
_081179A2:
|
||
|
ldr r5, =gBattlerSpriteIds
|
||
|
adds r0, r7, r5
|
||
|
ldrb r1, [r0]
|
||
|
adds r0, r7, 0
|
||
|
adds r2, r4, 0
|
||
|
bl sub_80A89C8
|
||
|
lsls r0, 24
|
||
|
lsrs r7, r0, 24
|
||
|
mov r0, r8
|
||
|
cmp r0, 0
|
||
|
beq _081179CC
|
||
|
adds r0, r6, r5
|
||
|
ldrb r1, [r0]
|
||
|
adds r0, r6, 0
|
||
|
adds r2, r4, 0
|
||
|
bl sub_80A89C8
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
str r0, [sp, 0x20]
|
||
|
_081179CC:
|
||
|
mov r0, sp
|
||
|
bl sub_80A6B30
|
||
|
mov r0, sp
|
||
|
ldr r1, [sp, 0x58]
|
||
|
movs r2, 0
|
||
|
bl sub_80A6D60
|
||
|
mov r0, sp
|
||
|
ldrb r0, [r0, 0x9]
|
||
|
mov r1, sp
|
||
|
ldrh r2, [r1, 0xA]
|
||
|
ldr r1, [sp, 0x54]
|
||
|
bl sub_80A6CC0
|
||
|
mov r0, sp
|
||
|
ldrb r1, [r0, 0x8]
|
||
|
lsls r1, 4
|
||
|
ldr r0, [sp, 0x5C]
|
||
|
movs r2, 0x20
|
||
|
bl LoadCompressedPalette
|
||
|
ldr r0, =gBattle_BG1_X
|
||
|
movs r1, 0
|
||
|
strh r1, [r0]
|
||
|
ldr r0, =gBattle_BG1_Y
|
||
|
strh r1, [r0]
|
||
|
ldr r1, =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, =sub_8117A60
|
||
|
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
|
||
|
.pool
|
||
|
thumb_func_end sub_8117854
|
||
|
|
||
|
thumb_func_start sub_8117A60
|
||
|
sub_8117A60: @ 8117A60
|
||
|
push {r4-r6,lr}
|
||
|
sub sp, 0x4
|
||
|
lsls r0, 24
|
||
|
lsrs r6, r0, 24
|
||
|
ldr r1, =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 _08117A7E
|
||
|
negs r2, r2
|
||
|
_08117A7E:
|
||
|
ldrh r0, [r3, 0x22]
|
||
|
adds r4, r0, r2
|
||
|
strh r4, [r3, 0x22]
|
||
|
movs r1, 0xA
|
||
|
ldrsh r0, [r3, r1]
|
||
|
cmp r0, 0
|
||
|
bge _08117AA4
|
||
|
ldr r2, =gBattle_BG1_Y
|
||
|
lsls r1, r4, 16
|
||
|
asrs r1, 24
|
||
|
ldrh r0, [r2]
|
||
|
subs r0, r1
|
||
|
strh r0, [r2]
|
||
|
b _08117AB0
|
||
|
.pool
|
||
|
_08117AA4:
|
||
|
ldr r1, =gBattle_BG1_Y
|
||
|
lsls r0, r4, 16
|
||
|
asrs r0, 24
|
||
|
ldrh r2, [r1]
|
||
|
adds r0, r2
|
||
|
strh r0, [r1]
|
||
|
_08117AB0:
|
||
|
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 _08117B1A
|
||
|
cmp r0, 0x1
|
||
|
bgt _08117AD8
|
||
|
cmp r0, 0
|
||
|
beq _08117ADE
|
||
|
b _08117C0C
|
||
|
.pool
|
||
|
_08117AD8:
|
||
|
cmp r0, 0x2
|
||
|
beq _08117B34
|
||
|
b _08117C0C
|
||
|
_08117ADE:
|
||
|
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 _08117AF2
|
||
|
b _08117C0C
|
||
|
_08117AF2:
|
||
|
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 _08117C0C
|
||
|
b _08117B2C
|
||
|
_08117B1A:
|
||
|
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 _08117C0C
|
||
|
_08117B2C:
|
||
|
ldrh r0, [r5, 0x26]
|
||
|
adds r0, 0x1
|
||
|
strh r0, [r5, 0x26]
|
||
|
b _08117C0C
|
||
|
_08117B34:
|
||
|
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 _08117C0C
|
||
|
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 _08117C0C
|
||
|
movs r0, 0
|
||
|
bl sub_80A477C
|
||
|
ldr r0, =gBattle_WIN0H
|
||
|
strh r4, [r0]
|
||
|
ldr r0, =gBattle_WIN0V
|
||
|
strh r4, [r0]
|
||
|
ldr r4, =0x00003f3f
|
||
|
movs r0, 0x48
|
||
|
adds r1, r4, 0
|
||
|
bl SetGpuReg
|
||
|
movs r0, 0x4A
|
||
|
adds r1, r4, 0
|
||
|
bl SetGpuReg
|
||
|
bl IsContest
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
bne _08117BB2
|
||
|
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
|
||
|
_08117BB2:
|
||
|
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, =gSprites
|
||
|
adds r0, r4
|
||
|
bl DestroySprite
|
||
|
movs r1, 0xC
|
||
|
ldrsh r0, [r5, r1]
|
||
|
cmp r0, 0
|
||
|
beq _08117C06
|
||
|
movs r2, 0xE
|
||
|
ldrsh r1, [r5, r2]
|
||
|
lsls r0, r1, 4
|
||
|
adds r0, r1
|
||
|
lsls r0, 2
|
||
|
adds r0, r4
|
||
|
bl DestroySprite
|
||
|
_08117C06:
|
||
|
adds r0, r6, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
_08117C0C:
|
||
|
add sp, 0x4
|
||
|
pop {r4-r6}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8117A60
|
||
|
|
||
|
thumb_func_start AnimTask_GetBattleTerrain
|
||
|
AnimTask_GetBattleTerrain: @ 8117C24
|
||
|
push {lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
ldr r2, =gBattleAnimArgs
|
||
|
ldr r1, =gBattleTerrain
|
||
|
ldrb r1, [r1]
|
||
|
strh r1, [r2]
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end AnimTask_GetBattleTerrain
|
||
|
|
||
|
thumb_func_start sub_8117C44
|
||
|
sub_8117C44: @ 8117C44
|
||
|
push {r4,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
movs r0, 0x80
|
||
|
lsls r0, 6
|
||
|
bl AllocZeroed
|
||
|
ldr r1, =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
|
||
|
.pool
|
||
|
thumb_func_end sub_8117C44
|
||
|
|
||
|
thumb_func_start sub_8117C70
|
||
|
sub_8117C70: @ 8117C70
|
||
|
push {r4-r6,lr}
|
||
|
adds r4, r0, 0
|
||
|
lsls r4, 24
|
||
|
lsrs r4, 24
|
||
|
ldr r6, =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
|
||
|
.pool
|
||
|
thumb_func_end sub_8117C70
|
||
|
|
||
|
thumb_func_start sub_8117CA0
|
||
|
sub_8117CA0: @ 8117CA0
|
||
|
push {r4,r5,lr}
|
||
|
sub sp, 0xC
|
||
|
lsls r0, 24
|
||
|
lsrs r5, r0, 24
|
||
|
movs r4, 0
|
||
|
ldr r0, =gBattleAnimArgs
|
||
|
movs r1, 0
|
||
|
ldrsh r0, [r0, r1]
|
||
|
cmp r0, 0
|
||
|
bne _08117CE4
|
||
|
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_80A75AC
|
||
|
adds r1, r0, 0
|
||
|
movs r0, 0x1
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
bne _08117CFC
|
||
|
movs r2, 0x1
|
||
|
_08117CD2:
|
||
|
lsrs r1, 1
|
||
|
adds r4, 0x1
|
||
|
adds r0, r1, 0
|
||
|
ands r0, r2
|
||
|
cmp r0, 0
|
||
|
beq _08117CD2
|
||
|
b _08117CFC
|
||
|
.pool
|
||
|
_08117CE4:
|
||
|
cmp r0, 0x1
|
||
|
bne _08117CF0
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
b _08117CF6
|
||
|
.pool
|
||
|
_08117CF0:
|
||
|
cmp r0, 0x2
|
||
|
bne _08117CFC
|
||
|
ldr r0, =gBattleAnimTarget
|
||
|
_08117CF6:
|
||
|
ldrb r0, [r0]
|
||
|
adds r4, r0, 0
|
||
|
adds r4, 0x10
|
||
|
_08117CFC:
|
||
|
ldr r0, =gMonSpritesGfxPtr
|
||
|
ldr r1, [r0]
|
||
|
ldr r0, =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, =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
|
||
|
.pool
|
||
|
thumb_func_end sub_8117CA0
|
||
|
|
||
|
thumb_func_start sub_8117D3C
|
||
|
sub_8117D3C: @ 8117D3C
|
||
|
push {r4,r5,lr}
|
||
|
sub sp, 0xC
|
||
|
lsls r0, 24
|
||
|
lsrs r5, r0, 24
|
||
|
movs r4, 0
|
||
|
ldr r0, =gBattleAnimArgs
|
||
|
movs r1, 0
|
||
|
ldrsh r0, [r0, r1]
|
||
|
cmp r0, 0
|
||
|
bne _08117D80
|
||
|
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_80A75AC
|
||
|
adds r1, r0, 0
|
||
|
movs r0, 0x1
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
bne _08117D98
|
||
|
movs r2, 0x1
|
||
|
_08117D6E:
|
||
|
lsrs r1, 1
|
||
|
adds r4, 0x1
|
||
|
adds r0, r1, 0
|
||
|
ands r0, r2
|
||
|
cmp r0, 0
|
||
|
beq _08117D6E
|
||
|
b _08117D98
|
||
|
.pool
|
||
|
_08117D80:
|
||
|
cmp r0, 0x1
|
||
|
bne _08117D8C
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
b _08117D92
|
||
|
.pool
|
||
|
_08117D8C:
|
||
|
cmp r0, 0x2
|
||
|
bne _08117D98
|
||
|
ldr r0, =gBattleAnimTarget
|
||
|
_08117D92:
|
||
|
ldrb r0, [r0]
|
||
|
adds r4, r0, 0
|
||
|
adds r4, 0x10
|
||
|
_08117D98:
|
||
|
lsls r0, r4, 5
|
||
|
ldr r1, =gPlttBufferUnfaded
|
||
|
adds r0, r1
|
||
|
ldr r1, =gMonSpritesGfxPtr
|
||
|
ldr r2, [r1]
|
||
|
ldr r1, =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
|
||
|
.pool
|
||
|
thumb_func_end sub_8117D3C
|
||
|
|
||
|
thumb_func_start sub_8117DD8
|
||
|
sub_8117DD8: @ 8117DD8
|
||
|
push {r4,r5,lr}
|
||
|
sub sp, 0xC
|
||
|
lsls r0, 24
|
||
|
lsrs r5, r0, 24
|
||
|
movs r4, 0
|
||
|
ldr r0, =gBattleAnimArgs
|
||
|
movs r1, 0
|
||
|
ldrsh r0, [r0, r1]
|
||
|
cmp r0, 0
|
||
|
bne _08117E1C
|
||
|
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_80A75AC
|
||
|
adds r1, r0, 0
|
||
|
movs r0, 0x1
|
||
|
ands r0, r1
|
||
|
cmp r0, 0
|
||
|
bne _08117E34
|
||
|
movs r2, 0x1
|
||
|
_08117E0A:
|
||
|
lsrs r1, 1
|
||
|
adds r4, 0x1
|
||
|
adds r0, r1, 0
|
||
|
ands r0, r2
|
||
|
cmp r0, 0
|
||
|
beq _08117E0A
|
||
|
b _08117E34
|
||
|
.pool
|
||
|
_08117E1C:
|
||
|
cmp r0, 0x1
|
||
|
bne _08117E28
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
b _08117E2E
|
||
|
.pool
|
||
|
_08117E28:
|
||
|
cmp r0, 0x2
|
||
|
bne _08117E34
|
||
|
ldr r0, =gBattleAnimTarget
|
||
|
_08117E2E:
|
||
|
ldrb r0, [r0]
|
||
|
adds r4, r0, 0
|
||
|
adds r4, 0x10
|
||
|
_08117E34:
|
||
|
lsls r1, r4, 5
|
||
|
ldr r0, =gPlttBufferUnfaded
|
||
|
adds r0, r1, r0
|
||
|
ldr r2, =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
|
||
|
.pool
|
||
|
thumb_func_end sub_8117DD8
|
||
|
|
||
|
thumb_func_start AnimTask_IsContest
|
||
|
AnimTask_IsContest: @ 8117E60
|
||
|
push {r4,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r4, r0, 24
|
||
|
bl IsContest
|
||
|
lsls r0, 24
|
||
|
lsrs r1, r0, 24
|
||
|
cmp r1, 0
|
||
|
beq _08117E80
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
movs r0, 0x1
|
||
|
strh r0, [r1, 0xE]
|
||
|
b _08117E84
|
||
|
.pool
|
||
|
_08117E80:
|
||
|
ldr r0, =gBattleAnimArgs
|
||
|
strh r1, [r0, 0xE]
|
||
|
_08117E84:
|
||
|
adds r0, r4, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end AnimTask_IsContest
|
||
|
|
||
|
thumb_func_start sub_8117E94
|
||
|
sub_8117E94: @ 8117E94
|
||
|
push {lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
ldr r2, =gBattleAnimAttacker
|
||
|
ldr r1, =gBattlerTarget
|
||
|
ldrb r1, [r1]
|
||
|
strb r1, [r2]
|
||
|
ldr r2, =gBattleAnimTarget
|
||
|
ldr r1, =gEffectBattler
|
||
|
ldrb r1, [r1]
|
||
|
strb r1, [r2]
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8117E94
|
||
|
|
||
|
thumb_func_start AnimTask_IsTargetSameSide
|
||
|
AnimTask_IsTargetSameSide: @ 8117EC4
|
||
|
push {r4,r5,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r5, r0, 24
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r0, [r0]
|
||
|
bl GetBattlerSide
|
||
|
adds r4, r0, 0
|
||
|
ldr r0, =gBattleAnimTarget
|
||
|
ldrb r0, [r0]
|
||
|
bl GetBattlerSide
|
||
|
lsls r4, 24
|
||
|
lsls r0, 24
|
||
|
cmp r4, r0
|
||
|
bne _08117EF8
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
movs r0, 0x1
|
||
|
b _08117EFC
|
||
|
.pool
|
||
|
_08117EF8:
|
||
|
ldr r1, =gBattleAnimArgs
|
||
|
movs r0, 0
|
||
|
_08117EFC:
|
||
|
strh r0, [r1, 0xE]
|
||
|
adds r0, r5, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r4,r5}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end AnimTask_IsTargetSameSide
|
||
|
|
||
|
thumb_func_start sub_8117F10
|
||
|
sub_8117F10: @ 8117F10
|
||
|
push {lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
ldr r2, =gBattleAnimTarget
|
||
|
ldr r1, =gBattlerTarget
|
||
|
ldrb r1, [r1]
|
||
|
strb r1, [r2]
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8117F10
|
||
|
|
||
|
thumb_func_start sub_8117F30
|
||
|
sub_8117F30: @ 8117F30
|
||
|
push {lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r0, 24
|
||
|
ldr r2, =gBattleAnimAttacker
|
||
|
ldr r1, =gBattlerAttacker
|
||
|
ldrb r1, [r1]
|
||
|
strb r1, [r2]
|
||
|
ldr r2, =gBattleAnimTarget
|
||
|
ldr r1, =gEffectBattler
|
||
|
ldrb r1, [r1]
|
||
|
strb r1, [r2]
|
||
|
bl DestroyAnimVisualTask
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8117F30
|
||
|
|
||
|
thumb_func_start sub_8117F60
|
||
|
sub_8117F60: @ 8117F60
|
||
|
push {r4,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r4, r0, 24
|
||
|
bl IsContest
|
||
|
lsls r0, 24
|
||
|
cmp r0, 0
|
||
|
beq _08117F78
|
||
|
adds r0, r4, 0
|
||
|
bl DestroyAnimVisualTask
|
||
|
b _08117FB4
|
||
|
_08117F78:
|
||
|
ldr r0, =gTasks
|
||
|
lsls r3, r4, 2
|
||
|
adds r3, r4
|
||
|
lsls r3, 3
|
||
|
adds r3, r0
|
||
|
ldr r0, =gBattleSpritesDataPtr
|
||
|
ldr r4, [r0]
|
||
|
ldr r2, =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, =sub_8117FD0
|
||
|
str r0, [r3]
|
||
|
ldr r1, =gAnimVisualTaskCount
|
||
|
ldrb r0, [r1]
|
||
|
subs r0, 0x1
|
||
|
strb r0, [r1]
|
||
|
_08117FB4:
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8117F60
|
||
|
|
||
|
thumb_func_start sub_8117FD0
|
||
|
sub_8117FD0: @ 8117FD0
|
||
|
push {r4,lr}
|
||
|
lsls r0, 24
|
||
|
lsrs r4, r0, 24
|
||
|
ldr r0, =gBattleAnimArgs
|
||
|
movs r2, 0xE
|
||
|
ldrsh r1, [r0, r2]
|
||
|
movs r0, 0x80
|
||
|
lsls r0, 5
|
||
|
cmp r1, r0
|
||
|
bne _08118014
|
||
|
ldr r0, =gBattleSpritesDataPtr
|
||
|
ldr r1, [r0]
|
||
|
ldr r0, =gBattleAnimAttacker
|
||
|
ldrb r3, [r0]
|
||
|
ldr r0, [r1]
|
||
|
lsls r3, 2
|
||
|
adds r3, r0
|
||
|
ldr r1, =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
|
||
|
_08118014:
|
||
|
pop {r4}
|
||
|
pop {r0}
|
||
|
bx r0
|
||
|
.pool
|
||
|
thumb_func_end sub_8117FD0
|
||
|
|
||
|
.align 2, 0
|