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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Wed Dec 1 01:40:53 CET 2010


Revision: 54690
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54690&view=rev
Author:   thebluegr
Date:     2010-12-01 00:40:52 +0000 (Wed, 01 Dec 2010)

Log Message:
-----------
SCI: Fixed bugs #3041044, #3046543 and #3046513

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-11-30 22:02:03 UTC (rev 54689)
+++ scummvm/trunk/engines/sci/graphics/picture.cpp	2010-12-01 00:40:52 UTC (rev 54690)
@@ -498,6 +498,7 @@
 	Palette palette;
 	int16 pattern_Code = 0, pattern_Texture = 0;
 	bool icemanDrawFix = false;
+	bool ignoreBrokenPriority = false;
 
 	memset(&palette, 0, sizeof(palette));
 
@@ -518,6 +519,22 @@
 			if ((_screen->getUnditherState()) && ((_resourceId >= 53 && _resourceId <= 58) || (_resourceId == 61)))
 				icemanDrawFix = true;
 		}
+		if (g_sci->getGameId() == GID_KQ5) {
+			// WORKAROUND: ignore the seemingly broken priority of picture 48 
+			// (island overview). Fixes bug #3041044.
+			if (_resourceId == 48)
+				ignoreBrokenPriority = true;
+		}
+		if (g_sci->getGameId() == GID_SQ4) {
+			// WORKAROUND: ignore the seemingly broken priority of pictures 546
+			// and 547 (Vohaul's head and Roger Jr trapped). Fixes bug #3046543.
+			if (_resourceId == 546 || _resourceId == 547)
+				ignoreBrokenPriority = true;
+			// WORKAROUND: ignore the seemingly broken priority of picture 631
+			// (SQ1 view from the cockpit). Fixes bug #3046513.
+			if (_resourceId == 631)
+				ignoreBrokenPriority = true;
+		}
 	}
 
 	// Drawing
@@ -537,9 +554,10 @@
 
 		case PIC_OP_SET_PRIORITY:
 			pic_priority = data[curPos++] & 0x0F;
-			if (isEGA) {
+			if (isEGA) 
 				pic_priority = EGApriority[pic_priority];
-			}
+			if (ignoreBrokenPriority)
+				pic_priority = 255;
 			break;
 		case PIC_OP_DISABLE_PRIORITY:
 			pic_priority = 255;


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