diff options
Diffstat (limited to 'asm/battle_anim_807B69C.s')
-rw-r--r-- | asm/battle_anim_807B69C.s | 960 |
1 files changed, 960 insertions, 0 deletions
diff --git a/asm/battle_anim_807B69C.s b/asm/battle_anim_807B69C.s new file mode 100644 index 000000000..e34f47f1c --- /dev/null +++ b/asm/battle_anim_807B69C.s @@ -0,0 +1,960 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start unref_sub_807B69C +unref_sub_807B69C: @ 807B69C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _0807B740 @ =gObjectBankIDs + adds r0, r4, r0 + ldrb r6, [r0] + ldr r0, _0807B744 @ =sub_807B7E0 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8) + bl LoadCompressedObjectPic + ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8) + bl LoadCompressedObjectPalette + ldr r1, _0807B750 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + strh r4, [r1, 0x8] + cmp r5, 0 + beq _0807B75C + movs r0, 0x1F + strh r0, [r1, 0xA] + movs r5, 0 + lsls r0, r6, 4 + ldr r7, _0807B754 @ =gSprites + adds r0, r6 + lsls r0, 2 + adds r6, r0, r7 +_0807B6F0: + movs r0, 0x20 + ldrsh r1, [r6, r0] + ldrh r2, [r6, 0x22] + adds r2, 0x20 + lsls r2, 16 + asrs r2, 16 + ldr r0, _0807B758 @ =gSpriteTemplate_83931F8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r3, r0, r7 + lsls r0, r5, 1 + adds r0, r5 + lsls r1, r0, 4 + adds r0, r1 + strh r0, [r3, 0x2E] + movs r0, 0xFF + lsls r0, 8 + strh r0, [r3, 0x30] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + cmp r5, 0x4 + bls _0807B734 + movs r0, 0x15 + strh r0, [r3, 0x3A] +_0807B734: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _0807B6F0 + b _0807B7BC + .align 2, 0 +_0807B740: .4byte gObjectBankIDs +_0807B744: .4byte sub_807B7E0 +_0807B748: .4byte gBattleAnimPicTable + (136 * 8) +_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8) +_0807B750: .4byte gTasks +_0807B754: .4byte gSprites +_0807B758: .4byte gSpriteTemplate_83931F8 +_0807B75C: + movs r0, 0xF8 + lsls r0, 7 + strh r0, [r1, 0xA] + movs r5, 0 + lsls r0, r6, 4 + ldr r7, _0807B7D8 @ =gSprites + adds r0, r6 + lsls r0, 2 + adds r6, r0, r7 +_0807B76E: + movs r2, 0x20 + ldrsh r1, [r6, r2] + ldrh r2, [r6, 0x22] + subs r2, 0x20 + lsls r2, 16 + asrs r2, 16 + ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r3, r0, r7 + lsls r0, r5, 1 + adds r0, r5 + lsls r1, r0, 4 + adds r0, r1 + strh r0, [r3, 0x2E] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r3, 0x30] + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + cmp r5, 0x4 + bls _0807B7B2 + movs r0, 0x15 + strh r0, [r3, 0x3A] +_0807B7B2: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _0807B76E +_0807B7BC: + ldr r0, _0807B7D8 @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x3C] + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0807B7D8: .4byte gSprites +_0807B7DC: .4byte gSpriteTemplate_83931F8 + thumb_func_end unref_sub_807B69C + + thumb_func_start sub_807B7E0 +sub_807B7E0: @ 807B7E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0807B838 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x2 + bne _0807B866 + movs r0, 0 + strh r0, [r4, 0xC] + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 20 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r0, 16 + ldrb r2, [r4, 0x10] + ldrh r3, [r4, 0xA] + movs r1, 0x10 + bl BlendPalette + ldrh r2, [r4, 0x12] + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0807B83C + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _0807B86A + movs r0, 0x1 + eors r0, r2 + strh r0, [r4, 0x12] + b _0807B86A + .align 2, 0 +_0807B838: .4byte gTasks +_0807B83C: + ldrh r1, [r4, 0x10] + subs r0, r1, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _0807B86A + strh r1, [r4, 0x10] + movs r0, 0x1 + eors r0, r2 + strh r0, [r4, 0x12] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _0807B86A + adds r0, r5, 0 + bl DestroyTask + b _0807B86A +_0807B866: + adds r0, r1, 0x1 + strh r0, [r4, 0xC] +_0807B86A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_807B7E0 + + thumb_func_start sub_807B870 +sub_807B870: @ 807B870 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x3A] + movs r3, 0x3A + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _0807B89C + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldr r1, _0807B898 @ =sub_807B8A4 + str r1, [r2, 0x1C] + adds r0, r2, 0 + bl _call_via_r1 + b _0807B8A0 + .align 2, 0 +_0807B898: .4byte sub_807B8A4 +_0807B89C: + subs r0, r1, 0x1 + strh r0, [r2, 0x3A] +_0807B8A0: + pop {r0} + bx r0 + thumb_func_end sub_807B870 + + thumb_func_start sub_807B8A4 +sub_807B8A4: @ 807B8A4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x20 + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r1, 0x8 + bl Sin + strh r0, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x7F + bgt _0807B8D0 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D + b _0807B8D6 +_0807B8D0: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F +_0807B8D6: + strb r0, [r1] + ldrh r0, [r4, 0x2E] + adds r0, 0x8 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x34 + bne _0807B918 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0807B912 + adds r0, r4, 0 + bl DestroySpriteAndFreeResources + b _0807B918 +_0807B912: + adds r0, r4, 0 + bl DestroySprite +_0807B918: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_807B8A4 + + thumb_func_start sub_807B920 +sub_807B920: @ 807B920 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _0807B9B0 @ =gBattleAnimEnemyMonIndex + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + ldr r1, _0807B9B4 @ =0xffe00000 + adds r0, r1 + lsrs r5, r0, 16 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + ldr r2, _0807B9B8 @ =0xffdc0000 + adds r0, r2 + lsrs r4, r0, 16 + bl IsContest + lsls r0, 24 + cmp r0, 0 + beq _0807B95E + lsls r0, r5, 16 + ldr r1, _0807B9BC @ =0xfffa0000 + adds r0, r1 + lsrs r5, r0, 16 +_0807B95E: + ldr r1, _0807B9C0 @ =REG_BLDCNT + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0 + lsls r1, r5, 16 + asrs r1, 16 + lsls r2, r4, 16 + asrs r2, 16 + movs r3, 0x4 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _0807B9C8 @ =gSprites + adds r0, r1 + ldr r1, _0807B9CC @ =gSubspriteTables_83931D8 + bl SetSubspriteTables + ldr r1, _0807B9D0 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x26] + ldr r1, _0807B9D4 @ =sub_807B9D8 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807B9B0: .4byte gBattleAnimEnemyMonIndex +_0807B9B4: .4byte 0xffe00000 +_0807B9B8: .4byte 0xffdc0000 +_0807B9BC: .4byte 0xfffa0000 +_0807B9C0: .4byte REG_BLDCNT +_0807B9C4: .4byte gSpriteTemplate_83931E0 +_0807B9C8: .4byte gSprites +_0807B9CC: .4byte gSubspriteTables_83931D8 +_0807B9D0: .4byte gTasks +_0807B9D4: .4byte sub_807B9D8 + thumb_func_end sub_807B920 + + thumb_func_start sub_807B9D8 +sub_807B9D8: @ 807B9D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807BA04 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + adds r2, r0, 0 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _0807BA0C + ldr r0, _0807BA08 @ =sub_807BA24 + str r0, [r1] + movs r0, 0 + strh r0, [r1, 0xA] + b _0807BA1C + .align 2, 0 +_0807BA04: .4byte gTasks +_0807BA08: .4byte sub_807BA24 +_0807BA0C: + lsls r0, r2, 24 + lsrs r0, 24 + ldr r2, _0807BA20 @ =REG_BLDALPHA + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + strh r1, [r2] +_0807BA1C: + pop {r0} + bx r0 + .align 2, 0 +_0807BA20: .4byte REG_BLDALPHA + thumb_func_end sub_807B9D8 + + thumb_func_start sub_807BA24 +sub_807BA24: @ 807BA24 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0807BABC @ =0x0000271a + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0807BAC0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0xA] + adds r1, r0, 0x1 + strh r1, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xD + ble _0807BAB4 + ldrh r0, [r5, 0xC] + adds r0, 0x1 + movs r6, 0 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _0807BAB4 + ldr r3, _0807BAC4 @ =gPlttBufferFaded + lsls r2, 4 + mov r12, r2 + ldr r1, _0807BAC8 @ =0x0000010d + add r1, r12 + lsls r1, 1 + adds r1, r3 + ldrh r4, [r1] + movs r2, 0x87 + lsls r2, 1 + add r2, r12 + lsls r2, 1 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r1] + ldr r0, _0807BACC @ =0x0000010f + add r0, r12 + lsls r0, 1 + adds r0, r3 + ldrh r1, [r0] + strh r1, [r2] + strh r4, [r0] + strh r6, [r5, 0xC] + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _0807BAB4 + strh r6, [r5, 0xE] + strh r6, [r5, 0xA] + ldrh r0, [r5, 0x10] + adds r0, 0x1 + strh r0, [r5, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _0807BAB4 + movs r0, 0x9 + strh r0, [r5, 0xA] + ldr r0, _0807BAD0 @ =sub_807BAD4 + str r0, [r5] +_0807BAB4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807BABC: .4byte 0x0000271a +_0807BAC0: .4byte gTasks +_0807BAC4: .4byte gPlttBufferFaded +_0807BAC8: .4byte 0x0000010d +_0807BACC: .4byte 0x0000010f +_0807BAD0: .4byte sub_807BAD4 + thumb_func_end sub_807BA24 + + thumb_func_start sub_807BAD4 +sub_807BAD4: @ 807BAD4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807BB04 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + ldrh r0, [r2, 0xA] + subs r0, 0x1 + adds r3, r0, 0 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _0807BB0C + ldr r0, _0807BB08 @ =sub_807BB24 + str r0, [r2] + movs r0, 0 + strh r0, [r2, 0xA] + b _0807BB1C + .align 2, 0 +_0807BB04: .4byte gTasks +_0807BB08: .4byte sub_807BB24 +_0807BB0C: + lsls r0, r3, 24 + lsrs r0, 24 + ldr r2, _0807BB20 @ =REG_BLDALPHA + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + strh r1, [r2] +_0807BB1C: + pop {r0} + bx r0 + .align 2, 0 +_0807BB20: .4byte REG_BLDALPHA + thumb_func_end sub_807BAD4 + + thumb_func_start sub_807BB24 +sub_807BB24: @ 807BB24 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + ldr r1, _0807BB64 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + movs r3, 0 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x25 + bne _0807BB6C + ldrh r0, [r1, 0x26] + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0807BB68 @ =gSprites + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + b _0807BB7E + .align 2, 0 +_0807BB64: .4byte gTasks +_0807BB68: .4byte gSprites +_0807BB6C: + cmp r0, 0x27 + bne _0807BB7E + ldr r0, _0807BB84 @ =REG_BLDCNT + strh r3, [r0] + adds r0, 0x2 + strh r3, [r0] + adds r0, r2, 0 + bl DestroyAnimVisualTask +_0807BB7E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807BB84: .4byte REG_BLDCNT + thumb_func_end sub_807BB24 + + thumb_func_start sub_807BB88 +sub_807BB88: @ 807BB88 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r3, 0 + ldr r0, _0807BBA8 @ =0x02017840 + ldrh r0, [r0] + subs r0, 0xF + cmp r0, 0x2B + bls _0807BB9C + b _0807BD20 +_0807BB9C: + lsls r0, 2 + ldr r1, _0807BBAC @ =_0807BBB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807BBA8: .4byte 0x02017840 +_0807BBAC: .4byte _0807BBB0 + .align 2, 0 +_0807BBB0: + .4byte _0807BC60 + .4byte _0807BC66 + .4byte _0807BC6C + .4byte _0807BC72 + .4byte _0807BC78 + .4byte _0807BC7E + .4byte _0807BC84 + .4byte _0807BC8A + .4byte _0807BC90 + .4byte _0807BC96 + .4byte _0807BC9C + .4byte _0807BCA2 + .4byte _0807BCA8 + .4byte _0807BCAE + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BCB4 + .4byte _0807BCB8 + .4byte _0807BCBC + .4byte _0807BCC0 + .4byte _0807BCC4 + .4byte _0807BCC8 + .4byte _0807BCCC + .4byte _0807BCD0 + .4byte _0807BCD8 + .4byte _0807BCE0 + .4byte _0807BCE8 + .4byte _0807BCF0 + .4byte _0807BCF8 + .4byte _0807BD00 + .4byte _0807BD20 + .4byte _0807BD20 + .4byte _0807BD08 + .4byte _0807BD0C + .4byte _0807BD10 + .4byte _0807BD18 +_0807BC60: + movs r5, 0 + movs r2, 0 + b _0807BD28 +_0807BC66: + movs r5, 0 + movs r2, 0x1 + b _0807BD28 +_0807BC6C: + movs r5, 0 + movs r2, 0x3 + b _0807BD28 +_0807BC72: + movs r5, 0 + movs r2, 0x5 + b _0807BD28 +_0807BC78: + movs r5, 0 + movs r2, 0x6 + b _0807BD28 +_0807BC7E: + movs r5, 0 + movs r2, 0x2 + b _0807BD28 +_0807BC84: + movs r5, 0 + movs r2, 0x4 + b _0807BD28 +_0807BC8A: + movs r5, 0x1 + movs r2, 0 + b _0807BD28 +_0807BC90: + movs r5, 0x1 + movs r2, 0x1 + b _0807BD28 +_0807BC96: + movs r5, 0x1 + movs r2, 0x3 + b _0807BD28 +_0807BC9C: + movs r5, 0x1 + movs r2, 0x5 + b _0807BD28 +_0807BCA2: + movs r5, 0x1 + movs r2, 0x6 + b _0807BD28 +_0807BCA8: + movs r5, 0x1 + movs r2, 0x2 + b _0807BD28 +_0807BCAE: + movs r5, 0x1 + movs r2, 0x4 + b _0807BD28 +_0807BCB4: + movs r5, 0 + b _0807BCD2 +_0807BCB8: + movs r5, 0 + b _0807BCDA +_0807BCBC: + movs r5, 0 + b _0807BCE2 +_0807BCC0: + movs r5, 0 + b _0807BCEA +_0807BCC4: + movs r5, 0 + b _0807BCF2 +_0807BCC8: + movs r5, 0 + b _0807BCFA +_0807BCCC: + movs r5, 0 + b _0807BD02 +_0807BCD0: + movs r5, 0x1 +_0807BCD2: + movs r2, 0 + movs r3, 0x1 + b _0807BD28 +_0807BCD8: + movs r5, 0x1 +_0807BCDA: + movs r2, 0x1 + movs r3, 0x1 + b _0807BD28 +_0807BCE0: + movs r5, 0x1 +_0807BCE2: + movs r2, 0x3 + movs r3, 0x1 + b _0807BD28 +_0807BCE8: + movs r5, 0x1 +_0807BCEA: + movs r2, 0x5 + movs r3, 0x1 + b _0807BD28 +_0807BCF0: + movs r5, 0x1 +_0807BCF2: + movs r2, 0x6 + movs r3, 0x1 + b _0807BD28 +_0807BCF8: + movs r5, 0x1 +_0807BCFA: + movs r2, 0x2 + movs r3, 0x1 + b _0807BD28 +_0807BD00: + movs r5, 0x1 +_0807BD02: + movs r2, 0x4 + movs r3, 0x1 + b _0807BD28 +_0807BD08: + movs r5, 0 + b _0807BD12 +_0807BD0C: + movs r5, 0 + b _0807BD1A +_0807BD10: + movs r5, 0x1 +_0807BD12: + movs r2, 0xFF + movs r3, 0 + b _0807BD28 +_0807BD18: + movs r5, 0x1 +_0807BD1A: + movs r2, 0xFF + movs r3, 0x1 + b _0807BD28 +_0807BD20: + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _0807BD4A +_0807BD28: + ldr r0, _0807BD50 @ =gBattleAnimArgs + movs r1, 0 + strh r5, [r0] + strh r2, [r0, 0x2] + strh r1, [r0, 0x4] + strh r1, [r0, 0x6] + strh r3, [r0, 0x8] + ldr r1, _0807BD54 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0807BD58 @ =sub_80E32E0 + str r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_0807BD4A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0807BD50: .4byte gBattleAnimArgs +_0807BD54: .4byte gTasks +_0807BD58: .4byte sub_80E32E0 + thumb_func_end sub_807BB88 + + thumb_func_start move_anim_start_t2 +move_anim_start_t2: @ 807BD5C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _0807BD98 @ =gBattleAnimPlayerMonIndex + strb r4, [r0] + ldr r0, _0807BD9C @ =gBattleAnimEnemyMonIndex + strb r4, [r0] + ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions + movs r2, 0 + bl DoMoveAnim + ldr r0, _0807BDA4 @ =sub_807BDAC + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807BDA8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807BD98: .4byte gBattleAnimPlayerMonIndex +_0807BD9C: .4byte gBattleAnimEnemyMonIndex +_0807BDA0: .4byte gBattleAnims_StatusConditions +_0807BDA4: .4byte sub_807BDAC +_0807BDA8: .4byte gTasks + thumb_func_end move_anim_start_t2 + + thumb_func_start sub_807BDAC +sub_807BDAC: @ 807BDAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0807BDF0 @ =gAnimScriptCallback + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0807BDF4 @ =gAnimScriptActive + ldrb r0, [r0] + cmp r0, 0 + bne _0807BDEA + ldr r1, _0807BDF8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _0807BDFC @ =0x02017810 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_0807BDEA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807BDF0: .4byte gAnimScriptCallback +_0807BDF4: .4byte gAnimScriptActive +_0807BDF8: .4byte gTasks +_0807BDFC: .4byte 0x02017810 + thumb_func_end sub_807BDAC + + .align 2, 0 @ Don't pad with nop. |