[Scummvm-cvs-logs] CVS: scummvm/scumm palette_he.cpp,1.7,1.8

kirben kirben at users.sourceforge.net
Sat Apr 9 19:38:02 CEST 2005


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28235/scumm

Modified Files:
	palette_he.cpp 
Log Message:

rmap suppork works now


Index: palette_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/palette_he.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- palette_he.cpp	10 Apr 2005 01:25:33 -0000	1.7
+++ palette_he.cpp	10 Apr 2005 02:37:48 -0000	1.8
@@ -30,11 +30,9 @@
 namespace Scumm {
 
 void ScummEngine_v72he::remapPalette(uint8 *src, uint8 *dst) {
-	int a, b, c, eax, ebx, tmp;
+	int r, g, b, sum, bestitem, bestsum;
+	int ar, ag, ab;
 	uint8 *palPtr;
-
-	int startColor = 10;
-	int endColor = 246;
 	src += 30;
 
 	if (_heversion >= 99) {
@@ -43,32 +41,30 @@
 		palPtr = _currentPalette + 30;
 	}
 
-	for (int j = startColor; j < endColor; j++) {
-		ebx = 0xFFFF;
-		tmp = 0xFFFF;
+	for (int j = 10; j < 246; j++) {
+		bestitem = 0xFFFF;
+		bestsum = 0xFFFF;
 
-		a = *src++;
+		r = *src++;
+		g = *src++;
 		b = *src++;
-		c = *src++;
 
 		uint8 *curPal = palPtr;
 
-		for (int k = startColor; k < endColor; k++) {
-			a -= *curPal++;
-			b -= *curPal++;
-			c -= *curPal++;
+		for (int k = 10; k < 246; k++) {
+			ar = r - *curPal++;
+			ag = g - *curPal++;
+			ab = b - *curPal++;
 
-			eax = (a * 2) + (b * 2) + (c * 2);
+			sum = (ar * ar) + (ag * ag) + (ab * ab);
 
-			if (ebx == 0xFFFF || eax <= tmp) {
-				ebx = k;
-				tmp = eax;
+			if (bestitem == 0xFFFF || sum <= bestsum) {
+				bestitem = k;
+				bestsum = sum;
 			}
 		}
 
-		if (ebx != 0xFFFF) {
-			dst[j] = ebx;
-		}
+		dst[j] = bestitem;
 	}
 }
 





More information about the Scummvm-git-logs mailing list