[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.11,2.12

Max Horn fingolfin at users.sourceforge.net
Mon Dec 30 20:20:02 CET 2002


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

Modified Files:
	gfx.cpp 
Log Message:
cleanup

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.11
retrieving revision 2.12
diff -u -d -r2.11 -r2.12
--- gfx.cpp	31 Dec 2002 03:26:02 -0000	2.11
+++ gfx.cpp	31 Dec 2002 04:19:46 -0000	2.12
@@ -956,10 +956,11 @@
 				if (offs) {
 					byte *z_plane_ptr = zplane_list[i] + offs;
 
-					if (_useOrDecompress && flag & dbAllowMaskOr)
+					if (_useOrDecompress && flag & dbAllowMaskOr) {
 						decompressMaskImgOr(_mask_ptr_dest, z_plane_ptr, h);
-					else
+					} else {
 						decompressMaskImg(_mask_ptr_dest, z_plane_ptr, h);
+					}
 				} else {
 					if (!(_useOrDecompress && flag & dbAllowMaskOr))
 						for (int height = 0; height < h; height++)
@@ -979,10 +980,6 @@
 
 void Gdi::decompressBitmap(byte *bgbak_ptr, byte *smap_ptr, int numLinesToProcess)
 {
-	const byte decompress_table[] = {
-		0x0, 0x1, 0x3, 0x7, 0xF, 0x1F, 0x3F, 0x7F, 0xFF, 0x0,
-	};
-
 	_useOrDecompress = false;
 
 	byte code = *smap_ptr++;
@@ -993,6 +990,10 @@
 	else
 		_palette_mod = 0;
 
+	_decomp_shr = code % 10;
+	_decomp_mask = 0xFF >> (8 - _decomp_shr);
+
+//printf("decompressBitmap codec %d\n", code);
 	switch (code) {
 	case 1:
 		unkDecode7(bgbak_ptr, smap_ptr, numLinesToProcess);
@@ -1019,8 +1020,6 @@
 	case 16:
 	case 17:
 	case 18:
-		_decomp_shr = code - 10;
-		_decomp_mask = decompress_table[code - 10];
 		unkDecode6(bgbak_ptr, smap_ptr, numLinesToProcess);
 		break;
 
@@ -1029,8 +1028,6 @@
 	case 26:
 	case 27:
 	case 28:
-		_decomp_shr = code - 20;
-		_decomp_mask = decompress_table[code - 20];
 		unkDecode5(bgbak_ptr, smap_ptr, numLinesToProcess);
 		break;
 
@@ -1040,8 +1037,6 @@
 	case 37:
 	case 38:
 		_useOrDecompress = true;
-		_decomp_shr = code - 30;
-		_decomp_mask = decompress_table[code - 30];
 		unkDecode4(bgbak_ptr, smap_ptr, numLinesToProcess);
 		break;
 
@@ -1051,8 +1046,6 @@
 	case 47:
 	case 48:
 		_useOrDecompress = true;
-		_decomp_shr = code - 40;
-		_decomp_mask = decompress_table[code - 40];
 		unkDecode2(bgbak_ptr, smap_ptr, numLinesToProcess);
 		break;
 
@@ -1061,8 +1054,6 @@
 	case 66:
 	case 67:
 	case 68:
-		_decomp_shr = code - 60;
-		_decomp_mask = decompress_table[code - 60];
 		unkDecode1(bgbak_ptr, smap_ptr, numLinesToProcess);
 		break;
 
@@ -1072,8 +1063,6 @@
 	case 87:
 	case 88:
 		_useOrDecompress = true;
-		_decomp_shr = code - 80;
-		_decomp_mask = decompress_table[code - 80];
 		unkDecode3(bgbak_ptr, smap_ptr, numLinesToProcess);
 		break;
 
@@ -1083,8 +1072,6 @@
 	case 106:
 	case 107:
 	case 108:
-		_decomp_shr = code - 100;
-		_decomp_mask = decompress_table[code - 100];
 		unkDecode1(bgbak_ptr, smap_ptr, numLinesToProcess);
 		break;
 
@@ -1095,8 +1082,6 @@
 	case 127:
 	case 128:
 		_useOrDecompress = true;
-		_decomp_shr = code - 120;
-		_decomp_mask = decompress_table[code - 120];
 		unkDecode3(bgbak_ptr, smap_ptr, numLinesToProcess);
 		break;
 
@@ -1375,27 +1360,17 @@
 				} else {
 					FILL_BITS;
 					reps = bits & 0xFF;
-					if (color == _transparency) {
-						do {
-							if (!--_currentX) {
-								_currentX = 8;
-								dst += _vm->_realWidth - 8;
-								if (!--height)
-									return;
-							}
-							dst++;
-						} while (--reps);
-					} else {
-						do {
-							if (!--_currentX) {
-								_currentX = 8;
-								dst += _vm->_realWidth - 8;
-								if (!--height)
-									return;
-							}
-							*dst++ = color + _palette_mod;
-						} while (--reps);
-					}
+					do {
+						if (!--_currentX) {
+							_currentX = 8;
+							dst += _vm->_realWidth - 8;
+							if (!--height)
+								return;
+						}
+						if (color != _transparency)
+							*dst = color + _palette_mod;
+						dst++;
+					} while (--reps);
 					bits >>= 8;
 					bits |= (*src++) << (cl - 8);
 					goto againPos;





More information about the Scummvm-git-logs mailing list