aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/mortevielle/sound.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/engines/mortevielle/sound.cpp b/engines/mortevielle/sound.cpp
index 097ea8e76d..8f96c5bcec 100644
--- a/engines/mortevielle/sound.cpp
+++ b/engines/mortevielle/sound.cpp
@@ -848,15 +848,22 @@ void SoundManager::startSpeech(int rep, int ht, int typ) {
}
void SoundManager::waitSpeech() {
+ if (_soundType == 0) {
#ifdef USE_TTS
- if (!_ttsMan)
- return;
- while (_ttsMan->isSpeaking() && !_vm->keyPressed() && !_vm->_mouseClick && !_vm->shouldQuit())
- ;
- // In case the handle is still active, stop it.
- _ttsMan->stop();
+ if (!_ttsMan)
+ return;
+ while (_ttsMan->isSpeaking() && !_vm->keyPressed() && !_vm->_mouseClick && !_vm->shouldQuit())
+ ;
+ // In case the TTS is still speaking, stop it.
+ _ttsMan->stop();
#endif // USE_TTS
+ } else {
+ while (_mixer->isSoundHandleActive(_soundHandle) && !_vm->keyPressed() && !_vm->_mouseClick && !_vm->shouldQuit())
+ ;
+ // In case the handle is still active, stop it.
+ _mixer->stopHandle(_soundHandle);
+ }
if (!_vm->keyPressed() && !_vm->_mouseClick && !_vm->shouldQuit())
g_system->delayMillis(600);
}