From e504efe4da62b3d2e32ffb895b935080be02aed4 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Fri, 24 Feb 2017 12:15:57 -0600 Subject: SCI32: Add palette code for late SCI2.1mid+ games Sometime during SCI2.1mid, the palette manager was changed to save and restore the source palette, and to add in-game gamma correction. Previously, only the vary start and target palettes were saved, and gamma correction was only configurable in SSCI by editing RESOURCE.CFG. --- engines/sci/engine/savegame.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'engines/sci/engine/savegame.cpp') diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index e6a6af7d17..04715d6034 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -865,10 +865,18 @@ void GfxPalette32::saveLoadWithSerializer(Common::Serializer &s) { s.syncAsByte(_cycleMap[i]); } + if (g_sci->_features->hasLatePaletteCode() && s.getVersion() >= 41) { + s.syncAsSint16LE(_gammaLevel); + saveLoadPalette32(s, &_sourcePalette); + ++_version; + _needsUpdate = true; + _gammaChanged = true; + } + saveLoadOptionalPalette32(s, &_varyTargetPalette); saveLoadOptionalPalette32(s, &_varyStartPalette); - // NOTE: _sourcePalette and _nextPalette are not saved - // by SCI engine + + // _nextPalette is not saved by SSCI for (int i = 0; i < ARRAYSIZE(_cyclers); ++i) { PalCycler *cycler = nullptr; -- cgit v1.2.3