[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