[Scummvm-git-logs] scummvm master -> fe1617ac513932b4ae5e202ad6bb4ee61289ecb0

dreammaster dreammaster at scummvm.org
Sat Jul 15 17:29:28 CEST 2017


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:
fe1617ac51 TITANIC: Fix pause during intro credits cutscene


Commit: fe1617ac513932b4ae5e202ad6bb4ee61289ecb0
    https://github.com/scummvm/scummvm/commit/fe1617ac513932b4ae5e202ad6bb4ee61289ecb0
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-07-15T11:29:21-04:00

Commit Message:
TITANIC: Fix pause during intro credits cutscene

Changed paths:
    engines/titanic/support/avi_surface.cpp
    engines/titanic/support/movie.cpp


diff --git a/engines/titanic/support/avi_surface.cpp b/engines/titanic/support/avi_surface.cpp
index 69c006e..11b6b68 100644
--- a/engines/titanic/support/avi_surface.cpp
+++ b/engines/titanic/support/avi_surface.cpp
@@ -472,11 +472,20 @@ Graphics::ManagedSurface *AVISurface::duplicateTransparency() const {
 }
 
 void AVISurface::playCutscene(const Rect &r, uint startFrame, uint endFrame) {
-	bool isDifferent = _movieFrameSurface[0]->w != r.width() ||
-		_movieFrameSurface[0]->h != r.height();
-
-	startAtFrame(startFrame);
-	_currentFrame = startFrame;
+	bool isDifferent = false;
+	
+	if (_currentFrame != ((int)startFrame - 1) || startFrame == 0) {
+		// Start video playback at the desired starting frame
+		setFrame(startFrame);
+		isDifferent = _movieFrameSurface[0]->w != r.width() ||
+			_movieFrameSurface[0]->h != r.height();
+
+		startAtFrame(startFrame);
+		_currentFrame = startFrame;
+	} else {
+		// Already in position, so pick up where we left off
+		_decoder->start();
+	}
 
 	while (_currentFrame < (int)endFrame && !g_vm->shouldQuit()) {
 		if (isNextFrame()) {
diff --git a/engines/titanic/support/movie.cpp b/engines/titanic/support/movie.cpp
index 3095715..eb65cf1 100644
--- a/engines/titanic/support/movie.cpp
+++ b/engines/titanic/support/movie.cpp
@@ -124,7 +124,6 @@ void OSMovie::playCutscene(const Rect &drawRect, uint startFrame, uint endFrame)
 	CEventTarget eventTarget;
 	g_vm->_events->addTarget(&eventTarget);
 
-	_aviSurface.setFrame(startFrame);
 	_aviSurface.playCutscene(drawRect, startFrame, endFrame);
 
 	g_vm->_events->removeTarget();





More information about the Scummvm-git-logs mailing list