[Scummvm-cvs-logs] SF.net SVN: scummvm:[54691] scummvm/trunk/engines/mohawk

mthreepwood at users.sourceforge.net mthreepwood at users.sourceforge.net
Wed Dec 1 03:11:11 CET 2010


Revision: 54691
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54691&view=rev
Author:   mthreepwood
Date:     2010-12-01 02:11:11 +0000 (Wed, 01 Dec 2010)

Log Message:
-----------
MOHAWK: Split channelwood opcodes into their own class

Modified Paths:
--------------
    scummvm/trunk/engines/mohawk/module.mk
    scummvm/trunk/engines/mohawk/myst.cpp
    scummvm/trunk/engines/mohawk/myst_stacks/myst.cpp
    scummvm/trunk/engines/mohawk/myst_stacks/myst.h

Added Paths:
-----------
    scummvm/trunk/engines/mohawk/myst_stacks/channelwood.cpp
    scummvm/trunk/engines/mohawk/myst_stacks/channelwood.h

Modified: scummvm/trunk/engines/mohawk/module.mk
===================================================================
--- scummvm/trunk/engines/mohawk/module.mk	2010-12-01 00:40:52 UTC (rev 54690)
+++ scummvm/trunk/engines/mohawk/module.mk	2010-12-01 02:11:11 UTC (rev 54691)
@@ -23,6 +23,7 @@
 	riven_vars.o \
 	sound.o \
 	video.o \
+	myst_stacks/channelwood.o \
 	myst_stacks/credits.o \
 	myst_stacks/myst.o \
 	myst_stacks/selenitic.o \

Modified: scummvm/trunk/engines/mohawk/myst.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst.cpp	2010-12-01 00:40:52 UTC (rev 54690)
+++ scummvm/trunk/engines/mohawk/myst.cpp	2010-12-01 02:11:11 UTC (rev 54691)
@@ -39,6 +39,7 @@
 #include "mohawk/video.h"
 
 // The stacks
+#include "mohawk/myst_stacks/channelwood.h"
 #include "mohawk/myst_stacks/credits.h"
 #include "mohawk/myst_stacks/myst.h"
 #include "mohawk/myst_stacks/selenitic.h"
