[Scummvm-cvs-logs] SF.net SVN: scummvm:[55412] scummvm/trunk/engines/mohawk/myst_stacks
bgk at users.sourceforge.net
bgk at users.sourceforge.net
Sat Jan 22 10:37:57 CET 2011
Revision: 55412
http://scummvm.svn.sourceforge.net/scummvm/?rev=55412&view=rev
Author: bgk
Date: 2011-01-22 09:37:56 +0000 (Sat, 22 Jan 2011)
Log Message:
-----------
MOHAWK: Complete Channelwood opcode 101, pipe bridge
Modified Paths:
--------------
scummvm/trunk/engines/mohawk/myst_stacks/channelwood.cpp
scummvm/trunk/engines/mohawk/myst_stacks/channelwood.h
Modified: scummvm/trunk/engines/mohawk/myst_stacks/channelwood.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_stacks/channelwood.cpp 2011-01-22 09:31:02 UTC (rev 55411)
+++ scummvm/trunk/engines/mohawk/myst_stacks/channelwood.cpp 2011-01-22 09:37:56 UTC (rev 55412)
@@ -49,7 +49,7 @@
void MystScriptParser_Channelwood::setupOpcodes() {
// "Stack-Specific" Opcodes
OPCODE(100, o_bridgeToggle);
- OPCODE(101, opcode_101);
+ OPCODE(101, o_pipeExtend);
OPCODE(102, opcode_102);
OPCODE(104, o_waterTankValveOpen);
OPCODE(105, o_leverStartMove);
@@ -234,6 +234,7 @@
VideoHandle bridge = _vm->_video->playMovie(_vm->wrapMovieFilename("bridge", kChannelwoodStack), 292, 203);
+ // Toggle bridge state
if (_state.waterPumpBridgeState)
_vm->_video->setVideoBounds(bridge, Graphics::VideoTimestamp(3050, 600), Graphics::VideoTimestamp(6100, 600));
else
@@ -242,31 +243,23 @@
_vm->_video->waitUntilMovieEnds(bridge);
}
-void MystScriptParser_Channelwood::opcode_101(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
+void MystScriptParser_Channelwood::o_pipeExtend(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Play Pipe Movie and Sound", op);
- if (argc == 1) {
- debugC(kDebugScript, "Opcode %d: Play Pipe Movie and Sound", op);
+ uint16 soundId = argv[0];
+ debugC(kDebugScript, "\tsoundId: %d", soundId);
- uint16 soundId = argv[0];
- debugC(kDebugScript, "\tsoundId: %d", soundId);
+ _vm->_sound->replaceSoundMyst(soundId);
+ VideoHandle pipe = _vm->_video->playMovie(_vm->wrapMovieFilename("pipebrid", kChannelwoodStack), 267, 170);
- _vm->_sound->replaceSoundMyst(soundId);
+ // Toggle pipe state
+ if (_state.pipeState)
+ _vm->_video->setVideoBounds(pipe, Graphics::VideoTimestamp(3040, 600), Graphics::VideoTimestamp(6080, 600));
+ else
+ _vm->_video->setVideoBounds(pipe, Graphics::VideoTimestamp(0, 600), Graphics::VideoTimestamp(3040, 600));
- // TODO: Get Movie Location from Invoking Resource Rect, rather than
- // hardcoded 267, 170 ?
-
- // TODO: Need version of playMovie blocking which allows selection
- // of start and finish points.
- if (!_vm->_varStore->getVar(6)) {
- // Play Pipe Extending i.e. 0 to 1/2 way through file
- _vm->_video->playMovieBlocking(_vm->wrapMovieFilename("pipebrid", kChannelwoodStack), 267, 170);
- } else {
- // Play Pipe Retracting i.e. 1/2 way to end of file
- _vm->_video->playMovieBlocking(_vm->wrapMovieFilename("pipebrid", kChannelwoodStack), 267, 170);
- }
- } else
- unknown(op, var, argc, argv);
+ _vm->_video->waitUntilMovieEnds(pipe);
+ _vm->_sound->resumeBackgroundMyst();
}
void MystScriptParser_Channelwood::opcode_102(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
Modified: scummvm/trunk/engines/mohawk/myst_stacks/channelwood.h
===================================================================
--- scummvm/trunk/engines/mohawk/myst_stacks/channelwood.h 2011-01-22 09:31:02 UTC (rev 55411)
+++ scummvm/trunk/engines/mohawk/myst_stacks/channelwood.h 2011-01-22 09:37:56 UTC (rev 55412)
@@ -55,7 +55,7 @@
void opcode_203_disable();
DECLARE_OPCODE(o_bridgeToggle);
- DECLARE_OPCODE(opcode_101);
+ DECLARE_OPCODE(o_pipeExtend);
DECLARE_OPCODE(opcode_102);
DECLARE_OPCODE(o_waterTankValveOpen);
DECLARE_OPCODE(o_leverStartMove);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list