diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/mohawk/myst_stacks/myst.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp index f77ae753d9..70abf0ccd3 100644 --- a/engines/mohawk/myst_stacks/myst.cpp +++ b/engines/mohawk/myst_stacks/myst.cpp @@ -2839,11 +2839,17 @@ void Myst::clockGearForwardOneStep(uint16 gear) { } void Myst::clockWeightDownOneStep() { + // The Myst ME version of this video is encoded faster than the original + // The weight goes on the floor one step too early. Original ME engine also has this behavior. + bool updateVideo = !(_vm->getFeatures() & GF_ME) || _clockWeightPosition < (2214 - 246); + // Set video bounds - _clockWeightVideo = _vm->_video->playMovie(_vm->wrapMovieFilename("cl1wlfch", kMystStack) , 124, 0); - _vm->_video->setVideoBounds(_clockWeightVideo, - Audio::Timestamp(0, _clockWeightPosition, 600), - Audio::Timestamp(0, _clockWeightPosition + 246, 600)); + if (updateVideo) { + _clockWeightVideo = _vm->_video->playMovie(_vm->wrapMovieFilename("cl1wlfch", kMystStack) , 124, 0); + _vm->_video->setVideoBounds(_clockWeightVideo, + Audio::Timestamp(0, _clockWeightPosition, 600), + Audio::Timestamp(0, _clockWeightPosition + 246, 600)); + } // Increment value by one step _clockWeightPosition += 246; |