@@ -377,6 +378,9 @@
 	_prevStack = _scriptParser;
 
 	switch (_curStack) {
+	case kChannelwoodStack:
+		_scriptParser = new MystScriptParser_Channelwood(this);
+		break;
 	case kCreditsStack:
 		_scriptParser = new MystScriptParser_Credits(this);
 		break;

Added: scummvm/trunk/engines/mohawk/myst_stacks/channelwood.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_stacks/channelwood.cpp	                        (rev 0)
+++ scummvm/trunk/engines/mohawk/myst_stacks/channelwood.cpp	2010-12-01 02:11:11 UTC (rev 54691)
@@ -0,0 +1,556 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#include "mohawk/myst.h"
+#include "mohawk/graphics.h"
+#include "mohawk/myst_areas.h"
+#include "mohawk/sound.h"
+#include "mohawk/video.h"
+#include "mohawk/myst_stacks/channelwood.h"
+
+#include "gui/message.h"
+
+namespace Mohawk {
+
+// NOTE: Credits Start Card is 10000
+
+#define OPCODE(op, x) { op, &MystScriptParser::x, #x }
+#define SPECIFIC_OPCODE(op, x) { op, (OpcodeProcMyst) &MystScriptParser_Channelwood::x, #x }
+
+MystScriptParser_Channelwood::MystScriptParser_Channelwood(MohawkEngine_Myst *vm) : MystScriptParser(vm) {
+	setupOpcodes();
+}
+
+MystScriptParser_Channelwood::~MystScriptParser_Channelwood() {
+}
+
+void MystScriptParser_Channelwood::setupOpcodes() {
+	// "invalid" opcodes do not exist or have not been observed
+	// "unknown" opcodes exist, but their meaning is unknown
+
+	static const MystOpcode channelwoodOpcodes[] = {
+		// "Standard" Opcodes
+		OPCODE(0, o_toggleVar),
+		OPCODE(1, o_setVar),
+		OPCODE(2, o_changeCardSwitch),
+		OPCODE(3, o_takePage),
+		OPCODE(4, o_redrawCard),
+		// TODO: Opcode 5 Not Present
+		OPCODE(6, o_goToDest),
+		OPCODE(7, o_goToDest),
+		OPCODE(8, o_goToDest),
+		OPCODE(9, o_triggerMovie),
+		OPCODE(10, o_toggleVarNoRedraw),
+		// TODO: Opcode 10 to 11 Not Present
+		OPCODE(12, o_changeCardSwitch),
+		OPCODE(13, o_changeCardSwitch),
+		OPCODE(14, o_drawAreaState),
+		OPCODE(15, o_redrawAreaForVar),
+		OPCODE(16, o_changeCardDirectional),
+		OPCODE(17, o_changeCardPush),
+		OPCODE(18, o_changeCardPop),
+		OPCODE(19, o_enableAreas),
+		OPCODE(20, o_disableAreas),
+		OPCODE(21, o_directionalUpdate),
+		OPCODE(22, o_goToDest),
+		OPCODE(23, o_toggleAreasActivation),
+		OPCODE(24, o_playSound),
+		// TODO: Opcode 25 Not Present
+		OPCODE(26, o_stopSoundBackground),
+		OPCODE(27, o_playSoundBlocking),
+		OPCODE(28, o_restoreDefaultRect),
+		OPCODE(29, o_blitRect),
+		OPCODE(30, o_changeSound),
+		OPCODE(31, o_soundPlaySwitch),
+		OPCODE(32, o_soundResumeBackground),
+		OPCODE(33, o_blitRect),
+		OPCODE(34, o_changeCard),
+		OPCODE(35, o_drawImageChangeCard),
+		OPCODE(36, o_changeMainCursor),
+		OPCODE(37, o_hideCursor),
+		OPCODE(38, o_showCursor),
+		OPCODE(39, o_delay),
+		OPCODE(40, o_changeStack),
+		OPCODE(41, o_changeCardPlaySoundDirectional),
+		OPCODE(42, o_directionalUpdatePlaySound),
+		OPCODE(43, o_saveMainCursor),
+		OPCODE(44, o_restoreMainCursor),
+		// TODO: Opcode 45 Not Present
+		OPCODE(46, o_soundWaitStop),
+		// TODO: Opcodes 47 to 99 Not Present
+
+		// "Stack-Specific" Opcodes
+		SPECIFIC_OPCODE(101, opcode_101),
+		SPECIFIC_OPCODE(102, opcode_102),
+		SPECIFIC_OPCODE(104, opcode_104),
+		SPECIFIC_OPCODE(117, opcode_117),
+		SPECIFIC_OPCODE(118, opcode_118),
+		SPECIFIC_OPCODE(119, opcode_119),
+		SPECIFIC_OPCODE(122, opcode_122),
+		SPECIFIC_OPCODE(127, opcode_127),
+		SPECIFIC_OPCODE(129, opcode_129),
+
+		// "Init" Opcodes
+		SPECIFIC_OPCODE(201, opcode_201),
+		SPECIFIC_OPCODE(202, opcode_202),
+		SPECIFIC_OPCODE(203, opcode_203),
+
+		// "Exit" Opcodes
+		SPECIFIC_OPCODE(300, opcode_300),
+
+		OPCODE(0xFFFF, NOP)
+	};
+
+	_opcodes = channelwoodOpcodes;
+	_opcodeCount = ARRAYSIZE(channelwoodOpcodes);
+}
+
+void MystScriptParser_Channelwood::disablePersistentScripts() {
+	opcode_202_disable();
+	opcode_203_disable();
+}
+
+void MystScriptParser_Channelwood::runPersistentScripts() {
+	opcode_202_run();
+	opcode_203_run();
+}
+
+void MystScriptParser_Channelwood::opcode_101(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	if (argc == 1) {
+		debugC(kDebugScript, "Opcode %d: Play Pipe Movie and Sound", op);
+
+		uint16 soundId = argv[0];
+		debugC(kDebugScript, "\tsoundId: %d", soundId);
+
+		_vm->_sound->playSound(soundId);
+
+		// 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->playMovie(_vm->wrapMovieFilename("pipebrid", kChannelwoodStack), 267, 170);
+		} else {
+			// Play Pipe Retracting i.e. 1/2 way to end of file
+			_vm->_video->playMovie(_vm->wrapMovieFilename("pipebrid", kChannelwoodStack), 267, 170);
+		}
+	} else
+		unknown(op, var, argc, argv);
+}
+
+void MystScriptParser_Channelwood::opcode_102(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	if (argc == 2 || argc == 3) {
+		debugC(kDebugScript, "Opcode %d: Draw Full Screen Image, Optional Delay and Change Card", op);
+
+		uint16 imageId = argv[0];
+		uint16 cardId = argv[1];
+		uint16 delay = 0;
+
+		if (argc == 3)
+			delay = argv[2]; // TODO: Not sure about purpose of this parameter...
+
+		debugC(kDebugScript, "\timageId: %d", imageId);
+		debugC(kDebugScript, "\tcardId: %d", cardId);
+		debugC(kDebugScript, "\tdelay: %d", delay);
+
+		_vm->_gfx->copyImageToScreen(imageId, Common::Rect(0, 0, 544, 333));
+		_vm->_system->delayMillis(delay / 100);
+		_vm->changeToCard(cardId, true);
+	} else
+		unknown(op, var, argc, argv);
+}
+
+
+void MystScriptParser_Channelwood::opcode_104(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	// Used on Channelwood Card 3280
+	if (argc == 0) {
+		debugC(kDebugScript, "Opcode %d: Do Water Tank Valve Open Animation", op);
+		Common::Rect rect = _invokingResource->getRect();
+
+		// TODO: Need to load the image ids from Script Resources structure of VIEW
+		for (uint16 imageId = 3595; imageId <= 3601; imageId++) {
+			_vm->_gfx->copyImageToScreen(imageId, rect);
+			_vm->_system->delayMillis(50);
+		}
+
+		// TODO: Is 8 gotten from var7 of calling hotspot, rather than hardcoded?
+		_vm->_varStore->setVar(8, 1);
+		_vm->_varStore->setVar(19, 1);
+	} else
+		unknown(op, var, argc, argv);
+}
+
+void MystScriptParser_Channelwood::opcode_117(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	if (argc == 1) {
+		// Used on Card 3012 (Temple Hologram Monitor)
+		uint16 button = argv[0]; // 0 to 3
+		_vm->_varStore->setVar(17, button);
+
+		switch (button) {
+		case 0:
+			_vm->_video->playMovie(_vm->wrapMovieFilename("monalgh", kChannelwoodStack), 227, 71);
+			break;
+		case 1:
+			_vm->_video->playMovie(_vm->wrapMovieFilename("monamth", kChannelwoodStack), 227, 71);
+			break;
+		case 2:
+			_vm->_video->playMovie(_vm->wrapMovieFilename("monasirs", kChannelwoodStack), 227, 71);
+			break;
+		case 3:
+			_vm->_video->playMovie(_vm->wrapMovieFilename("monsmsg", kChannelwoodStack), 227, 71);
+			break;
+		default:
+			warning("Opcode %d Control Variable Out of Range", op);
+			break;
+		}
+	} else
+		unknown(op, var, argc, argv);
+}
+
+void MystScriptParser_Channelwood::opcode_118(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	if (argc == 0) {
+		// Used on Card 3318 (Sirrus' Room Nightstand Drawer)
+		// Triggered when clicked on drawer
+		// TODO: Implement function...
+	} else
+		unknown(op, var, argc, argv);
+}
+
+void MystScriptParser_Channelwood::opcode_119(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	if (argc == 0) {
+		// Used on Card 3333 (Temple Hologram)
+		// TODO: Not 100% sure about movie position...
+		switch (_vm->_varStore->getVar(17)) {
+		case 0:
+			_vm->_video->playMovie(_vm->wrapMovieFilename("holoalgh", kChannelwoodStack), 126, 74);
+			break;
+		case 1:
+			_vm->_video->playMovie(_vm->wrapMovieFilename("holoamth", kChannelwoodStack), 126, 74);
+			break;
+		case 2:
+			_vm->_video->playMovie(_vm->wrapMovieFilename("holoasir", kChannelwoodStack), 126, 74);
+			break;
+		case 3:
+			_vm->_video->playMovie(_vm->wrapMovieFilename("holosmsg", kChannelwoodStack), 126, 74);
+			break;
+		default:
+			warning("Opcode %d Control Variable Out of Range", op);
+			break;
+		}
+	} else
+		unknown(op, var, argc, argv);
+}
+
+void MystScriptParser_Channelwood::opcode_122(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	// Used on Channelwood Card 3280
+	if (argc == 0) {
+		debugC(kDebugScript, "Opcode %d: Do Water Tank Valve Close Animation", op);
+		Common::Rect rect = _invokingResource->getRect();
+
+		// TODO: Need to load the image ids from Script Resources structure of VIEW
+		for (uint16 imageId = 3601; imageId >= 3595; imageId--) {
+			_vm->_gfx->copyImageToScreen(imageId, rect);
+			_vm->_system->delayMillis(50);
+		}
+
+		// TODO: Is 8 gotten from var7 of calling hotspot, rather than hard-coded?
+		_vm->_varStore->setVar(8, 0);
+		_vm->_varStore->setVar(19, 0);
+	} else
+		unknown(op, var, argc, argv);
+}
+
+void MystScriptParser_Channelwood::opcode_127(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	if (argc == 2) {
+		// Used by Card 3262 (Elevator)
+		debugC(kDebugScript, "Opcode %d: Unknown...", op);
+
+		uint16 u0 = argv[0];
+		uint16 u1 = argv[1];
+
+		debugC(kDebugScript, "\tu0: %d", u0);
+		debugC(kDebugScript, "\tu1: %d", u1);
+
+		// TODO: Fill in Code...
+	} else
+		unknown(op, var, argc, argv);
+}
+
+void MystScriptParser_Channelwood::opcode_129(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	if (argc == 1) {
+		// Used by Card 3262 (Elevator)
+		debugC(kDebugScript, "Opcode %d: Unknown...", op);
+
+		uint16 cardId = argv[0];
+
+		debugC(kDebugScript, "\tcardId: %d", cardId);
+
+		// TODO: Fill in Code...
+		_vm->changeToCard(cardId, true);
+	} else
+		unknown(op, var, argc, argv);
+}
+
+void MystScriptParser_Channelwood::opcode_201(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	// Used for Card 3247 (Elevator #1 Movement), 3161 (Bridge Movement), 3259 (Elevator #3 Movement) and 3252 (Elevator #2 Movement)
+	if (argc == 0) {
+		// TODO: Fill in Function. Video Playback? Rect from invoking hotspot resource...
+		if (false) {
+			// Card 3161
+			_vm->_video->playMovie(_vm->wrapMovieFilename("bridge", kChannelwoodStack), 292, 204);
+
+			// Card 3247
+			_vm->_video->playMovie(_vm->wrapMovieFilename("welev1dn", kChannelwoodStack), 214, 107);
+			_vm->_video->playMovie(_vm->wrapMovieFilename("welev1up", kChannelwoodStack), 214, 107);
+
+			// Card 3252
+			_vm->_video->playMovie(_vm->wrapMovieFilename("welev2dn", kChannelwoodStack), 215, 118);
+			_vm->_video->playMovie(_vm->wrapMovieFilename("welev2up", kChannelwoodStack), 215, 118);
+
+			// Card 3259
+			_vm->_video->playMovie(_vm->wrapMovieFilename("welev3dn", kChannelwoodStack), 213, 99);
+			_vm->_video->playMovie(_vm->wrapMovieFilename("welev3up", kChannelwoodStack), 213, 99);
+		}
+	} else
+		unknown(op, var, argc, argv);
+}
+
+static struct {
+	bool enabled;
+	uint16 var;
+} g_opcode202Parameters;
+
+void MystScriptParser_Channelwood::opcode_202_run(void) {
+	if (g_opcode202Parameters.enabled) {
+		// Used for Cards 3328, 3691, 3731, 3809, 3846 etc. (Water Valves)
+
+		// Code for Water Flow Logic
+		// Var 8 = "Water Tank Valve State"
+		// Controls
+		// Var 19 = "Water Flowing to First Water Valve"
+		// Code for this in Opcode 104 / 122
+
+		// Var 19 = "Water Flowing to First Water Valve"
+		// and
+		// Var 9 = "First Water Valve State"
+		// Controls
+		// Var 20 = "Water Flowing to Second (L) Water Valve"
+		// Var 3 = "Water Flowing (R) to Pump for Upper Walkway to Temple Elevator"
+		uint16 var9 = _vm->_varStore->getVar(9);
+		if (_vm->_varStore->getVar(19)) {
+			_vm->_varStore->setVar(20, !var9);
+			_vm->_varStore->setVar(3, var9);
+		} else {
+			// No water into Valve
+			_vm->_varStore->setVar(20, 0);
+			_vm->_varStore->setVar(3, 0);
+		}
+
+		// Var 20 = "Water Flowing to Second (L) Water Valve"
+		// and
+		// Var 10 = "Second (L) Water Valve State"
+		// Controls
+		// Var 24 = "Water Flowing to Third (L, L) Water Valve"
+		// Var 21 = "Water Flowing to Third (L, R) Water Valve"
+		uint16 var10 = _vm->_varStore->getVar(10);
+		if (_vm->_varStore->getVar(20)) {
+			_vm->_varStore->setVar(24, !var10);
+			_vm->_varStore->setVar(21, var10);
+		} else {
+			// No water into Valve
+			_vm->_varStore->setVar(24, 0);
+			_vm->_varStore->setVar(21, 0);
+		}
+
+		// Var 21 = "Water Flowing to Third (L, R) Water Valve"
+		// and
+		// Var 11 = "Third (L, R) Water Valve State"
+		// Controls
+		// Var 23 = "Water Flowing to Fourth (L, R, L) Water Valve"
+		// Var 22 = "Water Flowing to Fourth (L, R, R) Water Valve"
+		uint16 var11 = _vm->_varStore->getVar(11);
+		if (_vm->_varStore->getVar(21)) {
+			_vm->_varStore->setVar(23, !var11);
+			_vm->_varStore->setVar(22, var11);
+		} else {
+			// No water into Valve
+			_vm->_varStore->setVar(23, 0);
+			_vm->_varStore->setVar(22, 0);
+		}
+
+		// Var 24 = "Water Flowing to Third (L, L) Water Valve"
+		// and
+		// Var 14 = "Third (L, L) Water Valve State"
+		// Controls
+		// Var 29 = "Water Flowing to Pipe In Water (L, L, L)"
+		// Var 28 = "Water Flowing to Join and Pump Bridge (L, L, R)"
+		uint16 var14 = _vm->_varStore->getVar(14);
+		if (_vm->_varStore->getVar(24)) {
+			_vm->_varStore->setVar(29, !var14);
+			_vm->_varStore->setVar(28, var14);
+		} else {
+			// No water into Valve
+			_vm->_varStore->setVar(29, 0);
+			_vm->_varStore->setVar(28, 0);
+		}
+
+		// Var 22 = "Water Flowing to Fourth (L, R, R) Water Valve"
+		// and
+		// Var 12 = "Fourth (L, R, R) Water Valve State"
+		// Controls
+		// Var 25 = "Water Flowing to Pipe Bridge (L, R, R, L)"
+		// Var 15 = "Water Flowing (L, R, R, R) to Pump for Lower Walkway to Upper Walkway Elevator"
+		uint16 var12 = _vm->_varStore->getVar(12);
+		if (_vm->_varStore->getVar(22)) {
+			_vm->_varStore->setVar(25, !var12);
+			_vm->_varStore->setVar(15, var12);
+		} else {
+			// No water into Valve
+			_vm->_varStore->setVar(25, 0);
+			_vm->_varStore->setVar(15, 0);
+		}
+
+		// Var 23 = "Water Flowing to Fourth (L, R, L) Water Valve"
+		// and
+		// Var 13 = "Fourth (L, R, L) Water Valve State"
+		// Controls
+		// Var 27 = "Water Flowing to Join and Pump Bridge (L, R, L, L)"
+		// Var 26 = "Water Flowing to Pipe At Entry Point (L, R, L, R)"
+		uint16 var13 = _vm->_varStore->getVar(13);
+		if (_vm->_varStore->getVar(23)) {
+			_vm->_varStore->setVar(27, !var13);
+			_vm->_varStore->setVar(26, var13);
+		} else {
+			// No water into Valve
+			_vm->_varStore->setVar(27, 0);
+			_vm->_varStore->setVar(26, 0);
+		}
+
+		// TODO: Not sure that original had OR logic for water flow at Join...
+		// Var 27 = "Water Flowing to Join and Pump Bridge (L, R, L, L)"
+		// Or
+		// Var 28 = "Water Flowing to Join and Pump Bridge (L, L, R)"
+		// Controls
+		// Var 31 = "Water Flowing to Join (L, L, R)" // 0 to 2 = Stop Sound, Background, Background with Water Flow
+		// Var 7 = "Bridge Pump Running"
+		// TODO: Not sure about control of Var 31 which is tristate...
+		if (_vm->_varStore->getVar(27) || _vm->_varStore->getVar(28)) {
+			_vm->_varStore->setVar(31, 2); // Background with Water Flow
+			_vm->_varStore->setVar(7, 1);
+		} else {
+			// No water into Valve
+			_vm->_varStore->setVar(31, 1); // Background
+			_vm->_varStore->setVar(7, 0);
+		}
+
+		// TODO: Code for this shouldn't be here...
+		//       Move to Opcodes called by Pipe Extension...
+		// Var 25 = "Water Flowing to Pipe Bridge (L, R, R, L)"
+		// and
+		// Var 6 = "Pipe Bridge Extended"
+		// Controls
+		// Var 32 = "Water Flowing (L, R, R, L, Pipe) State" }, // 0 to 2 = Stop Sound, Background, Background with Water Flow
+		// Var 4 = "Water Flowing (L, R, R, L, Pipe Extended) to Pump for Book Room Elevator"
+		// TODO: Not sure about control of Var 32 which is tristate...
+		if (_vm->_varStore->getVar(25) && _vm->_varStore->getVar(6)) {
+			_vm->_varStore->setVar(32, 2); // Background with Water Flow
+			_vm->_varStore->setVar(4, 1);
+		} else {
+			// No water into Valve
+			_vm->_varStore->setVar(32, 1); // Background
+			_vm->_varStore->setVar(4, 0);
+		}
+	}
+}
+
+void MystScriptParser_Channelwood::opcode_202_disable(void) {
+	g_opcode202Parameters.enabled = false;
+}
+
+void MystScriptParser_Channelwood::opcode_202(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	// Used for Cards 3328, 3691, 3731, 3809, 3846 etc. (Water Valves)
+	if (argc == 0) {
+		g_opcode202Parameters.var = var;
+		g_opcode202Parameters.enabled = true;
+	} else
+		unknown(op, var, argc, argv);
+}
+
+static struct {
+	bool enabled;
+} g_opcode203Parameters;
+
+void MystScriptParser_Channelwood::opcode_203_run(void) {
+	if (g_opcode203Parameters.enabled) {
+		// Used for Card 3310 (Sirrus' Room Right Bed Drawer),
+		// Card 3307 (Sirrus' Room Left Bed Drawer)
+		// and Card 3318 (Sirrus' Room Nightstand Drawer)
+		// TODO: Fill in Logic...
+	}
+}
+
+void MystScriptParser_Channelwood::opcode_203_disable(void) {
+	g_opcode203Parameters.enabled = false;
+}
+
+void MystScriptParser_Channelwood::opcode_203(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	varUnusedCheck(op, var);
+
+	// Used for Card 3310 (Sirrus' Room Right Bed Drawer),
+	// Card 3307 (Sirrus' Room Left Bed Drawer)
+	// and Card 3318 (Sirrus' Room Nightstand Drawer)
+	if (argc == 0)
+		g_opcode203Parameters.enabled = true;
+	else
+		unknown(op, var, argc, argv);
+}
+
+void MystScriptParser_Channelwood::opcode_300(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+	// Used in Card 3012 (Achenar's Holoprojector Control)
+	varUnusedCheck(op, var);
+	// TODO: Fill in Logic. Clearing Variable for View?
+}
+
+} // End of namespace Mohawk


