diff options
author | Filippos Karapetis | 2010-07-23 07:36:55 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-07-23 07:36:55 +0000 |
commit | 3aa4f76ee422b42b6588296862e01eb3e8a50357 (patch) | |
tree | 06a8f43b83e9ae79cfc505f65b3d89eb0474f9b1 /engines/sci/graphics | |
parent | 6da04bc13bdd76ae0230d9eeb3e00eb11b55b20a (diff) | |
download | scummvm-rg350-3aa4f76ee422b42b6588296862e01eb3e8a50357.tar.gz scummvm-rg350-3aa4f76ee422b42b6588296862e01eb3e8a50357.tar.bz2 scummvm-rg350-3aa4f76ee422b42b6588296862e01eb3e8a50357.zip |
SCI: Now saving the kPalVary state inside savegames
svn-id: r51194
Diffstat (limited to 'engines/sci/graphics')
-rw-r--r-- | engines/sci/graphics/helpers.h | 16 | ||||
-rw-r--r-- | engines/sci/graphics/palette.h | 4 |
2 files changed, 19 insertions, 1 deletions
diff --git a/engines/sci/graphics/helpers.h b/engines/sci/graphics/helpers.h index f0ffecfb59..115a4c996e 100644 --- a/engines/sci/graphics/helpers.h +++ b/engines/sci/graphics/helpers.h @@ -28,6 +28,7 @@ #include "common/endian.h" // for READ_LE_UINT16 #include "common/rect.h" +#include "common/serializer.h" #include "sci/engine/vm_types.h" namespace Sci { @@ -82,6 +83,13 @@ struct Window : public Port { struct Color { byte used; byte r, g, b; + + void saveLoadWithSerializer(Common::Serializer &s) { + s.syncAsByte(used); + s.syncAsByte(r); + s.syncAsByte(g); + s.syncAsByte(b); + } }; struct Palette { @@ -89,6 +97,14 @@ struct Palette { uint32 timestamp; Color colors[256]; byte intensity[256]; + + void saveLoadWithSerializer(Common::Serializer &s) { + s.syncBytes(mapping, 256); + s.syncAsUint32LE(timestamp); + for (int i = 0; i < 256; i++) + colors[i].saveLoadWithSerializer(s); + s.syncBytes(intensity, 256); + } }; struct PalSchedule { diff --git a/engines/sci/graphics/palette.h b/engines/sci/graphics/palette.h index 6af1d5a490..b9cd308281 100644 --- a/engines/sci/graphics/palette.h +++ b/engines/sci/graphics/palette.h @@ -34,7 +34,7 @@ class Screen; /** * Palette class, handles palette operations like changing intensity, setting up the palette, merging different palettes */ -class GfxPalette { +class GfxPalette : public Common::Serializable { public: GfxPalette(ResourceManager *resMan, GfxScreen *screen, bool useMerging); ~GfxPalette(); @@ -80,6 +80,8 @@ public: Palette _sysPalette; + virtual void saveLoadWithSerializer(Common::Serializer &s); + private: void palVaryInit(); void palVaryInstallTimer(); |