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

bgk at users.sourceforge.net bgk at users.sourceforge.net
Mon Nov 29 21:59:44 CET 2010


Revision: 54632
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54632&view=rev
Author:   bgk
Date:     2010-11-29 20:59:44 +0000 (Mon, 29 Nov 2010)

Log Message:
-----------
MOHAWK: Add a generic temp var for use by Myst scripts.

Modified Paths:
--------------
    scummvm/trunk/engines/mohawk/myst_scripts.cpp
    scummvm/trunk/engines/mohawk/myst_scripts.h
    scummvm/trunk/engines/mohawk/myst_scripts_myst.cpp

Modified: scummvm/trunk/engines/mohawk/myst_scripts.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts.cpp	2010-11-29 20:59:30 UTC (rev 54631)
+++ scummvm/trunk/engines/mohawk/myst_scripts.cpp	2010-11-29 20:59:44 UTC (rev 54632)
@@ -217,8 +217,13 @@
 }
 
 uint16 MystScriptParser::getVar(uint16 var) {
-	warning("Unimplemented var getter 0x%02x (%d)", var, var);
-	return _vm->_varStore->getVar(var);
+	switch(var) {
+	case 105:
+		return _tempVar;
+	default:
+		warning("Unimplemented var getter 0x%02x (%d)", var, var);
+		return _vm->_varStore->getVar(var);
+	}
 }
 
 void MystScriptParser::toggleVar(uint16 var) {
@@ -227,8 +232,14 @@
 }
 
 bool MystScriptParser::setVarValue(uint16 var, uint16 value) {
-	warning("Unimplemented var setter 0x%02x (%d)", var, var);
-	_vm->_varStore->setVar(var, value);
+	if (var == 105) {
+		if (_tempVar != value)
+			_tempVar = value;
+	} else {
+		warning("Unimplemented var setter 0x%02x (%d)", var, var);
+		_vm->_varStore->setVar(var, value);
+	}
+
 	return false;
 }
 

Modified: scummvm/trunk/engines/mohawk/myst_scripts.h
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts.h	2010-11-29 20:59:30 UTC (rev 54631)
+++ scummvm/trunk/engines/mohawk/myst_scripts.h	2010-11-29 20:59:44 UTC (rev 54632)
@@ -131,20 +131,20 @@
 		const char *desc;
 	};
 
+	uint16 _opcodeCount;
 	const MystOpcode *_opcodes;
-	void setupOpcodes();
+
 	MystResource *_invokingResource;
-	uint16 _opcodeCount;
 
+	uint16 _savedCardId;
+	uint16 _savedCursorId;
+	uint16 _tempVar; // Generic temp var used by the scripts
+
 	static const uint8 stack_map[];
 	static const uint16 start_card[];
 
-	uint16 _savedCardId;
-	uint16 _savedCursorId;
-
+	void setupOpcodes();
 	void varUnusedCheck(uint16 op, uint16 var);
-
-
 };
 
 }

Modified: scummvm/trunk/engines/mohawk/myst_scripts_myst.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts_myst.cpp	2010-11-29 20:59:30 UTC (rev 54631)
+++ scummvm/trunk/engines/mohawk/myst_scripts_myst.cpp	2010-11-29 20:59:44 UTC (rev 54632)
@@ -2680,10 +2680,8 @@
 		break;
 	case kMystStack:
 		// Used for Card 4138 (Dock Forechamber Door)
-		if (argc == 0) {
-			g_opcode203Parameters.enabled = true;
-		} else
-			unknown(op, var, argc, argv);
+		// Set forechamber door to closed
+		setVarValue(105, 0);
 		break;
 	case kMechanicalStack:
 		// Used for Card 6043 (Weapons Rack with Snake Box)


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