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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Thu Jul 22 14:36:58 CEST 2010


Revision: 51139
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51139&view=rev
Author:   m_kiewitz
Date:     2010-07-22 12:36:58 +0000 (Thu, 22 Jul 2010)

Log Message:
-----------
SCI: some more work on priority sci32

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

Modified: scummvm/trunk/engines/sci/graphics/frameout.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/frameout.cpp	2010-07-22 11:20:16 UTC (rev 51138)
+++ scummvm/trunk/engines/sci/graphics/frameout.cpp	2010-07-22 12:36:58 UTC (rev 51139)
@@ -218,12 +218,12 @@
 
 		if (planePicture) {
 			// Show base picture
-			planePicture->drawSci32Vga(0, planePicture->getSci32celX(0), planePicture->getSci32celY(0), planePictureMirrored);
+//			planePicture->drawSci32Vga(0, planePicture->getSci32celX(0), planePicture->getSci32celY(0), planePictureMirrored);
 			// Allocate memory for picture cels
 			pictureCels = (FrameoutEntry *)malloc(planePicture->getSci32celCount() * sizeof(FrameoutEntry));
 			// Add following cels to the itemlist
 			FrameoutEntry *picEntry = pictureCels;
-			for (int pictureCelNr = 1; pictureCelNr < planePictureCels; pictureCelNr++) {
+			for (int pictureCelNr = 0; pictureCelNr < planePictureCels; pictureCelNr++) {
 				picEntry->celNo = pictureCelNr;
 				picEntry->object = NULL_REG;
 				picEntry->y = planePicture->getSci32celY(pictureCelNr);
@@ -233,7 +233,7 @@
 				if (_screen->getWidth() > 320)
 					celHeight = celHeight / 2;
 
-				picEntry->priority = picEntry->y + celHeight;
+				picEntry->priority = planePicture->getSci32celPriority(pictureCelNr); // picEntry->y + celHeight;
 
 				picEntry->y = ((picEntry->y * _screen->getHeight()) / planeResY);
 				picEntry->x = ((picEntry->x * _screen->getWidth()) / planeResX);

Modified: scummvm/trunk/engines/sci/graphics/picture.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/picture.cpp	2010-07-22 11:20:16 UTC (rev 51138)
+++ scummvm/trunk/engines/sci/graphics/picture.cpp	2010-07-22 12:36:58 UTC (rev 51139)
@@ -145,6 +145,13 @@
 	return READ_LE_UINT16(inbuffer + cel_headerPos + 38);
 }
 
+int16 GfxPicture::getSci32celPriority(int16 celNo) {
+	byte *inbuffer = _resource->data;
+	int header_size = READ_LE_UINT16(inbuffer);
+	int cel_headerPos = header_size + 42 * celNo;
+	return READ_LE_UINT16(inbuffer + cel_headerPos + 36);
+}
+
 int16 GfxPicture::getSci32celHeight(int16 celNo) {
 	byte *inbuffer = _resource->data;
 	int header_size = READ_LE_UINT16(inbuffer);

Modified: scummvm/trunk/engines/sci/graphics/picture.h
===================================================================
--- scummvm/trunk/engines/sci/graphics/picture.h	2010-07-22 11:20:16 UTC (rev 51138)
+++ scummvm/trunk/engines/sci/graphics/picture.h	2010-07-22 12:36:58 UTC (rev 51139)
@@ -58,6 +58,7 @@
 	int16 getSci32celCount();
 	int16 getSci32celY(int16 celNo);
 	int16 getSci32celX(int16 celNo);
+	int16 getSci32celPriority(int16 celNo);
 	int16 getSci32celHeight(int16 celNo);
 	void drawSci32Vga(int16 celNo, int16 callerX, int16 callerY, bool mirrored);
 #endif


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