diff options
author | Bastien Bouclet | 2011-05-19 22:05:57 +0200 |
---|---|---|
committer | Bastien Bouclet | 2011-05-19 22:06:37 +0200 |
commit | da3f6708984043322bd8e97535dd461977376417 (patch) | |
tree | 34506bffd135bd858e1005aa7c0c7e9e050d34b1 /engines | |
parent | fcae7bb497b51baa6d55099e86092adbc9e44ef1 (diff) | |
download | scummvm-rg350-da3f6708984043322bd8e97535dd461977376417.tar.gz scummvm-rg350-da3f6708984043322bd8e97535dd461977376417.tar.bz2 scummvm-rg350-da3f6708984043322bd8e97535dd461977376417.zip |
MOHAWK: Compensate movie encoding difference between Myst ME and Myst original, to fix a crash in the clock tower.
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; |