aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_stacks
diff options
context:
space:
mode:
authorBastien Bouclet2011-01-13 19:30:00 +0000
committerBastien Bouclet2011-01-13 19:30:00 +0000
commit75a2c36ecd9ff0f9dc268166b908450c7c6b90b2 (patch)
tree2c1156df35c8481df904fec5b958a8844e4b64b9 /engines/mohawk/myst_stacks
parent9118d2915cf12f5bfac36895e4628358882fcfa0 (diff)
downloadscummvm-rg350-75a2c36ecd9ff0f9dc268166b908450c7c6b90b2.tar.gz
scummvm-rg350-75a2c36ecd9ff0f9dc268166b908450c7c6b90b2.tar.bz2
scummvm-rg350-75a2c36ecd9ff0f9dc268166b908450c7c6b90b2.zip
MOHAWK: Implement video seeking Myst's rocket link book
svn-id: r55230
Diffstat (limited to 'engines/mohawk/myst_stacks')
-rw-r--r--engines/mohawk/myst_stacks/myst.cpp20
-rw-r--r--engines/mohawk/myst_stacks/myst.h1
2 files changed, 15 insertions, 6 deletions
diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp
index 7a163064c3..5760bee22d 100644
--- a/engines/mohawk/myst_stacks/myst.cpp
+++ b/engines/mohawk/myst_stacks/myst.cpp
@@ -2164,11 +2164,19 @@ void MystScriptParser_Myst::rocketCheckSolution() {
_vm->_sound->stopSound();
if (solved) {
- _vm->_video->playBackgroundMovie(_vm->wrapMovieFilename("selenbok", kMystStack), 224, 41, true);
+ // Reset lever position
+ MystResourceType12 *lever = static_cast<MystResourceType12 *>(_invokingResource);
+ lever->drawFrame(0);
- // TODO: Movie control
- // Play from 0 to 660
- // Then from 660 to 3500, looping
+ // Book appearing
+ Common::String movieFile = _vm->wrapMovieFilename("selenbok", kMystStack);
+ _rocketLinkBook = _vm->_video->playBackgroundMovie(movieFile, 224, 41);
+ _vm->_video->setVideoBounds(_rocketLinkBook, Graphics::VideoTimestamp(0, 600), Graphics::VideoTimestamp(660, 600));
+ _vm->_video->waitUntilMovieEnds(_rocketLinkBook);
+
+ // Book looping closed
+ _rocketLinkBook = _vm->_video->playBackgroundMovie(movieFile, 224, 41, true);
+ _vm->_video->setVideoBounds(_rocketLinkBook, Graphics::VideoTimestamp(660, 600), Graphics::VideoTimestamp(3500, 600));
_tempVar = 1;
}
@@ -2282,8 +2290,8 @@ void MystScriptParser_Myst::o_rocketLeverStartMove(uint16 op, uint16 var, uint16
void MystScriptParser_Myst::o_rocketOpenBook(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
debugC(kDebugScript, "Opcode %d: Rocket open link book", op);
- // TODO: Update video playing
- // Play from 3500 to 13100, looping
+ // Flyby movie
+ _vm->_video->setVideoBounds(_rocketLinkBook, Graphics::VideoTimestamp(3500, 600), Graphics::VideoTimestamp(13100, 600));
// Set linkable
_tempVar = 2;
diff --git a/engines/mohawk/myst_stacks/myst.h b/engines/mohawk/myst_stacks/myst.h
index f48117a917..b115711d4f 100644
--- a/engines/mohawk/myst_stacks/myst.h
+++ b/engines/mohawk/myst_stacks/myst.h
@@ -186,6 +186,7 @@ private:
MystResourceType10 *_rocketSlider5; // 264
uint16 _rocketSliderSound; // 294
uint16 _rocketLeverPosition; // 296
+ VideoHandle _rocketLinkBook;
bool _libraryCombinationBookPagesTurning;
int16 _libraryBookPage; // 86