summaryrefslogtreecommitdiff
path: root/src/saveload/cheat_sl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/saveload/cheat_sl.cpp')
-rw-r--r--src/saveload/cheat_sl.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/saveload/cheat_sl.cpp b/src/saveload/cheat_sl.cpp
index fde1fc176..51df50314 100644
--- a/src/saveload/cheat_sl.cpp
+++ b/src/saveload/cheat_sl.cpp
@@ -44,6 +44,8 @@ static const SaveLoad _cheats_desc[] = {
*/
static void Save_CHTS()
{
+ SlSetArrayIndex(0);
+
SlSetLength(std::size(_cheats_desc));
SlObject(&_cheats, _cheats_desc);
}
@@ -67,12 +69,14 @@ static void Load_CHTS()
if (count == 0) break;
}
+ if (!IsSavegameVersionBefore(SLV_RIFF_TO_ARRAY) && SlIterateArray() == -1) return;
SlObject(&_cheats, slt);
+ if (!IsSavegameVersionBefore(SLV_RIFF_TO_ARRAY) && SlIterateArray() != -1) SlErrorCorrupt("Too many CHTS entries");
}
/** Chunk handlers related to cheats. */
static const ChunkHandler cheat_chunk_handlers[] = {
- { 'CHTS', Save_CHTS, Load_CHTS, nullptr, nullptr, CH_RIFF },
+ { 'CHTS', Save_CHTS, Load_CHTS, nullptr, nullptr, CH_ARRAY },
};
extern const ChunkHandlerTable _cheat_chunk_handlers(cheat_chunk_handlers);