diff options
Diffstat (limited to 'asm/battle_anim_utility_funcs.s')
-rw-r--r-- | asm/battle_anim_utility_funcs.s | 3059 |
1 files changed, 3059 insertions, 0 deletions
diff --git a/asm/battle_anim_utility_funcs.s b/asm/battle_anim_utility_funcs.s new file mode 100644 index 000000000..138d303ac --- /dev/null +++ b/asm/battle_anim_utility_funcs.s @@ -0,0 +1,3059 @@ + .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 |