aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2005-10-22 04:08:48 +0000
committerTravis Howell2005-10-22 04:08:48 +0000
commit3374e399b59cc77ffe14eba180fd27319ea3dba9 (patch)
treed147e1bb82f876b6856a8fb6d4977a322e3ffd5e /scumm
parent4079dd03b14c393932699db988062d0c1e5548c5 (diff)
downloadscummvm-rg350-3374e399b59cc77ffe14eba180fd27319ea3dba9.tar.gz
scummvm-rg350-3374e399b59cc77ffe14eba180fd27319ea3dba9.tar.bz2
scummvm-rg350-3374e399b59cc77ffe14eba180fd27319ea3dba9.zip
Load/Save palette correctly in HE99 games.
Save actor shadows in HE games. svn-id: r19231
Diffstat (limited to 'scumm')
-rw-r--r--scumm/actor.cpp2
-rw-r--r--scumm/actor.h4
-rw-r--r--scumm/saveload.cpp2
-rw-r--r--scumm/saveload.h2
-rw-r--r--scumm/wiz_he.cpp2
5 files changed, 7 insertions, 5 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp
index 4ed79ae795..02fed10153 100644
--- a/scumm/actor.cpp
+++ b/scumm/actor.cpp
@@ -2196,6 +2196,8 @@ void Actor::saveLoadWithSerializer(Serializer *ser) {
MKLINE(Actor, _needBgReset, sleByte, VER(8)),
MKLINE(Actor, _costumeNeedsInit, sleByte, VER(8)),
MKLINE(Actor, _heCondMask, sleUint32, VER(38)),
+ MKLINE(Actor, _hePaletteNum, sleUint32, VER(59)),
+ MKLINE(Actor, _heXmapNum, sleUint32, VER(59)),
MKLINE(Actor, _talkPosY, sleInt16, VER(8)),
MKLINE(Actor, _talkPosX, sleInt16, VER(8)),
diff --git a/scumm/actor.h b/scumm/actor.h
index 9d7da4e82b..20d94c1347 100644
--- a/scumm/actor.h
+++ b/scumm/actor.h
@@ -133,12 +133,12 @@ public:
CostumeData _cost;
/* HE specific */
- int32 _heXmapNum;
- byte _hePaletteNum;
bool _heNoTalkAnimation;
bool _heSkipLimbs;
bool _heTalking;
uint32 _heCondMask;
+ uint32 _hePaletteNum;
+ uint32 _heXmapNum;
AuxBlock _auxBlock;
diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp
index 0cfb1650af..2463f20a4b 100644
--- a/scumm/saveload.cpp
+++ b/scumm/saveload.cpp
@@ -1270,7 +1270,7 @@ void ScummEngine_v90he::saveOrLoad(Serializer *s, uint32 savegameVersion) {
void ScummEngine_v99he::saveOrLoad(Serializer *s, uint32 savegameVersion) {
ScummEngine_v90he::saveOrLoad(s, savegameVersion);
- s->saveLoadArrayOf(_hePalettes, _numPalettes, sizeof(_hePalettes[0]), sleUint8);
+ s->saveLoadArrayOf(_hePalettes, (_numPalettes + 1) * 1024, sizeof(_hePalettes[0]), sleUint8);
}
void ScummEngine_v100he::saveOrLoad(Serializer *s, uint32 savegameVersion) {
diff --git a/scumm/saveload.h b/scumm/saveload.h
index dcaab584f5..3c27f8f9c7 100644
--- a/scumm/saveload.h
+++ b/scumm/saveload.h
@@ -45,7 +45,7 @@ namespace Scumm {
* only saves/loads those which are valid for the version of the savegame
* which is being loaded/saved currently.
*/
-#define CURRENT_VER 58
+#define CURRENT_VER 59
/**
* An auxillary macro, used to specify savegame versions. We use this instead
diff --git a/scumm/wiz_he.cpp b/scumm/wiz_he.cpp
index d91b9585df..aaedb408f9 100644
--- a/scumm/wiz_he.cpp
+++ b/scumm/wiz_he.cpp
@@ -504,7 +504,7 @@ dec_sub2: w -= code;
*dstPtr++ = palPtr[*dataPtr];
}
}
- *dataPtr++;
+ dataPtr++;
} else {
dec_sub3: w -= code;
if (w < 0) {