aboutsummaryrefslogtreecommitdiff
path: root/engines/toltecs/palette.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/toltecs/palette.cpp')
-rw-r--r--engines/toltecs/palette.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/engines/toltecs/palette.cpp b/engines/toltecs/palette.cpp
index 0f08694db0..9692538169 100644
--- a/engines/toltecs/palette.cpp
+++ b/engines/toltecs/palette.cpp
@@ -187,10 +187,30 @@ void Palette::saveState(Common::WriteStream *out) {
}
out->writeByte(_fragmentIndex);
-
}
void Palette::loadState(Common::ReadStream *in) {
+
+ // Save currently active palette
+ byte palette[768];
+ in->read(palette, 768);
+ setFullPalette(palette);
+
+ in->read(_mainPalette, 768);
+ in->read(_animPalette, 768);
+ in->read(_colorTransTable, 256);
+
+ uint16 fragmentCount = in->readUint16LE();
+ _fragments.clear();
+ for (uint16 i = 0; i < fragmentCount; i++) {
+ PaletteFragment fragment;
+ fragment.id = in->readUint16LE();
+ fragment.index = in->readByte();
+ fragment.count = in->readByte();
+ _fragments.push_back(fragment);
+ }
+ _fragmentIndex = in->readByte();
+
}