Property changes on: scummvm/trunk/engines/mohawk/myst_stacks/channelwood.cpp
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author URL Id
Added: svn:eol-style
   + native

Added: scummvm/trunk/engines/mohawk/myst_stacks/channelwood.h
===================================================================
--- scummvm/trunk/engines/mohawk/myst_stacks/channelwood.h	                        (rev 0)
+++ scummvm/trunk/engines/mohawk/myst_stacks/channelwood.h	2010-12-01 02:11:11 UTC (rev 54691)
@@ -0,0 +1,77 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef MYST_SCRIPTS_CHANNELWOOD_H
+#define MYST_SCRIPTS_CHANNELWOOD_H
+
+#include "common/scummsys.h"
+#include "common/util.h"
+#include "mohawk/myst_scripts.h"
+
+namespace Mohawk {
+
+#define DECLARE_OPCODE(x) void x(uint16 op, uint16 var, uint16 argc, uint16 *argv)
+
+class MohawkEngine_Myst;
+struct MystScriptEntry;
+
+class MystScriptParser_Channelwood : public MystScriptParser {
+public:
+	MystScriptParser_Channelwood(MohawkEngine_Myst *vm);
+	~MystScriptParser_Channelwood();
+
+	void disablePersistentScripts();
+	void runPersistentScripts();
+
+private:
+	void setupOpcodes();
+
+	void opcode_202_run();
+	void opcode_202_disable();
+	void opcode_203_run();
+	void opcode_203_disable();
+
+	DECLARE_OPCODE(opcode_101);
+	DECLARE_OPCODE(opcode_102);
+	DECLARE_OPCODE(opcode_104);
+	DECLARE_OPCODE(opcode_117);
+	DECLARE_OPCODE(opcode_118);
+	DECLARE_OPCODE(opcode_119);
+	DECLARE_OPCODE(opcode_122);
+	DECLARE_OPCODE(opcode_127);
+	DECLARE_OPCODE(opcode_129);
+
+	DECLARE_OPCODE(opcode_201);
+	DECLARE_OPCODE(opcode_202);
+	DECLARE_OPCODE(opcode_203);
+
+	DECLARE_OPCODE(opcode_300);
+};
+
+} // End of namespace Mohawk
+
+#undef DECLARE_OPCODE
+
+#endif


