diff --git a/engines/mohawk/myst_areas.cpp b/engines/mohawk/myst_areas.cpp index 761002036cf..21f6627f607 100644 --- a/engines/mohawk/myst_areas.cpp +++ b/engines/mohawk/myst_areas.cpp @@ -173,7 +173,7 @@ MystResourceType6::MystResourceType6(MohawkEngine_Myst *vm, Common::SeekableRead _left = rlstStream->readSint16LE() % 10000; _top = rlstStream->readSint16LE() % 10000; _playOnCardChange = rlstStream->readUint16LE(); - _direction = rlstStream->readUint16LE(); + _direction = rlstStream->readSint16LE(); _playBlocking = rlstStream->readUint16LE(); _loop = rlstStream->readUint16LE(); _u3 = rlstStream->readUint16LE(); diff --git a/engines/mohawk/myst_areas.h b/engines/mohawk/myst_areas.h index 794fb998d11..c5cda6824f8 100644 --- a/engines/mohawk/myst_areas.h +++ b/engines/mohawk/myst_areas.h @@ -108,6 +108,7 @@ public: VideoHandle playMovie(); void handleCardChange(); bool isPlaying(); + void setDirection(int16 direction) { _direction = direction; } void setBlocking(bool blocking) { _playBlocking = blocking; } void pauseMovie(bool pause); @@ -117,7 +118,7 @@ protected: int16 _left; int16 _top; uint16 _loop; - uint16 _direction; // 1 => forward, -1 => backwards + int16 _direction; // 1 => forward, -1 => backwards uint16 _playBlocking; uint16 _playOnCardChange; uint16 _u3; diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp index 6ead1a72a40..2e6e921ad86 100644 --- a/engines/mohawk/myst_scripts.cpp +++ b/engines/mohawk/myst_scripts.cpp @@ -384,6 +384,7 @@ void MystScriptParser::o_triggerMovie(uint16 op, uint16 var, uint16 argc, uint16 // Trigger resource 6 movie overriding play direction MystResourceType6 *resource = static_cast(_invokingResource); + resource->setDirection(direction); resource->playMovie(); // TODO: If movie has sound, resume background music