[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.46,1.47 gfx.cpp,2.16,2.17

Max Horn fingolfin at users.sourceforge.net
Tue Dec 31 08:45:03 CET 2002


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv4386

Modified Files:
	actor.cpp gfx.cpp 
Log Message:
cleanup; fixed z masking in COMI

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- actor.cpp	28 Dec 2002 00:45:44 -0000	1.46
+++ actor.cpp	31 Dec 2002 16:44:54 -0000	1.47
@@ -989,7 +989,7 @@
 		ar.clipping = forceClip;
 		if (ar.clipping == 100) {
 			ar.clipping = _vm->getMaskFromBox(walkbox);
-			if (ar.clipping > (byte)_vm->gdi._numZBuffer)
+			if (ar.clipping > _vm->gdi._numZBuffer)
 				ar.clipping = _vm->gdi._numZBuffer;
 		}
 

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.16
retrieving revision 2.17
diff -u -d -r2.16 -r2.17
--- gfx.cpp	31 Dec 2002 14:59:04 -0000	2.16
+++ gfx.cpp	31 Dec 2002 16:44:55 -0000	2.17
@@ -833,7 +833,7 @@
 		// might fail. Still, doing this properly would have the advantage of catching
 		// invalid/damaged data files, and allow us to exit gracefully instead of segfaulting.
 		for (i = 1; i < numzbuf; i++) {
-			zplane_list[i] = zplnOffsChunkStart + READ_LE_UINT32(zplnOffsChunkStart + 4 + i*4) + 12;
+			zplane_list[i] = zplnOffsChunkStart + READ_LE_UINT32(zplnOffsChunkStart + 4 + i*4) + 16;
 		}
 
 		// A small hack to skip to the BSTR->WRAP->OFFS chunk
@@ -961,6 +961,7 @@
 					} else {
 						decompressMaskImg(_mask_ptr_dest, z_plane_ptr, h);
 					}
+
 				} else {
 					if (!(useOrDecompress && (flag & dbAllowMaskOr)))
 						for (int height = 0; height < h; height++)
@@ -1184,8 +1185,8 @@
 void Gdi::decompressMaskImg(byte *dst, byte *src, int height)
 {
 	byte b, c;
-	
-	while (1) {
+
+	while (height) {
 		b = *src++;
 
 		if (b & 0x80) {
@@ -1195,16 +1196,14 @@
 			do {
 				*dst = c;
 				dst += _numStrips;
-				if (!--height)
-					return;
-			} while (--b);
+				--height;
+			} while (--b && height);
 		} else {
 			do {
 				*dst = *src++;
 				dst += _numStrips;
-				if (!--height)
-					return;
-			} while (--b);
+				--height;
+			} while (--b && height);
 		}
 	}
 }
@@ -1213,7 +1212,7 @@
 {
 	byte b, c;
 
-	while (1) {
+	while (height) {
 		b = *src++;
 		
 		if (b & 0x80) {
@@ -1223,16 +1222,14 @@
 			do {
 				*dst |= c;
 				dst += _numStrips;
-				if (!--height)
-					return;
-			} while (--b);
+				--height;
+			} while (--b && height);
 		} else {
 			do {
 				*dst |= *src++;
 				dst += _numStrips;
-				if (!--height)
-					return;
-			} while (--b);
+				--height;
+			} while (--b && height);
 		}
 	}
 }





More information about the Scummvm-git-logs mailing list