[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.336,2.337 object.cpp,1.188,1.189 object.h,1.11,1.12

Travis Howell kirben at users.sourceforge.net
Sun Sep 26 01:56:06 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10663/scumm

Modified Files:
	gfx.cpp object.cpp object.h 
Log Message:

COMI reads object flag from headers, it doesn't use useOrDecompress at all.


Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.336
retrieving revision 2.337
diff -u -d -r2.336 -r2.337
--- gfx.cpp	26 Sep 2004 03:06:45 -0000	2.336
+++ gfx.cpp	26 Sep 2004 08:50:09 -0000	2.337
@@ -1255,6 +1255,10 @@
 		}
 		CHECK_HEAP;
 
+		// COMI only uses flag value
+		if (_vm->_version == 8)
+			useOrDecompress = true;
+
 		if (_vm->_version == 1) {
 			mask_ptr = getMaskBuffer(x, y, 1);
 			drawStripC64Mask(mask_ptr, stripnr, width, height);
@@ -1816,9 +1820,6 @@
 		
 		switch (code) {
 		case 1:
-			// FIXME: Ugly workaround for bug #901462
-			if (_vm->_version == 8)
-				useOrDecompress = true;
 			drawStripBasicV(dst, dstPitch, src, numLinesToProcess, false);
 			break;
 	
@@ -1838,9 +1839,6 @@
 	
 		case 6:
 		case 10:
-			// FIXME: Ugly workaround for bug #901462
-			if (_vm->_version == 8 && code == 10)
-				useOrDecompress = true;
 			drawStripComplex(dst, dstPitch, src, numLinesToProcess, false);
 			break;
 	

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.188
retrieving revision 1.189
diff -u -d -r1.188 -r1.189
--- object.cpp	24 Sep 2004 20:37:24 -0000	1.188
+++ object.cpp	26 Sep 2004 08:50:10 -0000	1.189
@@ -475,7 +475,15 @@
 	}
 
 	if (numstrip != 0) {
-		byte flags = (_features & GF_HUMONGOUS) ? 0 : Gdi::dbAllowMaskOr;
+		byte flags;
+		if (_version == 8) 
+			flags = (od.flag & 16);
+		else if (_features & GF_HUMONGOUS)
+			//TODO Should be read from object header
+			flags = 0;
+		else
+			flags = Gdi::dbAllowMaskOr;;
+
 		if (_version == 1) {
 			gdi._C64ObjectMode = true;
 			gdi.decodeC64Gfx(ptr, gdi._C64ObjectMap, width * (height / 8) * 3);
@@ -777,6 +785,7 @@
 		od->height = (uint)READ_LE_UINT32(&imhd->v8.height);
 		// HACK: This is done sinec an angle doesn't fit into a byte (360 > 256)
 		od->actordir = toSimpleDir(1, READ_LE_UINT32(&imhd->v8.actordir));
+		od->flag = READ_LE_UINT32(&imhd->v8.flag);
 
 	} else if (_version == 7) {
 		od->obj_nr = READ_LE_UINT16(&(cdhd->v7.obj_id));

Index: object.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- object.h	2 Sep 2004 10:18:34 -0000	1.11
+++ object.h	26 Sep 2004 08:50:10 -0000	1.12
@@ -37,6 +37,7 @@
 	byte parentstate;
 	byte state;
 	byte fl_object_index;
+	byte flag;
 };
 
 #if !defined(__GNUC__)
@@ -136,7 +137,7 @@
 			uint32 width;
 			uint32 height;
 			uint32 actordir;
-			uint32 hotspot_num;	// This field is missing in the COMI demo (version == 800) !
+			uint32 flag;	// This field is missing in the COMI demo (version == 800) !
 			struct {
 				int32 x, y;
 			} GCC_PACK hotspot[15];





More information about the Scummvm-git-logs mailing list