[Scummvm-cvs-logs] CVS: scummvm/simon vga.cpp,1.72,1.72.2.1

Travis Howell kirben at users.sourceforge.net
Wed Jul 30 09:30:14 CEST 2003


Update of /cvsroot/scummvm/scummvm/simon
In directory sc8-pr-cvs1:/tmp/cvs-serv10720/simon

Modified Files:
      Tag: branch-0-5-0
	vga.cpp 
Log Message:

Fix Golum Ring causes graphic glitches, bug #777966


Index: vga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/simon/vga.cpp,v
retrieving revision 1.72
retrieving revision 1.72.2.1
diff -u -d -r1.72 -r1.72.2.1
--- vga.cpp	21 Jul 2003 04:00:04 -0000	1.72
+++ vga.cpp	30 Jul 2003 16:29:27 -0000	1.72.2.1
@@ -735,8 +735,6 @@
 
 		vc_10_skip_cols(&state);
 
-		/* XXX: implement transparency */
-
 		w = 0;
 		do {
 			mask = vc_10_depack_column(&state);	/* esi */
@@ -744,15 +742,33 @@
 			dst = state.surf_addr + w * 2;	/* edi */
 
 			h = state.draw_height;
-			do {
-				if (mask[0] & 0xF0)
-					dst[0] = src[0];
-				if (mask[0] & 0x0F)
-					dst[1] = src[1];
-				mask++;
-				dst += state.surf_pitch;
-				src += state.surf2_pitch;
-			} while (--h);
+			if (!(_game & GF_SIMON2) && vc_get_bit(88)) {
+				/* transparency */
+				do {
+					if (mask[0] & 0xF0) {
+						if ((dst[0] & 0x0F0) == 0x20)
+							dst[0] = src[0];
+					}
+					if (mask[0] & 0x0F) {
+						if ((dst[1] & 0x0F0) == 0x20)
+							dst[1] = src[1];
+					}
+					mask++;
+					dst += state.surf_pitch;
+					src += state.surf2_pitch;
+				} while (--h);
+			} else {
+				/* no transparency */
+				do {
+					if (mask[0] & 0xF0)
+						dst[0] = src[0];
+					if (mask[0] & 0x0F)
+						dst[1] = src[1];
+					mask++;
+					dst += state.surf_pitch;
+					src += state.surf2_pitch;
+				} while (--h);
+			}
 		} while (++w != state.draw_width);
 
 		/* vc_10_helper_5 */





More information about the Scummvm-git-logs mailing list