diff options
-rw-r--r-- | engines/mohawk/myst_stacks/mechanical.cpp | 21 | ||||
-rw-r--r-- | engines/mohawk/myst_stacks/mechanical.h | 2 |
2 files changed, 10 insertions, 13 deletions
diff --git a/engines/mohawk/myst_stacks/mechanical.cpp b/engines/mohawk/myst_stacks/mechanical.cpp index 0596d29d88..3bf7f2105a 100644 --- a/engines/mohawk/myst_stacks/mechanical.cpp +++ b/engines/mohawk/myst_stacks/mechanical.cpp @@ -58,7 +58,7 @@ void Mechanical::setupOpcodes() { OPCODE(106, o_elevatorRotationStart); OPCODE(107, o_elevatorRotationMove); OPCODE(108, o_elevatorRotationStop); - OPCODE(121, opcode_121); + OPCODE(121, o_elevatorWindowMovie); OPCODE(122, opcode_122); OPCODE(123, opcode_123); OPCODE(124, opcode_124); @@ -326,19 +326,16 @@ void Mechanical::o_elevatorRotationStop(uint16 op, uint16 var, uint16 argc, uint _vm->checkCursorHints(); } -void Mechanical::opcode_121(uint16 op, uint16 var, uint16 argc, uint16 *argv) { - varUnusedCheck(op, var); +void Mechanical::o_elevatorWindowMovie(uint16 op, uint16 var, uint16 argc, uint16 *argv) { - if (argc == 2) { - uint16 startTime = argv[0]; - uint16 endTime = argv[1]; + uint16 startTime = argv[0]; + uint16 endTime = argv[1]; - warning("TODO: Opcode %d Movie Time Index %d to %d\n", op, startTime, endTime); - // TODO: Need version of playMovie blocking which allows selection - // of start and finish points. - _vm->_video->playMovieBlocking(_vm->wrapMovieFilename("ewindow", kMechanicalStack), 253, 0); - } else - unknown(op, var, argc, argv); + debugC(kDebugScript, "Opcode %d Movie Time Index %d to %d", op, startTime, endTime); + + VideoHandle window = _vm->_video->playMovie(_vm->wrapMovieFilename("ewindow", kMechanicalStack), 253, 0); + _vm->_video->setVideoBounds(window, Audio::Timestamp(0, startTime, 600), Audio::Timestamp(0, endTime, 600)); + _vm->_video->waitUntilMovieEnds(window); } void Mechanical::opcode_122(uint16 op, uint16 var, uint16 argc, uint16 *argv) { diff --git a/engines/mohawk/myst_stacks/mechanical.h b/engines/mohawk/myst_stacks/mechanical.h index 0e20b8e57a..065f27d745 100644 --- a/engines/mohawk/myst_stacks/mechanical.h +++ b/engines/mohawk/myst_stacks/mechanical.h @@ -68,7 +68,7 @@ private: DECLARE_OPCODE(o_elevatorRotationStart); DECLARE_OPCODE(o_elevatorRotationMove); DECLARE_OPCODE(o_elevatorRotationStop); - DECLARE_OPCODE(opcode_121); + DECLARE_OPCODE(o_elevatorWindowMovie); DECLARE_OPCODE(opcode_122); DECLARE_OPCODE(opcode_123); DECLARE_OPCODE(opcode_124); |