[Scummvm-cvs-logs] SF.net SVN: scummvm:[41886] scummvm/trunk/engines/kyra

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Thu Jun 25 22:00:52 CEST 2009


Revision: 41886
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41886&view=rev
Author:   lordhoto
Date:     2009-06-25 20:00:52 +0000 (Thu, 25 Jun 2009)

Log Message:
-----------
Change Screen_v2::findLeastDifferentColor to take a Palette object as source.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/screen_hof.cpp
    scummvm/trunk/engines/kyra/screen_lol.cpp
    scummvm/trunk/engines/kyra/screen_v2.cpp
    scummvm/trunk/engines/kyra/screen_v2.h
    scummvm/trunk/engines/kyra/sequences_hof.cpp

Modified: scummvm/trunk/engines/kyra/screen_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen_hof.cpp	2009-06-25 19:59:56 UTC (rev 41885)
+++ scummvm/trunk/engines/kyra/screen_hof.cpp	2009-06-25 20:00:52 UTC (rev 41886)
@@ -63,7 +63,7 @@
 	}
 
 	for (int i = 0; i < lastColor; i++)
-		grayOverlay[i] = findLeastDifferentColor(tmpPal.getData() + 3 * i, srcPal.getData(), lastColor);
+		grayOverlay[i] = findLeastDifferentColor(tmpPal.getData() + 3 * i, srcPal, 0, lastColor);
 }
 
 void Screen_HoF::cmpFadeFrameStep(int srcPage, int srcW, int srcH, int srcX, int srcY, int dstPage, int dstW,

Modified: scummvm/trunk/engines/kyra/screen_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen_lol.cpp	2009-06-25 19:59:56 UTC (rev 41885)
+++ scummvm/trunk/engines/kyra/screen_lol.cpp	2009-06-25 20:00:52 UTC (rev 41886)
@@ -157,7 +157,7 @@
 	}
 
 	for (int i = 0; i < lastColor; i++)
-		grayOverlay[i] = findLeastDifferentColor(tmpPal.getData() + 3 * i, srcPal.getData(), lastColor, skipSpecialColors);
+		grayOverlay[i] = findLeastDifferentColor(tmpPal.getData() + 3 * i, srcPal, lastColor, skipSpecialColors);
 }
 
 uint8 *Screen_LoL::generateLevelOverlay(const Palette &srcPal, uint8 *ovl, int opColor, int weight) {

Modified: scummvm/trunk/engines/kyra/screen_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen_v2.cpp	2009-06-25 19:59:56 UTC (rev 41885)
+++ scummvm/trunk/engines/kyra/screen_v2.cpp	2009-06-25 20:00:52 UTC (rev 41886)
@@ -69,7 +69,7 @@
 		col -= ((((col - col3) * factor) << 1) >> 8) & 0xFF;
 		processedPalette[2] = col;
 
-		*dst++ = findLeastDifferentColor(processedPalette, pal.getData() + 3, 255) + 1;
+		*dst++ = findLeastDifferentColor(processedPalette, pal, 1, 255) + 1;
 	}
 
 	return buffer;
@@ -89,7 +89,7 @@
 	}
 }
 
-int Screen_v2::findLeastDifferentColor(const uint8 *paletteEntry, const uint8 *palette, uint16 numColors, bool skipSpecialColors) {
+int Screen_v2::findLeastDifferentColor(const uint8 *paletteEntry, const Palette &pal, uint8 firstColor, uint16 numColors, bool skipSpecialColors) {
 	int m = 0x7fff;
 	int r = 0x101;
 
@@ -97,11 +97,11 @@
 		if (skipSpecialColors && i >= 0xc0 && i <= 0xc3)
 			continue;
 
-		int v = paletteEntry[0] - *palette++;
+		int v = paletteEntry[0] - pal[(i + firstColor) * 3 + 0];
 		int c = v * v;
-		v = paletteEntry[1] - *palette++;
+		v = paletteEntry[1] - pal[(i + firstColor) * 3 + 1];
 		c += (v * v);
-		v = paletteEntry[2] - *palette++;
+		v = paletteEntry[2] - pal[(i + firstColor) * 3 + 2];
 		c += (v * v);
 
 		if (c <= m) {

Modified: scummvm/trunk/engines/kyra/screen_v2.h
===================================================================
--- scummvm/trunk/engines/kyra/screen_v2.h	2009-06-25 19:59:56 UTC (rev 41885)
+++ scummvm/trunk/engines/kyra/screen_v2.h	2009-06-25 20:00:52 UTC (rev 41886)
@@ -42,7 +42,7 @@
 	// palette handling
 	uint8 *generateOverlay(const Palette &pal, uint8 *buffer, int color, uint16 factor);
 	void applyOverlay(int x, int y, int w, int h, int pageNum, const uint8 *overlay);
-	int findLeastDifferentColor(const uint8 *paletteEntry, const uint8 *palette, uint16 numColors, bool skipSpecialColors = false);
+	int findLeastDifferentColor(const uint8 *paletteEntry, const Palette &pal, uint8 firstColor, uint16 numColors, bool skipSpecialColors = false);
 
 	virtual void getFadeParams(const Palette &pal, int delay, int &delayInc, int &diff);
 

Modified: scummvm/trunk/engines/kyra/sequences_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sequences_hof.cpp	2009-06-25 19:59:56 UTC (rev 41885)
+++ scummvm/trunk/engines/kyra/sequences_hof.cpp	2009-06-25 20:00:52 UTC (rev 41886)
@@ -372,9 +372,9 @@
 		_sound->playTrack(4);
 		_seqSubFrameEndTimeInternal = _system->getMillis() + 60 * _tickLength;
 
-		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 255) & 0xff;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
-		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0), 1, 255) & 0xff;
 
 		_screen->setTextColorMap(_seqTextColorMap);
 
