aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2004-09-10 01:03:01 +0000
committerTravis Howell2004-09-10 01:03:01 +0000
commitc7d28132b4240c7c253ad91904f59cf3dd896e4d (patch)
tree95023a41c676026d7d73c6ef16c13d68bb4b5c48
parent655728fe7d40a114913e68681ba747b887039d73 (diff)
downloadscummvm-rg350-c7d28132b4240c7c253ad91904f59cf3dd896e4d.tar.gz
scummvm-rg350-c7d28132b4240c7c253ad91904f59cf3dd896e4d.tar.bz2
scummvm-rg350-c7d28132b4240c7c253ad91904f59cf3dd896e4d.zip
Save game changes for HE80+ games.
svn-id: r14985
-rw-r--r--scumm/actor.cpp5
-rw-r--r--scumm/actor.h2
-rw-r--r--scumm/saveload.cpp3
-rw-r--r--scumm/saveload.h2
4 files changed, 8 insertions, 4 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp
index ef29630383..c31da182f8 100644
--- a/scumm/actor.cpp
+++ b/scumm/actor.cpp
@@ -1915,7 +1915,8 @@ const SaveLoadEntry *Actor::getSaveLoadEntries() {
MKLINE(Actor, needRedraw, sleByte, VER(8)),
MKLINE(Actor, needBgReset, sleByte, VER(8)),
MKLINE(Actor, costumeNeedsInit, sleByte, VER(8)),
-
+ MKLINE(Actor, condMask, sleUint32, VER(38)),
+
MKLINE(Actor, talkPosY, sleInt16, VER(8)),
MKLINE(Actor, talkPosX, sleInt16, VER(8)),
MKLINE(Actor, ignoreTurns, sleByte, VER(8)),
@@ -1924,7 +1925,7 @@ const SaveLoadEntry *Actor::getSaveLoadEntries() {
MKLINE(Actor, talkScript, sleUint16, VER(8)),
MKLINE(Actor, walkScript, sleUint16, VER(8)),
-
+
MKLINE(Actor, walkdata.dest.x, sleInt16, VER(8)),
MKLINE(Actor, walkdata.dest.y, sleInt16, VER(8)),
MKLINE(Actor, walkdata.destbox, sleByte, VER(8)),
diff --git a/scumm/actor.h b/scumm/actor.h
index 88e557eb18..0e036ff944 100644
--- a/scumm/actor.h
+++ b/scumm/actor.h
@@ -123,7 +123,7 @@ public:
int8 layer;
uint16 sound[32];
CostumeData cost;
- uint32 condMask; // XXX save/load
+ uint32 condMask;
protected:
byte palette[256];
int elevation;
diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp
index c369032213..aba1fcc3d1 100644
--- a/scumm/saveload.cpp
+++ b/scumm/saveload.cpp
@@ -776,6 +776,9 @@ void ScummEngine::saveOrLoad(Serializer *s, uint32 savegameVersion) {
var120Backup = _scummVars[120];
var98Backup = _scummVars[98];
+ if (savegameVersion > VER(37))
+ s->saveLoadArrayOf(_roomVars, _numRoomVariables, sizeof(_roomVars[0]), sleInt32);
+
// The variables grew from 16 to 32 bit.
if (savegameVersion < VER(15))
s->saveLoadArrayOf(_scummVars, _numVariables, sizeof(_scummVars[0]), sleInt16);
diff --git a/scumm/saveload.h b/scumm/saveload.h
index aae7896408..fba338e6db 100644
--- a/scumm/saveload.h
+++ b/scumm/saveload.h
@@ -32,7 +32,7 @@ namespace Scumm {
// Can be useful for other ports too :)
#define VER(x) x
-#define CURRENT_VER 37
+#define CURRENT_VER 38
// To work around a warning in GCC 3.2 (and 3.1 ?) regarding non-POD types,
// we use a small trick: instead of 0 we use 42. Why? Well, it seems newer GCC