aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Hoops2011-01-11 17:27:47 +0000
committerMatthew Hoops2011-01-11 17:27:47 +0000
commit1f043e15c759e2f15d5170ce96494800509633c9 (patch)
treee61b051687ac6bf820d2643b753ddab9b1bbadda
parentee081dc476153a49ac010cbef58039d0a1c4fe15 (diff)
downloadscummvm-rg350-1f043e15c759e2f15d5170ce96494800509633c9.tar.gz
scummvm-rg350-1f043e15c759e2f15d5170ce96494800509633c9.tar.bz2
scummvm-rg350-1f043e15c759e2f15d5170ce96494800509633c9.zip
MOHAWK: Play the telescope moving video (now that seeking is available :))
svn-id: r55205
-rw-r--r--engines/mohawk/riven_external.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/engines/mohawk/riven_external.cpp b/engines/mohawk/riven_external.cpp
index dc3db08e92..0453952cb9 100644
--- a/engines/mohawk/riven_external.cpp
+++ b/engines/mohawk/riven_external.cpp
@@ -1885,7 +1885,13 @@ void RivenExternal::xtexterior300_telescopedown(uint16 argc, uint16 *argv) {
} else {
// We're not at the bottom, and we can move down again
- // TODO: Down movie, it involves playing a chunk of a movie
+ // Play a piece of the moving down movie
+ static const uint32 timeIntervals[] = { 4320, 3440, 2560, 1760, 880, 0 };
+ uint16 movieCode = (*telescopeCover) ? 1 : 2;
+ VideoHandle handle = _vm->_video->playMovie(movieCode);
+ _vm->_video->setVideoBounds(handle, Graphics::VideoTimestamp(timeIntervals[*telescopePos], 600), Graphics::VideoTimestamp(timeIntervals[*telescopePos - 1], 600));
+ _vm->_sound->playSound(14); // Play the moving sound
+ _vm->_video->waitUntilMovieEnds(handle);
// Now move the telescope down a position and refresh
*telescopePos -= 1;
@@ -1911,7 +1917,13 @@ void RivenExternal::xtexterior300_telescopeup(uint16 argc, uint16 *argv) {
return;
}
- // TODO: Up movie, it involves playing a chunk of a movie
+ // Play a piece of the moving up movie
+ static const uint32 timeIntervals[] = { 0, 800, 1680, 2560, 3440, 4320 };
+ uint16 movieCode = (*_vm->getVar("ttelecover")) ? 4 : 5;
+ VideoHandle handle = _vm->_video->playMovie(movieCode);
+ _vm->_video->setVideoBounds(handle, Graphics::VideoTimestamp(timeIntervals[*telescopePos - 1], 600), Graphics::VideoTimestamp(timeIntervals[*telescopePos], 600));
+ _vm->_sound->playSound(14); // Play the moving sound
+ _vm->_video->waitUntilMovieEnds(handle);
// Now move the telescope up a position and refresh
*telescopePos += 1;