[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.202,2.203 script_v5.cpp,1.158,1.159

Travis Howell kirben at users.sourceforge.net
Tue Aug 26 20:55:21 CEST 2003


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

Modified Files:
	gfx.cpp script_v5.cpp 
Log Message:

Add change ot fix pallete issue in 256 color small_header games


Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.202
retrieving revision 2.203
diff -u -d -r2.202 -r2.203
--- gfx.cpp	27 Aug 2003 01:12:17 -0000	2.202
+++ gfx.cpp	27 Aug 2003 03:54:50 -0000	2.203
@@ -1898,7 +1898,7 @@
 		do {
 			FILL_BITS;
 			if (color != _transparentColor)
-				*dst = color + _palette_mod;
+				*dst = (_vm->_features & GF_SMALL_HEADER) ? _vm->_roomPalette[color + _palette_mod] : color + _palette_mod;
 			dst++;
 			if (!READ_BIT) {
 			} else if (!READ_BIT) {
@@ -1930,7 +1930,7 @@
 		int h = height;
 		do {
 			FILL_BITS;
-			*dst = color + _palette_mod;
+			*dst = (_vm->_features & GF_SMALL_HEADER) ? _vm->_roomPalette[color + _palette_mod] : color + _palette_mod;
 			dst += _vm->_screenWidth;
 			if (!READ_BIT) {
 			} else if (!READ_BIT) {
@@ -2036,7 +2036,7 @@
 		byte color = *src++;
 
 		do {
-			*dst = color;
+			*dst = _vm->_roomPalette[color];
 			NEXT_ROW
 		} while (--run);
 	}
@@ -2065,7 +2065,7 @@
 				color += bits << i;
 			}
 			for (i = 0; i < ((c & 3) + 2); i++) {
-				*dst = (run * 16 + color);
+				*dst = (run * 16 + _vm->_roomPalette[color]);
 				NEXT_ROW
 			}
 			break;
@@ -2077,7 +2077,7 @@
 					READ_256BIT;
 					color += bits << j;
 				}
-				*dst = (run * 16 + color);
+				*dst = (run * 16 + _vm->_roomPalette[color]);
 				NEXT_ROW
 			}
 			break;
@@ -2106,13 +2106,13 @@
 	for (;;) {
 		byte color = *src++;
 		if (color < numcolors) {
-			*dst = local_palette[color];
+			*dst = local_palette[_vm->_roomPalette[color]];
 			NEXT_ROW
 		} else {
 			uint run = color - numcolors + 1;
 			color = *src++;
 			do {
-				*dst = color;
+				*dst = _vm->_roomPalette[color];
 				NEXT_ROW
 			} while (--run);
 		}
@@ -2129,7 +2129,7 @@
 	do {
 		int h = height;
 		do {
-			*dst = color;
+			*dst = _vm->_roomPalette[color];
 			dst += _vm->_screenWidth;
 			for (i = 0; i < 3; i++) {
 				READ_256BIT

Index: script_v5.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v5.cpp,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -d -r1.158 -r1.159
--- script_v5.cpp	27 Aug 2003 01:12:17 -0000	1.158
+++ script_v5.cpp	27 Aug 2003 03:54:50 -0000	1.159
@@ -1661,18 +1661,7 @@
 				b = getVarOrDirectWord(0x40);
 			}
 			checkRange(256, 0, a, "o5_roomOps: 2: Illegal room color slot (%d)");
-			// FIXME - fingolfin thinks our whole _shadowPalette usage is weird.
-			// It seems very suspicious that subopcode 2 is identical to subopcode 4
-			// for GF_SMALL_HEADER games. Needs investigation.
-//			printf("copyPalColor(%d, %d)\n", a, b);
-//			copyPalColor(a, b);
-			if (_features & GF_16COLOR) {
-				_roomPalette[b] = a;
-			} else {
-				_shadowPalette[b] = a;
-				setDirtyColors(b, b);
-			}
-		} else {
+			_roomPalette[b] = a;
 			error("room-color is no longer a valid command");
 		}
 		break;





More information about the Scummvm-git-logs mailing list