diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/mohawk/myst_areas.cpp | 11 | ||||
-rw-r--r-- | engines/mohawk/myst_areas.h | 2 |
2 files changed, 11 insertions, 2 deletions
diff --git a/engines/mohawk/myst_areas.cpp b/engines/mohawk/myst_areas.cpp index c9172ce366..eff51bf1c9 100644 --- a/engines/mohawk/myst_areas.cpp +++ b/engines/mohawk/myst_areas.cpp @@ -196,12 +196,21 @@ MystAreaVideo::MystAreaVideo(MohawkEngine_Myst *vm, ResourceType type, Common::S // Position values require modulus 10000 to keep in sane range. _left = rlstStream->readSint16LE() % 10000; _top = rlstStream->readSint16LE() % 10000; - _playOnCardChange = rlstStream->readUint16LE(); + _playOnCardChange = rlstStream->readUint16LE() != 0; _direction = rlstStream->readSint16LE(); _playBlocking = rlstStream->readUint16LE(); _loop = rlstStream->readUint16LE(); _playRate = rlstStream->readUint16LE(); + // WORKAROUND: Myst v1.0 has playOnCardChange set to true + // for the Myst flyby video shown during the intro. + // This causes the flyby to play over the closed Myst book picture. + // Later releases of the game have that flag set to false. + // Here we apply a resource patch to match the newer releases. + if (_videoFile == "qtw/intro/intro2.mov") { + _playOnCardChange = false; + } + debugC(kDebugResource, "\tvideoFile: \"%s\"", _videoFile.c_str()); debugC(kDebugResource, "\tleft: %d", _left); debugC(kDebugResource, "\ttop: %d", _top); diff --git a/engines/mohawk/myst_areas.h b/engines/mohawk/myst_areas.h index bfd370d504..b389f32ea1 100644 --- a/engines/mohawk/myst_areas.h +++ b/engines/mohawk/myst_areas.h @@ -126,7 +126,7 @@ protected: uint16 _loop; int16 _direction; // 1 => forward, -1 => backwards uint16 _playBlocking; - uint16 _playOnCardChange; + bool _playOnCardChange; uint16 _playRate; // percents }; |