summaryrefslogtreecommitdiff
path: root/src/saveload/linkgraph_sl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/saveload/linkgraph_sl.cpp')
-rw-r--r--src/saveload/linkgraph_sl.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/saveload/linkgraph_sl.cpp b/src/saveload/linkgraph_sl.cpp
index fc72d4383..7000946da 100644
--- a/src/saveload/linkgraph_sl.cpp
+++ b/src/saveload/linkgraph_sl.cpp
@@ -287,6 +287,7 @@ static void Load_LGRJ()
*/
static void Save_LGRS()
{
+ SlSetArrayIndex(0);
SlObject(&LinkGraphSchedule::instance, GetLinkGraphScheduleDesc());
}
@@ -295,7 +296,9 @@ static void Save_LGRS()
*/
static void Load_LGRS()
{
+ if (!IsSavegameVersionBefore(SLV_RIFF_TO_ARRAY) && SlIterateArray() == -1) return;
SlObject(&LinkGraphSchedule::instance, GetLinkGraphScheduleDesc());
+ if (!IsSavegameVersionBefore(SLV_RIFF_TO_ARRAY) && SlIterateArray() != -1) SlErrorCorrupt("Too many LGRS entries");
}
/**
@@ -309,7 +312,7 @@ static void Ptrs_LGRS()
static const ChunkHandler linkgraph_chunk_handlers[] = {
{ 'LGRP', Save_LGRP, Load_LGRP, nullptr, nullptr, CH_ARRAY },
{ 'LGRJ', Save_LGRJ, Load_LGRJ, nullptr, nullptr, CH_ARRAY },
- { 'LGRS', Save_LGRS, Load_LGRS, Ptrs_LGRS, nullptr, CH_RIFF }
+ { 'LGRS', Save_LGRS, Load_LGRS, Ptrs_LGRS, nullptr, CH_ARRAY },
};
extern const ChunkHandlerTable _linkgraph_chunk_handlers(linkgraph_chunk_handlers);