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

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


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

Log Message:
-----------
SCI: adding header comments about sci1.1 pictures

also fixing some of the offsets (those are DWORD instead of just WORDs)

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 12:28:35 UTC (rev 51414)
+++ scummvm/trunk/engines/sci/graphics/picture.cpp	2010-07-28 12:41:24 UTC (rev 51415)
@@ -102,19 +102,29 @@
 	int size = _resource->size;
 	int priorityBandsCount = inbuffer[3];
 	int has_cel = inbuffer[4];
-	int vector_dataPos = READ_LE_UINT16(inbuffer + 16);
+	int vector_dataPos = READ_LE_UINT32(inbuffer + 16);
 	int vector_size = size - vector_dataPos;
-	int palette_data_ptr = READ_LE_UINT16(inbuffer + 28);
-	int cel_headerPos = READ_LE_UINT16(inbuffer + 32);
-	int cel_RlePos = READ_LE_UINT16(inbuffer + cel_headerPos + 24);
-	int cel_LiteralPos = READ_LE_UINT16(inbuffer + cel_headerPos + 28);
+	int palette_data_ptr = READ_LE_UINT32(inbuffer + 28);
+	int cel_headerPos = READ_LE_UINT32(inbuffer + 32);
+	int cel_RlePos = READ_LE_UINT32(inbuffer + cel_headerPos + 24);
+	int cel_LiteralPos = READ_LE_UINT32(inbuffer + cel_headerPos + 28);
 	Palette palette;
 
+	// Header
+	// [headerSize:WORD] [unknown:BYTE] [priorityBandCount:BYTE] [hasCel:BYTE] [unknown:BYTE]
+	// [unknown:WORD] [unknown:WORD] [unknown:WORD] [unknown:WORD] [unknown:WORD]
+	// Offset 16
+	// [vectorDataOffset:DWORD] [unknown:DWORD] [unknown:DWORD] [paletteDataOffset:DWORD]
+	// Offset 32
+	// [celHeaderOffset:DWORD] [unknown:DWORD]
+	// [priorityBandData:WORD] * priorityBandCount
+	// [priority:BYTE] [unknown:BYTE]
+
 	// Create palette and set it
 	_palette->createFromData(inbuffer + palette_data_ptr, size - palette_data_ptr, &palette);
 	_palette->set(&palette, true);
 
-	// priority bands are supposed to be 14
+	// priority bands are supposed to be 14 for sci1.1 pictures
 	assert(priorityBandsCount == 14);
 
 	if (_addToFlag) {


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