aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support/movie.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-10-22 11:40:51 -0400
committerPaul Gilbert2016-10-22 11:40:51 -0400
commit2bf087d2b9246a5a9383aa789465b35a2b4159c4 (patch)
tree6aa8da469424acb36079861a07701d47100b4c62 /engines/titanic/support/movie.cpp
parent8e328647dc7ee62c26d6a9518c7a9072e637c186 (diff)
downloadscummvm-rg350-2bf087d2b9246a5a9383aa789465b35a2b4159c4.tar.gz
scummvm-rg350-2bf087d2b9246a5a9383aa789465b35a2b4159c4.tar.bz2
scummvm-rg350-2bf087d2b9246a5a9383aa789465b35a2b4159c4.zip
TITANIC: Workaround for Doorbot's 'cloak off' movie playback
The original starts a movie for the Doorbot taking his cloak off, but then plays a cutscene of the doorbot first appearing. Because of this delay, our VideoDecoder wasn't correctly playing the movie after. To fix that, new movies are initially paused when started, and then resumed the first time we try to do events checking for it
Diffstat (limited to 'engines/titanic/support/movie.cpp')
-rw-r--r--engines/titanic/support/movie.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/titanic/support/movie.cpp b/engines/titanic/support/movie.cpp
index aea51e1a1e..2115906992 100644
--- a/engines/titanic/support/movie.cpp
+++ b/engines/titanic/support/movie.cpp
@@ -143,6 +143,10 @@ void OSMovie::playCutscene(const Rect &drawRect, uint startFrame, uint endFrame)
g_vm->_events->removeTarget();
}
+void OSMovie::pause() {
+ _aviSurface.pause();
+}
+
void OSMovie::stop() {
_aviSurface.stop();
removeFromPlayingMovies();
@@ -161,6 +165,10 @@ void OSMovie::setFrame(uint frameNumber) {
}
bool OSMovie::handleEvents(CMovieEventList &events) {
+ // WORKAROUND: If a movie is paused as part of initial
+ // scene loading, now's the time to un-pause it
+ _aviSurface.resume();
+
if (!_aviSurface.isPlaying())
return false;
if (!_aviSurface.isNextFrame())