From e62e28732ff3549b70713cb46fa1a3bef9d57a84 Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Sat, 12 Aug 2017 15:33:17 +0200 Subject: MOHAWK: Myst: Fix one Atrus video being off position by one pixel Fixes #10114. --- engines/mohawk/myst_stacks/dni.cpp | 14 +++++++++----- engines/mohawk/myst_stacks/dni.h | 3 +++ 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'engines/mohawk') diff --git a/engines/mohawk/myst_stacks/dni.cpp b/engines/mohawk/myst_stacks/dni.cpp index dce40c71f4..ba53c70037 100644 --- a/engines/mohawk/myst_stacks/dni.cpp +++ b/engines/mohawk/myst_stacks/dni.cpp @@ -116,8 +116,9 @@ void Dni::o_handPage(uint16 var, const ArgumentsArray &args) { void Dni::atrusLeft_run() { if (_vm->_system->getMillis() > _atrusLeftTime + 63333) { _video = "atrus2"; + _videoPos = Common::Point(215, 77); VideoEntryPtr atrus = _vm->playMovie(_video, kDniStack); - atrus->moveTo(215, 77); + atrus->moveTo(_videoPos.x, _videoPos.y); atrus->setBounds(Audio::Timestamp(0, 0, 600), Audio::Timestamp(0, 98000, 600)); _waitForLoop = true; @@ -136,7 +137,7 @@ void Dni::atrusLeft_run() { void Dni::loopVideo_run() { if (!_vm->_video->isVideoPlaying()) { VideoEntryPtr atrus = _vm->playMovie(_video, kDniStack); - atrus->moveTo(215, 77); + atrus->moveTo(_videoPos.x, _videoPos.y); atrus->setBounds(Audio::Timestamp(0, _loopStart, 600), Audio::Timestamp(0, _loopEnd, 600)); atrus->setLooping(true); @@ -152,16 +153,18 @@ void Dni::atrus_run() { // Atrus asking for page if (!_vm->_video->isVideoPlaying()) { _video = "atr1page"; + _videoPos = Common::Point(215, 76); VideoEntryPtr atrus = _vm->playMovie(_video, kDniStack); - atrus->moveTo(215, 77); + atrus->moveTo(_videoPos.x, _videoPos.y); atrus->setLooping(true); atrus->setBounds(Audio::Timestamp(0, 7388, 600), Audio::Timestamp(0, 14700, 600)); } } else if (_globals.ending != 3 && _globals.ending != 4) { if (_globals.heldPage == 13) { _video = "atr1page"; + _videoPos = Common::Point(215, 76); VideoEntryPtr atrus = _vm->playMovie(_video, kDniStack); - atrus->moveTo(215, 77); + atrus->moveTo(_videoPos.x, _videoPos.y); atrus->setBounds(Audio::Timestamp(0, 0, 600), Audio::Timestamp(0, 14700, 600)); _waitForLoop = true; @@ -173,8 +176,9 @@ void Dni::atrus_run() { } else { _video = "atr1nopg"; + _videoPos = Common::Point(215, 77); VideoEntryPtr atrus = _vm->playMovie(_video, kDniStack); - atrus->moveTo(215, 77); + atrus->moveTo(_videoPos.x, _videoPos.y); atrus->setBounds(Audio::Timestamp(0, 0, 600), Audio::Timestamp(0, 46175, 600)); _waitForLoop = true; diff --git a/engines/mohawk/myst_stacks/dni.h b/engines/mohawk/myst_stacks/dni.h index 9a8b937216..7ba49b1936 100644 --- a/engines/mohawk/myst_stacks/dni.h +++ b/engines/mohawk/myst_stacks/dni.h @@ -58,7 +58,10 @@ private: bool _atrusRunning; bool _notSeenAtrus; // 56 uint32 _atrusLeftTime; // 60 + Common::String _video; // 64 + Common::Point _videoPos; + bool _waitForLoop; uint32 _loopStart; // 72 uint32 _loopEnd; // 76 -- cgit v1.2.3