[Scummvm-cvs-logs] SF.net SVN: scummvm: [32360] scummvm/trunk/engines/cine/object.cpp

buddha_ at users.sourceforge.net buddha_ at users.sourceforge.net
Thu May 29 14:22:15 CEST 2008


Revision: 32360
          http://scummvm.svn.sourceforge.net/scummvm/?rev=32360&view=rev
Author:   buddha_
Date:     2008-05-29 05:22:14 -0700 (Thu, 29 May 2008)

Log Message:
-----------
Verified most parts of opcode 0x01 (o1_modifyObjectParam) against Future Wars's and Operation Stealth's disassembly (Only part of switch case 3 still left to do).

Modified Paths:
--------------
    scummvm/trunk/engines/cine/object.cpp

Modified: scummvm/trunk/engines/cine/object.cpp
===================================================================
--- scummvm/trunk/engines/cine/object.cpp	2008-05-29 12:17:40 UTC (rev 32359)
+++ scummvm/trunk/engines/cine/object.cpp	2008-05-29 12:22:14 UTC (rev 32360)
@@ -185,39 +185,37 @@
 }
 
 void modifyObjectParam(byte objIdx, byte paramIdx, int16 newValue) {
-	paramIdx--;
-
-	assert(paramIdx <= 5);
-
 	switch (paramIdx) {
-	case 0:
+	case 1:
 		objectTable[objIdx].x = newValue;
 		break;
-	case 1:
+	case 2:
 		objectTable[objIdx].y = newValue;
 		break;
-	case 2:
+	case 3:
 		objectTable[objIdx].mask = newValue;
 
+		// TODO: Check this part against disassembly
 		if (removeOverlay(objIdx, 0)) {
 			addOverlay(objIdx, 0);
 		}
 		break;
-	case 3:
+	case 4:
 		objectTable[objIdx].frame = newValue;
 		break;
-	case 4:
-		// is it really in Future Wars? it breaks the newspaper machine
-		// on the airport in Operation Stealth
-		if (newValue == -1 && g_cine->getGameType() != Cine::GType_OS) {
+	case 5:
+		// TODO: Test if this really breaks the newspaper machine on the airport in Operation Stealth.
+		if (g_cine->getGameType() == Cine::GType_FW && newValue == -1) {
 			objectTable[objIdx].costume = globalVars[0];
 		} else {
 			objectTable[objIdx].costume = newValue;
 		}
 		break;
-	case 5:
+	case 6:
 		objectTable[objIdx].part = newValue;
 		break;
+	default: // No-operation
+		break;
 	}
 }
 


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