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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Tue Jun 22 21:01:43 CEST 2010


Revision: 50162
          http://scummvm.svn.sourceforge.net/scummvm/?rev=50162&view=rev
Author:   m_kiewitz
Date:     2010-06-22 19:01:43 +0000 (Tue, 22 Jun 2010)

Log Message:
-----------
SCI: implemented kAssertPalette and a palvary fix for ::set, fixes erana's place in qfg1vga nighttime

Modified Paths:
--------------
    scummvm/trunk/engines/sci/graphics/palette.cpp
    scummvm/trunk/engines/sci/graphics/view.cpp

Modified: scummvm/trunk/engines/sci/graphics/palette.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/palette.cpp	2010-06-22 18:52:25 UTC (rev 50161)
+++ scummvm/trunk/engines/sci/graphics/palette.cpp	2010-06-22 19:01:43 UTC (rev 50162)
@@ -30,9 +30,11 @@
 
 #include "sci/sci.h"
 #include "sci/engine/state.h"
+#include "sci/graphics/cache.h"
 #include "sci/graphics/maciconbar.h"
 #include "sci/graphics/palette.h"
 #include "sci/graphics/screen.h"
+#include "sci/graphics/view.h"
 
 namespace Sci {
 
@@ -216,15 +218,16 @@
 		_sysPaletteChanged |= merge(newPalette, force, forceRealMerge);
 		newPalette->timestamp = _sysPalette.timestamp;
 
+		bool updatePalette = _sysPaletteChanged && _screen->_picNotValid == 0;
+
 		if (_palVaryResourceId != -1) {
 			// Pal-vary currently active, we don't set at any time, but also insert into origin palette
 			insert(newPalette, &_palVaryOriginPalette);
+			palVaryProcess(0, updatePalette);
 			return;
 		}
 
-		if (_sysPaletteChanged && _screen->_picNotValid == 0) { // && systime != _sysPalette.timestamp) {
-			// Removed timestamp checking, because this shouldnt be needed anymore. I'm leaving it commented just in
-			//  case this causes regressions
+		if (updatePalette) {
 			setOnScreen();
 			_sysPaletteChanged = false;
 		}
@@ -467,7 +470,16 @@
 }
 
 void GfxPalette::kernelAssertPalette(GuiResourceId resourceId) {
-	warning("kAssertPalette %d", resourceId);
+	// Sometimes invalid viewIds are asked for, ignore those (e.g. qfg1vga)
+	if (!_resMan->testResource(ResourceId(kResourceTypeView, resourceId)))
+		return;
+
+	GfxView *view = g_sci->_gfxCache->getView(resourceId);
+	Palette *viewPalette = view->getPalette();
+	if (viewPalette) {
+		// merge/insert this palette
+		set(viewPalette, true);
+	}
 }
 
 // palVary

Modified: scummvm/trunk/engines/sci/graphics/view.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/view.cpp	2010-06-22 18:52:25 UTC (rev 50161)
+++ scummvm/trunk/engines/sci/graphics/view.cpp	2010-06-22 19:01:43 UTC (rev 50162)
@@ -653,7 +653,7 @@
 }
 
 Palette *GfxView::getPalette() {
-	return _embeddedPal ? &_viewPalette : &_palette->_sysPalette;
+	return _embeddedPal ? &_viewPalette : NULL;
 }
 
 } // 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