[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