[Scummvm-cvs-logs] scummvm master -> eb7f7b9fb6c56c125a66b6496cbe712198c75395

dreammaster dreammaster at scummvm.org
Thu Oct 17 05:02:02 CEST 2013


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
eb7f7b9fb6 TSAGE: Fixes for calling voice playback correctly when showing on-screen text


Commit: eb7f7b9fb6c56c125a66b6496cbe712198c75395
    https://github.com/scummvm/scummvm/commit/eb7f7b9fb6c56c125a66b6496cbe712198c75395
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2013-10-16T20:01:26-07:00

Commit Message:
TSAGE: Fixes for calling voice playback correctly when showing on-screen text

Changed paths:
    engines/tsage/core.cpp



diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index bd7610c..3332b12 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -1749,9 +1749,22 @@ void SceneItem::display(int resNum, int lineNum, ...) {
 		}
 
 		g_globals->_sceneText.fixPriority(255);
+
+		// In Return to Ringworld, if in voice mode only, don't show the text
+		if ((g_vm->getGameID() == GType_Ringworld2) && (R2_GLOBALS._speechSubtitles & SPEECH_VOICE)
+				&& !(R2_GLOBALS._speechSubtitles & SPEECH_TEXT))
+			g_globals->_sceneText.hide();
+
 		g_globals->_sceneObjects->draw();
 	}
 
+	// For Return to Ringworld, play the voice overs in sequence
+	if ((g_vm->getGameID() == GType_Ringworld2) && (R2_GLOBALS._speechSubtitles & SPEECH_VOICE)
+			&& !playList.empty()) {
+		R2_GLOBALS._playStream.play(*playList.begin(), NULL);
+		playList.pop_front();
+	}
+
 	// Unless the flag is set to keep the message on-screen, show it until a mouse or keypress, then remove it
 	if (!keepOnscreen && !msg.empty()) {
 		Event event;
@@ -1761,14 +1774,23 @@ void SceneItem::display(int resNum, int lineNum, ...) {
 				EVENT_BUTTON_DOWN | EVENT_KEYPRESS)) {
 			GLOBALS._screenSurface.updateScreen();
 			g_system->delayMillis(10);
-		}
 
-		// For Return to Ringworld, play the voice overs in sequence
-		if ((g_vm->getGameID() == GType_Ringworld2) && !playList.empty() && !R2_GLOBALS._playStream.isPlaying()) {
-			R2_GLOBALS._playStream.play(*playList.begin(), NULL);
-			playList.pop_front();
+			if ((g_vm->getGameID() == GType_Ringworld2) && (R2_GLOBALS._speechSubtitles & SPEECH_VOICE)) {
+				// Allow the play stream to do processing
+				R2_GLOBALS._playStream.dispatch();
+				if (!R2_GLOBALS._playStream.isPlaying()) {
+					// Check if there are further voice samples to play
+					if (!playList.empty()) {
+						R2_GLOBALS._playStream.play(*playList.begin(), NULL);
+						playList.pop_front();
+					}
+				}
+			}
 		}
 
+		if (g_vm->getGameID() == GType_Ringworld2)
+			R2_GLOBALS._playStream.stop();
+
 		g_globals->_sceneText.remove();
 	}
 






More information about the Scummvm-git-logs mailing list