[Scummvm-cvs-logs] CVS: tools descumm6.cpp,1.105,1.106

Max Horn fingolfin at users.sourceforge.net
Tue May 20 10:30:02 CEST 2003


Update of /cvsroot/scummvm/tools
In directory sc8-pr-cvs1:/tmp/cvs-serv25047

Modified Files:
	descumm6.cpp 
Log Message:
changed 'y' modifier to produce default output, instead of an error, if an unknown subOpcode is encountered; renamed some opcodes to match ScummVM naming; added some subopcodes for the V6/V7 kernel opcodes

Index: descumm6.cpp
===================================================================
RCS file: /cvsroot/scummvm/tools/descumm6.cpp,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -d -r1.105 -r1.106
--- descumm6.cpp	19 May 2003 14:02:06 -0000	1.105
+++ descumm6.cpp	20 May 2003 17:29:01 -0000	1.106
@@ -1015,20 +1015,27 @@
 			/* extended thing */
 			se = args[numArgs - 1];
 			se->data--;
-			se = se->list[se->data];
-			extcmd = se->data;
+			extcmd = se->list[se->data]->data;
 
 			/* locate our extended item */
 			while ((cmd = *fmt++) != extcmd) {
 				/* scan until we find , or \0 */
 				while ((cmd = *fmt++) != ',') {
 					if (cmd == 0) {
-						invalidop(extstr, extcmd);
+//						invalidop(extstr, extcmd);
+//						extstr = "foo";
+						goto use_default_command;
 					}
 				}
 			}
+
 			/* found a command, continue at the beginning */
 			continue;
+
+use_default_command:
+			se->data++;
+			fmt = extstr;
+			break;
 		}
 		if (cmd == 'm' && !prep) {
 			prep = fmt;
@@ -1060,8 +1067,8 @@
 	e = (char *)output;
 	if (prep)
 		e = strecpy(e, prep);
-	while ((cmd = *fmt++) != 0 && cmd != ',')
-		*e++ = cmd;
+	while (*fmt != 0 && *fmt != ',')
+		*e++ = *fmt++;
 	*e++ = '(';
 	while (--numArgs >= 0) {
 		e = se_astext(args[numArgs], e);
@@ -1637,7 +1644,7 @@
 		ext("s|startVideo");
 		break;
 	case 0xBA:
-		ext("y" "kludge\0"
+		ext("y" "kernelSetFunctions\0"
 				"\xB|lockObject,"
 				"\xC|unlockObject,"
 				"\xD|remapCostume,"
@@ -1657,7 +1664,7 @@
 				"\x1E|killAllScriptsButMe,"
 				"\x1F|stopAllVideo,"
 				"\x20|writeRegistryValue,"
-				"\x21|PpaletteSetIntensity,"
+				"\x21|paletteSetIntensity,"
 				"\x22|queryQuit,"
 				
 				"\x6C|buildPaletteShadow,"
@@ -1711,7 +1718,7 @@
 		break;
 
 	case 0xD8:
-		ext("ry" "f-kludge\0"
+		ext("ry" "kernelGetFunctions\0"
 				"\x73|getWalkBoxAt,"
 				"\x74|isPointInBox,"
 
@@ -2405,11 +2412,24 @@
 		ext("rpppp|getDistPtPt");
 		break;
 	case 0xC8:
-		// TODO - make use of new 'y' ext
-		ext("rl|kernelFunction");
+		// TODO - add more subopcodes
+		ext("ry" "kernelGetFunctions\0"
+				"\x73|getWalkBoxAt,"
+				"\x74|isPointInBox"
+				);
 		break;
 	case 0xC9:
-		ext("l|miscOps");
+		// TODO - add more subopcodes
+		ext("y" "kernelSetFunctions\0"
+				"\x4|grabCursor,"
+				"\x5|fadeOut,"
+
+				"\x6C|buildPaletteShadow,"
+				"\x6D|setPaletteShadow,"
+
+				"\x76|blastShadowObject,"
+				"\x77|superBlastObject"
+				);
 		break;
 	case 0xCA:
 		ext("p|breakXTimes");





More information about the Scummvm-git-logs mailing list