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

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Tue Aug 11 04:12:24 CEST 2009


Revision: 43252
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43252&view=rev
Author:   lordhoto
Date:     2009-08-11 02:12:24 +0000 (Tue, 11 Aug 2009)

Log Message:
-----------
Implement palette differences for seq_playDrinkPotionAnim.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/sequences_lok.cpp

Modified: scummvm/trunk/engines/kyra/sequences_lok.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sequences_lok.cpp	2009-08-11 02:12:09 UTC (rev 43251)
+++ scummvm/trunk/engines/kyra/sequences_lok.cpp	2009-08-11 02:12:24 UTC (rev 43252)
@@ -807,54 +807,123 @@
 }
 
 void KyraEngine_LoK::seq_playDrinkPotionAnim(int item, int unk2, int flags) {
-	uint8 red, green, blue;
+	if (_flags.platform == Common::kPlatformAmiga) {
+		uint8 r, g, b;
 
-	switch (item) {
-	case 60:
-	case 61:
-		red = 63;
-		green = blue = 6;
-		break;
-	case 62:
-	case 63:
-		red = green = 0;
-		blue = 67;
-		break;
-	case 64:
-	case 65:
-		red = 84;
-		green = 78;
-		blue = 14;
-		break;
-	case 66:
-		red = blue = 0;
-		green = 48;
-		break;
-	case 67:
-		red = 100;
-		green = 48;
-		blue = 23;
-		break;
-	case 68:
-		red = 73;
-		green = 0;
-		blue = 89;
-		break;
-	case 69:
-		red = green = 73;
-		blue = 86;
-		break;
-	default:
-		red = 33;
-		green = 66;
-		blue = 100;
+		switch (item) {
+		case 60: case 61:
+			// 0xC22
+			r = 50;
+			g = 8;
+			b = 8;
+			break;
+
+		case 62: case 63: case 76:
+		case 77:
+			// 0x00E
+			r = 0;
+			g = 0;
+			b = 58;
+			break;
+
+		case 64: case 65:
+			// 0xFF5
+			r = 63;
+			g = 63;
+			b = 21;
+			break;
+
+		case 66:
+			// 0x090
+			r = 0;
+			g = 37;
+			b = 0;
+			break;
+
+		case 67:
+			// 0xC61
+			r = 50;
+			g = 25;
+			b = 4;
+			break;
+
+		case 68:
+			// 0xE2E
+			r = 58;
+			g = 8;
+			b = 58;
+			break;
+
+		case 69:
+			// 0xBBB
+			r = 46;
+			g = 46;
+			b = 46;
+			break;
+
+		default:
+			// 0xFFF
+			r = 63;
+			g = 63;
+			b = 63;
+		}
+
+		_screen->setPaletteIndex(16, r, g, b);
+	} else {
+		uint8 red, green, blue;
+
+		switch (item) {
+		case 60: case 61:
+			red = 63;
+			green = blue = 6;
+			break;
+
+		case 62: case 63:
+			red = green = 0;
+			blue = 67;
+			break;
+
+		case 64: case 65:
+			red = 84;
+			green = 78;
+			blue = 14;
+			break;
+
+		case 66:
+			red = blue = 0;
+			green = 48;
+			break;
+
+		case 67:
+			red = 100;
+			green = 48;
+			blue = 23;
+			break;
+
+		case 68:
+			red = 73;
+			green = 0;
+			blue = 89;
+			break;
+
+		case 69:
+			red = green = 73;
+			blue = 86;
+			break;
+
+		default:
+			red = 33;
+			green = 66;
+			blue = 100;
+		}
+
+		red   = red * 0x3F / 100;
+		green = green * 0x3F / 100;
+		blue  = blue * 0x3F / 100;
+
+		_screen->setPaletteIndex(0xFE, red, green, blue);
 	}
-	red   = (uint8)((double)red   * 0.63);
-	green = (uint8)((double)green * 0.63);
-	blue  = (uint8)((double)blue  * 0.63);
 
-	_screen->setPaletteIndex(0xFE, red, green, blue);
-
 	_screen->hideMouse();
 	checkAmuletAnimFlags();
 	_currentCharacter->facing = 5;
@@ -868,7 +937,9 @@
 		_animator->animRefreshNPC(0);
 		delayWithTicks(5);
 	}
+
 	snd_playSoundEffect(0x34);
+
 	for (int i = 0; i < 2; ++i) {
 		_currentCharacter->currentAnimFrame = 130;
 		_animator->animRefreshNPC(0);
@@ -892,7 +963,10 @@
 	_currentCharacter->currentAnimFrame = 7;
 	_animator->animRefreshNPC(0);
 	freeShapes123();
-	_screen->setPaletteIndex(0xFE, 30, 30, 30);
+
+	if (_flags.platform != Common::kPlatformAmiga)
+		_screen->setPaletteIndex(0xFE, 30, 30, 30);
+
 	_screen->showMouse();
 }
 


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