aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2013-10-21 22:49:10 -0400
committerPaul Gilbert2013-10-21 22:49:10 -0400
commitbf8896f7dfcefeed408a279496d0971af2e03e07 (patch)
treef8a9156522223c56f6210d9322502d9fd5ce7ac7
parent4bcbd7890945615a62cbee0c6600d9d2c356df5d (diff)
downloadscummvm-rg350-bf8896f7dfcefeed408a279496d0971af2e03e07.tar.gz
scummvm-rg350-bf8896f7dfcefeed408a279496d0971af2e03e07.tar.bz2
scummvm-rg350-bf8896f7dfcefeed408a279496d0971af2e03e07.zip
TSAGE: Fix for R2R conversations playing when playing voice without subtitles
-rw-r--r--engines/tsage/ringworld2/ringworld2_speakers.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp
index 4be3212e77..8b6ce4a1f3 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.cpp
+++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp
@@ -76,7 +76,7 @@ void VisualSpeaker::signal() {
_fieldF8 = 1;
}
- if ((R2_GLOBALS._speechSubtitles & SPEECH_TEXT) || _soundId)
+ if ((R2_GLOBALS._speechSubtitles & SPEECH_TEXT) || !_soundId)
_sceneText.show();
if ((R2_GLOBALS._speechSubtitles & SPEECH_VOICE) && _soundId) {
@@ -132,6 +132,7 @@ void VisualSpeaker::dispatch() {
_object1.setFrame(1);
if (!(R2_GLOBALS._speechSubtitles & SPEECH_TEXT)) {
+ // Don't bother waiting for a mouse click to start the next speech segment
_action->setDelay(1);
}
}
@@ -244,8 +245,13 @@ void VisualSpeaker::setText(const Common::String &msg) {
_sceneText.hide();
} else {
if ((R2_GLOBALS._speechSubtitles & SPEECH_VOICE) && _soundId) {
- if (!R2_GLOBALS._playStream.play(_soundId, NULL))
+ if (!R2_GLOBALS._playStream.play(_soundId, NULL)) {
+ // Couldn't play voice, so fall back on showing text
_sceneText.show();
+ } else {
+ _numFrames = 2;
+ _soundId = 0;
+ }
}
}
}