diff options
Diffstat (limited to 'asm/battle_anim_status_effects.s')
-rw-r--r-- | asm/battle_anim_status_effects.s | 977 |
1 files changed, 977 insertions, 0 deletions
diff --git a/asm/battle_anim_status_effects.s b/asm/battle_anim_status_effects.s new file mode 100644 index 000000000..5530fd869 --- /dev/null +++ b/asm/battle_anim_status_effects.s @@ -0,0 +1,977 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8078178 +sub_8078178: @ 8078178 + 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, _0807821C @ =gBattlerSpriteIds + adds r0, r4, r0 + ldrb r6, [r0] + ldr r0, _08078220 @ =sub_80782BC + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _08078224 @ =gUnknown_83AD048 + bl sub_800F034 + ldr r0, _08078228 @ =gUnknown_83AD950 + bl sub_800F078 + ldr r1, _0807822C @ =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 _08078238 + movs r0, 0x1F + strh r0, [r1, 0xA] + movs r5, 0 + lsls r0, r6, 4 + ldr r7, _08078230 @ =gSprites + adds r0, r6 + lsls r0, 2 + adds r6, r0, r7 +_080781CC: + movs r0, 0x20 + ldrsh r1, [r6, r0] + ldrh r2, [r6, 0x22] + adds r2, 0x20 + lsls r2, 16 + asrs r2, 16 + ldr r0, _08078234 @ =gUnknown_83BF574 + 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 _08078210 + movs r0, 0x15 + strh r0, [r3, 0x3A] +_08078210: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _080781CC + b _08078298 + .align 2, 0 +_0807821C: .4byte gBattlerSpriteIds +_08078220: .4byte sub_80782BC +_08078224: .4byte gUnknown_83AD048 +_08078228: .4byte gUnknown_83AD950 +_0807822C: .4byte gTasks +_08078230: .4byte gSprites +_08078234: .4byte gUnknown_83BF574 +_08078238: + movs r0, 0xF8 + lsls r0, 7 + strh r0, [r1, 0xA] + movs r5, 0 + lsls r0, r6, 4 + ldr r7, _080782B4 @ =gSprites + adds r0, r6 + lsls r0, 2 + adds r6, r0, r7 +_0807824A: + movs r2, 0x20 + ldrsh r1, [r6, r2] + ldrh r2, [r6, 0x22] + subs r2, 0x20 + lsls r2, 16 + asrs r2, 16 + ldr r0, _080782B8 @ =gUnknown_83BF574 + 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 _0807828E + movs r0, 0x15 + strh r0, [r3, 0x3A] +_0807828E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x9 + bls _0807824A +_08078298: + ldr r0, _080782B4 @ =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 +_080782B4: .4byte gSprites +_080782B8: .4byte gUnknown_83BF574 + thumb_func_end sub_8078178 + + thumb_func_start sub_80782BC +sub_80782BC: @ 80782BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08078314 @ =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 _08078342 + 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 _08078318 + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _08078346 + movs r0, 0x1 + eors r0, r2 + strh r0, [r4, 0x12] + b _08078346 + .align 2, 0 +_08078314: .4byte gTasks +_08078318: + ldrh r1, [r4, 0x10] + subs r0, r1, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + cmp r0, 0 + bge _08078346 + 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 _08078346 + adds r0, r5, 0 + bl DestroyTask + b _08078346 +_08078342: + adds r0, r1, 0x1 + strh r0, [r4, 0xC] +_08078346: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80782BC + + thumb_func_start sub_807834C +sub_807834C: @ 807834C + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x3A] + movs r3, 0x3A + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _08078378 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldr r1, _08078374 @ =sub_8078380 + str r1, [r2, 0x1C] + adds r0, r2, 0 + bl _call_via_r1 + b _0807837C + .align 2, 0 +_08078374: .4byte sub_8078380 +_08078378: + subs r0, r1, 0x1 + strh r0, [r2, 0x3A] +_0807837C: + pop {r0} + bx r0 + thumb_func_end sub_807834C + + thumb_func_start sub_8078380 +sub_8078380: @ 8078380 + 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 _080783AC + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1D + b _080783B2 +_080783AC: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1F +_080783B2: + 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 _080783F4 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080783EE + adds r0, r4, 0 + bl DestroySpriteAndFreeResources + b _080783F4 +_080783EE: + adds r0, r4, 0 + bl DestroySprite +_080783F4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078380 + + thumb_func_start sub_80783FC +sub_80783FC: @ 80783FC + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _080784AC @ =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + ldr r1, _080784B0 @ =0xffe00000 + adds r0, r1 + lsrs r5, r0, 16 + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8074480 + lsls r0, 24 + lsrs r0, 8 + ldr r1, _080784B4 @ =0xffdc0000 + adds r0, r1 + lsrs r4, r0, 16 + bl sub_8073788 + lsls r0, 24 + cmp r0, 0 + beq _0807843A + lsls r0, r5, 16 + ldr r1, _080784B8 @ =0xfffa0000 + adds r0, r1 + lsrs r5, r0, 16 +_0807843A: + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + ldr r0, _080784BC @ =gUnknown_83BF55C + lsls r1, r5, 16 + asrs r1, 16 + lsls r2, r4, 16 + asrs r2, 16 + movs r3, 0x4 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080784C0 @ =0x0000271a + bl GetSpriteTileStartByTag + lsls r0, 16 + ldr r1, _080784C4 @ =0xffff0000 + cmp r0, r1 + bne _08078484 + ldr r1, _080784C8 @ =gSprites + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_08078484: + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _080784C8 @ =gSprites + adds r0, r1 + ldr r1, _080784CC @ =gUnknown_83BF554 + bl SetSubspriteTables + ldr r1, _080784D0 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x26] + ldr r1, _080784D4 @ =sub_80784D8 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080784AC: .4byte gBattleAnimTarget +_080784B0: .4byte 0xffe00000 +_080784B4: .4byte 0xffdc0000 +_080784B8: .4byte 0xfffa0000 +_080784BC: .4byte gUnknown_83BF55C +_080784C0: .4byte 0x0000271a +_080784C4: .4byte 0xffff0000 +_080784C8: .4byte gSprites +_080784CC: .4byte gUnknown_83BF554 +_080784D0: .4byte gTasks +_080784D4: .4byte sub_80784D8 + thumb_func_end sub_80783FC + + thumb_func_start sub_80784D8 +sub_80784D8: @ 80784D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08078504 @ =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 _0807850C + ldr r0, _08078508 @ =sub_8078528 + str r0, [r1] + movs r0, 0 + strh r0, [r1, 0xA] + b _08078522 + .align 2, 0 +_08078504: .4byte gTasks +_08078508: .4byte sub_8078528 +_0807850C: + lsls r0, r2, 24 + lsrs r0, 24 + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg +_08078522: + pop {r0} + bx r0 + thumb_func_end sub_80784D8 + + thumb_func_start sub_8078528 +sub_8078528: @ 8078528 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080785C0 @ =0x0000271a + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080785C4 @ =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 _080785B8 + ldrh r0, [r5, 0xC] + adds r0, 0x1 + movs r6, 0 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + bne _080785B8 + ldr r3, _080785C8 @ =gPlttBufferFaded + lsls r2, 4 + mov r12, r2 + ldr r1, _080785CC @ =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, _080785D0 @ =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 _080785B8 + 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 _080785B8 + movs r0, 0x9 + strh r0, [r5, 0xA] + ldr r0, _080785D4 @ =sub_80785D8 + str r0, [r5] +_080785B8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080785C0: .4byte 0x0000271a +_080785C4: .4byte gTasks +_080785C8: .4byte gPlttBufferFaded +_080785CC: .4byte 0x0000010d +_080785D0: .4byte 0x0000010f +_080785D4: .4byte sub_80785D8 + thumb_func_end sub_8078528 + + thumb_func_start sub_80785D8 +sub_80785D8: @ 80785D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08078608 @ =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 _08078610 + ldr r0, _0807860C @ =sub_807862C + str r0, [r2] + movs r0, 0 + strh r0, [r2, 0xA] + b _08078626 + .align 2, 0 +_08078608: .4byte gTasks +_0807860C: .4byte sub_807862C +_08078610: + lsls r0, r3, 24 + lsrs r0, 24 + movs r1, 0x10 + subs r1, r0 + lsls r1, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg +_08078626: + pop {r0} + bx r0 + thumb_func_end sub_80785D8 + + thumb_func_start sub_807862C +sub_807862C: @ 807862C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, _0807866C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x25 + bne _08078674 + ldrh r0, [r1, 0x26] + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _08078670 @ =gSprites + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + b _0807868E + .align 2, 0 +_0807866C: .4byte gTasks +_08078670: .4byte gSprites +_08078674: + cmp r0, 0x27 + bne _0807868E + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + adds r0, r4, 0 + bl DestroyAnimVisualTask +_0807868E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_807862C + + thumb_func_start sub_8078694 +sub_8078694: @ 8078694 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r3, 0 + ldr r0, _080786B8 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r0, [r0, 0x8] + ldrh r0, [r0] + subs r0, 0xF + cmp r0, 0x2B + bls _080786AC + b _08078830 +_080786AC: + lsls r0, 2 + ldr r1, _080786BC @ =_080786C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080786B8: .4byte gUnknown_2024018 +_080786BC: .4byte _080786C0 + .align 2, 0 +_080786C0: + .4byte _08078770 + .4byte _08078776 + .4byte _0807877C + .4byte _08078782 + .4byte _08078788 + .4byte _0807878E + .4byte _08078794 + .4byte _0807879A + .4byte _080787A0 + .4byte _080787A6 + .4byte _080787AC + .4byte _080787B2 + .4byte _080787B8 + .4byte _080787BE + .4byte _08078830 + .4byte _08078830 + .4byte _08078830 + .4byte _08078830 + .4byte _08078830 + .4byte _08078830 + .4byte _08078830 + .4byte _08078830 + .4byte _08078830 + .4byte _08078830 + .4byte _080787C4 + .4byte _080787C8 + .4byte _080787CC + .4byte _080787D0 + .4byte _080787D4 + .4byte _080787D8 + .4byte _080787DC + .4byte _080787E0 + .4byte _080787E8 + .4byte _080787F0 + .4byte _080787F8 + .4byte _08078800 + .4byte _08078808 + .4byte _08078810 + .4byte _08078830 + .4byte _08078830 + .4byte _08078818 + .4byte _0807881C + .4byte _08078820 + .4byte _08078828 +_08078770: + movs r5, 0 + movs r2, 0 + b _08078838 +_08078776: + movs r5, 0 + movs r2, 0x1 + b _08078838 +_0807877C: + movs r5, 0 + movs r2, 0x3 + b _08078838 +_08078782: + movs r5, 0 + movs r2, 0x5 + b _08078838 +_08078788: + movs r5, 0 + movs r2, 0x6 + b _08078838 +_0807878E: + movs r5, 0 + movs r2, 0x2 + b _08078838 +_08078794: + movs r5, 0 + movs r2, 0x4 + b _08078838 +_0807879A: + movs r5, 0x1 + movs r2, 0 + b _08078838 +_080787A0: + movs r5, 0x1 + movs r2, 0x1 + b _08078838 +_080787A6: + movs r5, 0x1 + movs r2, 0x3 + b _08078838 +_080787AC: + movs r5, 0x1 + movs r2, 0x5 + b _08078838 +_080787B2: + movs r5, 0x1 + movs r2, 0x6 + b _08078838 +_080787B8: + movs r5, 0x1 + movs r2, 0x2 + b _08078838 +_080787BE: + movs r5, 0x1 + movs r2, 0x4 + b _08078838 +_080787C4: + movs r5, 0 + b _080787E2 +_080787C8: + movs r5, 0 + b _080787EA +_080787CC: + movs r5, 0 + b _080787F2 +_080787D0: + movs r5, 0 + b _080787FA +_080787D4: + movs r5, 0 + b _08078802 +_080787D8: + movs r5, 0 + b _0807880A +_080787DC: + movs r5, 0 + b _08078812 +_080787E0: + movs r5, 0x1 +_080787E2: + movs r2, 0 + movs r3, 0x1 + b _08078838 +_080787E8: + movs r5, 0x1 +_080787EA: + movs r2, 0x1 + movs r3, 0x1 + b _08078838 +_080787F0: + movs r5, 0x1 +_080787F2: + movs r2, 0x3 + movs r3, 0x1 + b _08078838 +_080787F8: + movs r5, 0x1 +_080787FA: + movs r2, 0x5 + movs r3, 0x1 + b _08078838 +_08078800: + movs r5, 0x1 +_08078802: + movs r2, 0x6 + movs r3, 0x1 + b _08078838 +_08078808: + movs r5, 0x1 +_0807880A: + movs r2, 0x2 + movs r3, 0x1 + b _08078838 +_08078810: + movs r5, 0x1 +_08078812: + movs r2, 0x4 + movs r3, 0x1 + b _08078838 +_08078818: + movs r5, 0 + b _08078822 +_0807881C: + movs r5, 0 + b _0807882A +_08078820: + movs r5, 0x1 +_08078822: + movs r2, 0xFF + movs r3, 0 + b _08078838 +_08078828: + movs r5, 0x1 +_0807882A: + movs r2, 0xFF + movs r3, 0x1 + b _08078838 +_08078830: + adds r0, r4, 0 + bl DestroyAnimVisualTask + b _0807885A +_08078838: + ldr r0, _08078860 @ =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, _08078864 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08078868 @ =sub_80BB088 + str r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 +_0807885A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08078860: .4byte gBattleAnimArgs +_08078864: .4byte gTasks +_08078868: .4byte sub_80BB088 + thumb_func_end sub_8078694 + + thumb_func_start LaunchStatusAnimation +LaunchStatusAnimation: @ 807886C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _080788A8 @ =gBattleAnimAttacker + strb r4, [r0] + ldr r0, _080788AC @ =gBattleAnimTarget + strb r4, [r0] + ldr r0, _080788B0 @ =gUnknown_81C6E84 + movs r2, 0 + bl sub_80725D4 + ldr r0, _080788B4 @ =task0A_80788BC + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080788B8 @ =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 +_080788A8: .4byte gBattleAnimAttacker +_080788AC: .4byte gBattleAnimTarget +_080788B0: .4byte gUnknown_81C6E84 +_080788B4: .4byte task0A_80788BC +_080788B8: .4byte gTasks + thumb_func_end LaunchStatusAnimation + + thumb_func_start task0A_80788BC +task0A_80788BC: @ 80788BC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08078904 @ =gUnknown_2037EDC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08078908 @ =gUnknown_2037EE1 + ldrb r0, [r0] + cmp r0, 0 + bne _080788FE + ldr r0, _0807890C @ =gUnknown_2024018 + ldr r2, [r0] + ldr r1, _08078910 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + ldr r2, [r2, 0x4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_080788FE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078904: .4byte gUnknown_2037EDC +_08078908: .4byte gUnknown_2037EE1 +_0807890C: .4byte gUnknown_2024018 +_08078910: .4byte gTasks + thumb_func_end task0A_80788BC + + .align 2, 0 @ Don't pad with nop. |