Disambiguate cry functions
This commit is contained in:
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user