summaryrefslogtreecommitdiff
path: root/src/saveload/map_sl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/saveload/map_sl.cpp')
-rw-r--r--src/saveload/map_sl.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/saveload/map_sl.cpp b/src/saveload/map_sl.cpp
index 476a9a89a..e55ac665a 100644
--- a/src/saveload/map_sl.cpp
+++ b/src/saveload/map_sl.cpp
@@ -8,13 +8,15 @@
/** @file map_sl.cpp Code handling saving and loading of map */
#include "../stdafx.h"
+
+#include "saveload.h"
+#include "compat/map_sl_compat.h"
+
#include "../map_func.h"
#include "../core/bitmath_func.hpp"
#include "../fios.h"
#include <array>
-#include "saveload.h"
-
#include "../safeguards.h"
static uint32 _map_dim_x;
@@ -27,6 +29,8 @@ static const SaveLoad _map_desc[] = {
static void Save_MAPS()
{
+ SlTableHeader(_map_desc);
+
_map_dim_x = MapSizeX();
_map_dim_y = MapSizeY();
@@ -36,8 +40,10 @@ static void Save_MAPS()
static void Load_MAPS()
{
+ const std::vector<SaveLoad> slt = SlCompatTableHeader(_map_desc, _map_sl_compat);
+
if (!IsSavegameVersionBefore(SLV_RIFF_TO_ARRAY) && SlIterateArray() == -1) return;
- SlGlobList(_map_desc);
+ SlGlobList(slt);
if (!IsSavegameVersionBefore(SLV_RIFF_TO_ARRAY) && SlIterateArray() != -1) SlErrorCorrupt("Too many MAPS entries");
AllocateMap(_map_dim_x, _map_dim_y);
@@ -45,8 +51,10 @@ static void Load_MAPS()
static void Check_MAPS()
{
+ const std::vector<SaveLoad> slt = SlCompatTableHeader(_map_desc, _map_sl_compat);
+
if (!IsSavegameVersionBefore(SLV_RIFF_TO_ARRAY) && SlIterateArray() == -1) return;
- SlGlobList(_map_desc);
+ SlGlobList(slt);
if (!IsSavegameVersionBefore(SLV_RIFF_TO_ARRAY) && SlIterateArray() != -1) SlErrorCorrupt("Too many MAPS entries");
_load_check_data.map_size_x = _map_dim_x;
@@ -303,7 +311,7 @@ static void Save_MAP8()
static const ChunkHandler map_chunk_handlers[] = {
- { 'MAPS', Save_MAPS, Load_MAPS, nullptr, Check_MAPS, CH_ARRAY },
+ { 'MAPS', Save_MAPS, Load_MAPS, nullptr, Check_MAPS, CH_TABLE },
{ 'MAPT', Save_MAPT, Load_MAPT, nullptr, nullptr, CH_RIFF },
{ 'MAPH', Save_MAPH, Load_MAPH, nullptr, nullptr, CH_RIFF },
{ 'MAPO', Save_MAP1, Load_MAP1, nullptr, nullptr, CH_RIFF },