diff options
| -rw-r--r-- | engines/kyra/screen_hof.cpp | 2 | ||||
| -rw-r--r-- | engines/kyra/screen_lol.cpp | 2 | ||||
| -rw-r--r-- | engines/kyra/screen_v2.cpp | 10 | ||||
| -rw-r--r-- | engines/kyra/screen_v2.h | 2 | ||||
| -rw-r--r-- | engines/kyra/sequences_hof.cpp | 32 | 
5 files changed, 24 insertions, 24 deletions
| diff --git a/engines/kyra/screen_hof.cpp b/engines/kyra/screen_hof.cpp index 590ced22dd..516cb5bc41 100644 --- a/engines/kyra/screen_hof.cpp +++ b/engines/kyra/screen_hof.cpp @@ -63,7 +63,7 @@ void Screen_HoF::generateGrayOverlay(const Palette &srcPal, uint8 *grayOverlay,  	}  	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, diff --git a/engines/kyra/screen_lol.cpp b/engines/kyra/screen_lol.cpp index a717a10931..439e8867a4 100644 --- a/engines/kyra/screen_lol.cpp +++ b/engines/kyra/screen_lol.cpp @@ -157,7 +157,7 @@ void Screen_LoL::generateGrayOverlay(const Palette &srcPal, uint8 *grayOverlay,  	}  	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) { diff --git a/engines/kyra/screen_v2.cpp b/engines/kyra/screen_v2.cpp index c36055b7b7..177d7d66dd 100644 --- a/engines/kyra/screen_v2.cpp +++ b/engines/kyra/screen_v2.cpp @@ -69,7 +69,7 @@ uint8 *Screen_v2::generateOverlay(const Palette &pal, uint8 *buffer, int startCo  		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 @@ void Screen_v2::applyOverlay(int x, int y, int w, int h, int pageNum, const uint  	}  } -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 @@ int Screen_v2::findLeastDifferentColor(const uint8 *paletteEntry, const uint8 *p  		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) { diff --git a/engines/kyra/screen_v2.h b/engines/kyra/screen_v2.h index 6bea31fe65..3aa726334c 100644 --- a/engines/kyra/screen_v2.h +++ b/engines/kyra/screen_v2.h @@ -42,7 +42,7 @@ public:  	// 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); diff --git a/engines/kyra/sequences_hof.cpp b/engines/kyra/sequences_hof.cpp index f78aa61c4a..652bcb2b4a 100644 --- a/engines/kyra/sequences_hof.cpp +++ b/engines/kyra/sequences_hof.cpp @@ -372,9 +372,9 @@ int KyraEngine_HoF::seq_introOverview(WSAMovie_v2 *wsaObj, int x, int y, int frm  		_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 @@ int KyraEngine_HoF::seq_introLibrary(WSAMovie_v2 *wsaObj, int x, int y, int frm)  		_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 @@ int KyraEngine_HoF::seq_introHand(WSAMovie_v2 *wsaObj, int x, int y, int frm) {  		_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 @@ int KyraEngine_HoF::seq_introPoint(WSAMovie_v2 *wsaObj, int x, int y, int frm) {  		_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 @@ int KyraEngine_HoF::seq_introZanfaun(WSAMovie_v2 *wsaObj, int x, int y, int frm)  		_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 @@ int KyraEngine_HoF::seq_finaleFunters(WSAMovie_v2 *wsaObj, int x, int y, int frm  	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 @@ int KyraEngine_HoF::seq_finaleFerb(WSAMovie_v2 *wsaObj, int x, int y, int frm) {  		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 @@ int KyraEngine_HoF::seq_finaleFish(WSAMovie_v2 *wsaObj, int x, int y, int frm) {  		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 @@ int KyraEngine_HoF::seq_finaleFheep(WSAMovie_v2 *wsaObj, int x, int y, int frm)  		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 @@ int KyraEngine_HoF::seq_finaleFarmer(WSAMovie_v2 *wsaObj, int x, int y, int frm)  		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 @@ int KyraEngine_HoF::seq_finaleFirates(WSAMovie_v2 *wsaObj, int x, int y, int frm  		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 @@ int KyraEngine_HoF::seq_finaleFrash(WSAMovie_v2 *wsaObj, int x, int y, int frm)  	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); | 
