[Scummvm-cvs-logs] SF.net SVN: scummvm:[41664] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Fri Jun 19 11:43:01 CEST 2009


Revision: 41664
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41664&view=rev
Author:   drmccoy
Date:     2009-06-19 09:43:01 +0000 (Fri, 19 Jun 2009)

Log Message:
-----------
Fixing The Last Dynasty again after the opcode dispatcher changes

Modified Paths:
--------------
    scummvm/trunk/engines/gob/inter.cpp
    scummvm/trunk/engines/gob/inter.h
    scummvm/trunk/engines/gob/inter_v2.cpp
    scummvm/trunk/engines/gob/inter_v5.cpp

Modified: scummvm/trunk/engines/gob/inter.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter.cpp	2009-06-19 09:42:41 UTC (rev 41663)
+++ scummvm/trunk/engines/gob/inter.cpp	2009-06-19 09:43:01 UTC (rev 41664)
@@ -114,11 +114,7 @@
 		return;
 	}
 
-	int16 val;
-
-	_vm->_global->_inter_execPtr -= 2;
-	val = load16();
-	_vm->_global->_inter_execPtr += val << 1;
+	_vm->_global->_inter_execPtr += params.paramCount << 1;
 	warning("unimplemented opcodeGob: %d [0x%X]", i, i);
 }
 

Modified: scummvm/trunk/engines/gob/inter.h
===================================================================
--- scummvm/trunk/engines/gob/inter.h	2009-06-19 09:42:41 UTC (rev 41663)
+++ scummvm/trunk/engines/gob/inter.h	2009-06-19 09:43:01 UTC (rev 41664)
@@ -61,6 +61,7 @@
 };
 struct OpGobParams {
 	int16 extraData;
+	int16 paramCount;
 	VariableReference retVarPtr;
 	Goblin::Gob_Object *objDesc;
 };

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2009-06-19 09:42:41 UTC (rev 41663)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2009-06-19 09:43:01 UTC (rev 41664)
@@ -1259,8 +1259,10 @@
 	int16 cmd;
 
 	cmd = load16();
-	_vm->_global->_inter_execPtr += 2;
 
+	gobParams.paramCount = load16();
+	gobParams.extraData = cmd;
+
 	if (cmd != 101)
 		executeOpcodeGob(cmd, gobParams);
 	return false;

Modified: scummvm/trunk/engines/gob/inter_v5.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v5.cpp	2009-06-19 09:42:41 UTC (rev 41663)
+++ scummvm/trunk/engines/gob/inter_v5.cpp	2009-06-19 09:43:01 UTC (rev 41664)
@@ -235,14 +235,12 @@
 }
 
 void Inter_v5::o5_spaceShooter(OpGobParams &params) {
-	int16 paramCount = load16();
-
 	warning("Dynasty Stub: Space shooter: %d, %d, %s",
-			params.extraData, paramCount, _vm->_game->_curTotFile);
+			params.extraData, params.paramCount, _vm->_game->_curTotFile);
 
