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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Jul 28 14:28:36 CEST 2010


Revision: 51414
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51414&view=rev
Author:   m_kiewitz
Date:     2010-07-28 12:28:35 +0000 (Wed, 28 Jul 2010)

Log Message:
-----------
SCI: priority handling for sci1.1 add-pictures

fixes battle cruiser mini game in sq5 (at least we get something displayed now)

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-07-28 11:37:22 UTC (rev 51413)
+++ scummvm/trunk/engines/sci/graphics/picture.cpp	2010-07-28 12:28:35 UTC (rev 51414)
@@ -73,8 +73,6 @@
 	switch (headerSize) {
 	case 0x26: // SCI 1.1 VGA picture
 		_resourceType = SCI_PICTURE_TYPE_SCI11;
-		if (_addToFlag)
-			_priority = 15;
 		drawSci11Vga();
 		break;
 #ifdef ENABLE_SCI32
@@ -102,7 +100,8 @@
 void GfxPicture::drawSci11Vga() {
 	byte *inbuffer = _resource->data;
 	int size = _resource->size;
-	int has_cel = READ_LE_UINT16(inbuffer + 4);
+	int priorityBandsCount = inbuffer[3];
+	int has_cel = inbuffer[4];
 	int vector_dataPos = READ_LE_UINT16(inbuffer + 16);
 	int vector_size = size - vector_dataPos;
 	int palette_data_ptr = READ_LE_UINT16(inbuffer + 28);
@@ -115,6 +114,13 @@
 	_palette->createFromData(inbuffer + palette_data_ptr, size - palette_data_ptr, &palette);
 	_palette->set(&palette, true);
 
+	// priority bands are supposed to be 14
+	assert(priorityBandsCount == 14);
+
+	if (_addToFlag) {
+		_priority = inbuffer[40 + priorityBandsCount * 2] & 0xF;
+	}
+
 	// display Cel-data
 	if (has_cel)
 		drawCelData(inbuffer, size, cel_headerPos, cel_RlePos, cel_LiteralPos, 0, 0, 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