diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index dc99ac9ce3..9d309ec154 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -36122,7 +36122,7 @@ gBattleAnimMove_GMaxGoldRush:: @@@ DYNAMAX AND MAX RAIDS gBattleAnimGeneral_DynamaxGrowth:: @ PORTED FROM CFRU - createvisualtask SoundTask_PlayCryWithEcho, 2, ANIM_ATTACKER, 2 + createvisualtask SoundTask_PlayDynamaxCry, 0 delay 8 createvisualtask AnimTask_DynamaxGrowth, 0x5, 0x1, 0x0 waitforvisualfinish diff --git a/include/constants/sound.h b/include/constants/sound.h index dc434bcf8a..c16080d1dd 100644 --- a/include/constants/sound.h +++ b/include/constants/sound.h @@ -33,6 +33,7 @@ #define CRY_MODE_GROWL_2 10 // For 2nd cry used by the move Growl #define CRY_MODE_WEAK 11 // Used when a Pokémon is unhealthy #define CRY_MODE_WEAK_DOUBLES 12 // Equivalent to CRY_MODE_DOUBLES for CRY_MODE_WEAK +#define CRY_MODE_DYNAMAX 13 // Used during Dynamax // Given to SoundTask_PlayDoubleCry to determine which cry mode to use. Values are arbitrary #define DOUBLE_CRY_ROAR 2 diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index 1bd7008aa4..6645e6273b 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -311,6 +311,13 @@ void SoundTask_PlayCryWithEcho(u8 taskId) DestroyAnimVisualTask(taskId); } +void SoundTask_PlayDynamaxCry(u8 taskId) +{ + u16 species = (GetIllusionMonSpecies(gBattleAnimAttacker) != SPECIES_NONE) ? GetIllusionMonSpecies(gBattleAnimAttacker) : gAnimBattlerSpecies[gBattleAnimAttacker]; + PlayCry_ByMode(species, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER), CRY_MODE_DYNAMAX); + gTasks[taskId].func = SoundTask_WaitForCry; +} + static void SoundTask_PlayCryWithEcho_Step(u8 taskId) { u16 species = gTasks[taskId].tSpecies; diff --git a/src/pokemon_sprite_visualizer.c b/src/pokemon_sprite_visualizer.c index 3a764e9a3b..6984290f13 100644 --- a/src/pokemon_sprite_visualizer.c +++ b/src/pokemon_sprite_visualizer.c @@ -1673,12 +1673,12 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId) if (JOY_NEW(L_BUTTON) && (Backsprite->callback == SpriteCallbackDummy)) { - PlayCryInternal(data->currentmonId, 0, 120, 10, 0); + PlayCryInternal(data->currentmonId, 0, 120, 10, CRY_MODE_NORMAL); LaunchAnimationTaskForBackSprite(Backsprite, data->animIdBack-1); } if (JOY_NEW(R_BUTTON) && (Frontsprite->callback == SpriteCallbackDummy)) { - PlayCryInternal(data->currentmonId, 0, 120, 10, 0); + PlayCryInternal(data->currentmonId, 0, 120, 10, CRY_MODE_NORMAL); if (HasTwoFramesAnimation(data->currentmonId)) StartSpriteAnim(Frontsprite, 1); diff --git a/src/sound.c b/src/sound.c index f1f10f3b03..0eec129dde 100644 --- a/src/sound.c +++ b/src/sound.c @@ -456,6 +456,12 @@ void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode) case CRY_MODE_WEAK: pitch = 15000; break; + case CRY_MODE_DYNAMAX: + length = 255; + release = 255; + pitch = 12150; + chorus = 200; + break; } SetPokemonCryVolume(volume);