@@ -466,9 +466,9 @@
 		_sound->playTrack(5);
 
 		_screen->generateGrayOverlay(_screen->getPalette(0), _screen->getPalette(3).getData(), 0x24, 0, 0, 0, 0x100, false);
-		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 255) & 0xff;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
-		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0), 1, 255) & 0xff;
 
 		_screen->setTextColorMap(_seqTextColorMap);
 		break;
@@ -540,9 +540,9 @@
 		_sound->playTrack(6);
 
 		_screen->generateGrayOverlay(_screen->getPalette(0), _screen->getPalette(3).getData(), 0x24, 0, 0, 0, 0x100, false);
-		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 255) & 0xff;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
-		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0), 1, 255) & 0xff;
 
 		_screen->setTextColorMap(_seqTextColorMap);
 		break;
@@ -631,7 +631,7 @@
 
 		_seqTextColor[1] = 0xf7;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
-		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0), 1, 255) & 0xff;
 		_screen->setTextColorMap(_seqTextColorMap);
 		_screen->generateGrayOverlay(_screen->getPalette(0), _screen->getPalette(3).getData(), 0x24, 0, 0, 0, 0x100, false);
 		break;
@@ -661,7 +661,7 @@
 
 		_seqTextColor[1] = 0xfd;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
-		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColorMap[1] = _seqTextColor[0] = _screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0), 1, 255) & 0xff;
 		_screen->setTextColorMap(_seqTextColorMap);
 		break;
 
@@ -831,7 +831,7 @@
 	case 0:
 		_sound->playTrack(3);
 
-		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 255) & 0xff;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
 		_seqTextColor[0] = _seqTextColorMap[1] = 0xff;
 		_screen->setTextColorMap(_seqTextColorMap);
@@ -924,7 +924,7 @@
 		break;
 
 	case 0:
-		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 255) & 0xff;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
 		_seqTextColor[0] = _seqTextColorMap[1] = 255;
 		_screen->setTextColorMap(_seqTextColorMap);
@@ -1006,7 +1006,7 @@
 		break;
 
 	case 0:
-		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 255) & 0xff;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
 		_seqTextColor[0] = _seqTextColorMap[1] = 0xff;
 		_screen->setTextColorMap(_seqTextColorMap);
@@ -1096,7 +1096,7 @@
 		break;
 
 	case 0:
-		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 255) & 0xff;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
 		_seqTextColor[0] = _seqTextColorMap[1] = 0xff;
 		_screen->setTextColorMap(_seqTextColorMap);
@@ -1172,9 +1172,9 @@
 		break;
 
 	case 0:
-		_seqTextColor[1] = 1 + (_screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 254) & 0xff);
+		_seqTextColor[1] = 1 + (_screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 254) & 0xff);
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
-		_seqTextColorMap[1] = _seqTextColor[0] = 1 + (_screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0).getData() + 3, 254) & 0xff);
+		_seqTextColorMap[1] = _seqTextColor[0] = 1 + (_screen->findLeastDifferentColor(_seqTextColorPresets + 3, _screen->getPalette(0), 1, 254) & 0xff);
 		_screen->setTextColorMap(_seqTextColorMap);
 		seq_playTalkText(_flags.isTalkie ? 30 : 26);
 		break;
@@ -1339,7 +1339,7 @@
 		break;
 
 	case 0:
-		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+		_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 255) & 0xff;
 		memset(_seqTextColorMap, _seqTextColor[1], 16);
 		_seqTextColor[0] = _seqTextColorMap[1] = 0xff;
 		_screen->setTextColorMap(_seqTextColorMap);
@@ -1426,7 +1426,7 @@
 	case 0:
 		if (_seqFrameCounter == 1) {
 			_sound->playTrack(4);
-			_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0).getData() + 3, 255) & 0xff;
+			_seqTextColor[1] = _screen->findLeastDifferentColor(_seqTextColorPresets, _screen->getPalette(0), 1, 255) & 0xff;
 			memset(_seqTextColorMap, _seqTextColor[1], 16);
 			_seqTextColor[0] = _seqTextColorMap[1] = 0xff;
 			_screen->setTextColorMap(_seqTextColorMap);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list