[Scummvm-cvs-logs] CVS: scummex image.cpp,1.9,1.10

Adrien Mercier yoshizf at users.sourceforge.net
Mon Sep 22 14:32:06 CEST 2003


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

Modified Files:
	image.cpp 
Log Message:
Added support for v8 boxes

Index: image.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummex/image.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- image.cpp	22 Sep 2003 19:47:58 -0000	1.9
+++ image.cpp	22 Sep 2003 21:31:18 -0000	1.10
@@ -107,31 +107,56 @@
 }
 
 int Image::drawBoxes(BlockTable *_blockTable, int id, File& _input, int newWindow) {
-	int nBox, RMHDindex, width, height;
+	int nBox, RMHDindex, width, height, v8 = 0;
 
 	RMHDindex = _resource->findBlock(0, _blockTable, id, "RMHD", "-1");
 	width = _blockTable[RMHDindex].width;
 	height = _blockTable[RMHDindex].height;
 
-	if (newWindow == 0)
-		id = _resource->findBlock(0, _blockTable, id, "BOXD", "-1");
+	if (newWindow == 0) {
+		if ( _resource->findBlock(0, _blockTable, id, "IMAG", "-1") != -1) {
+			v8 = 1;
+			id = _resource->findBlock(1, _blockTable, id, "BOXD", "-1");
+		} else {
+			id = _resource->findBlock(0, _blockTable, id, "BOXD", "-1");
+		}
+	}
 	
-	_input.seek(_blockTable[id].offset + 10, SEEK_SET);
+	if (v8) { 
+		_input.seek(_blockTable[id].offset + 12, SEEK_SET);
+	} else {
+		_input.seek(_blockTable[id].offset + 10, SEEK_SET);
+	}
 	
 	nBox = _blockTable[id].numFiles;
 
-	for (int i=0; i<nBox; i++) {
-		_points[i][0].x = _input.readUint16LE();
-		_points[i][0].y = _input.readUint16LE();
-		_points[i][1].x = _input.readUint16LE();
-		_points[i][1].y = _input.readUint16LE();
-		_points[i][2].x = _input.readUint16LE();
-		_points[i][2].y = _input.readUint16LE();
-		_points[i][3].x = _input.readUint16LE();
-		_points[i][3].y = _input.readUint16LE();
-		_input.readUint16LE();
-		_input.readUint16LE();
+	if (v8) {
+		for (int i=0; i<nBox; i++) {
+			_points[i][0].x = (short)_input.readUint32LE();
+			_points[i][0].y = (short)_input.readUint32LE();
+			_points[i][1].x = (short)_input.readUint32LE();
+			_points[i][1].y = (short)_input.readUint32LE();
+			_points[i][2].x = (short)_input.readUint32LE();
+			_points[i][2].y = (short)_input.readUint32LE();
+			_points[i][3].x = (short)_input.readUint32LE();
+			_points[i][3].y = (short)_input.readUint32LE();
+			_input.seek(20, SEEK_CUR);
+		}
+	} else {
+		for (int i=0; i<nBox; i++) {
+			_points[i][0].x = _input.readUint16LE();
+			_points[i][0].y = _input.readUint16LE();
+			_points[i][1].x = _input.readUint16LE();
+			_points[i][1].y = _input.readUint16LE();
+			_points[i][2].x = _input.readUint16LE();
+			_points[i][2].y = _input.readUint16LE();
+			_points[i][3].x = _input.readUint16LE();
+			_points[i][3].y = _input.readUint16LE();
+			_input.readUint16LE();
+			_input.readUint16LE();
+		}
 	}
+	
 
 	if (newWindow == 1) {
 		_gui->DisplayImage("Boxes", width, height);





More information about the Scummvm-git-logs mailing list