aboutsummaryrefslogtreecommitdiff
path: root/engines/queen
diff options
context:
space:
mode:
authorCameron Cawley2019-09-22 22:11:53 +0100
committerEugene Sandulenko2019-09-22 23:18:14 +0200
commit6cf52b515dc950f69c000929bc588d5653169f20 (patch)
tree332033ecdff65f1a8940afa9bb1eb88e5d2ffeaa /engines/queen
parentde879dd5380c16b03fb2c74d6580bd485f3487f5 (diff)
downloadscummvm-rg350-6cf52b515dc950f69c000929bc588d5653169f20.tar.gz
scummvm-rg350-6cf52b515dc950f69c000929bc588d5653169f20.tar.bz2
scummvm-rg350-6cf52b515dc950f69c000929bc588d5653169f20.zip
QUEEN: Prevent hang when closing core during dialog
Co-authored-by: jdgleaver <jdgleaver@users.noreply.github.com>
Diffstat (limited to 'engines/queen')
-rw-r--r--engines/queen/sound.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/engines/queen/sound.cpp b/engines/queen/sound.cpp
index d715d3737e..85c1f82bf0 100644
--- a/engines/queen/sound.cpp
+++ b/engines/queen/sound.cpp
@@ -289,7 +289,9 @@ void PCSound::playSound(const char *base, bool isSpeech) {
}
strcat(name, ".SB");
if (isSpeech) {
- while (_mixer->isSoundHandleActive(_speechHandle)) {
+ // Add _vm->shouldQuit() check here, otherwise game gets stuck
+ // in an infinite loop if we try to quit while a sound is playing...
+ while (_mixer->isSoundHandleActive(_speechHandle) && !_vm->shouldQuit()) {
_vm->input()->delay(10);
}
} else {