oh NOW I understand. Sorry.
The index used is the previous alt #, but the folder it’s chosen from is the current alt #.
Tested just now.
Sequence with chhum0-4 in font root or in each alt folder(same expected results):
-> Playing Starkiller1/alt000/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt001/chhum0.wav
-> Playing Starkiller1/alt001/hum.wav
-> unit = 0 vol = 0.50, Playing Starkiller1/alt002/chhum1.wav
-> Playing Starkiller1/alt002/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt003/chhum2.wav
-> Playing Starkiller1/alt003/hum.wav
-> unit = 0 vol = 0.50, Playing Starkiller1/alt004/chhum3.wav
-> Playing Starkiller1/alt004/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt000/chhum4.wav
-> Playing Starkiller1/alt000/hum.wav
Ok great - makes sense and understood, thanks.
Do we want to have altchng behave the same way to leverage expectations when building a font?
It’s currently not set with Select(), so while it does play from the {to} alt, it does not use the indexing and is randomly chosen.
Unless that’s intentional? (which is fine, just seeing if it should maybe be more uniform)
-> Playing Starkiller1/alt000/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt001/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt001/altchng4.wav
-> Playing Starkiller1/alt001/hum.wav
-> unit = 0 vol = 0.50, Playing Starkiller1/alt002/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt002/altchng0.wav
-> Playing Starkiller1/alt002/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt003/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt003/altchng1.wav
-> Playing Starkiller1/alt003/hum.wav
-> unit = 0 vol = 0.50, Playing Starkiller1/alt004/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt004/altchng4.wav
-> Playing Starkiller1/alt004/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt000/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt000/altchng0.wav
-> Playing Starkiller1/alt000/hum.wav
-> unit = 0 vol = 0.50, Playing Starkiller1/alt001/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt001/altchng2.wav
-> Playing Starkiller1/alt001/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt002/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt002/altchng3.wav
-> Playing Starkiller1/alt002/hum.wav
-> unit = 0 vol = 0.50, Playing Starkiller1/alt003/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt003/altchng0.wav
-> Playing Starkiller1/alt003/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt004/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt004/altchng2.wav
-> Playing Starkiller1/alt004/hum.wav
-> unit = 0 vol = 0.50, Playing Starkiller1/alt000/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt000/altchng3.wav
-> Playing Starkiller1/alt000/hum.wav
Modifying hybrid_font.h like this is a small change:
case EFFECT_ALT_SOUND: {
int previous_alternative = 0;
if (num_alternatives) {
previous_alternative = current_alternative;
if (SaberBase::sound_number == -1) {
// Next alternative
if (++current_alternative >= num_alternatives) current_alternative = 0;
} else {
// Select a specific alternative.
current_alternative = std::min<int>(SaberBase::sound_number, num_alternatives - 1);
// Set the sound num to -1 so that the altchng sound is random.
SaberBase::sound_number = -1;
}
RestartHum(previous_alternative);
}
SFX_altchng.Select(previous_alternative);
PlayCommon(&SFX_altchng);
break;
}
and viola
-> Playing Starkiller1/alt000/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt001/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt001/altchng0.wav
-> Playing Starkiller1/alt001/hum.wav
-> unit = 0 vol = 0.50, Playing Starkiller1/alt002/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt002/altchng1.wav
-> Playing Starkiller1/alt002/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt003/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt003/altchng2.wav
-> Playing Starkiller1/alt003/hum.wav
-> unit = 0 vol = 0.50, Playing Starkiller1/alt004/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt004/altchng3.wav
-> Playing Starkiller1/alt004/hum.wav
-> unit = 1 vol = 0.50, Playing Starkiller1/alt000/hum.wav
-> unit = 4 vol = 0.50, Playing Starkiller1/alt000/altchng4.wav
-> Playing Starkiller1/alt000/hum.wav