Property changes on: scummvm/trunk/engines/mohawk/myst_stacks/channelwood.h
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author URL Id
Added: svn:eol-style
   + native

Modified: scummvm/trunk/engines/mohawk/myst_stacks/myst.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_stacks/myst.cpp	2010-12-01 00:40:52 UTC (rev 54690)
+++ scummvm/trunk/engines/mohawk/myst_stacks/myst.cpp	2010-12-01 02:11:11 UTC (rev 54691)
@@ -338,32 +338,6 @@
 		} else
 			unknown(op, var, argc, argv);
 		break;
-	case kChannelwoodStack:
-		varUnusedCheck(op, var);
-
-		if (argc == 1) {
-			debugC(kDebugScript, "Opcode %d: Play Pipe Movie and Sound", op);
-
-			uint16 soundId = argv[0];
-			debugC(kDebugScript, "\tsoundId: %d", soundId);
-
-			_vm->_sound->playSound(soundId);
-
-			// 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->playMovie(_vm->wrapMovieFilename("pipebrid", kChannelwoodStack), 267, 170);
-			} else {
-				// Play Pipe Retracting i.e. 1/2 way to end of file
-				_vm->_video->playMovie(_vm->wrapMovieFilename("pipebrid", kChannelwoodStack), 267, 170);
-			}
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	case kDniStack:
 		// Used in Card 5014 (Atrus)
 		// Hotspot Resource Used to hand Page to Atrus...
