[Scummvm-cvs-logs] SF.net SVN: scummvm:[43222] scummvm/trunk/engines/kyra/script_lok.cpp
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Mon Aug 10 21:10:13 CEST 2009
Revision: 43222
http://scummvm.svn.sourceforge.net/scummvm/?rev=43222&view=rev
Author: lordhoto
Date: 2009-08-10 19:10:11 +0000 (Mon, 10 Aug 2009)
Log Message:
-----------
Implement differences for Kyrandia 1 Amiga in o1_setCustomPaletteRange.
Modified Paths:
--------------
scummvm/trunk/engines/kyra/script_lok.cpp
Modified: scummvm/trunk/engines/kyra/script_lok.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_lok.cpp 2009-08-10 19:09:13 UTC (rev 43221)
+++ scummvm/trunk/engines/kyra/script_lok.cpp 2009-08-10 19:10:11 UTC (rev 43222)
@@ -579,7 +579,73 @@
int KyraEngine_LoK::o1_setCustomPaletteRange(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_LoK::o1_setCustomPaletteRange(%p) (%d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2));
- _screen->getPalette(1).copy(_specialPalettes[stackPos(0)], 0, stackPos(2), stackPos(1));
+ if (_flags.platform == Common::kPlatformAmiga) {
+ if (_currentCharacter->sceneId == 45) {
+ const int palette = stackPos(0) - 17;
+
+ uint8 r, g, b;
+
+ switch (palette) {
+ case 0:
+ // 0x88F
+ r = 33;
+ g = 33;
+ b = 63;
+ break;
+
+ case 1:
+ // 0x00F
+ r = 0;
+ g = 0;
+ b = 63;
+ break;
+
+ case 2:
+ // 0xF88
+ r = 63;
+ g = 33;
+ b = 33;
+ break;
+
+ case 3:
+ // 0xF00
+ r = 63;
+ g = 0;
+ b = 0;
+ break;
+
+ case 4:
+ // 0xFF9
+ r = 63;
+ g = 63;
+ b = 37;
+ break;
+
+ case 5:
+ // 0xFF1
+ r = 63;
+ g = 63;
+ b = 4;
+ break;
+
+ default:
+ // 0xFFF
+ r = 63;
+ g = 63;
+ b = 63;
+ }
+
+ _screen->getPalette(4)[12 * 3 + 0] = r;
+ _screen->getPalette(4)[12 * 3 + 1] = g;
+ _screen->getPalette(4)[12 * 3 + 2] = b;
+ } else if (stackPos(0) == 29) {
+ _screen->copyPalette(0, 11);
+ } else if (stackPos(0) == 13) {
+ _screen->copyPalette(0, 12);
+ }
+ } else {
+ _screen->getPalette(1).copy(_specialPalettes[stackPos(0)], 0, stackPos(2), stackPos(1));
+ }
return 0;
}
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