[Scummvm-cvs-logs] CVS: scummex resource.cpp,1.11,1.12

Adrien Mercier yoshizf at users.sourceforge.net
Mon Sep 22 01:33:02 CEST 2003


Update of /cvsroot/scummvm/scummex
In directory sc8-pr-cvs1:/tmp/cvs-serv29377

Modified Files:
	resource.cpp 
Log Message:
IACT size is really inconsistent in COMI, so we check where is the next block and set the good size.

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummex/resource.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- resource.cpp	21 Sep 2003 18:33:04 -0000	1.11
+++ resource.cpp	22 Sep 2003 08:31:59 -0000	1.12
@@ -689,13 +689,22 @@
 			break;
 
 		case IACT:
-			_blockTable[index].blockSize = _input.readUint32BE() + 9;
+			_blockTable[index].blockSize = _input.readUint32BE() + 8;
 			_gui->add_tree_elements(_blockTable[index].blockName, index, level, _blockTable[index].blockTypeID);
 			bufindex = index;
 			index++;
 			level++;
 			index = searchBlocks(_blockTable, _input, index, level, _blockTable[index-1].blockSize + _blockTable[index-1].offset);
 			_input.seek(_blockTable[bufindex].offset + _blockTable[bufindex].blockSize, SEEK_SET);
+			_input.read(_blockTable[index+1].blockName, 4);
+			_blockTable[index+1].blockName[4] = '\0';
+			_blockTable[index+1].blockTypeID = getBlockType(_blockTable[index+1].blockName);
+			if (_blockTable[index+1].blockTypeID != -1) {
+				_input.seek(-4, SEEK_CUR);
+			} else {
+				_blockTable[bufindex].blockSize += 1;
+				_input.seek(-3, SEEK_CUR);
+			}
 			break;
 			
 		case FRME:





More information about the Scummvm-git-logs mailing list