@@ -399,29 +373,6 @@
 		} else
 			unknown(op, var, argc, argv);
 		break;
-	case kChannelwoodStack:
-		varUnusedCheck(op, var);
-
-		if (argc == 2 || argc == 3) {
-			debugC(kDebugScript, "Opcode %d: Draw Full Screen Image, Optional Delay and Change Card", op);
-
-			uint16 imageId = argv[0];
-			uint16 cardId = argv[1];
-			uint16 delay = 0;
-
-			if (argc == 3)
-				delay = argv[2]; // TODO: Not sure about purpose of this parameter...
-
-			debugC(kDebugScript, "\timageId: %d", imageId);
-			debugC(kDebugScript, "\tcardId: %d", cardId);
-			debugC(kDebugScript, "\tdelay: %d", delay);
-
-			_vm->_gfx->copyImageToScreen(imageId, Common::Rect(0, 0, 544, 333));
-			_vm->_system->delayMillis(delay / 100);
-			_vm->changeToCard(cardId, true);
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	case kDemoStack:
 		varUnusedCheck(op, var);
 
@@ -495,26 +446,6 @@
 		} else
 			unknown(op, var, argc, argv);
 		break;
-	case kChannelwoodStack:
-		varUnusedCheck(op, var);
-
-		// Used on Channelwood Card 3280
-		if (argc == 0) {
-			debugC(kDebugScript, "Opcode %d: Do Water Tank Valve Open Animation", op);
-			Common::Rect rect = _invokingResource->getRect();
-
-			// TODO: Need to load the image ids from Script Resources structure of VIEW
-			for (uint16 imageId = 3595; imageId <= 3601; imageId++) {
-				_vm->_gfx->copyImageToScreen(imageId, rect);
-				_vm->_system->delayMillis(50);
-			}
-
-			// TODO: Is 8 gotten from var7 of calling hotspot, rather than hardcoded?
-			_vm->_varStore->setVar(8, 1);
-			_vm->_varStore->setVar(19, 1);
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	default:
 		unknown(op, var, argc, argv);
 		break;
@@ -809,33 +740,6 @@
 		} else
 			unknown(op, var, argc, argv);
 		break;
