aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/intern.h1
-rw-r--r--scumm/saveload.cpp4
-rw-r--r--scumm/sprite_he.cpp6
3 files changed, 6 insertions, 5 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index f574533258..4f7d4c4872 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -1146,7 +1146,6 @@ protected:
int32 _curMaxSpriteId;
int32 _curSpriteId;
int32 _curSpriteGroupId;
- int32 _numSpritesToProcess;
public:
ScummEngine_v90he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex);
diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp
index 8c9fa3753f..98b6a2db62 100644
--- a/scumm/saveload.cpp
+++ b/scumm/saveload.cpp
@@ -1293,7 +1293,7 @@ void ScummEngine_v90he::saveOrLoad(Serializer *s) {
MKLINE(ScummEngine_v90he, _curMaxSpriteId, sleInt32, VER(51)),
MKLINE(ScummEngine_v90he, _curSpriteId, sleInt32, VER(51)),
MKLINE(ScummEngine_v90he, _curSpriteGroupId, sleInt32, VER(51)),
- MKLINE(ScummEngine_v90he, _numSpritesToProcess, sleInt32, VER(51)),
+ MK_OBSOLETE(ScummEngine_v90he, _numSpritesToProcess, sleInt32, VER(51), VER(63)),
MKLINE(ScummEngine_v90he, _heObject, sleInt32, VER(51)),
MKLINE(ScummEngine_v90he, _heObjectNum, sleInt32, VER(51)),
MKLINE(ScummEngine_v90he, _hePaletteNum, sleInt32, VER(51)),
@@ -1304,9 +1304,7 @@ void ScummEngine_v90he::saveOrLoad(Serializer *s) {
s->saveLoadArrayOf(&_floodFillParams, 1, sizeof(_floodFillParams), floodFillEntries);
- _numSpritesToProcess = _sprite->_numSpritesToProcess;
s->saveLoadEntries(this, HE90Entries);
- _sprite->_numSpritesToProcess = _numSpritesToProcess;
}
void ScummEngine_v99he::saveOrLoad(Serializer *s) {
diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp
index cdcf144ebc..f0ecc7b6be 100644
--- a/scumm/sprite_he.cpp
+++ b/scumm/sprite_he.cpp
@@ -1422,7 +1422,6 @@ void Sprite::saveOrLoadSpriteData(Serializer *s) {
};
if (s->getVersion() >= VER(64)) {
- s->saveLoadArrayOf(_activeSpritesTable, _varNumSprites + 1, sizeof(_activeSpritesTable[0]), spriteEntries);
s->saveLoadArrayOf(_spriteTable, _varNumSprites + 1, sizeof(_spriteTable[0]), spriteEntries);
s->saveLoadArrayOf(_spriteGroups, _varNumSpriteGroups + 1, sizeof(_spriteGroups[0]), spriteGroupEntries);
} else {
@@ -1430,6 +1429,11 @@ void Sprite::saveOrLoadSpriteData(Serializer *s) {
s->saveLoadArrayOf(_spriteTable, _varNumSprites, sizeof(_spriteTable[0]), spriteEntries);
s->saveLoadArrayOf(_spriteGroups, _varNumSpriteGroups, sizeof(_spriteGroups[0]), spriteGroupEntries);
}
+
+ // Reset active sprite table
+ if (s->isLoading())
+ _numSpritesToProcess = 0;
+
}
} // End of namespace Scumm