[Scummvm-cvs-logs] CVS: tools descumm3.cpp,1.21,1.22

Max Horn fingolfin at users.sourceforge.net
Fri Apr 11 14:06:02 CEST 2003


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

Modified Files:
	descumm3.cpp 
Log Message:
fixes for OLD256 games

Index: descumm3.cpp
===================================================================
RCS file: /cvsroot/scummvm/tools/descumm3.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- descumm3.cpp	18 Mar 2003 17:14:27 -0000	1.21
+++ descumm3.cpp	11 Apr 2003 21:05:01 -0000	1.22
@@ -109,6 +109,10 @@
 
 int get_curpos();
 int gameFlag;
+
+bool GF_OLD256 = true;	// TODO - this should be controlled by a command line option
+
+
 bool emit_if(char *before, char *after);
 
 #if defined(SCUMM_BIG_ENDIAN)
@@ -617,7 +621,9 @@
 			buf = do_tok(buf, "Width", ((opcode & 0x80) ? A1V : A1B));
 			break;
 		case 0x11:
-			buf = do_tok(buf, "Scale", ((opcode & 0x80) ? A1V : A1B) | ((opcode & 0x40) ? A2V : A2B));
+			// AGH, for GID_MONKEY_VGA this is:
+			buf = do_tok(buf, "Scale", ((opcode & 0x80) ? A1V : A1B));
+//			buf = do_tok(buf, "Scale", ((opcode & 0x80) ? A1V : A1B) | ((opcode & 0x40) ? A2V : A2B));
 			break;
 		case 0x12:
 			buf = do_tok(buf, "NeverZClip", 0);
@@ -925,8 +931,10 @@
 	char	a[256];
 	char	b[256];
 	
-	get_var_or_word(a, (master_opcode & 0x80));
-	get_var_or_word(b, (master_opcode & 0x40));
+	if (GF_OLD256) {
+		get_var_or_word(a, (master_opcode & 0x80));
+		get_var_or_word(b, (master_opcode & 0x40));
+	}
 
 	int opcode = get_byte();
 
@@ -934,6 +942,10 @@
 
 	switch (opcode & 0x1F) {
 	case 0x01:
+		if (!GF_OLD256) {
+			get_var_or_word(a, (master_opcode & 0x80));
+			get_var_or_word(b, (master_opcode & 0x40));
+		}
 		buf = strecpy(buf, "RoomScroll(");
 		buf = strecpy(buf, a);
 		buf = strecpy(buf, ",");
@@ -941,6 +953,10 @@
 		buf = strecpy(buf, ")");
 		break;
 	case 0x02:
+		if (!GF_OLD256) {
+			get_var_or_word(a, (master_opcode & 0x80));
+			get_var_or_word(b, (master_opcode & 0x40));
+		}
 		buf = strecpy(buf, "RoomColor(");
 		buf = strecpy(buf, a);
 		buf = strecpy(buf, ",");
@@ -948,6 +964,10 @@
 		buf = strecpy(buf, ")");
 		break;
 	case 0x03:
+		if (!GF_OLD256) {
+			get_var_or_word(a, (master_opcode & 0x80));
+			get_var_or_word(b, (master_opcode & 0x40));
+		}
 		buf = strecpy(buf, "SetScreen(");
 		buf = strecpy(buf, a);
 		buf = strecpy(buf, ",");
@@ -955,6 +975,10 @@
 		buf = strecpy(buf, ")");
 		break;
 	case 0x04:
+		if (!GF_OLD256) {
+			get_var_or_word(a, (master_opcode & 0x80));
+			get_var_or_word(b, (master_opcode & 0x40));
+		}
 		buf = strecpy(buf, "SetPalColor(");
 		buf = strecpy(buf, a);
 		buf = strecpy(buf, ",");
@@ -967,6 +991,7 @@
 	case 0x06:
 		do_tok(buf, "ShakeOff", 0);
 		break;
+/*
 	case 0x07:
 		do_tok(buf, "Unused", 0);
 		break;
@@ -1026,13 +1051,14 @@
 		opcode = get_byte();
 		buf = do_tok(buf, NULL, ASTARTCOMMA | ANOFIRSTPAREN | ((opcode & 0x80) ? A1V : A1B));
 		break;
-
+*/
 	case 0x10:
 		do_tok(buf, "colorCycleDelay", ((opcode & 0x80) ? A1V : A1B) | ((opcode & 0x40) ? A2V : A2B));
 		break;
-
 	default:
 		strcpy(buf, "Unknown??");
+		printf("UGH, unknown room op %d\n", opcode & 0x1F);
+		exit(1);
 	}
 }
 





More information about the Scummvm-git-logs mailing list