-	case kChannelwoodStack:
-		varUnusedCheck(op, var);
-
-		if (argc == 1) {
-			// Used on Card 3012 (Temple Hologram Monitor)
-			uint16 button = argv[0]; // 0 to 3
-			_vm->_varStore->setVar(17, button);
-			switch (button) {
-			case 0:
-				_vm->_video->playMovie(_vm->wrapMovieFilename("monalgh", kChannelwoodStack), 227, 71);
-				break;
-			case 1:
-				_vm->_video->playMovie(_vm->wrapMovieFilename("monamth", kChannelwoodStack), 227, 71);
-				break;
-			case 2:
-				_vm->_video->playMovie(_vm->wrapMovieFilename("monasirs", kChannelwoodStack), 227, 71);
-				break;
-			case 3:
-				_vm->_video->playMovie(_vm->wrapMovieFilename("monsmsg", kChannelwoodStack), 227, 71);
-				break;
-			default:
-				warning("Opcode %d Control Variable Out of Range", op);
-				break;
-			}
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	default:
 		unknown(op, var, argc, argv);
 		break;
@@ -870,16 +774,6 @@
 		} else
 			unknown(op, var, argc, argv);
 		break;
-	case kChannelwoodStack:
-		varUnusedCheck(op, var);
-
-		if (argc == 0) {
-			// Used on Card 3318 (Sirrus' Room Nightstand Drawer)
-			// Triggered when clicked on drawer
-			// TODO: Implement function...
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	default:
 		unknown(op, var, argc, argv);
 		break;
@@ -906,30 +800,6 @@
 		} else
 			unknown(op, var, argc, argv);
 		break;
