From d2b9b9ef21d09fb36d20c289bab3a8d035717c31 Mon Sep 17 00:00:00 2001 From: Jaromir Wysoglad Date: Tue, 23 Jul 2019 10:52:17 +0200 Subject: MORTEVIELLE: Map characters to different voices --- engines/mortevielle/sound.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'engines/mortevielle') diff --git a/engines/mortevielle/sound.cpp b/engines/mortevielle/sound.cpp index a986db47f6..96b4cdbfa3 100644 --- a/engines/mortevielle/sound.cpp +++ b/engines/mortevielle/sound.cpp @@ -788,15 +788,18 @@ void SoundManager::startSpeech(int rep, int ht, int typ) { return; Common::Array voices; int pitch; + int voiceIndex; bool male; if (ht > 5) { voices = _ttsMan->getVoiceIndicesByGender(Common::TTSVoice::FEMALE); pitch = ht - 6; + voiceIndex = pitch; pitch *= 5; male = false; } else { voices = _ttsMan->getVoiceIndicesByGender(Common::TTSVoice::MALE); pitch = ht - 5; + voiceIndex = -pitch; pitch *= 4; male = true; } @@ -805,7 +808,9 @@ void SoundManager::startSpeech(int rep, int ht, int typ) { if (voices.empty()) _ttsMan->setVoice(0); else { - _ttsMan->setVoice(voices[0]); + voiceIndex %= voices.size(); + _ttsMan->setVoice(voices[voiceIndex]); + debug("voice set: %d", voices[voiceIndex]); } // If the selected voice is a different gender, than we want, just try to // set the pitch so it may sound a little bit closer to the gender we want -- cgit v1.2.3