[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