aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics
diff options
context:
space:
mode:
authorFilippos Karapetis2010-07-23 07:36:55 +0000
committerFilippos Karapetis2010-07-23 07:36:55 +0000
commit3aa4f76ee422b42b6588296862e01eb3e8a50357 (patch)
tree06a8f43b83e9ae79cfc505f65b3d89eb0474f9b1 /engines/sci/graphics
parent6da04bc13bdd76ae0230d9eeb3e00eb11b55b20a (diff)
downloadscummvm-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.h16
-rw-r--r--engines/sci/graphics/palette.h4
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();