diff options
author | Bastien Bouclet | 2011-02-13 13:22:50 +0100 |
---|---|---|
committer | Bastien Bouclet | 2011-02-13 13:22:50 +0100 |
commit | e5783d9c27f09456c3f4bb279ce44977210bebda (patch) | |
tree | c277f15bf357fc387f5e0d0a18a0e290d885c2a4 | |
parent | 93ed359669104f6414e9f3d94a63e55ae46eda30 (diff) | |
download | scummvm-rg350-e5783d9c27f09456c3f4bb279ce44977210bebda.tar.gz scummvm-rg350-e5783d9c27f09456c3f4bb279ce44977210bebda.tar.bz2 scummvm-rg350-e5783d9c27f09456c3f4bb279ce44977210bebda.zip |
MOHAWK: Implement opcode 105, Mechanical fortress staircase movie
-rw-r--r-- | engines/mohawk/myst_stacks/mechanical.cpp | 22 | ||||
-rw-r--r-- | engines/mohawk/myst_stacks/mechanical.h | 2 |
2 files changed, 11 insertions, 13 deletions
diff --git a/engines/mohawk/myst_stacks/mechanical.cpp b/engines/mohawk/myst_stacks/mechanical.cpp index e1896455cf..add87694a8 100644 --- a/engines/mohawk/myst_stacks/mechanical.cpp +++ b/engines/mohawk/myst_stacks/mechanical.cpp @@ -51,7 +51,7 @@ MystScriptParser_Mechanical::~MystScriptParser_Mechanical() { void MystScriptParser_Mechanical::setupOpcodes() { // "Stack-Specific" Opcodes OPCODE(104, opcode_104); - OPCODE(105, opcode_105); + OPCODE(105, o_fortressStaircaseMovie); OPCODE(121, opcode_121); OPCODE(122, opcode_122); OPCODE(123, opcode_123); @@ -231,20 +231,18 @@ void MystScriptParser_Mechanical::opcode_104(uint16 op, uint16 var, uint16 argc, } -void MystScriptParser_Mechanical::opcode_105(uint16 op, uint16 var, uint16 argc, uint16 *argv) { - varUnusedCheck(op, var); +void MystScriptParser_Mechanical::o_fortressStaircaseMovie(uint16 op, uint16 var, uint16 argc, uint16 *argv) { + debugC(kDebugScript, "Opcode %d: Play Stairs Movement Movie", op); - if (argc == 0) { - debugC(kDebugScript, "Opcode %d: Play Stairs Movement Movie", op); + VideoHandle staircase = _vm->_video->playMovie(_vm->wrapMovieFilename("hhstairs", kMechanicalStack), 174, 222); - if (_vm->_varStore->getVar(10)) { - // TODO: Play Movie from 0 to 1/2 way... - _vm->_video->playMovieBlocking(_vm->wrapMovieFilename("hhstairs", kMechanicalStack), 174, 222); - } else { - // TODO: Play Movie from 1/2 way to end... - _vm->_video->playMovieBlocking(_vm->wrapMovieFilename("hhstairs", kMechanicalStack), 174, 222); - } + if (_state.staircaseState) { + _vm->_video->setVideoBounds(staircase, Audio::Timestamp(0, 840, 600), Audio::Timestamp(0, 1680, 600)); + } else { + _vm->_video->setVideoBounds(staircase, Audio::Timestamp(0, 0, 600), Audio::Timestamp(0, 840, 600)); } + + _vm->_video->waitUntilMovieEnds(staircase); } diff --git a/engines/mohawk/myst_stacks/mechanical.h b/engines/mohawk/myst_stacks/mechanical.h index 63c8884192..3c7701c12d 100644 --- a/engines/mohawk/myst_stacks/mechanical.h +++ b/engines/mohawk/myst_stacks/mechanical.h @@ -69,7 +69,7 @@ private: void opcode_209_disable(); DECLARE_OPCODE(opcode_104); - DECLARE_OPCODE(opcode_105); + DECLARE_OPCODE(o_fortressStaircaseMovie); DECLARE_OPCODE(opcode_121); DECLARE_OPCODE(opcode_122); DECLARE_OPCODE(opcode_123); |