-	case kChannelwoodStack:
-		if (argc == 0) {
-			// Used on Card 3333 (Temple Hologram)
-			// TODO: Not 100% sure about movie position...
-			switch (_vm->_varStore->getVar(17)) {
-			case 0:
-				_vm->_video->playMovie(_vm->wrapMovieFilename("holoalgh", kChannelwoodStack), 126, 74);
-				break;
-			case 1:
-				_vm->_video->playMovie(_vm->wrapMovieFilename("holoamth", kChannelwoodStack), 126, 74);
-				break;
-			case 2:
-				_vm->_video->playMovie(_vm->wrapMovieFilename("holoasir", kChannelwoodStack), 126, 74);
-				break;
-			case 3:
-				_vm->_video->playMovie(_vm->wrapMovieFilename("holosmsg", kChannelwoodStack), 126, 74);
-				break;
-			default:
-				warning("Opcode %d Control Variable Out of Range", op);
-				break;
-			}
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	default:
 		unknown(op, var, argc, argv);
 		break;
@@ -1007,24 +877,6 @@
 	varUnusedCheck(op, var);
 
 	switch (_vm->getCurStack()) {
-	case kChannelwoodStack:
-		// Used on Channelwood Card 3280
-		if (argc == 0) {
-			debugC(kDebugScript, "Opcode %d: Do Water Tank Valve Close Animation", op);
-			Common::Rect rect = _invokingResource->getRect();
-
-			// TODO: Need to load the image ids from Script Resources structure of VIEW
-			for (uint16 imageId = 3601; imageId >= 3595; imageId--) {
-				_vm->_gfx->copyImageToScreen(imageId, rect);
-				_vm->_system->delayMillis(50);
-			}
-
-			// TODO: Is 8 gotten from var7 of calling hotspot, rather than hard-coded?
-			_vm->_varStore->setVar(8, 0);
-			_vm->_varStore->setVar(19, 0);
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	case kMechanicalStack:
 		if (argc == 0) {
 			// Used on Card 6120 (Elevator)
@@ -1125,21 +977,6 @@
 	varUnusedCheck(op, var);
 
 	switch (_vm->getCurStack()) {
-	case kChannelwoodStack:
-		if (argc == 2) {
-			// Used by Card 3262 (Elevator)
-			debugC(kDebugScript, "Opcode %d: Unknown...", op);
-
-			uint16 u0 = argv[0];
-			uint16 u1 = argv[1];
-
-			debugC(kDebugScript, "\tu0: %d", u0);
-			debugC(kDebugScript, "\tu1: %d", u1);
-
-			// TODO: Fill in Code...
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	case kMechanicalStack:
 		if (argc == 0) {
 			// Used for Mech Card 6226 (3 Crystals)
@@ -1174,20 +1011,6 @@
 	varUnusedCheck(op, var);
 
 	switch (_vm->getCurStack()) {
-	case kChannelwoodStack:
-		if (argc == 1) {
-			// Used by Card 3262 (Elevator)
-			debugC(kDebugScript, "Opcode %d: Unknown...", op);
-
-			uint16 cardId = argv[0];
-
-			debugC(kDebugScript, "\tcardId: %d", cardId);
-
-			// TODO: Fill in Code...
-			_vm->changeToCard(cardId, true);
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	case kMechanicalStack:
 		if (argc == 0) {
 			// Used for Mech Card 6226 (3 Crystals)
@@ -1783,29 +1606,6 @@
 		} else
 			unknown(op, var, argc, argv);
 		break;
-	case kChannelwoodStack:
-		// Used for Card 3247 (Elevator #1 Movement), 3161 (Bridge Movement), 3259 (Elevator #3 Movement) and 3252 (Elevator #2 Movement)
-		if (argc == 0) {
-			// TODO: Fill in Function. Video Playback? Rect from invoking hotspot resource...
-			if (false) {
-				// Card 3161
-				_vm->_video->playMovie(_vm->wrapMovieFilename("bridge", kChannelwoodStack), 292, 204);
-
-				// Card 3247
-				_vm->_video->playMovie(_vm->wrapMovieFilename("welev1dn", kChannelwoodStack), 214, 107);
-				_vm->_video->playMovie(_vm->wrapMovieFilename("welev1up", kChannelwoodStack), 214, 107);
-
-				// Card 3252
-				_vm->_video->playMovie(_vm->wrapMovieFilename("welev2dn", kChannelwoodStack), 215, 118);
-				_vm->_video->playMovie(_vm->wrapMovieFilename("welev2up", kChannelwoodStack), 215, 118);
-
-				// Card 3259
-				_vm->_video->playMovie(_vm->wrapMovieFilename("welev3dn", kChannelwoodStack), 213, 99);
-				_vm->_video->playMovie(_vm->wrapMovieFilename("welev3up", kChannelwoodStack), 213, 99);
-			}
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	case kDemoStack:
 		// Used on Card 2001, 2002 and 2003
 		if (argc == 0) {
@@ -1839,145 +1639,7 @@
 			// Used for Card 6220 (Sirrus' Mechanical Bird)
 			// TODO: Fill in Function
 			break;
-		case kChannelwoodStack:
-			// Used for Cards 3328, 3691, 3731, 3809, 3846 etc. (Water Valves)
-
-			// Code for Water Flow Logic
-			// Var 8 = "Water Tank Valve State"
-			// Controls
-			// Var 19 = "Water Flowing to First Water Valve"
-			// Code for this in Opcode 104 / 122
-
-			// Var 19 = "Water Flowing to First Water Valve"
-			// and
-			// Var 9 = "First Water Valve State"
-			// Controls
-			// Var 20 = "Water Flowing to Second (L) Water Valve"
-			// Var 3 = "Water Flowing (R) to Pump for Upper Walkway to Temple Elevator"
-			uint16 var9 = _vm->_varStore->getVar(9);
-			if (_vm->_varStore->getVar(19)) {
-				_vm->_varStore->setVar(20, !var9);
-				_vm->_varStore->setVar(3, var9);
-			} else {
-				// No water into Valve
-				_vm->_varStore->setVar(20, 0);
-				_vm->_varStore->setVar(3, 0);
-			}
-
-			// Var 20 = "Water Flowing to Second (L) Water Valve"
-			// and
-			// Var 10 = "Second (L) Water Valve State"
-			// Controls
-			// Var 24 = "Water Flowing to Third (L, L) Water Valve"
-			// Var 21 = "Water Flowing to Third (L, R) Water Valve"
-			uint16 var10 = _vm->_varStore->getVar(10);
-			if (_vm->_varStore->getVar(20)) {
-				_vm->_varStore->setVar(24, !var10);
-				_vm->_varStore->setVar(21, var10);
-			} else {
-				// No water into Valve
-				_vm->_varStore->setVar(24, 0);
-				_vm->_varStore->setVar(21, 0);
-			}
-
-			// Var 21 = "Water Flowing to Third (L, R) Water Valve"
-			// and
-			// Var 11 = "Third (L, R) Water Valve State"
-			// Controls
-			// Var 23 = "Water Flowing to Fourth (L, R, L) Water Valve"
-			// Var 22 = "Water Flowing to Fourth (L, R, R) Water Valve"
-			uint16 var11 = _vm->_varStore->getVar(11);
-			if (_vm->_varStore->getVar(21)) {
-				_vm->_varStore->setVar(23, !var11);
-				_vm->_varStore->setVar(22, var11);
-			} else {
-				// No water into Valve
-				_vm->_varStore->setVar(23, 0);
-				_vm->_varStore->setVar(22, 0);
-			}
-
-			// Var 24 = "Water Flowing to Third (L, L) Water Valve"
-			// and
-			// Var 14 = "Third (L, L) Water Valve State"
-			// Controls
-			// Var 29 = "Water Flowing to Pipe In Water (L, L, L)"
-			// Var 28 = "Water Flowing to Join and Pump Bridge (L, L, R)"
-			uint16 var14 = _vm->_varStore->getVar(14);
-			if (_vm->_varStore->getVar(24)) {
-				_vm->_varStore->setVar(29, !var14);
-				_vm->_varStore->setVar(28, var14);
-			} else {
-				// No water into Valve
-				_vm->_varStore->setVar(29, 0);
-				_vm->_varStore->setVar(28, 0);
-			}
-
-			// Var 22 = "Water Flowing to Fourth (L, R, R) Water Valve"
-			// and
-			// Var 12 = "Fourth (L, R, R) Water Valve State"
-			// Controls
-			// Var 25 = "Water Flowing to Pipe Bridge (L, R, R, L)"
-			// Var 15 = "Water Flowing (L, R, R, R) to Pump for Lower Walkway to Upper Walkway Elevator"
-			uint16 var12 = _vm->_varStore->getVar(12);
-			if (_vm->_varStore->getVar(22)) {
-				_vm->_varStore->setVar(25, !var12);
-				_vm->_varStore->setVar(15, var12);
-			} else {
-				// No water into Valve
-				_vm->_varStore->setVar(25, 0);
-				_vm->_varStore->setVar(15, 0);
-			}
-
-			// Var 23 = "Water Flowing to Fourth (L, R, L) Water Valve"
-			// and
-			// Var 13 = "Fourth (L, R, L) Water Valve State"
-			// Controls
-			// Var 27 = "Water Flowing to Join and Pump Bridge (L, R, L, L)"
-			// Var 26 = "Water Flowing to Pipe At Entry Point (L, R, L, R)"
-			uint16 var13 = _vm->_varStore->getVar(13);
-			if (_vm->_varStore->getVar(23)) {
-				_vm->_varStore->setVar(27, !var13);
-				_vm->_varStore->setVar(26, var13);
-			} else {
-				// No water into Valve
-				_vm->_varStore->setVar(27, 0);
-				_vm->_varStore->setVar(26, 0);
-			}
-
-			// TODO: Not sure that original had OR logic for water flow at Join...
-			// Var 27 = "Water Flowing to Join and Pump Bridge (L, R, L, L)"
-			// Or
-			// Var 28 = "Water Flowing to Join and Pump Bridge (L, L, R)"
-			// Controls
-			// Var 31 = "Water Flowing to Join (L, L, R)" // 0 to 2 = Stop Sound, Background, Background with Water Flow
-			// Var 7 = "Bridge Pump Running"
-			// TODO: Not sure about control of Var 31 which is tristate...
-			if (_vm->_varStore->getVar(27) || _vm->_varStore->getVar(28)) {
-				_vm->_varStore->setVar(31, 2); // Background with Water Flow
-				_vm->_varStore->setVar(7, 1);
-			} else {
-				// No water into Valve
-				_vm->_varStore->setVar(31, 1); // Background
-				_vm->_varStore->setVar(7, 0);
-			}
-
-			// TODO: Code for this shouldn't be here...
-			//       Move to Opcodes called by Pipe Extension...
-			// Var 25 = "Water Flowing to Pipe Bridge (L, R, R, L)"
-			// and
-			// Var 6 = "Pipe Bridge Extended"
-			// Controls
-			// Var 32 = "Water Flowing (L, R, R, L, Pipe) State" }, // 0 to 2 = Stop Sound, Background, Background with Water Flow
-			// Var 4 = "Water Flowing (L, R, R, L, Pipe Extended) to Pump for Book Room Elevator"
-			// TODO: Not sure about control of Var 32 which is tristate...
-			if (_vm->_varStore->getVar(25) && _vm->_varStore->getVar(6)) {
-				_vm->_varStore->setVar(32, 2); // Background with Water Flow
-				_vm->_varStore->setVar(4, 1);
-			} else {
-				// No water into Valve
-				_vm->_varStore->setVar(32, 1); // Background
-				_vm->_varStore->setVar(4, 0);
-			}
+		default:
 			break;
 		}
 	}
@@ -2007,14 +1669,6 @@
 		} else
 			unknown(op, var, argc, argv);
 		break;
-	case kChannelwoodStack:
-		// Used for Cards 3328, 3691, 3731, 3809, 3846 etc. (Water Valves)
-		if (argc == 0) {
-			g_opcode202Parameters.var = var;
-			g_opcode202Parameters.enabled = true;
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	default:
 		varUnusedCheck(op, var);
 
@@ -2042,12 +1696,6 @@
 			// Used for Card 6043 (Weapons Rack with Snake Box)
 			// TODO: Fill in Logic for Snake Box...
 			break;
-		case kChannelwoodStack:
-			// Used for Card 3310 (Sirrus' Room Right Bed Drawer),
-			// Card 3307 (Sirrus' Room Left Bed Drawer)
-			// and Card 3318 (Sirrus' Room Nightstand Drawer)
-			// TODO: Fill in Logic...
-			break;
 		}
 	}
 }
@@ -2072,15 +1720,6 @@
 		} else
 			unknown(op, var, argc, argv);
 		break;
-	case kChannelwoodStack:
-		// Used for Card 3310 (Sirrus' Room Right Bed Drawer),
-		// Card 3307 (Sirrus' Room Left Bed Drawer)
-		// and Card 3318 (Sirrus' Room Nightstand Drawer)
-		if (argc == 0) {
-			g_opcode203Parameters.enabled = true;
-		} else
-			unknown(op, var, argc, argv);
-		break;
 	default:
 		unknown(op, var, argc, argv);
 		break;
@@ -2850,11 +2489,6 @@
 		varUnusedCheck(op, var);
 		// TODO: Fill in Logic. Clearing Variable for View?
 		break;
-	case kChannelwoodStack:
-		// Used in Card 3012 (Achenar's Holoprojector Control)
-		varUnusedCheck(op, var);
-		// TODO: Fill in Logic. Clearing Variable for View?
-		break;
 	case kDniStack:
 		// Used in Card 5014 (Atrus Writing)
 		varUnusedCheck(op, var);

Modified: scummvm/trunk/engines/mohawk/myst_stacks/myst.h
===================================================================
--- scummvm/trunk/engines/mohawk/myst_stacks/myst.h	2010-12-01 00:40:52 UTC (rev 54690)
+++ scummvm/trunk/engines/mohawk/myst_stacks/myst.h	2010-12-01 02:11:11 UTC (rev 54691)
@@ -150,7 +150,7 @@
 	DECLARE_OPCODE(opcode_312);
 };
 
-}
+} // End of namespace Mohawk
 
 #undef DECLARE_OPCODE
 


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