aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2008-01-09 09:13:39 +0000
committerPaul Gilbert2008-01-09 09:13:39 +0000
commit34c3c89267bade81b1b8225455be46638ef73360 (patch)
tree6ae226802a582985f2025d3d678aa183fc28cb96 /engines
parent241c337dc331a84340deb0c7e48b87f00fd7b582 (diff)
downloadscummvm-rg350-34c3c89267bade81b1b8225455be46638ef73360.tar.gz
scummvm-rg350-34c3c89267bade81b1b8225455be46638ef73360.tar.bz2
scummvm-rg350-34c3c89267bade81b1b8225455be46638ef73360.zip
Fix for #1866777 - adds saving of hotspot layer to savegames
svn-id: r30347
Diffstat (limited to 'engines')
-rw-r--r--engines/lure/lure.cpp2
-rw-r--r--engines/lure/luredefs.h3
-rw-r--r--engines/lure/res_struct.cpp6
3 files changed, 9 insertions, 2 deletions
diff --git a/engines/lure/lure.cpp b/engines/lure/lure.cpp
index 85c2479375..5ea6ed63dc 100644
--- a/engines/lure/lure.cpp
+++ b/engines/lure/lure.cpp
@@ -169,7 +169,7 @@ bool LureEngine::saveGame(uint8 slotNumber, Common::String &caption) {
f->write("lure", 5);
f->writeByte(getLanguage());
- f->writeByte(LURE_DAT_MINOR);
+ f->writeByte(LURE_SAVEGAME_MINOR);
f->writeString(caption);
f->writeByte(0); // End of string terminator
diff --git a/engines/lure/luredefs.h b/engines/lure/luredefs.h
index 0c1db09664..b47ec75cf5 100644
--- a/engines/lure/luredefs.h
+++ b/engines/lure/luredefs.h
@@ -35,7 +35,8 @@ namespace Lure {
#define SUPPORT_FILENAME "lure.dat"
#define LURE_DAT_MAJOR 1
#define LURE_DAT_MINOR 28
-#define LURE_MIN_SAVEGAME_MINOR 25
+#define LURE_MIN_SAVEGAME_MINOR 25
+#define LURE_SAVEGAME_MINOR 29
#define LURE_DEBUG 1
diff --git a/engines/lure/res_struct.cpp b/engines/lure/res_struct.cpp
index e084e8a52c..ffcb6fa8be 100644
--- a/engines/lure/res_struct.cpp
+++ b/engines/lure/res_struct.cpp
@@ -25,6 +25,7 @@
#include "lure/res.h"
#include "lure/disk.h"
+#include "lure/lure.h"
#include "lure/scripts.h"
#include "common/endian.h"
@@ -446,6 +447,7 @@ void HotspotData::saveToStream(WriteStream *stream) {
stream->writeSint16LE(startX);
stream->writeSint16LE(startY);
stream->writeUint16LE(roomNumber);
+ stream->writeByte(layer);
stream->writeUint16LE(width);
stream->writeUint16LE(height);
@@ -490,6 +492,10 @@ void HotspotData::loadFromStream(ReadStream *stream) {
startY = stream->readSint16LE();
roomNumber = stream->readUint16LE();
+ uint8 saveVersion = LureEngine::getReference().saveVersion();
+ if (saveVersion >= 29)
+ layer = stream->readByte();
+
width = stream->readUint16LE();
height = stream->readUint16LE();
widthCopy = stream->readUint16LE();