.include "constants/gba_constants.inc" .include "include/macros.inc" .syntax unified .text thumb_func_start sub_81318F0 sub_81318F0: @ 81318F0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r3, _0813193C @ =gBattleAnimArgs movs r2, 0 strh r2, [r3, 0xE] ldr r1, _08131940 @ =gAnimFriendship ldrb r0, [r1] ldrb r1, [r1] adds r0, r1, 0 subs r0, 0x3D lsls r0, 24 lsrs r0, 24 adds r2, r1, 0 cmp r0, 0x1E bhi _08131914 movs r0, 0x1 strh r0, [r3, 0xE] _08131914: adds r0, r2, 0 subs r0, 0x5C lsls r0, 24 lsrs r0, 24 cmp r0, 0x6C bhi _08131924 movs r0, 0x2 strh r0, [r3, 0xE] _08131924: lsls r0, r1, 24 lsrs r0, 24 cmp r0, 0xC8 bls _08131930 movs r0, 0x3 strh r0, [r3, 0xE] _08131930: adds r0, r4, 0 bl DestroyAnimVisualTask pop {r4} pop {r0} bx r0 .align 2, 0 _0813193C: .4byte gBattleAnimArgs _08131940: .4byte gAnimFriendship thumb_func_end sub_81318F0 thumb_func_start sub_8131944 sub_8131944: @ 8131944 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _08131974 @ =gTasks lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x4 bls _0813196A b _08131EA0 _0813196A: lsls r0, 2 ldr r1, _08131978 @ =_0813197C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08131974: .4byte gTasks _08131978: .4byte _0813197C .align 2, 0 _0813197C: .4byte _08131990 .4byte _08131A44 .4byte _08131C20 .4byte _08131D40 .4byte _08131DC4 _08131990: movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, _081319DC @ =gTasks mov r2, r8 lsls r4, r2, 2 adds r0, r4, r2 lsls r0, 3 adds r6, r0, r1 movs r3, 0x80 lsls r3, 4 adds r0, r3, 0 ldrh r1, [r6, 0xA] adds r0, r1 strh r0, [r6, 0xA] ldr r0, _081319E0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 bne _081319E8 ldr r2, _081319E4 @ =gSprites lsls r3, r7, 4 adds r1, r3, r7 lsls r1, 2 adds r1, r2 ldrh r0, [r6, 0xA] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] b _08131A02 .align 2, 0 _081319DC: .4byte gTasks _081319E0: .4byte gBattleAnimAttacker _081319E4: .4byte gSprites _081319E8: ldr r3, _08131A3C @ =gSprites lsls r4, r7, 4 adds r2, r4, r7 lsls r2, 2 adds r2, r3 ldrh r1, [r6, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 _08131A02: ldr r1, _08131A40 @ =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r4, r0, r1 ldrb r0, [r4, 0xA] strh r0, [r4, 0xA] adds r1, r3, r7 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] ldrh r1, [r1, 0x20] adds r0, r1 lsls r0, 16 movs r1, 0x80 lsls r1, 14 adds r0, r1 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bhi _08131A2E b _08131EA0 _08131A2E: movs r0, 0 strh r0, [r4, 0xA] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08131EA0 .align 2, 0 _08131A3C: .4byte gSprites _08131A40: .4byte gTasks _08131A44: bl IsContest lsls r0, 24 cmp r0, 0 beq _08131A74 ldr r0, _08131A6C @ =gSharedMem + 0x19348 ldr r2, [r0, 0x8] mov r10, r2 ldr r3, [r0, 0xC] mov r9, r3 ldrh r5, [r0] ldr r0, _08131A70 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSubpriority lsls r0, 24 lsrs r4, r0, 24 movs r7, 0 b _08131B92 .align 2, 0 _08131A6C: .4byte gSharedMem + 0x19348 _08131A70: .4byte gBattleAnimAttacker _08131A74: ldr r4, _08131AD4 @ =gBattleAnimAttacker ldrb r0, [r4] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131B10 ldr r7, _08131AD8 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08131ADC @ =gPlayerParty adds r0, r5 movs r1, 0 bl GetMonData mov r10, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData mov r9, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _08131AE0 @ =gSharedMem + 0x17800 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _08131AE4 lsls r0, r2, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 b _08131AE6 .align 2, 0 _08131AD4: .4byte gBattleAnimAttacker _08131AD8: .4byte gBattlerPartyIndexes _08131ADC: .4byte gPlayerParty _08131AE0: .4byte gSharedMem + 0x17800 _08131AE4: ldrh r5, [r1, 0x2] _08131AE6: movs r0, 0x1 bl GetAnimBattlerSpriteId ldr r2, _08131B0C @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] adds r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0 movs r6, 0x88 lsls r6, 1 b _08131B94 .align 2, 0 _08131B0C: .4byte gSprites _08131B10: ldr r7, _08131B64 @ =gBattlerPartyIndexes ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, _08131B68 @ =gEnemyParty adds r0, r5 movs r1, 0 bl GetMonData mov r10, r0 ldrb r0, [r4] lsls r0, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0x1 bl GetMonData mov r9, r0 ldrb r2, [r4] lsls r1, r2, 2 ldr r0, _08131B6C @ =gSharedMem + 0x17800 adds r1, r0 ldrh r0, [r1, 0x2] cmp r0, 0 bne _08131B70 lsls r0, r2, 1 adds r0, r7 ldrh r0, [r0] muls r0, r6 adds r0, r5 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r5, r0, 16 b _08131B72 .align 2, 0 _08131B64: .4byte gBattlerPartyIndexes _08131B68: .4byte gEnemyParty _08131B6C: .4byte gSharedMem + 0x17800 _08131B70: ldrh r5, [r1, 0x2] _08131B72: movs r0, 0x1 bl GetAnimBattlerSpriteId ldr r2, _08131C04 @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 movs r7, 0x1 _08131B92: ldr r6, _08131C08 @ =0x0000ffe0 _08131B94: ldr r0, _08131C0C @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 lsls r3, r6, 16 asrs r3, 16 str r0, [sp] str r4, [sp, 0x4] mov r4, r10 str r4, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] adds r0, r5, 0 adds r1, r7, 0 movs r2, 0 bl sub_8079F44 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08131C10 @ =gBattleAnimAttacker ldrb r0, [r0] lsls r0, 2 ldr r1, _08131C14 @ =gSharedMem + 0x17800 adds r0, r1 ldrh r0, [r0, 0x2] cmp r0, 0 beq _08131BF2 ldr r1, _08131C04 @ =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x5] lsrs r0, 4 lsls r0, 4 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 orrs r0, r1 ldr r3, _08131C18 @ =0x00007fff movs r1, 0x10 movs r2, 0x6 bl BlendPalette _08131BF2: ldr r0, _08131C1C @ =gTasks mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 strh r5, [r1, 0x26] b _08131DB6 .align 2, 0 _08131C04: .4byte gSprites _08131C08: .4byte 0x0000ffe0 _08131C0C: .4byte gBattleAnimTarget _08131C10: .4byte gBattleAnimAttacker _08131C14: .4byte gSharedMem + 0x17800 _08131C18: .4byte 0x00007fff _08131C1C: .4byte gTasks _08131C20: ldr r1, _08131C6C @ =gTasks mov r0, r8 lsls r4, r0, 2 adds r0, r4, r0 lsls r0, 3 adds r6, r0, r1 ldrh r0, [r6, 0x26] lsls r0, 24 lsrs r5, r0, 24 movs r1, 0x80 lsls r1, 4 adds r0, r1, 0 ldrh r2, [r6, 0xA] adds r0, r2 strh r0, [r6, 0xA] ldr r0, _08131C70 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 bne _08131C78 ldr r3, _08131C74 @ =gSprites lsls r4, r5, 4 adds r2, r4, r5 lsls r2, 2 adds r2, r3 ldrh r1, [r6, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] adds r2, r3, 0 adds r3, r4, 0 b _08131C8E .align 2, 0 _08131C6C: .4byte gTasks _08131C70: .4byte gBattleAnimAttacker _08131C74: .4byte gSprites _08131C78: ldr r2, _08131CDC @ =gSprites lsls r3, r5, 4 adds r1, r3, r5 lsls r1, 2 adds r1, r2 ldrh r0, [r6, 0xA] lsls r0, 16 asrs r0, 24 ldrh r4, [r1, 0x24] adds r0, r4 strh r0, [r1, 0x24] _08131C8E: ldr r1, _08131CE0 @ =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r6, r0, r1 ldrb r0, [r6, 0xA] strh r0, [r6, 0xA] adds r1, r3, r5 lsls r1, 2 adds r1, r2 ldrh r0, [r1, 0x24] ldrh r1, [r1, 0x20] adds r0, r1 lsls r0, 16 lsrs r5, r0, 16 movs r1, 0x24 ldrsh r0, [r6, r1] cmp r0, 0 bne _08131D0E ldr r0, _08131CE4 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131CEC lsls r4, r5, 16 asrs r4, 16 ldr r0, _08131CE8 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 bge _08131D0E b _08131D02 .align 2, 0 _08131CDC: .4byte gSprites _08131CE0: .4byte gTasks _08131CE4: .4byte gBattleAnimAttacker _08131CE8: .4byte gBattleAnimTarget _08131CEC: lsls r4, r5, 16 asrs r4, 16 ldr r0, _08131D30 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 cmp r4, r0 ble _08131D0E _08131D02: ldrh r0, [r6, 0x24] adds r0, 0x1 strh r0, [r6, 0x24] ldr r1, _08131D34 @ =gBattleAnimArgs ldr r0, _08131D38 @ =0x0000ffff strh r0, [r1, 0xE] _08131D0E: lsls r0, r5, 16 movs r2, 0x80 lsls r2, 14 adds r0, r2 movs r1, 0x98 lsls r1, 17 cmp r0, r1 bhi _08131D20 b _08131EA0 _08131D20: ldr r0, _08131D3C @ =gTasks mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0 strh r0, [r1, 0xA] b _08131DB6 .align 2, 0 _08131D30: .4byte gBattleAnimTarget _08131D34: .4byte gBattleAnimArgs _08131D38: .4byte 0x0000ffff _08131D3C: .4byte gTasks _08131D40: movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131D8C @ =gTasks mov r3, r8 lsls r4, r3, 2 adds r0, r4, r3 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x26] lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r5, _08131D90 @ =gSprites adds r0, r5 bl sub_807A0F4 ldr r0, _08131D94 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 mov r9, r4 cmp r0, 0 bne _08131D98 lsls r1, r7, 4 adds r1, r7 lsls r1, 2 adds r1, r5 ldrh r0, [r1, 0x20] negs r0, r0 subs r0, 0x20 strh r0, [r1, 0x24] b _08131DAC .align 2, 0 _08131D8C: .4byte gTasks _08131D90: .4byte gSprites _08131D94: .4byte gBattleAnimAttacker _08131D98: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r5 ldrh r2, [r0, 0x20] movs r4, 0x88 lsls r4, 1 adds r1, r4, 0 subs r1, r2 strh r1, [r0, 0x24] _08131DAC: ldr r0, _08131DC0 @ =gTasks mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 _08131DB6: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08131EA0 .align 2, 0 _08131DC0: .4byte gTasks _08131DC4: movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r7, r0, 24 ldr r1, _08131E38 @ =gTasks mov r0, r8 lsls r4, r0, 2 adds r0, r4, r0 lsls r0, 3 adds r2, r0, r1 movs r1, 0x80 lsls r1, 4 adds r0, r1, 0 ldrh r3, [r2, 0xA] adds r0, r3 strh r0, [r2, 0xA] ldr r0, _08131E3C @ =gBattleAnimAttacker mov r10, r0 ldrb r0, [r0] str r2, [sp, 0x10] bl GetBattlerSide lsls r0, 24 mov r9, r4 ldr r2, [sp, 0x10] cmp r0, 0 bne _08131E44 ldr r1, _08131E40 @ =gSprites lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 adds r6, r0, r1 ldrh r0, [r2, 0xA] lsls r0, 16 asrs r0, 24 ldrh r1, [r6, 0x24] adds r0, r1 strh r0, [r6, 0x24] movs r2, 0x24 ldrsh r4, [r6, r2] movs r3, 0x20 ldrsh r0, [r6, r3] adds r4, r0 mov r1, r10 ldrb r0, [r1] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 cmp r4, r0 blt _08131E7C movs r2, 0 strh r2, [r6, 0x24] b _08131E7C .align 2, 0 _08131E38: .4byte gTasks _08131E3C: .4byte gBattleAnimAttacker _08131E40: .4byte gSprites _08131E44: ldr r1, _08131EB0 @ =gSprites lsls r5, r7, 4 adds r0, r5, r7 lsls r0, 2 adds r6, r0, r1 ldrh r1, [r2, 0xA] lsls r1, 16 asrs r1, 24 ldrh r0, [r6, 0x24] subs r0, r1 strh r0, [r6, 0x24] movs r3, 0x24 ldrsh r4, [r6, r3] movs r1, 0x20 ldrsh r0, [r6, r1] adds r4, r0 mov r2, r10 ldrb r0, [r2] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 cmp r4, r0 bgt _08131E7C movs r4, 0 strh r4, [r6, 0x24] _08131E7C: ldr r1, _08131EB4 @ =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xA] strh r1, [r0, 0xA] ldr r1, _08131EB0 @ =gSprites adds r0, r3, r7 lsls r0, 2 adds r0, r1 movs r1, 0x24 ldrsh r0, [r0, r1] cmp r0, 0 bne _08131EA0 mov r0, r8 bl DestroyAnimVisualTask _08131EA0: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08131EB0: .4byte gSprites _08131EB4: .4byte gTasks thumb_func_end sub_8131944 thumb_func_start sub_8131EB8 sub_8131EB8: @ 8131EB8 push {r4,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 beq _08131ECA cmp r0, 0x1 beq _08131F72 b _08131FF4 _08131ECA: ldr r0, _08131F50 @ =gBattleAnimArgs movs r2, 0xE ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _08131F64 movs r0, 0x3F bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x7A bl PlaySE12WithPanning ldr r0, _08131F54 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0x1 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r0, 0x10 strh r0, [r4, 0x22] ldr r0, _08131F58 @ =0x0000ffe0 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, _08131F5C @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08131FF4 bl IsContest lsls r0, 24 cmp r0, 0 bne _08131FF4 movs r0, 0x1 bl GetAnimBattlerSpriteId ldr r2, _08131F60 @ =gSprites lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x43 ldrb r0, [r1] subs r0, 0x1 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] b _08131FF4 .align 2, 0 _08131F50: .4byte gBattleAnimArgs _08131F54: .4byte gBattleAnimTarget _08131F58: .4byte 0x0000ffe0 _08131F5C: .4byte gBattleAnimAttacker _08131F60: .4byte gSprites _08131F64: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08131FF4 _08131F72: movs r1, 0x30 ldrsh r0, [r4, r1] movs r2, 0x2E ldrsh r1, [r4, r2] bl Sin strh r0, [r4, 0x26] ldrh r2, [r4, 0x30] adds r0, r2, 0x5 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7F ble _08131FA6 movs r1, 0x2E ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r4, 0x2E] ldrh r0, [r4, 0x34] adds r0, 0x1 strh r0, [r4, 0x34] adds r0, r2, 0 subs r0, 0x7A strh r0, [r4, 0x30] _08131FA6: movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] ldr r0, _08131FD0 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _08131FD4 ldrh r2, [r4, 0x32] lsls r1, r2, 16 asrs r1, 24 ldrh r0, [r4, 0x24] subs r0, r1 strh r0, [r4, 0x24] adds r1, r2, 0 b _08131FE0 .align 2, 0 _08131FD0: .4byte gBattleAnimAttacker _08131FD4: ldrh r1, [r4, 0x32] lsls r0, r1, 16 asrs r0, 24 ldrh r2, [r4, 0x24] adds r0, r2 strh r0, [r4, 0x24] _08131FE0: movs r0, 0xFF ands r0, r1 strh r0, [r4, 0x32] movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0x2 bne _08131FF4 adds r0, r4, 0 bl DestroyAnimSprite _08131FF4: pop {r4} pop {r0} bx r0 thumb_func_end sub_8131EB8 thumb_func_start sub_8131FFC sub_8131FFC: @ 8131FFC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, _08132024 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x26 ldrsh r0, [r0, r2] adds r3, r1, 0 cmp r0, 0x4 bls _08132018 b _0813216A _08132018: lsls r0, 2 ldr r1, _08132028 @ =_0813202C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08132024: .4byte gTasks _08132028: .4byte _0813202C .align 2, 0 _0813202C: .4byte _08132040 .4byte _08132090 .4byte _081320EC .4byte _08132104 .4byte _0813216A _08132040: ldr r0, _08132084 @ =gBattleAnimAttacker ldrb r0, [r0] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, _08132088 @ =gBattleAnimTarget ldrb r0, [r0] movs r1, 0 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 ldr r1, _0813208C @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r0, 0x6 strh r0, [r1, 0x8] cmp r5, r2 ble _08132076 negs r0, r0 strh r0, [r1, 0x8] _08132076: strh r5, [r1, 0xA] strh r2, [r1, 0xC] ldrh r0, [r1, 0x26] adds r0, 0x1 strh r0, [r1, 0x26] b _08132188 .align 2, 0 _08132084: .4byte gBattleAnimAttacker _08132088: .4byte gBattleAnimTarget _0813208C: .4byte gTasks _08132090: ldr r1, _081320CC @ =gBankSpriteIds ldr r0, _081320D0 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _081320D4 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r1 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0x8] ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] movs r3, 0x8 ldrsh r0, [r2, r3] cmp r0, 0 ble _081320D8 movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xC ldrsh r1, [r2, r3] b _0813215E .align 2, 0 _081320CC: .4byte gBankSpriteIds _081320D0: .4byte gBattleAnimAttacker _081320D4: .4byte gSprites _081320D8: movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xC ldrsh r1, [r2, r3] cmp r0, r1 bgt _08132188 b _08132162 _081320EC: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 movs r2, 0x8 ldrsh r1, [r0, r2] negs r1, r1 strh r1, [r0, 0x8] ldrh r1, [r0, 0x26] adds r1, 0x1 strh r1, [r0, 0x26] b _08132188 _08132104: ldr r1, _08132144 @ =gBankSpriteIds ldr r0, _08132148 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _0813214C @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r1 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r3 ldrh r0, [r2, 0x8] ldrh r3, [r1, 0x24] adds r0, r3 strh r0, [r1, 0x24] movs r3, 0x8 ldrsh r0, [r2, r3] cmp r0, 0 bge _08132150 movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xA ldrsh r1, [r2, r3] cmp r0, r1 bgt _08132188 b _08132162 .align 2, 0 _08132144: .4byte gBankSpriteIds _08132148: .4byte gBattleAnimAttacker _0813214C: .4byte gSprites _08132150: movs r3, 0x20 ldrsh r0, [r1, r3] movs r3, 0x24 ldrsh r1, [r1, r3] adds r0, r1 movs r3, 0xA ldrsh r1, [r2, r3] _0813215E: cmp r0, r1 blt _08132188 _08132162: ldrh r0, [r2, 0x26] adds r0, 0x1 strh r0, [r2, 0x26] b _08132188 _0813216A: ldr r1, _08132190 @ =gBankSpriteIds ldr r0, _08132194 @ =gBattleAnimAttacker ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] ldr r1, _08132198 @ =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 movs r1, 0 strh r1, [r0, 0x24] adds r0, r4, 0 bl DestroyAnimVisualTask _08132188: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132190: .4byte gBankSpriteIds _08132194: .4byte gBattleAnimAttacker _08132198: .4byte gSprites thumb_func_end sub_8131FFC thumb_func_start sub_813219C sub_813219C: @ 813219C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08132204 @ =gTasks adds r4, r1, r0 movs r0, 0 bl GetAnimBattlerSpriteId lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0xE] ldr r0, _08132208 @ =gBattleAnimAttacker ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 movs r2, 0x1 negs r2, r2 adds r1, r2, 0 cmp r0, 0 bne _081321D0 movs r1, 0x1 _081321D0: strh r1, [r4, 0x10] ldr r2, _0813220C @ =gSprites movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x22] strh r0, [r4, 0x14] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x20] strh r0, [r4, 0x12] strh r5, [r4, 0x1A] strh r5, [r4, 0x1E] movs r0, 0x1 strh r0, [r4, 0x1C] strh r5, [r4, 0x20] ldr r0, _08132210 @ =sub_8132214 str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132204: .4byte gTasks _08132208: .4byte gBattleAnimAttacker _0813220C: .4byte gSprites _08132210: .4byte sub_8132214 thumb_func_end sub_813219C thumb_func_start sub_8132214 sub_8132214: @ 8132214 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _08132238 @ =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _081322BC cmp r0, 0x1 bgt _0813223C cmp r0, 0 beq _08132242 b _08132312 .align 2, 0 _08132238: .4byte gTasks _0813223C: cmp r0, 0x2 beq _0813230C b _08132312 _08132242: ldrh r0, [r4, 0x1E] adds r0, 0x8 movs r2, 0xFF ands r0, r2 strh r0, [r4, 0x1E] ldr r5, _081322B4 @ =gSprites movs r6, 0xE ldrsh r0, [r4, r6] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldr r3, _081322B8 @ =gSineTable movs r6, 0x1E ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r1, 0x24] ldrh r0, [r4, 0x1A] adds r0, 0x2 ands r0, r2 strh r0, [r4, 0x1A] movs r1, 0xE ldrsh r0, [r4, r1] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 movs r6, 0x1A ldrsh r0, [r4, r6] lsls r0, 1 adds r0, r3 ldrh r0, [r0] lsls r0, 16 asrs r0, 19 ldrh r1, [r4, 0x10] muls r0, r1 ldrh r1, [r4, 0x12] adds r0, r1 strh r0, [r2, 0x20] movs r6, 0x1A ldrsh r0, [r4, r6] cmp r0, 0 bne _08132312 movs r0, 0xE ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r4, 0x12] strh r1, [r0, 0x20] b _081322FC .align 2, 0 _081322B4: .4byte gSprites _081322B8: .4byte gSineTable _081322BC: ldrh r0, [r4, 0x1E] adds r0, 0x8 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x1E] ldr r3, _08132304 @ =gSprites movs r1, 0xE ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldr r2, _08132308 @ =gSineTable movs r5, 0x1E ldrsh r0, [r4, r5] lsls r0, 1 adds r0, r2 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r1, 0x24] movs r6, 0x1E ldrsh r2, [r4, r6] cmp r2, 0 bne _08132312 movs r1, 0xE ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 strh r2, [r1, 0x24] _081322FC: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _08132312 .align 2, 0 _08132304: .4byte gSprites _08132308: .4byte gSineTable _0813230C: adds r0, r2, 0 bl DestroyAnimVisualTask _08132312: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8132214 thumb_func_start sub_8132318 sub_8132318: @ 8132318 push {r4,lr} adds r4, r0, 0 ldr r0, _0813236C @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 ldrh r0, [r4, 0x2E] ldrh r1, [r4, 0x30] adds r0, r1 movs r1, 0xFF ands r0, r1 strh r0, [r4, 0x30] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl Cos strh r0, [r4, 0x24] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x14 bl Sin strh r0, [r4, 0x26] adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0813235E adds r0, r4, 0 bl DestroyAnimSprite _0813235E: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] pop {r4} pop {r0} bx r0 .align 2, 0 _0813236C: .4byte gBattleAnimTarget thumb_func_end sub_8132318 thumb_func_start sub_8132370 sub_8132370: @ 8132370 push {r4,lr} adds r4, r0, 0 ldr r0, _081323A8 @ =gBattleAnimTarget ldrb r0, [r0] bl GetBattlerSide lsls r0, 24 cmp r0, 0 bne _081323B4 ldr r2, _081323AC @ =gBattleAnimArgs ldrh r0, [r4, 0x20] ldrh r1, [r2] subs r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] ldr r0, _081323B0 @ =0x0000fff5 strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAffineAnim b _081323CE .align 2, 0 _081323A8: .4byte gBattleAnimTarget _081323AC: .4byte gBattleAnimArgs _081323B0: .4byte 0x0000fff5 _081323B4: movs r0, 0xB strh r0, [r4, 0x2E] movs r0, 0xC0 strh r0, [r4, 0x30] ldr r1, _081323D8 @ =gBattleAnimArgs ldrh r0, [r1] ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldrh r0, [r1, 0x2] ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] _081323CE: ldr r0, _081323DC @ =sub_8132318 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _081323D8: .4byte gBattleAnimArgs _081323DC: .4byte sub_8132318 thumb_func_end sub_8132370 thumb_func_start sub_81323E0 sub_81323E0: @ 81323E0 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _08132424 @ =gBattleAnimAttacker ldrb r0, [r4] movs r1, 0x2 bl GetBattlerSpriteCoord lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x2 bl sub_807A100 strh r0, [r5, 0x22] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bgt _0813240A movs r0, 0x10 strh r0, [r5, 0x22] _0813240A: movs r0, 0 strh r0, [r5, 0x3A] movs r1, 0x10 strh r1, [r5, 0x3C] ldr r0, _08132428 @ =sub_8132430 str r0, [r5, 0x1C] ldr r0, _0813242C @ =REG_BLDALPHA lsls r1, 8 strh r1, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08132424: .4byte gBattleAnimAttacker _08132428: .4byte sub_8132430 _0813242C: .4byte REG_BLDALPHA thumb_func_end sub_81323E0 thumb_func_start sub_8132430 sub_8132430: @ 8132430 push {r4,lr} adds r3, r0, 0 movs r0, 0x32 ldrsh r1, [r3, r0] cmp r1, 0x1 beq _081324A8 cmp r1, 0x1 bgt _08132446 cmp r1, 0 beq _08132450 b _08132522 _08132446: cmp r1, 0x2 beq _081324BE cmp r1, 0x3 beq _0813251C b _08132522 _08132450: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08132522 strh r1, [r3, 0x2E] ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0813247A ldrh r2, [r3, 0x3A] movs r4, 0x3A ldrsh r0, [r3, r4] cmp r0, 0xF bgt _08132488 adds r0, r2, 0x1 strh r0, [r3, 0x3A] b _08132488 _0813247A: ldrh r2, [r3, 0x3C] movs r4, 0x3C ldrsh r0, [r3, r4] cmp r0, 0 beq _08132488 subs r0, r2, 0x1 strh r0, [r3, 0x3C] _08132488: adds r0, r1, 0x1 strh r0, [r3, 0x30] ldr r2, _081324A4 @ =REG_BLDALPHA ldrh r0, [r3, 0x3C] lsls r0, 8 ldrh r1, [r3, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0 bne _08132522 b _08132510 .align 2, 0 _081324A4: .4byte REG_BLDALPHA _081324A8: ldrh r0, [r3, 0x2E] adds r0, 0x1 movs r1, 0 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0xA bne _08132522 strh r1, [r3, 0x2E] strh r1, [r3, 0x30] b _08132510 _081324BE: ldrh r0, [r3, 0x2E] adds r0, 0x1 strh r0, [r3, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _08132522 movs r0, 0 strh r0, [r3, 0x2E] ldrh r1, [r3, 0x30] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081324EA ldrh r2, [r3, 0x3A] movs r4, 0x3A ldrsh r0, [r3, r4] cmp r0, 0 beq _081324F8 subs r0, r2, 0x1 strh r0, [r3, 0x3A] b _081324F8 _081324EA: ldrh r2, [r3, 0x3C] movs r4, 0x3C ldrsh r0, [r3, r4] cmp r0, 0xF bgt _081324F8 adds r0, r2, 0x1 strh r0, [r3, 0x3C] _081324F8: adds r0, r1, 0x1 strh r0, [r3, 0x30] ldr r2, _08132518 @ =REG_BLDALPHA ldrh r0, [r3, 0x3C] lsls r0, 8 ldrh r1, [r3, 0x3A] orrs r0, r1 strh r0, [r2] movs r1, 0x3C ldrsh r0, [r3, r1] cmp r0, 0x10 bne _08132522 _08132510: ldrh r0, [r3, 0x32] adds r0, 0x1 strh r0, [r3, 0x32] b _08132522 .align 2, 0 _08132518: .4byte REG_BLDALPHA _0813251C: adds r0, r3, 0 bl move_anim_8074EE0 _08132522: pop {r4} pop {r0} bx r0 thumb_func_end sub_8132430 thumb_func_start sub_8132528 sub_8132528: @ 8132528 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r2, _08132544 @ =gBattleAnimArgs movs r0, 0 strh r0, [r2, 0xE] ldr r0, _08132548 @ =gWeatherMoveAnim ldrh r1, [r0] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _0813254C movs r0, 0x1 b _0813256E .align 2, 0 _08132544: .4byte gBattleAnimArgs _08132548: .4byte gWeatherMoveAnim _0813254C: movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _08132558 movs r0, 0x2 b _0813256E _08132558: movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _08132564 movs r0, 0x3 b _0813256E _08132564: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08132570 movs r0, 0x4 _0813256E: strh r0, [r2, 0xE] _08132570: adds r0, r3, 0 bl DestroyAnimVisualTask pop {r0} bx r0 thumb_func_end sub_8132528 thumb_func_start sub_813257C sub_813257C: @ 813257C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _081325B4 @ =gTasks adds r4, r0 movs r0, 0 strh r0, [r4, 0x8] ldr r0, _081325B8 @ =gBattleAnimArgs ldrb r0, [r0] bl GetAnimBattlerSpriteId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 strh r1, [r4, 0x26] ldr r2, _081325BC @ =gUnknown_08402B28 adds r0, r4, 0 bl sub_80798F4 ldr r0, _081325C0 @ =sub_81325C4 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _081325B4: .4byte gTasks _081325B8: .4byte gBattleAnimArgs _081325BC: .4byte gUnknown_08402B28 _081325C0: .4byte sub_81325C4 thumb_func_end sub_813257C thumb_func_start sub_81325C4 sub_81325C4: @ 81325C4 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r2, _0813261C @ =gTasks adds r3, r0, r2 ldrh r0, [r3, 0x8] adds r1, r0, 0x1 movs r5, 0 strh r1, [r3, 0x8] subs r0, 0x10 lsls r0, 16 lsrs r0, 16 adds r6, r2, 0 cmp r0, 0x16 bhi _08132628 ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _08132638 strh r5, [r3, 0xA] ldrh r0, [r3, 0xC] adds r0, 0x1 strh r0, [r3, 0xC] movs r5, 0x1 ands r0, r5 cmp r0, 0 bne _08132628 ldr r2, _08132620 @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _08132624 @ =0x0000ffff strh r1, [r0, 0x24] b _08132638 .align 2, 0 _0813261C: .4byte gTasks _08132620: .4byte gSprites _08132624: .4byte 0x0000ffff _08132628: ldr r2, _08132658 @ =gSprites movs r0, 0x26 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x24] _08132638: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r6 bl sub_807992C lsls r0, 24 cmp r0, 0 bne _08132650 adds r0, r4, 0 bl DestroyAnimVisualTask _08132650: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08132658: .4byte gSprites thumb_func_end sub_81325C4 .align 2, 0 @ Don't pad with nop.