[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