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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Jul 28 01:20:43 CEST 2010


Revision: 51397
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51397&view=rev
Author:   m_kiewitz
Date:     2010-07-27 23:20:43 +0000 (Tue, 27 Jul 2010)

Log Message:
-----------
SCI: sci1.1 priority bands now changing in kDrawPic

fixes qfg3: right guard on top of the palace having wrong priority
fixes sq5 and all sorts of sci1.1 games: when loading wrong priority for some actors that fixed itself after one frame

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

Modified: scummvm/trunk/engines/sci/graphics/animate.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/animate.cpp	2010-07-27 22:12:17 UTC (rev 51396)
+++ scummvm/trunk/engines/sci/graphics/animate.cpp	2010-07-27 23:20:43 UTC (rev 51397)
@@ -542,9 +542,6 @@
 	_transitions->doit(picRect);
 	if (previousCursorState)
 		_cursor->kernelShow();
-
-	// We set SCI1.1 priority band information here
-	_ports->priorityBandsRecall();
 }
 
 void GfxAnimate::kernelAnimate(reg_t listReference, bool cycle, int argc, reg_t *argv) {

Modified: scummvm/trunk/engines/sci/graphics/picture.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/picture.cpp	2010-07-27 22:12:17 UTC (rev 51396)
+++ scummvm/trunk/engines/sci/graphics/picture.cpp	2010-07-27 23:20:43 UTC (rev 51397)
@@ -122,8 +122,8 @@
 	// process vector data
 	drawVectorData(inbuffer + vector_dataPos, vector_size);
 
-	// Remember priority band information for later
-	_ports->priorityBandsRemember(inbuffer + 40);
+	// Set priority band information
+	_ports->priorityBandsInitSci11(inbuffer + 40);
 }
 
 #ifdef ENABLE_SCI32

Modified: scummvm/trunk/engines/sci/graphics/ports.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/ports.cpp	2010-07-27 22:12:17 UTC (rev 51396)
+++ scummvm/trunk/engines/sci/graphics/ports.cpp	2010-07-27 23:20:43 UTC (rev 51397)
@@ -134,8 +134,6 @@
 	if (g_sci->_features->usesOldGfxFunctions())
 		_picWind->top = offTop;
 
-	priorityBandsMemoryActive = false;
-
 	kernelInitPriorityBands();
 }
 
@@ -541,24 +539,16 @@
 		_priorityBands[i++] = inx;
 }
 
-// Gets used by picture class to remember priority bands data from sci1.1 pictures that need to get applied when
-//  transitioning to that picture
-void GfxPorts::priorityBandsRemember(byte *data) {
-	int bandNo;
-	for (bandNo = 0; bandNo < 14; bandNo++) {
-		priorityBandsMemory[bandNo] = READ_LE_UINT16(data);
+// Gets used to read priority bands data from sci1.1 pictures
+void GfxPorts::priorityBandsInitSci11(byte *data) {
+	byte priorityBands[14];
+	for (int bandNo = 0; bandNo < 14; bandNo++) {
+		priorityBands[bandNo] = READ_LE_UINT16(data);
 		data += 2;
 	}
-	priorityBandsMemoryActive = true;
+	priorityBandsInit(priorityBands);
 }
 
-void GfxPorts::priorityBandsRecall() {
-	if (priorityBandsMemoryActive) {
-		priorityBandsInit((byte *)&priorityBandsMemory);
-		priorityBandsMemoryActive = false;
-	}
-}
-
 void GfxPorts::kernelInitPriorityBands() {
 	if (_usesOldGfxFunctions) {
 		priorityBandsInit(15, 42, 200);

Modified: scummvm/trunk/engines/sci/graphics/ports.h
===================================================================
--- scummvm/trunk/engines/sci/graphics/ports.h	2010-07-27 22:12:17 UTC (rev 51396)
+++ scummvm/trunk/engines/sci/graphics/ports.h	2010-07-27 23:20:43 UTC (rev 51397)
@@ -81,8 +81,7 @@
 
 	void priorityBandsInit(int16 bandCount, int16 top, int16 bottom);
 	void priorityBandsInit(byte *data);
-	void priorityBandsRemember(byte *data);
-	void priorityBandsRecall();
+	void priorityBandsInitSci11(byte *data);
 
 	void kernelInitPriorityBands();
 	void kernelGraphAdjustPriority(int top, int bottom);
@@ -121,9 +120,6 @@
 	// Priority Bands related variables
 	int16 _priorityTop, _priorityBottom, _priorityBandCount;
 	byte _priorityBands[200];
-
-	byte priorityBandsMemory[14];
-	bool priorityBandsMemoryActive;
 };
 
 } // End of namespace Sci


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