aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics
diff options
context:
space:
mode:
authorFilippos Karapetis2011-10-19 23:44:34 +0300
committerFilippos Karapetis2011-10-19 23:52:51 +0300
commit935eaa175bb6df628f0118e70a59b895f65e92a1 (patch)
tree14f5b5ec5441418a1ba94b937bc3db2f24c88835 /engines/sci/graphics
parent9549583242f4efc445f134c63109f599319b1e26 (diff)
downloadscummvm-rg350-935eaa175bb6df628f0118e70a59b895f65e92a1.tar.gz
scummvm-rg350-935eaa175bb6df628f0118e70a59b895f65e92a1.tar.bz2
scummvm-rg350-935eaa175bb6df628f0118e70a59b895f65e92a1.zip
SCI: Move the palette merging checking code inside the GfxPalette class
Diffstat (limited to 'engines/sci/graphics')
-rw-r--r--engines/sci/graphics/palette.cpp11
-rw-r--r--engines/sci/graphics/palette.h2
2 files changed, 10 insertions, 3 deletions
diff --git a/engines/sci/graphics/palette.cpp b/engines/sci/graphics/palette.cpp
index a96d40b948..b52af38675 100644
--- a/engines/sci/graphics/palette.cpp
+++ b/engines/sci/graphics/palette.cpp
@@ -37,7 +37,7 @@
namespace Sci {
-GfxPalette::GfxPalette(ResourceManager *resMan, GfxScreen *screen, bool useMerging)
+GfxPalette::GfxPalette(ResourceManager *resMan, GfxScreen *screen)
: _resMan(resMan), _screen(screen) {
int16 color;
@@ -65,7 +65,14 @@ GfxPalette::GfxPalette(ResourceManager *resMan, GfxScreen *screen, bool useMergi
// the real merging done in earlier games. 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
- _useMerging = useMerging;
+ if (getSciVersion() < SCI_VERSION_1_1)
+ _useMerging = true;
+ else if (getSciVersion() == SCI_VERSION_1_1)
+ // there are some games that use inbetween SCI1.1 interpreter, so we have
+ // to detect if the current game is merging or copying
+ _useMerging = _resMan->detectPaletteMergingSci11();
+ else // SCI32
+ _useMerging = false;
palVaryInit();
diff --git a/engines/sci/graphics/palette.h b/engines/sci/graphics/palette.h
index 243420cc47..a9ea1c32de 100644
--- a/engines/sci/graphics/palette.h
+++ b/engines/sci/graphics/palette.h
@@ -36,7 +36,7 @@ class GfxScreen;
*/
class GfxPalette : public Common::Serializable {
public:
- GfxPalette(ResourceManager *resMan, GfxScreen *screen, bool useMerging);
+ GfxPalette(ResourceManager *resMan, GfxScreen *screen);
~GfxPalette();
bool isMerging();