[Scummvm-cvs-logs] CVS: tools descumm-tool.cpp,1.2,1.3
Max Horn
fingolfin at users.sourceforge.net
Sat Sep 27 18:27:02 CEST 2003
Update of /cvsroot/scummvm/tools
In directory sc8-pr-cvs1:/tmp/cvs-serv1776
Modified Files:
descumm-tool.cpp
Log Message:
more cleanup
Index: descumm-tool.cpp
===================================================================
RCS file: /cvsroot/scummvm/tools/descumm-tool.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- descumm-tool.cpp 28 Sep 2003 01:03:10 -0000 1.2
+++ descumm-tool.cpp 28 Sep 2003 01:26:34 -0000 1.3
@@ -89,20 +89,7 @@
return minOffset;
}
-byte *skipVerbHeader_V5(byte *p)
-{
- byte code;
-
- printf("Events:\n");
-
- while ((code = *p++) != 0) {
- printf(" %2X - %.4X\n", code, TO_LE_16(*(uint16 *)p));
- p += 2;
- }
- return p;
-}
-
-int skipVerbHeader_V67(byte *p)
+int skipVerbHeader_V567(byte *p)
{
byte code;
int offset = 8;
@@ -121,24 +108,21 @@
return minOffset;
}
-byte *skipVerbHeader_V8(byte *p)
+int skipVerbHeader_V8(byte *p)
{
uint32 *ptr;
uint32 code;
- int hdrlen;
-
- ptr = (uint32 *)p;
- while (TO_LE_32(*ptr++) != 0) {
- ptr++;
- }
- hdrlen = (byte *)ptr - p;
+ int offset;
+ int minOffset = 255;
ptr = (uint32 *)p;
while ((code = TO_LE_32(*ptr++)) != 0) {
- printf(" %2d - %.4X\n", code, TO_LE_32(*ptr++) - hdrlen);
+ offset = TO_LE_32(*ptr++);
+ printf(" %2d - %.4X\n", code, offset);
+ if (minOffset > offset)
+ minOffset = offset;
}
-
- return (byte *)ptr;
+ return minOffset;
}
int main(int argc, char *argv[])
@@ -307,12 +291,11 @@
mem += 8;
break; /* Exit code */
case 'VERB':
- if (scriptVersion == 8)
- mem = skipVerbHeader_V8(mem + 8);
- else if (scriptVersion >= 6)
- offs_of_line = skipVerbHeader_V67(mem);
- else
- offs_of_line = skipVerbHeader_V5(mem + 8) - mem;
+ if (scriptVersion == 8) {
+ mem += 8;
+ offs_of_line = skipVerbHeader_V8(mem);
+ } else
+ offs_of_line = skipVerbHeader_V567(mem);
break; /* Verb */
default:
printf("Unknown script type!\n");
More information about the Scummvm-git-logs
mailing list