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

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Mon Aug 10 03:33:56 CEST 2009


Revision: 43196
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43196&view=rev
Author:   lordhoto
Date:     2009-08-10 01:33:56 +0000 (Mon, 10 Aug 2009)

Log Message:
-----------
Enable interface text fading in Kyra1 amiga again.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/screen.cpp
    scummvm/trunk/engines/kyra/text_lok.cpp

Modified: scummvm/trunk/engines/kyra/screen.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen.cpp	2009-08-10 01:33:36 UTC (rev 43195)
+++ scummvm/trunk/engines/kyra/screen.cpp	2009-08-10 01:33:56 UTC (rev 43196)
@@ -650,8 +650,10 @@
 	if (_vm->gameFlags().platform != Common::kPlatformAmiga)
 		return;
 
-	uint8 screenPal[256 * 4];
+	uint8 screenPal[32 * 4];
 
+	assert(32 <= pal.getNumColors());
+
 	for (int i = 0; i < pal.getNumColors(); ++i) {
 		if (i != 0x10) {
 			screenPal[4 * i + 0] = (pal[i * 3 + 0] * 0xFF) / 0x3F;

Modified: scummvm/trunk/engines/kyra/text_lok.cpp
===================================================================
--- scummvm/trunk/engines/kyra/text_lok.cpp	2009-08-10 01:33:36 UTC (rev 43195)
+++ scummvm/trunk/engines/kyra/text_lok.cpp	2009-08-10 01:33:56 UTC (rev 43196)
@@ -324,20 +324,25 @@
 	_screen->hideMouse();
 	_screen->fillRect(8, 143, 311, 152, _flags.platform == Common::kPlatformAmiga ? 19 : 12);
 
-	// TODO: Amiga support
-	if ((_startSentencePalIndex != color || _fadeText != false) && _flags.platform != Common::kPlatformAmiga) {
-		_currSentenceColor[0] = _screen->getPalette(0)[765] = _screen->getPalette(0)[color*3];
+	if (_flags.platform == Common::kPlatformAmiga) {
+		if (color != 19) {
+			memset(_currSentenceColor, 0x3F, sizeof(_currSentenceColor));
+
+			_screen->setInterfacePalette(_screen->getPalette(1),
+					_currSentenceColor[0], _currSentenceColor[1], _currSentenceColor[2]);
+		}
+	} else if (_startSentencePalIndex != color || _fadeText != false) {
+		_currSentenceColor[0] = _screen->getPalette(0)[765] = _screen->getPalette(0)[color*3+0];
 		_currSentenceColor[1] = _screen->getPalette(0)[766] = _screen->getPalette(0)[color*3+1];
 		_currSentenceColor[2] = _screen->getPalette(0)[767] = _screen->getPalette(0)[color*3+2];
 
 		_screen->setScreenPalette(_screen->getPalette(0));
-		_startSentencePalIndex = 0;
+		_startSentencePalIndex = color;
 	}
 
 	_text->printText(sentence, 8, 143, 0xFF, _flags.platform == Common::kPlatformAmiga ? 19 : 12, 0);
 	_screen->showMouse();
-	if (_flags.platform != Common::kPlatformAmiga)
-		setTextFadeTimerCountdown(15);
+	setTextFadeTimerCountdown(15);
 	_fadeText = false;
 }
 
@@ -366,10 +371,15 @@
 			}
 	}
 
-	_screen->getPalette(0)[765] = _currSentenceColor[0];
-	_screen->getPalette(0)[766] = _currSentenceColor[1];
-	_screen->getPalette(0)[767] = _currSentenceColor[2];
-	_screen->setScreenPalette(_screen->getPalette(0));
+	if (_flags.platform == Common::kPlatformAmiga) {
+		_screen->setInterfacePalette(_screen->getPalette(1),
+				_currSentenceColor[0], _currSentenceColor[1], _currSentenceColor[2]);
+	} else {
+		_screen->getPalette(0)[765] = _currSentenceColor[0];
+		_screen->getPalette(0)[766] = _currSentenceColor[1];
+		_screen->getPalette(0)[767] = _currSentenceColor[2];
+		_screen->setScreenPalette(_screen->getPalette(0));
+	}
 
 	if (finished) {
 		_fadeText = false;


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