aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic')
-rw-r--r--engines/titanic/game/service_elevator_window.cpp4
-rw-r--r--engines/titanic/support/avi_surface.cpp1
2 files changed, 3 insertions, 2 deletions
diff --git a/engines/titanic/game/service_elevator_window.cpp b/engines/titanic/game/service_elevator_window.cpp
index 887fd3d086..84c4d7e8de 100644
--- a/engines/titanic/game/service_elevator_window.cpp
+++ b/engines/titanic/game/service_elevator_window.cpp
@@ -70,16 +70,16 @@ bool CServiceElevatorWindow::ServiceElevatorFloorChangeMsg(CServiceElevatorFloor
int count = clip->_endFrame - clip->_startFrame;
int startFrame = clip->_startFrame + count * FACTORS[msg->_startFloor] / 100;
int endFrame = clip->_startFrame + count * FACTORS[msg->_endFloor] / 100;
+
double rate = (startFrame < endFrame ? 1.0 : -1.0) * count / fps;
+ setMovieFrameRate(rate);
if (_notifyFlag) {
// Service elevator indicator
playMovie(startFrame, endFrame, MOVIE_NOTIFY_OBJECT);
- setMovieFrameRate(rate);
} else {
// Background outside elevator
playMovie(startFrame, endFrame, 0);
- setMovieFrameRate(rate);
if (_intoSpace)
playClip("Into Space");
diff --git a/engines/titanic/support/avi_surface.cpp b/engines/titanic/support/avi_surface.cpp
index 7bfd614109..810c0ec5db 100644
--- a/engines/titanic/support/avi_surface.cpp
+++ b/engines/titanic/support/avi_surface.cpp
@@ -149,6 +149,7 @@ bool AVISurface::startAtFrame(int frameNumber) {
_decoder->start();
// Seek to the starting frame
+ _currentFrame = -1;
seekToFrame(frameNumber);
// If we're in reverse playback, set the decoder to play in reverse