diff options
-rw-r--r-- | asm/battle_anim.s | 28 | ||||
-rw-r--r-- | asm/battle_anim_effects_1.s | 10 | ||||
-rw-r--r-- | asm/battle_anim_effects_2.s | 6 | ||||
-rw-r--r-- | asm/battle_anim_effects_3.s | 18 | ||||
-rw-r--r-- | asm/battle_anim_mons.s | 4 | ||||
-rw-r--r-- | asm/battle_anim_sound_tasks.s | 927 | ||||
-rw-r--r-- | asm/electric.s | 4 | ||||
-rw-r--r-- | asm/psychic.s | 2 | ||||
-rw-r--r-- | asm/rock.s | 4 | ||||
-rw-r--r-- | include/battle_anim.h | 3 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/battle_anim_sound_tasks.c | 313 | ||||
-rw-r--r-- | sym_ewram.txt | 2 |
13 files changed, 356 insertions, 967 deletions
diff --git a/asm/battle_anim.s b/asm/battle_anim.s index 9d16e91e1..2edd4df5f 100644 --- a/asm/battle_anim.s +++ b/asm/battle_anim.s @@ -152,7 +152,7 @@ LaunchBattleAnimation: @ 80725D4 movs r4, 0 ldr r6, _08072618 @ =gBattlerPartyIndexes movs r7, 0x64 - ldr r5, _0807261C @ =gUnknown_2037F1C + ldr r5, _0807261C @ =gAnimBattlerSpecies _08072600: lsls r0, r4, 24 lsrs r0, 24 @@ -166,7 +166,7 @@ _08072600: b _0807262A .align 2, 0 _08072618: .4byte gBattlerPartyIndexes -_0807261C: .4byte gUnknown_2037F1C +_0807261C: .4byte gAnimBattlerSpecies _08072620: .4byte gEnemyParty _08072624: ldrh r0, [r6] @@ -2767,8 +2767,8 @@ ScriptCmd_changebg: @ 8073A24 _08073A40: .4byte gUnknown_2037ED4 thumb_func_end ScriptCmd_changebg - thumb_func_start sub_8073A44 -sub_8073A44: @ 8073A44 + thumb_func_start BattleAnimAdjustPanning +BattleAnimAdjustPanning: @ 8073A44 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -2867,7 +2867,7 @@ _08073AFC: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8073A44 + thumb_func_end BattleAnimAdjustPanning thumb_func_start sub_8073B08 sub_8073B08: @ 8073B08 @@ -2916,8 +2916,8 @@ _08073B56: bx r1 thumb_func_end sub_8073B08 - thumb_func_start sub_8073B60 -sub_8073B60: @ 8073B60 + thumb_func_start KeepPanInRange +KeepPanInRange: @ 8073B60 push {lr} lsls r0, 16 lsrs r1, r0, 16 @@ -2939,7 +2939,7 @@ _08073B7A: bx r1 .align 2, 0 _08073B84: .4byte 0x0000ffc0 - thumb_func_end sub_8073B60 + thumb_func_end KeepPanInRange thumb_func_start CalculatePanIncrement CalculatePanIncrement: @ 8073B88 @@ -2994,7 +2994,7 @@ ScriptCmd_playsewithpan: @ 8073BC8 orrs r4, r0 movs r0, 0x2 ldrsb r0, [r1, r0] - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -3019,7 +3019,7 @@ ScriptCmd_setpan: @ 8073C00 str r0, [r4] movs r0, 0x1 ldrsb r0, [r1, r0] - bl sub_8073A44 + bl BattleAnimAdjustPanning lsls r0, 24 asrs r0, 24 bl SE12PanpotControl @@ -3058,14 +3058,14 @@ ScriptCmd_panse_1B: @ 8073C2C ldrb r7, [r1, 0x5] movs r0, 0x2 ldrsb r0, [r1, r0] - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 24 asrs r4, 24 adds r0, r4, 0 - bl sub_8073A44 + bl BattleAnimAdjustPanning mov r8, r0 lsls r5, 24 asrs r5, 24 @@ -3387,7 +3387,7 @@ ScriptCmd_loopsewithpan: @ 8073ED0 mov r9, r2 movs r0, 0x2 ldrsb r0, [r1, r0] - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -3498,7 +3498,7 @@ ScriptCmd_waitplaysewithpan: @ 8073FB4 mov r8, r0 movs r0, 0x2 ldrsb r0, [r1, r0] - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s index 2d436f3ef..b09edc9ae 100644 --- a/asm/battle_anim_effects_1.s +++ b/asm/battle_anim_effects_1.s @@ -2672,7 +2672,7 @@ _080A3756: cmp r0, 0 bne _080A378A movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -2690,7 +2690,7 @@ _080A378A: str r0, [r4, 0x1C] movs r0, 0x40 negs r0, r0 - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -5915,7 +5915,7 @@ _080A5004: adds r0, r1 strh r0, [r5, 0x38] movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -6126,7 +6126,7 @@ _080A51A4: movs r2, 0x4 bl LoadPalette movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -7436,7 +7436,7 @@ sub_80A5B7C: @ 80A5B7C strh r5, [r4, 0x34] strh r5, [r4, 0x36] subs r0, 0x42 - bl sub_8073A44 + bl BattleAnimAdjustPanning lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x38] diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s index 722ff51ba..2fac4c956 100644 --- a/asm/battle_anim_effects_2.s +++ b/asm/battle_anim_effects_2.s @@ -1118,7 +1118,7 @@ _080A7690: strh r0, [r4, 0xA] movs r0, 0x3F negs r0, r0 - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -1789,7 +1789,7 @@ sub_80A7C1C: @ 80A7C1C push {r4,lr} adds r4, r0, 0 movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -3626,7 +3626,7 @@ sub_80A8A1C: @ 80A8A1C adds r0, 0x2 strh r0, [r4, 0x38] movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning lsls r0, 24 asrs r0, 24 strh r0, [r4, 0x3A] diff --git a/asm/battle_anim_effects_3.s b/asm/battle_anim_effects_3.s index d1356c619..192e2b15f 100644 --- a/asm/battle_anim_effects_3.s +++ b/asm/battle_anim_effects_3.s @@ -1414,7 +1414,7 @@ sub_80DED48: @ 80DED48 bne _080DEDA6 movs r0, 0x40 negs r0, r0 - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -2109,7 +2109,7 @@ _080DF2A8: lsrs r4, r0, 24 movs r0, 0x40 negs r0, r0 - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -3603,7 +3603,7 @@ _080DFE66: strh r0, [r1, 0x8] movs r0, 0x40 negs r0, r0 - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10554,7 +10554,7 @@ _080E3412: bne _080E34C6 movs r0, 0x40 negs r0, r0 - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10627,7 +10627,7 @@ _080E34A4: bne _080E34C6 movs r0, 0x40 negs r0, r0 - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10724,7 +10724,7 @@ _080E3564: cmp r0, 0 blt _080E365E movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10753,7 +10753,7 @@ _080E3588: cmp r1, 0x7F ble _080E365E movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -10797,7 +10797,7 @@ _080E35F8: cmp r0, 0x8 ble _080E365E movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 @@ -11883,7 +11883,7 @@ _080E3E96: cmp r1, r0 bne _080E3F28 movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 diff --git a/asm/battle_anim_mons.s b/asm/battle_anim_mons.s index ddb5d6977..81716bdc8 100644 --- a/asm/battle_anim_mons.s +++ b/asm/battle_anim_mons.s @@ -512,14 +512,14 @@ sub_8074844: @ 8074844 ldrh r0, [r1, 0x2] cmp r0, 0 bne _0807487C - ldr r1, _08074878 @ =gUnknown_2037F1C + ldr r1, _08074878 @ =gAnimBattlerSpecies lsls r0, r2, 1 adds r0, r1 ldrh r1, [r0] b _0807487E .align 2, 0 _08074874: .4byte gBattleSpritesDataPtr -_08074878: .4byte gUnknown_2037F1C +_08074878: .4byte gAnimBattlerSpecies _0807487C: ldrh r1, [r1, 0x2] _0807487E: diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s deleted file mode 100644 index dc5517ca0..000000000 --- a/asm/battle_anim_sound_tasks.s +++ /dev/null @@ -1,927 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80DCE10 -sub_80DCE10: @ 80DCE10 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080DCE6C @ =gTasks - lsls r6, r0, 2 - adds r6, r0 - lsls r6, 3 - adds r6, r1 - ldr r1, _080DCE70 @ =gBattleAnimArgs - ldrh r0, [r1] - strh r0, [r6, 0x8] - ldrh r0, [r1, 0x2] - strh r0, [r6, 0xA] - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x3F - bl sub_8073A44 - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl CalculatePanIncrement - strh r4, [r6, 0xC] - strh r5, [r6, 0xE] - lsls r0, 24 - asrs r0, 24 - strh r0, [r6, 0x10] - movs r0, 0xA - strh r0, [r6, 0x1C] - ldr r0, _080DCE74 @ =sub_80DCE78 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DCE6C: .4byte gTasks -_080DCE70: .4byte gBattleAnimArgs -_080DCE74: .4byte sub_80DCE78 - thumb_func_end sub_80DCE10 - - thumb_func_start sub_80DCE78 -sub_80DCE78: @ 80DCE78 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DCEA8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r5, [r4, 0xC] - ldrb r6, [r4, 0x10] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - bne _080DCEB0 - movs r0, 0x5 - strh r0, [r4, 0x1C] - strh r1, [r4, 0x1E] - ldr r0, _080DCEAC @ =sub_80DCEE4 - str r0, [r4] - b _080DCEDE - .align 2, 0 -_080DCEA8: .4byte gTasks -_080DCEAC: .4byte sub_80DCEE4 -_080DCEB0: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _080DCECA - strh r1, [r4, 0x1C] - ldrh r0, [r4, 0x8] - lsls r1, r5, 24 - asrs r1, 24 - bl PlaySE12WithPanning -_080DCECA: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r5, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - bl sub_8073B60 - strh r0, [r4, 0xC] -_080DCEDE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DCE78 - - thumb_func_start sub_80DCEE4 -sub_80DCEE4: @ 80DCEE4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080DCF34 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080DCF2C - movs r0, 0 - strh r0, [r4, 0x1C] - movs r0, 0x3F - bl sub_8073A44 - adds r1, r0, 0 - ldrh r0, [r4, 0xA] - lsls r1, 24 - asrs r1, 24 - bl PlaySE12WithPanning - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080DCF2C - adds r0, r5, 0 - bl DestroyAnimSoundTask -_080DCF2C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCF34: .4byte gTasks - thumb_func_end sub_80DCEE4 - - thumb_func_start mas_80DCF38 -mas_80DCF38: @ 80DCF38 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _080DCFDC @ =gBattleAnimArgs - ldrh r1, [r0] - str r1, [sp] - ldrb r5, [r0, 0x4] - ldrb r6, [r0, 0x6] - ldrb r3, [r0, 0x8] - mov r10, r3 - ldrb r7, [r0, 0xA] - ldrb r1, [r0, 0xC] - mov r9, r1 - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl sub_8073A44 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl sub_8073A44 - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _080DCFE0 @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - mov r6, sp - ldrh r6, [r6] - strh r6, [r1, 0x8] - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r10 - strh r0, [r1, 0x10] - strh r7, [r1, 0x12] - mov r3, r9 - strh r3, [r1, 0x14] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - strh r3, [r1, 0x20] - ldr r2, _080DCFE4 @ =sub_80DCFE8 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DCFDC: .4byte gBattleAnimArgs -_080DCFE0: .4byte gTasks -_080DCFE4: .4byte sub_80DCFE8 - thumb_func_end mas_80DCF38 - - thumb_func_start sub_80DCFE8 -sub_80DCFE8: @ 80DCFE8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080DD02C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x20] - adds r1, r0, 0x1 - strh r1, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x14 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080DD030 - movs r0, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x8] - movs r1, 0x1E - ldrsb r1, [r4, r1] - bl PlaySE12WithPanning - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _080DD030 - adds r0, r5, 0 - bl DestroyAnimSoundTask - b _080DD062 - .align 2, 0 -_080DD02C: .4byte gTasks -_080DD030: - ldr r1, _080DD068 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _080DD062 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xE] - ldrh r1, [r4, 0x1E] - adds r0, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8073B60 - strh r0, [r4, 0x1E] -_080DD062: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD068: .4byte gTasks - thumb_func_end sub_80DCFE8 - - thumb_func_start sub_80DD06C -sub_80DD06C: @ 80DD06C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080DD090 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DD098 - ldr r0, _080DD094 @ =gBattleAnimAttacker - ldrb r4, [r0] - b _080DD0BE - .align 2, 0 -_080DD090: .4byte gBattleAnimArgs -_080DD094: .4byte gBattleAnimAttacker -_080DD098: - cmp r0, 0x1 - bne _080DD0A8 - ldr r0, _080DD0A4 @ =gBattleAnimTarget - ldrb r4, [r0] - b _080DD0BE - .align 2, 0 -_080DD0A4: .4byte gBattleAnimTarget -_080DD0A8: - cmp r0, 0x2 - bne _080DD0B4 - ldr r0, _080DD0B0 @ =gBattleAnimAttacker - b _080DD0B6 - .align 2, 0 -_080DD0B0: .4byte gBattleAnimAttacker -_080DD0B4: - ldr r0, _080DD0E0 @ =gBattleAnimTarget -_080DD0B6: - ldrb r1, [r0] - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r1 -_080DD0BE: - ldr r0, _080DD0E4 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _080DD0CC - cmp r0, 0x3 - bne _080DD0E8 -_080DD0CC: - adds r0, r4, 0 - bl IsBattlerSpriteVisible - lsls r0, 24 - cmp r0, 0 - bne _080DD0E8 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _080DD13A - .align 2, 0 -_080DD0E0: .4byte gBattleAnimTarget -_080DD0E4: .4byte gBattleAnimArgs -_080DD0E8: - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080DD10C - ldr r1, _080DD104 @ =gBattlerPartyIndexes - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080DD108 @ =gEnemyParty - b _080DD11A - .align 2, 0 -_080DD104: .4byte gBattlerPartyIndexes -_080DD108: .4byte gEnemyParty -_080DD10C: - ldr r1, _080DD140 @ =gBattlerPartyIndexes - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080DD144 @ =gPlayerParty -_080DD11A: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080DD134 - lsls r1, r6, 24 - asrs r1, 24 - movs r2, 0x3 - bl PlayCry3 -_080DD134: - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080DD13A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DD140: .4byte gBattlerPartyIndexes -_080DD144: .4byte gPlayerParty - thumb_func_end sub_80DD06C - - thumb_func_start sub_80DD148 -sub_80DD148: @ 80DD148 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080DD16C @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DD174 - ldr r0, _080DD170 @ =gBattleAnimAttacker - ldrb r4, [r0] - b _080DD19A - .align 2, 0 -_080DD16C: .4byte gBattleAnimArgs -_080DD170: .4byte gBattleAnimAttacker -_080DD174: - cmp r0, 0x1 - bne _080DD184 - ldr r0, _080DD180 @ =gBattleAnimTarget - ldrb r4, [r0] - b _080DD19A - .align 2, 0 -_080DD180: .4byte gBattleAnimTarget -_080DD184: - cmp r0, 0x2 - bne _080DD190 - ldr r0, _080DD18C @ =gBattleAnimAttacker - b _080DD192 - .align 2, 0 -_080DD18C: .4byte gBattleAnimAttacker -_080DD190: - ldr r0, _080DD1BC @ =gBattleAnimTarget -_080DD192: - ldrb r1, [r0] - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r1 -_080DD19A: - ldr r0, _080DD1C0 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x1 - beq _080DD1A8 - cmp r0, 0x3 - bne _080DD1C4 -_080DD1A8: - adds r0, r4, 0 - bl IsBattlerSpriteVisible - lsls r0, 24 - cmp r0, 0 - bne _080DD1C4 - adds r0, r6, 0 - bl DestroyAnimVisualTask - b _080DD26A - .align 2, 0 -_080DD1BC: .4byte gBattleAnimTarget -_080DD1C0: .4byte gBattleAnimArgs -_080DD1C4: - adds r0, r4, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080DD1E8 - ldr r1, _080DD1E0 @ =gBattlerPartyIndexes - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080DD1E4 @ =gEnemyParty - b _080DD1F6 - .align 2, 0 -_080DD1E0: .4byte gBattlerPartyIndexes -_080DD1E4: .4byte gEnemyParty -_080DD1E8: - ldr r1, _080DD234 @ =gBattlerPartyIndexes - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080DD238 @ =gPlayerParty -_080DD1F6: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - ldr r1, _080DD23C @ =gTasks - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - ldr r4, _080DD240 @ =gBattleAnimArgs - ldrh r1, [r4, 0x2] - strh r1, [r0, 0x8] - strh r3, [r0, 0xA] - lsls r1, r5, 24 - asrs r1, 24 - strh r1, [r0, 0xC] - adds r5, r2, 0 - cmp r3, 0 - beq _080DD264 - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0xFF - bne _080DD244 - adds r0, r3, 0 - movs r2, 0x9 - bl PlayCry3 - b _080DD24C - .align 2, 0 -_080DD234: .4byte gBattlerPartyIndexes -_080DD238: .4byte gPlayerParty -_080DD23C: .4byte gTasks -_080DD240: .4byte gBattleAnimArgs -_080DD244: - adds r0, r3, 0 - movs r2, 0x7 - bl PlayCry3 -_080DD24C: - ldr r0, _080DD25C @ =gTasks - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080DD260 @ =sub_80DD270 - str r0, [r1] - b _080DD26A - .align 2, 0 -_080DD25C: .4byte gTasks -_080DD260: .4byte sub_80DD270 -_080DD264: - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080DD26A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DD148 - - thumb_func_start sub_80DD270 -sub_80DD270: @ 80DD270 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r4, r0, 24 - mov r9, r4 - ldr r1, _080DD2A0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r6, [r1, 0xA] - mov r8, r6 - ldrb r5, [r1, 0xC] - adds r7, r5, 0 - ldrh r2, [r1, 0x1A] - movs r3, 0x1A - ldrsh r0, [r1, r3] - cmp r0, 0x1 - bgt _080DD2A4 - adds r0, r2, 0x1 - strh r0, [r1, 0x1A] - b _080DD2E6 - .align 2, 0 -_080DD2A0: .4byte gTasks -_080DD2A4: - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0xFF - bne _080DD2CA - bl IsCryPlaying - lsls r0, 24 - cmp r0, 0 - bne _080DD2E6 - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0xA - bl PlayCry3 - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080DD2E6 -_080DD2CA: - bl IsCryPlaying - lsls r0, 24 - cmp r0, 0 - bne _080DD2E6 - lsls r1, r7, 24 - asrs r1, 24 - mov r0, r8 - movs r2, 0x8 - bl PlayCry3 - mov r0, r9 - bl DestroyAnimVisualTask -_080DD2E6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DD270 - - thumb_func_start sub_80DD2F4 -sub_80DD2F4: @ 80DD2F4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r1, _080DD318 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x1A] - movs r3, 0x1A - ldrsh r0, [r1, r3] - cmp r0, 0x1 - bgt _080DD31C - adds r0, r2, 0x1 - strh r0, [r1, 0x1A] - b _080DD32C - .align 2, 0 -_080DD318: .4byte gTasks -_080DD31C: - bl IsCryPlaying - lsls r0, 24 - cmp r0, 0 - bne _080DD32C - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080DD32C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD2F4 - - thumb_func_start sub_80DD334 -sub_80DD334: @ 80DD334 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x40 - negs r0, r0 - bl sub_8073A44 - ldr r2, _080DD374 @ =gUnknown_2037F1C - ldr r1, _080DD378 @ =gBattleAnimAttacker - ldrb r1, [r1] - lsls r1, 1 - adds r1, r2 - ldrh r3, [r1] - ldr r2, _080DD37C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r4, r1, r2 - strh r3, [r4, 0xA] - lsls r0, 24 - asrs r1, r0, 24 - strh r1, [r4, 0xC] - cmp r3, 0 - beq _080DD384 - adds r0, r3, 0 - movs r2, 0x4 - bl PlayCry3 - ldr r0, _080DD380 @ =sub_80DD390 - str r0, [r4] - b _080DD38A - .align 2, 0 -_080DD374: .4byte gUnknown_2037F1C -_080DD378: .4byte gBattleAnimAttacker -_080DD37C: .4byte gTasks -_080DD380: .4byte sub_80DD390 -_080DD384: - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080DD38A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DD334 - - thumb_func_start sub_80DD390 -sub_80DD390: @ 80DD390 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080DD3B4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x1A] - movs r2, 0x1A - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bgt _080DD3B8 - adds r0, r1, 0x1 - strh r0, [r4, 0x1A] - b _080DD3D4 - .align 2, 0 -_080DD3B4: .4byte gTasks -_080DD3B8: - bl IsCryPlaying - lsls r0, 24 - cmp r0, 0 - bne _080DD3D4 - ldrh r0, [r4, 0xA] - movs r1, 0xC - ldrsb r1, [r4, r1] - movs r2, 0x6 - bl PlayCry3 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080DD3D4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DD390 - - thumb_func_start sub_80DD3DC -sub_80DD3DC: @ 80DD3DC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080DD40C @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE1WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD40C: .4byte gBattleAnimArgs - thumb_func_end sub_80DD3DC - - thumb_func_start sub_80DD410 -sub_80DD410: @ 80DD410 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080DD440 @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl sub_8073A44 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE2WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD440: .4byte gBattleAnimArgs - thumb_func_end sub_80DD410 - - thumb_func_start sub_80DD444 -sub_80DD444: @ 80DD444 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _080DD4C8 @ =gBattleAnimArgs - ldrb r5, [r0, 0x2] - ldrb r6, [r0, 0x4] - ldrh r1, [r0, 0x6] - mov r9, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl sub_8073A44 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl sub_8073A44 - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _080DD4CC @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r9 - strh r0, [r1, 0x12] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - ldr r2, _080DD4D0 @ =sub_80DD4D4 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DD4C8: .4byte gBattleAnimArgs -_080DD4CC: .4byte gTasks -_080DD4D0: .4byte sub_80DD4D4 - thumb_func_end sub_80DD444 - - thumb_func_start sub_80DD4D4 -sub_80DD4D4: @ 80DD4D4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080DD52C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r2, [r4, 0xE] - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _080DD50E - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r0, r2, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8073B60 - strh r0, [r4, 0x1E] -_080DD50E: - ldr r1, _080DD530 @ =gUnknown_2037F24 - ldrh r0, [r4, 0x1E] - strb r0, [r1] - movs r3, 0x1E - ldrsh r1, [r4, r3] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080DD526 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080DD526: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD52C: .4byte gTasks -_080DD530: .4byte gUnknown_2037F24 - thumb_func_end sub_80DD4D4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/electric.s b/asm/electric.s index d020459d5..44e85bb50 100644 --- a/asm/electric.s +++ b/asm/electric.s @@ -2279,12 +2279,12 @@ _080AED20: movs r0, 0xC strh r0, [r5, 0x1E] subs r0, 0x4C - bl sub_8073A44 + bl BattleAnimAdjustPanning lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x20] movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning lsls r0, 24 asrs r0, 24 strh r0, [r5, 0x22] diff --git a/asm/psychic.s b/asm/psychic.s index cff45fc8c..32c5bed30 100644 --- a/asm/psychic.s +++ b/asm/psychic.s @@ -2099,7 +2099,7 @@ _080B3EFC: beq _080B3FA4 movs r0, 0x40 negs r0, r0 - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r1, r0, 0 lsls r1, 24 asrs r1, 24 diff --git a/asm/rock.s b/asm/rock.s index c0da2bcfa..a40f4935d 100644 --- a/asm/rock.s +++ b/asm/rock.s @@ -806,13 +806,13 @@ _080B4C7A: strh r4, [r6, 0x16] movs r0, 0x40 negs r0, r0 - bl sub_8073A44 + bl BattleAnimAdjustPanning adds r4, r0, 0 lsls r4, 24 asrs r4, 8 lsrs r4, 16 movs r0, 0x3F - bl sub_8073A44 + bl BattleAnimAdjustPanning lsls r0, 24 strh r4, [r6, 0x22] asrs r0, 24 diff --git a/include/battle_anim.h b/include/battle_anim.h index 3536e89f4..e1cdc1c13 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -65,6 +65,8 @@ extern u8 gUnknown_02038440; extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u16 gAnimMovePower; extern s32 gAnimMoveDmg; +extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; +extern u8 gUnknown_2037F24; void ClearBattleAnimationVars(void); void DoMoveAnim(u16 move); @@ -80,6 +82,7 @@ s8 BattleAnimAdjustPanning2(s8 pan); s16 sub_80A52EC(s16 a); s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); bool8 IsBattlerSpriteVisible(u8 battlerId); +s16 KeepPanInRange(s16 a, s32 oldPan); // battle_anim_80FE840.s void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); diff --git a/ld_script.txt b/ld_script.txt index fbf00f9c1..a09d3f607 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -200,7 +200,7 @@ SECTIONS { src/save.o(.text); src/mystery_event_script.o(.text); asm/field_effect_helpers.o(.text); - asm/battle_anim_sound_tasks.o(.text); + src/battle_anim_sound_tasks.o(.text); src/battle_controller_safari.o(.text); src/fldeff_sweetscent.o(.text); asm/battle_anim_effects_3.o(.text); diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c new file mode 100644 index 000000000..e67c91bfa --- /dev/null +++ b/src/battle_anim_sound_tasks.c @@ -0,0 +1,313 @@ +#include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "sound.h" +#include "task.h" +#include "constants/battle_anim.h" +#include "constants/species.h" + +static void sub_80DCE78(u8 taskId); +static void sub_80DCEE4(u8 taskId); +static void sub_80DCFE8(u8 taskId); +static void sub_80DD270(u8 taskId); +static void sub_80DD390(u8 taskId); +static void sub_80DD4D4(u8 taskId); + +void sub_80DCE10(u8 taskId) +{ + s8 pan1, pan2, panIncrement; + + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gTasks[taskId].data[1] = gBattleAnimArgs[1]; + pan1 = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); + pan2 = BattleAnimAdjustPanning(SOUND_PAN_TARGET); + panIncrement = CalculatePanIncrement(pan1, pan2, 2); + gTasks[taskId].data[2] = pan1; + gTasks[taskId].data[3] = pan2; + gTasks[taskId].data[4] = panIncrement; + gTasks[taskId].data[10] = 10; + gTasks[taskId].func = sub_80DCE78; +} + +static void sub_80DCE78(u8 taskId) +{ + s16 pan = gTasks[taskId].data[2]; + s8 panIncrement = gTasks[taskId].data[4]; + + if (++gTasks[taskId].data[11] == 111) + { + gTasks[taskId].data[10] = 5; + gTasks[taskId].data[11] = 0; + gTasks[taskId].func = sub_80DCEE4; + } + else + { + if (++gTasks[taskId].data[10] == 11) + { + gTasks[taskId].data[10] = 0; + PlaySE12WithPanning(gTasks[taskId].data[0], pan); + } + pan += panIncrement; + gTasks[taskId].data[2] = KeepPanInRange(pan, panIncrement); + } +} + +static void sub_80DCEE4(u8 taskId) +{ + if (++gTasks[taskId].data[10] == 6) + { + s8 pan; + + gTasks[taskId].data[10] = 0; + pan = BattleAnimAdjustPanning(SOUND_PAN_TARGET); + PlaySE12WithPanning(gTasks[taskId].data[1], pan); + if (++gTasks[taskId].data[11] == 2) + DestroyAnimSoundTask(taskId); + } +} + +void mas_80DCF38(u8 taskId) +{ + u16 songId = gBattleAnimArgs[0]; + s8 targetPan = gBattleAnimArgs[2]; + s8 panIncrement = gBattleAnimArgs[3]; + u8 r10 = gBattleAnimArgs[4]; + u8 r7 = gBattleAnimArgs[5]; + u8 r9 = gBattleAnimArgs[6]; + s8 sourcePan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + + targetPan = BattleAnimAdjustPanning(targetPan); + panIncrement = CalculatePanIncrement(sourcePan, targetPan, panIncrement); + gTasks[taskId].data[0] = songId; + gTasks[taskId].data[1] = sourcePan; + gTasks[taskId].data[2] = targetPan; + gTasks[taskId].data[3] = panIncrement; + gTasks[taskId].data[4] = r10; + gTasks[taskId].data[5] = r7; + gTasks[taskId].data[6] = r9; + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[11] = sourcePan; + gTasks[taskId].data[12] = r9; + gTasks[taskId].func = sub_80DCFE8; + sub_80DCFE8(taskId); +} + +static void sub_80DCFE8(u8 taskId) +{ + if (gTasks[taskId].data[12]++ == gTasks[taskId].data[6]) + { + gTasks[taskId].data[12] = 0; + PlaySE12WithPanning(gTasks[taskId].data[0], gTasks[taskId].data[11]); + if (--gTasks[taskId].data[4] == 0) + { + DestroyAnimSoundTask(taskId); + return; + } + } + if (gTasks[taskId].data[10]++ == gTasks[taskId].data[5]) + { + u16 dPan, oldPan; + + gTasks[taskId].data[10] = 0; + dPan = gTasks[taskId].data[3]; + oldPan = gTasks[taskId].data[11] ; + gTasks[taskId].data[11] = dPan + oldPan; + gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan); + } +} + +void sub_80DD06C(u8 taskId) +{ + u16 species = SPECIES_NONE; + u8 battlerId; + s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); + + // Get wanted battler. + if (gBattleAnimArgs[0] == ANIM_ATTACKER) + battlerId = gBattleAnimAttacker; + else if (gBattleAnimArgs[0] == ANIM_TARGET) + battlerId = gBattleAnimTarget; + else if (gBattleAnimArgs[0] == ANIM_ATK_PARTNER) + battlerId = BATTLE_PARTNER(gBattleAnimAttacker); + else + battlerId = BATTLE_PARTNER(gBattleAnimTarget); + // Check if battler is visible. + if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER) + && !IsBattlerSpriteVisible(battlerId)) + { + DestroyAnimVisualTask(taskId); + return; + } + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + else + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + if (species != SPECIES_NONE) + PlayCry3(species, pan, 3); + DestroyAnimVisualTask(taskId); +} + +void sub_80DD148(u8 taskId) +{ + u16 species = SPECIES_NONE; + u8 battlerId; + s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); + + // Get wanted battler. + if (gBattleAnimArgs[0] == ANIM_ATTACKER) + battlerId = gBattleAnimAttacker; + else if (gBattleAnimArgs[0] == ANIM_TARGET) + battlerId = gBattleAnimTarget; + else if (gBattleAnimArgs[0] == ANIM_ATK_PARTNER) + battlerId = BATTLE_PARTNER(gBattleAnimAttacker); + else + battlerId = BATTLE_PARTNER(gBattleAnimTarget); + // Check if battler is visible. + if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER) + && !IsBattlerSpriteVisible(battlerId)) + { + DestroyAnimVisualTask(taskId); + return; + } + if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + else + species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + gTasks[taskId].data[0] = gBattleAnimArgs[1]; + gTasks[taskId].data[1] = species; + gTasks[taskId].data[2] = pan; + if (species != SPECIES_NONE) + { + if (gBattleAnimArgs[1] == TASK_NONE) + PlayCry3(species, pan, 9); + else + PlayCry3(species, pan, 7); + gTasks[taskId].func = sub_80DD270; + } + else + { + DestroyAnimVisualTask(taskId); + } +} + +static void sub_80DD270(u8 taskId) +{ + u16 species = gTasks[taskId].data[1]; + s8 pan = gTasks[taskId].data[2]; + + if (gTasks[taskId].data[9] < 2) + { + ++gTasks[taskId].data[9]; + } + else if (gTasks[taskId].data[0] == TASK_NONE) + { + if (!IsCryPlaying()) + { + PlayCry3(species, pan, 10); + DestroyAnimVisualTask(taskId); + } + } + else if (!IsCryPlaying()) + { + PlayCry3(species, pan, 8); + DestroyAnimVisualTask(taskId); + } +} + +void sub_80DD2F4(u8 taskId) +{ + if (gTasks[taskId].data[9] < 2) + ++gTasks[taskId].data[9]; + else if (!IsCryPlaying()) + DestroyAnimVisualTask(taskId); +} + +void sub_80DD334(u8 taskId) +{ + u16 species; + s8 pan; + + pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); + species = gAnimBattlerSpecies[gBattleAnimAttacker]; + gTasks[taskId].data[1] = species; + gTasks[taskId].data[2] = pan; + if (species != SPECIES_NONE) + { + PlayCry3(species, pan, 4); + gTasks[taskId].func = sub_80DD390; + } + else + { + DestroyAnimVisualTask(taskId); + } +} + +static void sub_80DD390(u8 taskId) +{ + + if (gTasks[taskId].data[9] < 2) + { + ++gTasks[taskId].data[9]; + } + else if (!IsCryPlaying()) + { + u16 species = gTasks[taskId].data[1]; + s8 pan = gTasks[taskId].data[2]; + + PlayCry3(species, pan, 6); + DestroyAnimVisualTask(taskId); + } +} + +void sub_80DD3DC(u8 taskId) +{ + u16 songId = gBattleAnimArgs[0]; + s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + + PlaySE1WithPanning(songId, pan); + DestroyAnimVisualTask(taskId); +} + +void sub_80DD410(u8 taskId) +{ + u16 songId = gBattleAnimArgs[0]; + s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + + PlaySE2WithPanning(songId, pan); + DestroyAnimVisualTask(taskId); +} + +void sub_80DD444(u8 taskId) +{ + s8 targetPan = gBattleAnimArgs[1]; + s8 panIncrement = gBattleAnimArgs[2]; + u16 r9 = gBattleAnimArgs[3]; + s8 sourcePan = BattleAnimAdjustPanning(gBattleAnimArgs[0]); + + targetPan = BattleAnimAdjustPanning(targetPan); + panIncrement = CalculatePanIncrement(sourcePan, targetPan, panIncrement); + gTasks[taskId].data[1] = sourcePan; + gTasks[taskId].data[2] = targetPan; + gTasks[taskId].data[3] = panIncrement; + gTasks[taskId].data[5] = r9; + gTasks[taskId].data[10] = 0; + gTasks[taskId].data[11] = sourcePan; + gTasks[taskId].func = sub_80DD4D4; + sub_80DD4D4(taskId); +} + +static void sub_80DD4D4(u8 taskId) +{ + u16 oldPan, panIncrement = gTasks[taskId].data[3]; + + if (gTasks[taskId].data[10]++ == gTasks[taskId].data[5]) + { + gTasks[taskId].data[10] = 0; + oldPan = gTasks[taskId].data[11]; + gTasks[taskId].data[11] = panIncrement + oldPan; + gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan); + } + gUnknown_2037F24 = gTasks[taskId].data[11]; + if (gTasks[taskId].data[11] == gTasks[taskId].data[2]) + DestroyAnimVisualTask(taskId); +} diff --git a/sym_ewram.txt b/sym_ewram.txt index f821f7170..b405f8362 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -669,7 +669,7 @@ gBattleAnimAttacker: @ 2037F1A gBattleAnimTarget: @ 2037F1B .space 0x1 -gUnknown_2037F1C: @ 2037F1C +gAnimBattlerSpecies: @ 2037F1C .space 0x8 gUnknown_2037F24: @ 2037F24 |