-	if (paramCount < 4) {
+	if (params.paramCount < 4) {
 		warning("Space shooter variable counter < 4");
-		_vm->_global->_inter_execPtr += paramCount * 2;
+		_vm->_global->_inter_execPtr += params.paramCount * 2;
 		return;
 	}
 
@@ -256,18 +254,16 @@
 		WRITE_VARO_UINT32(var1, 2);
 		WRITE_VARO_UINT32(var2, 0);
 	} else {
-		if (paramCount < 5) {
+		if (params.paramCount < 5) {
 			warning("Space shooter variable counter < 5");
 			return;
 		}
 
-		_vm->_global->_inter_execPtr += (paramCount - 4) * 2;
+		_vm->_global->_inter_execPtr += (params.paramCount - 4) * 2;
 	}
 }
 
 void Inter_v5::o5_getSystemCDSpeed(OpGobParams &params) {
-	_vm->_global->_inter_execPtr += 2;
-
 	WRITE_VAR_UINT32(load16(), 100); // Fudging 100%
 
 	Video::FontDesc *font;
@@ -280,8 +276,6 @@
 }
 
 void Inter_v5::o5_getSystemRAM(OpGobParams &params) {
-	_vm->_global->_inter_execPtr += 2;
-
 	WRITE_VAR_UINT32(load16(), 100); // Fudging 100%
 
 	Video::FontDesc *font;
@@ -294,8 +288,6 @@
 }
 
 void Inter_v5::o5_getSystemCPUSpeed(OpGobParams &params) {
-	_vm->_global->_inter_execPtr += 2;
-
 	WRITE_VAR_UINT32(load16(), 100); // Fudging 100%
 
 	Video::FontDesc *font;
@@ -308,8 +300,6 @@
 }
 
 void Inter_v5::o5_getSystemDrawSpeed(OpGobParams &params) {
-	_vm->_global->_inter_execPtr += 2;
-
 	WRITE_VAR_UINT32(load16(), 100); // Fudging 100%
 
 	Video::FontDesc *font;
@@ -322,8 +312,6 @@
 }
 
 void Inter_v5::o5_totalSystemSpecs(OpGobParams &params) {
-	_vm->_global->_inter_execPtr += 2;
-
 	WRITE_VAR_UINT32(load16(), 100); // Fudging 100%
 
 	Video::FontDesc *font;
@@ -338,8 +326,6 @@
 void Inter_v5::o5_saveSystemSpecs(OpGobParams &params) {
 	warning("Dynasty Stub: Saving system specifications");
 
-	_vm->_global->_inter_execPtr += 2;
-
 /*
 	FILE *f = fopen("SAVE\\SPEED.INF", w);
 	fwrite(&_cdSpeed,   sizeof(_cdSpeed),   1, f);
@@ -354,8 +340,6 @@
 void Inter_v5::o5_loadSystemSpecs(OpGobParams &params) {
 	warning("Dynasty Stub: Loading system specifications");
 
-	_vm->_global->_inter_execPtr += 2;
-
 /*
 	FILE *f = fopen("SAVE\\SPEED.INF", r);
 	fread(&_cdSpeed,   sizeof(_cdSpeed),   1, f);
@@ -392,16 +376,12 @@
 void Inter_v5::o5_gob92(OpGobParams &params) {
 	warning("Dynasty Stub: GobFunc 92");
 
-	_vm->_global->_inter_execPtr += 2;
-
 	WRITE_VAR_UINT32(load16(), 0 /* (uint32) ((int32) ((int8) _gob92_1)) */);
 }
 
 void Inter_v5::o5_gob95(OpGobParams &params) {
 	warning("Dynasty Stub: GobFunc 95");
 
-	_vm->_global->_inter_execPtr += 2;
-
 	WRITE_VAR_UINT32(load16(), 0 /* (uint32) ((int32) ((int16) speedThrottle4)) */);
 	WRITE_VAR_UINT32(load16(), 0 /* (uint32) ((int32) ((int8)  speedThrottle3)) */);
 	WRITE_VAR_UINT32(load16(), 0 /* (uint32) ((int32) ((int8)  speedThrottle2)) */);
@@ -412,8 +392,6 @@
 	int16 speedThrottle4, speedThrottle1;
 	byte speedThrottle3, speedThrottle2;
 
-	_vm->_global->_inter_execPtr += 2;
-
 	speedThrottle4 = READ_VAR_UINT16(load16());
 	speedThrottle3 = READ_VAR_UINT8(load16());
 	speedThrottle2 = READ_VAR_UINT8(load16());
@@ -427,19 +405,13 @@
 
 void Inter_v5::o5_gob97(OpGobParams &params) {
 	_gob_97_98_val = 1;
-
-	_vm->_global->_inter_execPtr += 2;
 }
 
 void Inter_v5::o5_gob98(OpGobParams &params) {
 	_gob_97_98_val = 0;
-
-	_vm->_global->_inter_execPtr += 2;
 }
 
 void Inter_v5::o5_gob100(OpGobParams &params) {
-	_vm->_global->_inter_execPtr += 2;
-
 	uint16 var1 = READ_VAR_UINT16(load16());
 	uint16 var2 = READ_VAR_UINT16(load16());
 	uint16 var3 = READ_VAR_UINT16(load16());
@@ -452,8 +424,6 @@
 }
 
 void Inter_v5::o5_gob200(OpGobParams &params) {
-	_vm->_global->_inter_execPtr += 2;
-
 	uint16 var1 = load16(); // index into the spritesArray
 	uint16 var2 = load16();
 	uint16 var3 = load16();


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