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

bgk at users.sourceforge.net bgk at users.sourceforge.net
Mon Nov 29 22:01:30 CET 2010


Revision: 54639
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54639&view=rev
Author:   bgk
Date:     2010-11-29 21:01:30 +0000 (Mon, 29 Nov 2010)

Log Message:
-----------
MOHAWK: Implement retrieving the invoking resource from data for init and exit scripts.

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

Modified: scummvm/trunk/engines/mohawk/myst_scripts.cpp
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts.cpp	2010-11-29 21:01:15 UTC (rev 54638)
+++ scummvm/trunk/engines/mohawk/myst_scripts.cpp	2010-11-29 21:01:30 UTC (rev 54639)
@@ -41,7 +41,7 @@
 	var = 0;
 	argc = 0;
 	argv = 0;
-	u0 = 0;
+	resourceId = 0;
 	u1 = 0;
 }
 
@@ -154,12 +154,17 @@
 }
 
 void MystScriptParser::runScript(MystScript script, MystResource *invokingResource) {
-	_invokingResource = invokingResource;
-
 	debugC(kDebugScript, "Script Size: %d", script->size());
 	for (uint16 i = 0; i < script->size(); i++) {
 		MystScriptEntry &entry = script->operator[](i);
 		debugC(kDebugScript, "\tOpcode %d: %d", i, entry.opcode);
+
+		if (entry.type == kMystScriptNormal) {
+			_invokingResource = invokingResource;
+		} else {
+			_invokingResource = _vm->_resources[entry.resourceId];
+		}
+
 		runOpcode(entry.opcode, entry.var, entry.argc, entry.argv);
 	}
 }
@@ -202,7 +207,7 @@
 
 		// u0 only exists in INIT and EXIT scripts
 		if (type != kMystScriptNormal)
-			entry.u0 = stream->readUint16LE();
+			entry.resourceId = stream->readUint16LE();
 
 		entry.opcode = stream->readUint16LE();
 		entry.var = stream->readUint16LE();

Modified: scummvm/trunk/engines/mohawk/myst_scripts.h
===================================================================
--- scummvm/trunk/engines/mohawk/myst_scripts.h	2010-11-29 21:01:15 UTC (rev 54638)
+++ scummvm/trunk/engines/mohawk/myst_scripts.h	2010-11-29 21:01:30 UTC (rev 54639)
@@ -49,7 +49,7 @@
 	~MystScriptEntry();
 
 	MystScriptType type;
-	uint16 u0;
+	uint16 resourceId;
 	uint16 opcode;
 	uint16 var;
 	uint16 argc;


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