diff options
author | Paul Gilbert | 2016-10-22 11:40:51 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-10-22 11:40:51 -0400 |
commit | 2bf087d2b9246a5a9383aa789465b35a2b4159c4 (patch) | |
tree | 6aa8da469424acb36079861a07701d47100b4c62 /engines/titanic/support/movie.cpp | |
parent | 8e328647dc7ee62c26d6a9518c7a9072e637c186 (diff) | |
download | scummvm-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.cpp | 8 |
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()) |