From b1de27ed8f54b7321eaee165f69c90ac73d262f7 Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Tue, 11 Jan 2011 19:52:58 +0000 Subject: MOHAWK: Implement Myst imager videos seeking / looping svn-id: r55208 --- engines/mohawk/myst_areas.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'engines/mohawk/myst_areas.cpp') diff --git a/engines/mohawk/myst_areas.cpp b/engines/mohawk/myst_areas.cpp index 9cbf79ddaf..c69fd47633 100644 --- a/engines/mohawk/myst_areas.cpp +++ b/engines/mohawk/myst_areas.cpp @@ -197,19 +197,23 @@ MystResourceType6::MystResourceType6(MohawkEngine_Myst *vm, Common::SeekableRead debugC(kDebugResource, "\tplayBlocking: %d", _playBlocking); debugC(kDebugResource, "\tplayOnCardChange: %d", _playOnCardChange); debugC(kDebugResource, "\tu3: %d", _u3); - - _videoRunning = false; } -void MystResourceType6::playMovie() { - if (!_videoRunning) { - if (_playBlocking) - _vm->_video->playMovie(_videoFile, _left, _top); - else - _vm->_video->playBackgroundMovie(_videoFile, _left, _top, _loop); +VideoHandle MystResourceType6::playMovie() { + // Check if the video is already running + VideoHandle handle = _vm->_video->findVideoHandle(_videoFile); - _videoRunning = true; + // If the video is not running, play it + if (handle == NULL_VID_HANDLE || _vm->_video->endOfVideo(handle)) { + if (_playBlocking) { + _vm->_video->playMovie(_videoFile, _left, _top); + handle = NULL_VID_HANDLE; + } else { + handle = _vm->_video->playBackgroundMovie(_videoFile, _left, _top, _loop); + } } + + return handle; } void MystResourceType6::handleCardChange() { @@ -218,12 +222,8 @@ void MystResourceType6::handleCardChange() { } bool MystResourceType6::isPlaying() { - if (_videoRunning) { - VideoHandle handle = _vm->_video->findVideoHandle(_videoFile); - return handle != NULL_VID_HANDLE && !_vm->_video->endOfVideo(handle); - } - - return false; + VideoHandle handle = _vm->_video->findVideoHandle(_videoFile); + return handle != NULL_VID_HANDLE && !_vm->_video->endOfVideo(handle); } MystResourceType7::MystResourceType7(MohawkEngine_Myst *vm, Common::SeekableReadStream *rlstStream, MystResource *parent) : MystResource(vm, rlstStream, parent) { -- cgit v1.2.3