[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