[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