[Scummvm-cvs-logs] SF.net SVN: scummvm:[47551] scummvm/trunk/engines/sci/graphics/picture.cpp

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Mon Jan 25 11:17:56 CET 2010


Revision: 47551
          http://scummvm.svn.sourceforge.net/scummvm/?rev=47551&view=rev
Author:   m_kiewitz
Date:     2010-01-25 10:17:55 +0000 (Mon, 25 Jan 2010)

Log Message:
-----------
SCI: support for both amiga "palettes" (one is a left-over VGA palette, the other one is a real palette, no idea whats in there cause its just 32 bytes instead of 64 bytes)

Modified Paths:
--------------
    scummvm/trunk/engines/sci/graphics/picture.cpp

Modified: scummvm/trunk/engines/sci/graphics/picture.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/picture.cpp	2010-01-25 08:59:47 UTC (rev 47550)
+++ scummvm/trunk/engines/sci/graphics/picture.cpp	2010-01-25 10:17:55 UTC (rev 47551)
@@ -399,7 +399,7 @@
 
 	// Drawing
 	while (curPos < dataSize) {
-		warning("%X at %d", data[curPos], curPos);
+		//warning("%X at %d", data[curPos], curPos);
 		switch (pic_op = data[curPos++]) {
 		case PIC_OP_SET_COLOR:
 			pic_color = data[curPos++];
@@ -556,8 +556,13 @@
 					break;
 				case PIC_OPX_VGA_SET_PALETTE:
 					if (_resMan->getViewType() == kViewAmiga) {
-						// TODO: Implement amiga palette loading
-						curPos += 32; // Skip over palette
+						if ((data[curPos] == 0x00) && (data[curPos + 1] == 0x01) && ((data[curPos + 32] & 0xF0) != 0xF0)) {
+							// Left-Over VGA palette, we simply ignore it
+							curPos += 256 + 4 + 768;
+						} else {
+							// Some sort of 32 byte amiga palette, TODO: Find out whats in there
+							curPos += 32;
+						}
 					} else {
 						curPos += 256 + 4; // Skip over mapping and timestamp
 						for (i = 0; i < 256; i++) {


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