summaryrefslogtreecommitdiff
path: root/src/battle_anim_sound_tasks.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2021-11-07 13:54:44 -0500
committerGriffinR <griffin.g.richards@gmail.com>2021-11-07 14:26:09 -0500
commitc4169cfd290dcf7703b79debd66142b277af5613 (patch)
tree4142cd4e843d863532a2dfe81f82877b26d9cbb0 /src/battle_anim_sound_tasks.c
parent54b254a829d973345b0d282b7a4ffd7458a5c7da (diff)
Disambiguate cry functions
Diffstat (limited to 'src/battle_anim_sound_tasks.c')
-rw-r--r--src/battle_anim_sound_tasks.c47
1 files changed, 29 insertions, 18 deletions
diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c
index 435c5dcdc..7180041b3 100644
--- a/src/battle_anim_sound_tasks.c
+++ b/src/battle_anim_sound_tasks.c
@@ -168,7 +168,7 @@ void SoundTask_PlayCryHighPitch(u8 taskId)
}
if (species != SPECIES_NONE)
- PlayCry3(species, pan, CRY_MODE_HIGH_PITCH);
+ PlayCry_ByMode(species, pan, CRY_MODE_HIGH_PITCH);
DestroyAnimVisualTask(taskId);
}
@@ -220,9 +220,9 @@ void SoundTask_PlayDoubleCry(u8 taskId)
if (species != SPECIES_NONE)
{
if (gBattleAnimArgs[1] == DOUBLE_CRY_GROWL)
- PlayCry3(species, pan, CRY_MODE_GROWL_1);
+ PlayCry_ByMode(species, pan, CRY_MODE_GROWL_1);
else // DOUBLE_CRY_ROAR
- PlayCry3(species, pan, CRY_MODE_ROAR_1);
+ PlayCry_ByMode(species, pan, CRY_MODE_ROAR_1);
gTasks[taskId].func = SoundTask_PlayDoubleCry_Step;
}
@@ -247,7 +247,7 @@ static void SoundTask_PlayDoubleCry_Step(u8 taskId)
{
if (!IsCryPlaying())
{
- PlayCry3(species, pan, CRY_MODE_GROWL_2);
+ PlayCry_ByMode(species, pan, CRY_MODE_GROWL_2);
DestroyAnimVisualTask(taskId);
}
}
@@ -255,7 +255,7 @@ static void SoundTask_PlayDoubleCry_Step(u8 taskId)
{
if (!IsCryPlaying())
{
- PlayCry3(species, pan, CRY_MODE_ROAR_2);
+ PlayCry_ByMode(species, pan, CRY_MODE_ROAR_2);
DestroyAnimVisualTask(taskId);
}
}
@@ -275,12 +275,18 @@ void SoundTask_WaitForCry(u8 taskId)
}
}
+
+#define tSpecies data[1]
+#define tPan data[2]
+#define tState data[9]
+#define tLastCry data[10] // If it's not the last cry, don't try to restore the BGM, because another is coming
+
void SoundTask_PlayCryWithEcho(u8 taskId)
{
u16 species;
s8 pan;
- gTasks[taskId].data[10] = gBattleAnimArgs[0];
+ gTasks[taskId].tLastCry = gBattleAnimArgs[0];
pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
if (IsContest())
@@ -288,8 +294,8 @@ void SoundTask_PlayCryWithEcho(u8 taskId)
else
species = gAnimBattlerSpecies[gBattleAnimAttacker];
- gTasks[taskId].data[1] = species;
- gTasks[taskId].data[2] = pan;
+ gTasks[taskId].tSpecies = species;
+ gTasks[taskId].tPan = pan;
if (species != SPECIES_NONE)
gTasks[taskId].func = SoundTask_PlayCryWithEcho_Step;
@@ -299,39 +305,44 @@ void SoundTask_PlayCryWithEcho(u8 taskId)
static void SoundTask_PlayCryWithEcho_Step(u8 taskId)
{
- u16 species = gTasks[taskId].data[1];
- s8 pan = gTasks[taskId].data[2];
+ u16 species = gTasks[taskId].tSpecies;
+ s8 pan = gTasks[taskId].tPan;
// Note the cases are not in order of execution
- switch (gTasks[taskId].data[9])
+ switch (gTasks[taskId].tState)
{
case 2:
- PlayCry6(species, pan, CRY_MODE_ECHO_END);
- gTasks[taskId].data[9]++;
+ PlayCry_DuckNoRestore(species, pan, CRY_MODE_ECHO_END);
+ gTasks[taskId].tState++;
break;
case 1:
case 3:
case 4:
- gTasks[taskId].data[9]++;
+ gTasks[taskId].tState++;
break;
case 5:
if (IsCryPlaying())
break;
case 0:
StopCryAndClearCrySongs();
- gTasks[taskId].data[9]++;
+ gTasks[taskId].tState++;
break;
default:
- if (gTasks[taskId].data[10] == 0)
- PlayCry6(species, pan, CRY_MODE_ECHO_START);
+ if (!gTasks[taskId].tLastCry)
+ PlayCry_DuckNoRestore(species, pan, CRY_MODE_ECHO_START);
else
- PlayCry3(species, pan, CRY_MODE_ECHO_START);
+ PlayCry_ByMode(species, pan, CRY_MODE_ECHO_START);
DestroyAnimVisualTask(taskId);
break;
}
}
+#undef tSpecies
+#undef tPan
+#undef tState
+#undef tLastCry
+
void SoundTask_PlaySE1WithPanning(u8 taskId)
{
u16 songId = gBattleAnimArgs[0];