[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