diff options
Diffstat (limited to 'engines/sci/graphics/palette.cpp')
-rw-r--r-- | engines/sci/graphics/palette.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/sci/graphics/palette.cpp b/engines/sci/graphics/palette.cpp index d28fb2ada1..f10446098f 100644 --- a/engines/sci/graphics/palette.cpp +++ b/engines/sci/graphics/palette.cpp @@ -57,6 +57,15 @@ GfxPalette::GfxPalette(ResourceManager *resMan, GfxScreen *screen) _sysPalette.colors[255].b = 255; _sysPaletteChanged = false; + _alwaysForceRealMerge = false; + + // Pseudo-WORKAROUND + // Laura Bow 2 is an inbetween interpreter, some parts are SCI1.1, some parts are SCI1 + // It's not using the SCI1.1 palette merging (copying over all the colors) but the real merging + // If we use the copying over, we will get issues because some views have marked all colors as being used + // and those will overwrite the current palette in that case + if (!strcmp(g_sci->getGameID(), "laurabow2") && (g_sci->isDemo())) + _alwaysForceRealMerge = true; } GfxPalette::~GfxPalette() { @@ -211,6 +220,9 @@ bool GfxPalette::merge(Palette *pFrom, Palette *pTo, bool force, bool forceRealM int i,j; bool paletteChanged = false; + // for Laura Bow 2 demo + forceRealMerge |= _alwaysForceRealMerge; + if ((!forceRealMerge) && (getSciVersion() >= SCI_VERSION_1_1)) { // SCI1.1+ doesnt do real merging anymore, but simply copying over the used colors from other palettes for (i = 1; i < 255; i++) { |