summaryrefslogtreecommitdiff
path: root/src/saveload/compat
diff options
context:
space:
mode:
authorPatric Stout <truebrain@openttd.org>2021-05-30 15:59:40 +0200
committerPatric Stout <github@truebrain.nl>2021-07-02 22:21:58 +0200
commitcdb3dd0493749dd5c62378f318ea61bcb85f988f (patch)
treec1daa1e67c48fc480b7d4cfa0462db4c1bffdff8 /src/saveload/compat
parent7dd5fd6ed497e1da40c13075d6e37b54ab12a082 (diff)
downloadopenttd-cdb3dd0493749dd5c62378f318ea61bcb85f988f.tar.xz
Add: store headers for most savegame chunks
When a header is added, the chunk changes from CH_ARRAY type to CH_TABLE type.
Diffstat (limited to 'src/saveload/compat')
-rw-r--r--src/saveload/compat/CMakeLists.txt26
-rw-r--r--src/saveload/compat/ai_sl_compat.h23
-rw-r--r--src/saveload/compat/animated_tile_sl_compat.h20
-rw-r--r--src/saveload/compat/autoreplace_sl_compat.h24
-rw-r--r--src/saveload/compat/cargomonitor_sl_compat.h21
-rw-r--r--src/saveload/compat/cargopacket_sl_compat.h28
-rw-r--r--src/saveload/compat/cheat_sl_compat.h41
-rw-r--r--src/saveload/compat/depot_sl_compat.h25
-rw-r--r--src/saveload/compat/economy_sl_compat.h38
-rw-r--r--src/saveload/compat/engine_sl_compat.h48
-rw-r--r--src/saveload/compat/game_sl_compat.h23
-rw-r--r--src/saveload/compat/goal_sl_compat.h25
-rw-r--r--src/saveload/compat/group_sl_compat.h28
-rw-r--r--src/saveload/compat/industry_sl_compat.h72
-rw-r--r--src/saveload/compat/labelmaps_sl_compat.h20
-rw-r--r--src/saveload/compat/map_sl_compat.h21
-rw-r--r--src/saveload/compat/misc_sl_compat.h68
-rw-r--r--src/saveload/compat/newgrf_sl_compat.h33
-rw-r--r--src/saveload/compat/object_sl_compat.h27
-rw-r--r--src/saveload/compat/order_sl_compat.h52
-rw-r--r--src/saveload/compat/settings_sl_compat.h266
-rw-r--r--src/saveload/compat/signs_sl_compat.h24
-rw-r--r--src/saveload/compat/station_sl_compat.h29
-rw-r--r--src/saveload/compat/storage_sl_compat.h21
-rw-r--r--src/saveload/compat/story_sl_compat.h32
-rw-r--r--src/saveload/compat/subsidy_sl_compat.h26
26 files changed, 1061 insertions, 0 deletions
diff --git a/src/saveload/compat/CMakeLists.txt b/src/saveload/compat/CMakeLists.txt
new file mode 100644
index 000000000..1737f9493
--- /dev/null
+++ b/src/saveload/compat/CMakeLists.txt
@@ -0,0 +1,26 @@
+add_files(
+ ai_sl_compat.h
+ autoreplace_sl_compat.h
+ cargomonitor_sl_compat.h
+ cargopacket_sl_compat.h
+ cheat_sl_compat.h
+ depot_sl_compat.h
+ economy_sl_compat.h
+ engine_sl_compat.h
+ game_sl_compat.h
+ goal_sl_compat.h
+ group_sl_compat.h
+ industry_sl_compat.h
+ labelmaps_sl_compat.h
+ map_sl_compat.h
+ misc_sl_compat.h
+ newgrf_sl_compat.h
+ object_sl_compat.h
+ order_sl_compat.h
+ settings_sl_compat.h
+ signs_sl_compat.h
+ station_sl_compat.h
+ storage_sl_compat.h
+ story_sl_compat.h
+ subsidy_sl_compat.h
+)
diff --git a/src/saveload/compat/ai_sl_compat.h b/src/saveload/compat/ai_sl_compat.h
new file mode 100644
index 000000000..dba2855a1
--- /dev/null
+++ b/src/saveload/compat/ai_sl_compat.h
@@ -0,0 +1,23 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file ai_sl_compat.h Loading for ai chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_AI_H
+#define SAVELOAD_COMPAT_AI_H
+
+#include "../saveload.h"
+
+/** Original field order for _ai_company_desc. */
+const SaveLoadCompat _ai_company_sl_compat[] = {
+ SLC_VAR("name"),
+ SLC_VAR("settings"),
+ SLC_VAR("version"),
+ SLC_VAR("is_random"),
+};
+
+#endif /* SAVELOAD_COMPAT_AI_H */
diff --git a/src/saveload/compat/animated_tile_sl_compat.h b/src/saveload/compat/animated_tile_sl_compat.h
new file mode 100644
index 000000000..1fcea5818
--- /dev/null
+++ b/src/saveload/compat/animated_tile_sl_compat.h
@@ -0,0 +1,20 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file animated_tile_sl_compat.h Loading for animated_tile chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_ANIMATED_TILE_H
+#define SAVELOAD_COMPAT_ANIMATED_TILE_H
+
+#include "../saveload.h"
+
+/** Original field order for _animated_tile_desc. */
+const SaveLoadCompat _animated_tile_sl_compat[] = {
+ SLC_VAR("tiles"),
+};
+
+#endif /* SAVELOAD_COMPAT_ANIMATED_TILE_H */
diff --git a/src/saveload/compat/autoreplace_sl_compat.h b/src/saveload/compat/autoreplace_sl_compat.h
new file mode 100644
index 000000000..abb4b0e28
--- /dev/null
+++ b/src/saveload/compat/autoreplace_sl_compat.h
@@ -0,0 +1,24 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file autoreplace_sl_compat.h Loading for autoreplace chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_AUTOREPLACE_H
+#define SAVELOAD_COMPAT_AUTOREPLACE_H
+
+#include "../saveload.h"
+
+/** Original field order for _engine_renew_desc. */
+const SaveLoadCompat _engine_renew_sl_compat[] = {
+ SLC_VAR("from"),
+ SLC_VAR("to"),
+ SLC_VAR("next"),
+ SLC_VAR("group_id"),
+ SLC_VAR("replace_when_old"),
+};
+
+#endif /* SAVELOAD_COMPAT_AUTOREPLACE_H */
diff --git a/src/saveload/compat/cargomonitor_sl_compat.h b/src/saveload/compat/cargomonitor_sl_compat.h
new file mode 100644
index 000000000..2bb1e999a
--- /dev/null
+++ b/src/saveload/compat/cargomonitor_sl_compat.h
@@ -0,0 +1,21 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file cargomonitor_sl_compat.h Loading for cargomonitor chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_CARGOMONITOR_H
+#define SAVELOAD_COMPAT_CARGOMONITOR_H
+
+#include "../saveload.h"
+
+/** Original field order for _cargomonitor_pair_desc. */
+const SaveLoadCompat _cargomonitor_pair_sl_compat[] = {
+ SLC_VAR("number"),
+ SLC_VAR("amount"),
+};
+
+#endif /* SAVELOAD_COMPAT_CARGOMONITOR_H */
diff --git a/src/saveload/compat/cargopacket_sl_compat.h b/src/saveload/compat/cargopacket_sl_compat.h
new file mode 100644
index 000000000..eee308bcb
--- /dev/null
+++ b/src/saveload/compat/cargopacket_sl_compat.h
@@ -0,0 +1,28 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file cargopacket_sl_compat.h Loading for cargopacket chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_CARGOPACKET_H
+#define SAVELOAD_COMPAT_CARGOPACKET_H
+
+#include "../saveload.h"
+
+/** Original field order for _cargopacket_desc. */
+const SaveLoadCompat _cargopacket_sl_compat[] = {
+ SLC_VAR("source"),
+ SLC_VAR("source_xy"),
+ SLC_VAR("loaded_at_xy"),
+ SLC_VAR("count"),
+ SLC_VAR("days_in_transit"),
+ SLC_VAR("feeder_share"),
+ SLC_VAR("source_type"),
+ SLC_VAR("source_id"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_121),
+};
+
+#endif /* SAVELOAD_COMPAT_CARGOPACKET_H */
diff --git a/src/saveload/compat/cheat_sl_compat.h b/src/saveload/compat/cheat_sl_compat.h
new file mode 100644
index 000000000..f3c756097
--- /dev/null
+++ b/src/saveload/compat/cheat_sl_compat.h
@@ -0,0 +1,41 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file cheat_sl_compat.h Loading for cheat chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_CHEAT_H
+#define SAVELOAD_COMPAT_CHEAT_H
+
+#include "../saveload.h"
+
+/** Original field order for _cheats_desc. */
+const SaveLoadCompat _cheats_sl_compat[] = {
+ SLC_VAR("magic_bulldozer.been_used"),
+ SLC_VAR("magic_bulldozer.value"),
+ SLC_VAR("switch_company.been_used"),
+ SLC_VAR("switch_company.value"),
+ SLC_VAR("money.been_used"),
+ SLC_VAR("money.value"),
+ SLC_VAR("crossing_tunnels.been_used"),
+ SLC_VAR("crossing_tunnels.value"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_TABLE_CHUNKS),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_TABLE_CHUNKS), // Need to be two NULL fields. See Load_CHTS().
+ SLC_VAR("no_jetcrash.been_used"),
+ SLC_VAR("no_jetcrash.value"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_TABLE_CHUNKS),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_TABLE_CHUNKS), // Need to be two NULL fields. See Load_CHTS().
+ SLC_VAR("change_date.been_used"),
+ SLC_VAR("change_date.value"),
+ SLC_VAR("setup_prod.been_used"),
+ SLC_VAR("setup_prod.value"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_TABLE_CHUNKS),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_TABLE_CHUNKS), // Need to be two NULL fields. See Load_CHTS().
+ SLC_VAR("edit_max_hl.been_used"),
+ SLC_VAR("edit_max_hl.value"),
+};
+
+#endif /* SAVELOAD_COMPAT_CHEAT_H */
diff --git a/src/saveload/compat/depot_sl_compat.h b/src/saveload/compat/depot_sl_compat.h
new file mode 100644
index 000000000..8fcf4b686
--- /dev/null
+++ b/src/saveload/compat/depot_sl_compat.h
@@ -0,0 +1,25 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file depot_sl_compat.h Loading for depot chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_DEPOT_H
+#define SAVELOAD_COMPAT_DEPOT_H
+
+#include "../saveload.h"
+
+/** Original field order for _depot_desc. */
+const SaveLoadCompat _depot_sl_compat[] = {
+ SLC_VAR("xy"),
+ SLC_VAR("town_index"),
+ SLC_VAR("town"),
+ SLC_VAR("town_cn"),
+ SLC_VAR("name"),
+ SLC_VAR("build_date"),
+};
+
+#endif /* SAVELOAD_COMPAT_DEPOT_H */
diff --git a/src/saveload/compat/economy_sl_compat.h b/src/saveload/compat/economy_sl_compat.h
new file mode 100644
index 000000000..560673a0d
--- /dev/null
+++ b/src/saveload/compat/economy_sl_compat.h
@@ -0,0 +1,38 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file economy_sl_compat.h Loading for economy chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_ECONOMY_H
+#define SAVELOAD_COMPAT_ECONOMY_H
+
+#include "../saveload.h"
+
+/** Original field order for _economy_desc. */
+const SaveLoadCompat _economy_sl_compat[] = {
+ SLC_NULL(4, SL_MIN_VERSION, SLV_65),
+ SLC_NULL(8, SLV_65, SLV_144),
+ SLC_VAR("old_max_loan_unround"),
+ SLC_VAR("old_max_loan_unround_fract"),
+ SLC_VAR("inflation_prices"),
+ SLC_VAR("inflation_payment"),
+ SLC_VAR("fluct"),
+ SLC_VAR("interest_rate"),
+ SLC_VAR("infl_amount"),
+ SLC_VAR("infl_amount_pr"),
+ SLC_VAR("industry_daily_change_counter"),
+};
+
+/** Original field order for _cargopayment_desc. */
+const SaveLoadCompat _cargopayment_sl_compat[] = {
+ SLC_VAR("front"),
+ SLC_VAR("route_profit"),
+ SLC_VAR("visual_profit"),
+ SLC_VAR("visual_transfer"),
+};
+
+#endif /* SAVELOAD_COMPAT_ECONOMY_H */
diff --git a/src/saveload/compat/engine_sl_compat.h b/src/saveload/compat/engine_sl_compat.h
new file mode 100644
index 000000000..68a839bef
--- /dev/null
+++ b/src/saveload/compat/engine_sl_compat.h
@@ -0,0 +1,48 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file engine_sl_compat.h Loading for engine chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_ENGINE_H
+#define SAVELOAD_COMPAT_ENGINE_H
+
+#include "../saveload.h"
+
+/** Original field order for _engine_desc. */
+const SaveLoadCompat _engine_sl_compat[] = {
+ SLC_VAR("intro_date"),
+ SLC_VAR("age"),
+ SLC_VAR("reliability"),
+ SLC_VAR("reliability_spd_dec"),
+ SLC_VAR("reliability_start"),
+ SLC_VAR("reliability_max"),
+ SLC_VAR("reliability_final"),
+ SLC_VAR("duration_phase_1"),
+ SLC_VAR("duration_phase_2"),
+ SLC_VAR("duration_phase_3"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_121),
+ SLC_VAR("flags"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_179),
+ SLC_VAR("preview_asked"),
+ SLC_VAR("preview_company"),
+ SLC_VAR("preview_wait"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_45),
+ SLC_VAR("company_avail"),
+ SLC_VAR("company_hidden"),
+ SLC_VAR("name"),
+ SLC_NULL(16, SLV_2, SLV_144),
+};
+
+/** Original field order for _engine_id_mapping_desc. */
+const SaveLoadCompat _engine_id_mapping_sl_compat[] = {
+ SLC_VAR("grfid"),
+ SLC_VAR("internal_id"),
+ SLC_VAR("type"),
+ SLC_VAR("substitute_id"),
+};
+
+#endif /* SAVELOAD_COMPAT_ENGINE_H */
diff --git a/src/saveload/compat/game_sl_compat.h b/src/saveload/compat/game_sl_compat.h
new file mode 100644
index 000000000..204504e3b
--- /dev/null
+++ b/src/saveload/compat/game_sl_compat.h
@@ -0,0 +1,23 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file game_sl_compat.h Loading for game chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_GAME_H
+#define SAVELOAD_COMPAT_GAME_H
+
+#include "../saveload.h"
+
+/** Original field order for _game_script_desc. */
+const SaveLoadCompat _game_script_sl_compat[] = {
+ SLC_VAR("name"),
+ SLC_VAR("settings"),
+ SLC_VAR("version"),
+ SLC_VAR("is_random"),
+};
+
+#endif /* SAVELOAD_COMPAT_GAME_H */
diff --git a/src/saveload/compat/goal_sl_compat.h b/src/saveload/compat/goal_sl_compat.h
new file mode 100644
index 000000000..5dc205462
--- /dev/null
+++ b/src/saveload/compat/goal_sl_compat.h
@@ -0,0 +1,25 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file goal_sl_compat.h Loading of goal chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_GOAL_H
+#define SAVELOAD_COMPAT_GOAL_H
+
+#include "../saveload.h"
+
+/** Original field order for _goals_desc. */
+const SaveLoadCompat _goals_sl_compat[] = {
+ SLC_VAR("company"),
+ SLC_VAR("type"),
+ SLC_VAR("dst"),
+ SLC_VAR("text"),
+ SLC_VAR("progress"),
+ SLC_VAR("completed"),
+};
+
+#endif /* SAVELOAD_COMPAT_GOAL_H */
diff --git a/src/saveload/compat/group_sl_compat.h b/src/saveload/compat/group_sl_compat.h
new file mode 100644
index 000000000..50021079f
--- /dev/null
+++ b/src/saveload/compat/group_sl_compat.h
@@ -0,0 +1,28 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file group_sl_compat.h Loading of group chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_GROUP_H
+#define SAVELOAD_COMPAT_GROUP_H
+
+#include "../saveload.h"
+
+/** Original field order for _group_desc. */
+const SaveLoadCompat _group_sl_compat[] = {
+ SLC_VAR("name"),
+ SLC_NULL(2, SL_MIN_VERSION, SLV_164),
+ SLC_VAR("owner"),
+ SLC_VAR("vehicle_type"),
+ SLC_VAR("flags"),
+ SLC_VAR("livery.in_use"),
+ SLC_VAR("livery.colour1"),
+ SLC_VAR("livery.colour2"),
+ SLC_VAR("parent"),
+};
+
+#endif /* SAVELOAD_COMPAT_GROUP_H */
diff --git a/src/saveload/compat/industry_sl_compat.h b/src/saveload/compat/industry_sl_compat.h
new file mode 100644
index 000000000..990cc64d5
--- /dev/null
+++ b/src/saveload/compat/industry_sl_compat.h
@@ -0,0 +1,72 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file industry_sl_compat.h Loading of industry chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_INDUSTRY_H
+#define SAVELOAD_COMPAT_INDUSTRY_H
+
+#include "../saveload.h"
+
+/** Original field order for _industry_desc. */
+const SaveLoadCompat _industry_sl_compat[] = {
+ SLC_VAR("location.tile"),
+ SLC_VAR("location.w"),
+ SLC_VAR("location.h"),
+ SLC_VAR("town"),
+ SLC_VAR("neutral_station"),
+ SLC_NULL(2, SL_MIN_VERSION, SLV_61),
+ SLC_VAR("produced_cargo"),
+ SLC_VAR("incoming_cargo_waiting"),
+ SLC_VAR("produced_cargo_waiting"),
+ SLC_VAR("production_rate"),
+ SLC_NULL(3, SL_MIN_VERSION, SLV_61),
+ SLC_VAR("accepts_cargo"),
+ SLC_VAR("prod_level"),
+ SLC_VAR("this_month_production"),
+ SLC_VAR("this_month_transported"),
+ SLC_VAR("last_month_pct_transported"),
+ SLC_VAR("last_month_production"),
+ SLC_VAR("last_month_transported"),
+ SLC_VAR("counter"),
+ SLC_VAR("type"),
+ SLC_VAR("owner"),
+ SLC_VAR("random_colour"),
+ SLC_VAR("last_prod_year"),
+ SLC_VAR("was_cargo_delivered"),
+ SLC_VAR("ctlflags"),
+ SLC_VAR("founder"),
+ SLC_VAR("construction_date"),
+ SLC_VAR("construction_type"),
+ SLC_VAR("last_cargo_accepted_at[0]"),
+ SLC_VAR("last_cargo_accepted_at"),
+ SLC_VAR("selected_layout"),
+ SLC_VAR("exclusive_supplier"),
+ SLC_VAR("exclusive_consumer"),
+ SLC_VAR("storage"),
+ SLC_VAR("psa"),
+ SLC_NULL(1, SLV_82, SLV_197),
+ SLC_VAR("random"),
+ SLC_VAR("text"),
+ SLC_NULL(32, SLV_2, SLV_144),
+};
+
+/** Original field order for _industry_builder_desc. */
+const SaveLoadCompat _industry_builder_sl_compat[] = {
+ SLC_VAR("wanted_inds"),
+};
+
+/** Original field order for _industrytype_builder_desc. */
+const SaveLoadCompat _industrytype_builder_sl_compat[] = {
+ SLC_VAR("probability"),
+ SLC_VAR("min_number"),
+ SLC_VAR("target_count"),
+ SLC_VAR("max_wait"),
+ SLC_VAR("wait_count"),
+};
+
+#endif /* SAVELOAD_COMPAT_INDUSTRY_H */
diff --git a/src/saveload/compat/labelmaps_sl_compat.h b/src/saveload/compat/labelmaps_sl_compat.h
new file mode 100644
index 000000000..8664cec19
--- /dev/null
+++ b/src/saveload/compat/labelmaps_sl_compat.h
@@ -0,0 +1,20 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file labelmaps_sl_compat.h Loading of labelmaps chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_LABELMAPS_H
+#define SAVELOAD_COMPAT_LABELMAPS_H
+
+#include "../saveload.h"
+
+/** Original field order for _label_object_desc. */
+const SaveLoadCompat _label_object_sl_compat[] = {
+ SLC_VAR("label"),
+};
+
+#endif /* SAVELOAD_COMPAT_LABELMAPS_H */
diff --git a/src/saveload/compat/map_sl_compat.h b/src/saveload/compat/map_sl_compat.h
new file mode 100644
index 000000000..84cfb2865
--- /dev/null
+++ b/src/saveload/compat/map_sl_compat.h
@@ -0,0 +1,21 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file map_sl_compat.h Loading for map chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_MAP_H
+#define SAVELOAD_COMPAT_MAP_H
+
+#include "../saveload.h"
+
+/** Original field order for _map_desc. */
+const SaveLoadCompat _map_sl_compat[] = {
+ SLC_VAR("dim_x"),
+ SLC_VAR("dim_y"),
+};
+
+#endif /* SAVELOAD_COMPAT_MAP_H */
diff --git a/src/saveload/compat/misc_sl_compat.h b/src/saveload/compat/misc_sl_compat.h
new file mode 100644
index 000000000..02d26002a
--- /dev/null
+++ b/src/saveload/compat/misc_sl_compat.h
@@ -0,0 +1,68 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file misc_sl_compat.h Loading for misc chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_MISC_H
+#define SAVELOAD_COMPAT_MISC_H
+
+#include "../saveload.h"
+
+/** Original field order for _date_desc. */
+const SaveLoadCompat _date_sl_compat[] = {
+ SLC_VAR("date"),
+ SLC_VAR("date_fract"),
+ SLC_VAR("tick_counter"),
+ SLC_NULL(2, SL_MIN_VERSION, SLV_157),
+ SLC_VAR("age_cargo_skip_counter"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_46),
+ SLC_VAR("cur_tileloop_tile"),
+ SLC_VAR("next_disaster_start"),
+ SLC_NULL(2, SL_MIN_VERSION, SLV_120),
+ SLC_VAR("random_state[0]"),
+ SLC_VAR("random_state[1]"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_10),
+ SLC_NULL(4, SLV_10, SLV_120),
+ SLC_VAR("company_tick_counter"),
+ SLC_VAR("next_competitor_start"),
+ SLC_VAR("trees_tick_counter"),
+ SLC_VAR("pause_mode"),
+ SLC_NULL(4, SLV_11, SLV_120),
+};
+
+/** Original field order for _date_check_desc. */
+const SaveLoadCompat _date_check_sl_compat[] = {
+ SLC_VAR("date"),
+ SLC_NULL(2, SL_MIN_VERSION, SL_MAX_VERSION), // date_fract
+ SLC_NULL(2, SL_MIN_VERSION, SL_MAX_VERSION), // tick_counter
+ SLC_NULL(2, SL_MIN_VERSION, SLV_157),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_162), // age_cargo_skip_counter
+ SLC_NULL(1, SL_MIN_VERSION, SLV_46),
+ SLC_NULL(2, SL_MIN_VERSION, SLV_6), // cur_tileloop_tile
+ SLC_NULL(4, SLV_6, SL_MAX_VERSION), // cur_tileloop_tile
+ SLC_NULL(2, SL_MIN_VERSION, SL_MAX_VERSION), // disaster_delay
+ SLC_NULL(2, SL_MIN_VERSION, SLV_120),
+ SLC_NULL(4, SL_MIN_VERSION, SL_MAX_VERSION), // random.state[0]
+ SLC_NULL(4, SL_MIN_VERSION, SL_MAX_VERSION), // random.state[1]
+ SLC_NULL(1, SL_MIN_VERSION, SLV_10),
+ SLC_NULL(4, SLV_10, SLV_120),
+ SLC_NULL(1, SL_MIN_VERSION, SL_MAX_VERSION), // cur_company_tick_index
+ SLC_NULL(2, SL_MIN_VERSION, SLV_109), // next_competitor_start
+ SLC_NULL(4, SLV_109, SL_MAX_VERSION), // next_competitor_start
+ SLC_NULL(1, SL_MIN_VERSION, SL_MAX_VERSION), // trees_tick_ctr
+ SLC_NULL(1, SLV_4, SL_MAX_VERSION), // pause_mode
+ SLC_NULL(4, SLV_11, SLV_120),
+};
+
+/** Original field order for _view_desc. */
+const SaveLoadCompat _view_sl_compat[] = {
+ SLC_VAR("x"),
+ SLC_VAR("y"),
+ SLC_VAR("zoom"),
+};
+
+#endif /* SAVELOAD_COMPAT_MISC_H */
diff --git a/src/saveload/compat/newgrf_sl_compat.h b/src/saveload/compat/newgrf_sl_compat.h
new file mode 100644
index 000000000..8a1803946
--- /dev/null
+++ b/src/saveload/compat/newgrf_sl_compat.h
@@ -0,0 +1,33 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file newgrf_sl_compat.h Loading of newgrf chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_NEWGRF_H
+#define SAVELOAD_COMPAT_NEWGRF_H
+
+#include "../saveload.h"
+
+/** Original field order for _newgrf_mapping_desc. */
+const SaveLoadCompat _newgrf_mapping_sl_compat[] = {
+ SLC_VAR("grfid"),
+ SLC_VAR("entity_id"),
+ SLC_VAR("substitute_id"),
+};
+
+/** Original field order for _newgrf_desc. */
+const SaveLoadCompat _grfconfig_sl_compat[] = {
+ SLC_VAR("filename"),
+ SLC_VAR("ident.grfid"),
+ SLC_VAR("ident.md5sum"),
+ SLC_VAR("version"),
+ SLC_VAR("param"),
+ SLC_VAR("num_params"),
+ SLC_VAR("palette"),
+};
+
+#endif /* SAVELOAD_COMPAT_NEWGRF_H */
diff --git a/src/saveload/compat/object_sl_compat.h b/src/saveload/compat/object_sl_compat.h
new file mode 100644
index 000000000..a4a9fca6a
--- /dev/null
+++ b/src/saveload/compat/object_sl_compat.h
@@ -0,0 +1,27 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file object_sl_compat.h Loading of object chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_OBJECT_H
+#define SAVELOAD_COMPAT_OBJECT_H
+
+#include "../saveload.h"
+
+/** Original field order for _object_desc. */
+const SaveLoadCompat _object_sl_compat[] = {
+ SLC_VAR("location.tile"),
+ SLC_VAR("location.w"),
+ SLC_VAR("location.h"),
+ SLC_VAR("town"),
+ SLC_VAR("build_date"),
+ SLC_VAR("colour"),
+ SLC_VAR("view"),
+ SLC_VAR("type"),
+};
+
+#endif /* SAVELOAD_COMPAT_OBJECT_H */
diff --git a/src/saveload/compat/order_sl_compat.h b/src/saveload/compat/order_sl_compat.h
new file mode 100644
index 000000000..62c879cf1
--- /dev/null
+++ b/src/saveload/compat/order_sl_compat.h
@@ -0,0 +1,52 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file order_sl_compat.h Loading of order chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_ORDER_H
+#define SAVELOAD_COMPAT_ORDER_H
+
+#include "../saveload.h"
+
+/** Original field order for _order_desc. */
+const SaveLoadCompat _order_sl_compat[] = {
+ SLC_VAR("type"),
+ SLC_VAR("flags"),
+ SLC_VAR("dest"),
+ SLC_VAR("next"),
+ SLC_VAR("refit_cargo"),
+ SLC_NULL(1, SLV_36, SLV_182),
+ SLC_VAR("wait_time"),
+ SLC_VAR("travel_time"),
+ SLC_VAR("max_speed"),
+ SLC_NULL(10, SLV_5, SLV_36),
+};
+
+/** Original field order for _orderlist_desc. */
+const SaveLoadCompat _orderlist_sl_compat[] = {
+ SLC_VAR("first"),
+};
+
+/** Original field order for _order_backup_desc. */
+const SaveLoadCompat _order_backup_sl_compat[] = {
+ SLC_VAR("user"),
+ SLC_VAR("tile"),
+ SLC_VAR("group"),
+ SLC_VAR("service_interval"),
+ SLC_VAR("name"),
+ SLC_NULL(2, SL_MIN_VERSION, SLV_192),
+ SLC_VAR("clone"),
+ SLC_VAR("cur_real_order_index"),
+ SLC_VAR("cur_implicit_order_index"),
+ SLC_VAR("current_order_time"),
+ SLC_VAR("lateness_counter"),
+ SLC_VAR("timetable_start"),
+ SLC_VAR("vehicle_flags"),
+ SLC_VAR("orders"),
+};
+
+#endif /* SAVELOAD_COMPAT_ORDER_H */
diff --git a/src/saveload/compat/settings_sl_compat.h b/src/saveload/compat/settings_sl_compat.h
new file mode 100644
index 000000000..081779bf5
--- /dev/null
+++ b/src/saveload/compat/settings_sl_compat.h
@@ -0,0 +1,266 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file settings_sl_compat.h Loading of settings chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_SETTINGS_H
+#define SAVELOAD_COMPAT_SETTINGS_H
+
+#include "../saveload.h"
+
+/** Original field order for _gameopt. */
+const SaveLoadCompat _gameopt_sl_compat[] = {
+ SLC_VAR("diff_custom"),
+ SLC_VAR("diff_level"),
+ SLC_VAR("locale.currency"),
+ SLC_VAR("units"),
+ SLC_VAR("game_creation.town_name"),
+ SLC_VAR("game_creation.landscape"),
+ SLC_VAR("game_creation.snow_line_height"),
+ SLC_NULL(1, SLV_22, SLV_165),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_23),
+ SLC_VAR("vehicle.road_side"),
+};
+
+/** Original field order for _settings. */
+const SaveLoadCompat _settings_sl_compat[] = {
+ SLC_VAR("difficulty.max_no_competitors"),
+ SLC_NULL(1, SLV_97, SLV_110),
+ SLC_VAR("difficulty.number_towns"),
+ SLC_VAR("difficulty.industry_density"),
+ SLC_VAR("difficulty.max_loan"),
+ SLC_VAR("difficulty.initial_interest"),
+ SLC_VAR("difficulty.vehicle_costs"),
+ SLC_VAR("difficulty.competitor_speed"),
+ SLC_NULL(1, SLV_97, SLV_110),
+ SLC_VAR("difficulty.vehicle_breakdowns"),
+ SLC_VAR("difficulty.subsidy_multiplier"),
+ SLC_VAR("difficulty.subsidy_duration"),
+ SLC_VAR("difficulty.construction_cost"),
+ SLC_VAR("difficulty.terrain_type"),
+ SLC_VAR("difficulty.quantity_sea_lakes"),
+ SLC_VAR("difficulty.economy"),
+ SLC_VAR("difficulty.line_reverse_mode"),
+ SLC_VAR("difficulty.disasters"),
+ SLC_VAR("difficulty.town_council_tolerance"),
+ SLC_VAR("diff_level"),
+ SLC_VAR("game_creation.town_name"),
+ SLC_VAR("game_creation.landscape"),
+ SLC_NULL(1, SLV_97, SLV_164),
+ SLC_VAR("vehicle.road_side"),
+ SLC_VAR("construction.map_height_limit"),
+ SLC_VAR("game_creation.heightmap_height"),
+ SLC_VAR("construction.build_on_slopes"),
+ SLC_VAR("construction.command_pause_level"),
+ SLC_VAR("construction.terraform_per_64k_frames"),
+ SLC_VAR("construction.terraform_frame_burst"),
+ SLC_VAR("construction.clear_per_64k_frames"),
+ SLC_VAR("construction.clear_frame_burst"),
+ SLC_VAR("construction.tree_per_64k_frames"),
+ SLC_VAR("construction.tree_frame_burst"),
+ SLC_VAR("construction.autoslope"),
+ SLC_VAR("construction.extra_dynamite"),
+ SLC_VAR("construction.max_bridge_length"),
+ SLC_VAR("construction.max_bridge_height"),
+ SLC_VAR("construction.max_tunnel_length"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_159),
+ SLC_VAR("construction.train_signal_side"),
+ SLC_VAR("station.never_expire_airports"),
+ SLC_VAR("economy.town_layout"),
+ SLC_VAR("economy.allow_town_roads"),
+ SLC_VAR("economy.found_town"),
+ SLC_VAR("economy.allow_town_level_crossings"),
+ SLC_VAR("economy.town_cargogen_mode"),
+ SLC_VAR("linkgraph.recalc_interval"),
+ SLC_VAR("linkgraph.recalc_time"),
+ SLC_VAR("linkgraph.distribution_pax"),
+ SLC_VAR("linkgraph.distribution_mail"),
+ SLC_VAR("linkgraph.distribution_armoured"),
+ SLC_VAR("linkgraph.distribution_default"),
+ SLC_VAR("linkgraph.accuracy"),
+ SLC_VAR("linkgraph.demand_distance"),
+ SLC_VAR("linkgraph.demand_size"),
+ SLC_VAR("linkgraph.short_path_saturation"),
+ SLC_VAR("vehicle.train_acceleration_model"),
+ SLC_VAR("vehicle.roadveh_acceleration_model"),
+ SLC_VAR("vehicle.train_slope_steepness"),
+ SLC_VAR("vehicle.roadveh_slope_steepness"),
+ SLC_VAR("pf.forbid_90_deg"),
+ SLC_VAR("vehicle.max_train_length"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_159),
+ SLC_VAR("vehicle.smoke_amount"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_159),
+ SLC_VAR("pf.roadveh_queue"),
+ SLC_VAR("pf.new_pathfinding_all"),
+ SLC_VAR("pf.yapf.ship_use_yapf"),
+ SLC_VAR("pf.yapf.road_use_yapf"),
+ SLC_VAR("pf.yapf.rail_use_yapf"),
+ SLC_VAR("pf.pathfinder_for_trains"),
+ SLC_VAR("pf.pathfinder_for_roadvehs"),
+ SLC_VAR("pf.pathfinder_for_ships"),
+ SLC_VAR("vehicle.never_expire_vehicles"),
+ SLC_VAR("vehicle.max_trains"),
+ SLC_VAR("vehicle.max_roadveh"),
+ SLC_VAR("vehicle.max_aircraft"),
+ SLC_VAR("vehicle.max_ships"),
+ SLC_VAR("_old_vds.servint_ispercent"),
+ SLC_VAR("_old_vds.servint_trains"),
+ SLC_VAR("_old_vds.servint_roadveh"),
+ SLC_VAR("_old_vds.servint_ships"),
+ SLC_VAR("_old_vds.servint_aircraft"),
+ SLC_VAR("order.no_servicing_if_no_breakdowns"),
+ SLC_VAR("vehicle.wagon_speed_limits"),
+ SLC_VAR("vehicle.disable_elrails"),
+ SLC_VAR("vehicle.freight_trains"),
+ SLC_NULL(1, SLV_67, SLV_159),
+ SLC_VAR("vehicle.plane_speed"),
+ SLC_VAR("vehicle.dynamic_engines"),
+ SLC_VAR("vehicle.plane_crashes"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_159),
+ SLC_VAR("gui.sg_full_load_any"),
+ SLC_VAR("order.improved_load"),
+ SLC_VAR("order.selectgoods"),
+ SLC_VAR("gui.sg_new_nonstop"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_159),
+ SLC_VAR("station.station_spread"),
+ SLC_VAR("order.serviceathelipad"),
+ SLC_VAR("station.modified_catchment"),
+ SLC_VAR("station.serve_neutral_industries"),
+ SLC_VAR("order.gradual_loading"),
+ SLC_VAR("construction.road_stop_on_town_road"),
+ SLC_VAR("construction.road_stop_on_competitor_road"),
+ SLC_VAR("station.adjacent_stations"),
+ SLC_VAR("economy.station_noise_level"),
+ SLC_VAR("station.distant_join_stations"),
+ SLC_VAR("economy.inflation"),
+ SLC_VAR("construction.raw_industry_construction"),
+ SLC_VAR("construction.industry_platform"),
+ SLC_VAR("economy.multiple_industry_per_town"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_141),
+ SLC_VAR("economy.bribe"),
+ SLC_VAR("economy.exclusive_rights"),
+ SLC_VAR("economy.fund_buildings"),
+ SLC_VAR("economy.fund_roads"),
+ SLC_VAR("economy.give_money"),
+ SLC_VAR("game_creation.snow_line_height"),
+ SLC_VAR("game_creation.snow_coverage"),
+ SLC_VAR("game_creation.desert_coverage"),
+ SLC_NULL(4, SL_MIN_VERSION, SLV_144),
+ SLC_VAR("game_creation.starting_year"),
+ SLC_NULL(4, SL_MIN_VERSION, SLV_105),
+ SLC_VAR("game_creation.ending_year"),
+ SLC_VAR("economy.type"),
+ SLC_VAR("economy.allow_shares"),
+ SLC_VAR("economy.min_years_for_shares"),
+ SLC_VAR("economy.feeder_payment_share"),
+ SLC_VAR("economy.town_growth_rate"),
+ SLC_VAR("economy.larger_towns"),
+ SLC_VAR("economy.initial_city_size"),
+ SLC_VAR("economy.mod_road_rebuild"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_107),
+ SLC_VAR("script.settings_profile"),
+ SLC_VAR("ai.ai_in_multiplayer"),
+ SLC_VAR("ai.ai_disable_veh_train"),
+ SLC_VAR("ai.ai_disable_veh_roadveh"),
+ SLC_VAR("ai.ai_disable_veh_aircraft"),
+ SLC_VAR("ai.ai_disable_veh_ship"),
+ SLC_VAR("script.script_max_opcode_till_suspend"),
+ SLC_VAR("script.script_max_memory_megabytes"),
+ SLC_VAR("vehicle.extend_vehicle_life"),
+ SLC_VAR("economy.dist_local_authority"),
+ SLC_VAR("pf.reverse_at_signals"),
+ SLC_VAR("pf.wait_oneway_signal"),
+ SLC_VAR("pf.wait_twoway_signal"),
+ SLC_VAR("economy.town_noise_population[0]"),
+ SLC_VAR("economy.town_noise_population[1]"),
+ SLC_VAR("economy.town_noise_population[2]"),
+ SLC_VAR("economy.infrastructure_maintenance"),
+ SLC_VAR("pf.wait_for_pbs_path"),
+ SLC_VAR("pf.reserve_paths"),
+ SLC_VAR("pf.path_backoff_interval"),
+ SLC_NULL(3, SL_MIN_VERSION, SLV_REMOVE_OPF),
+ SLC_VAR("pf.npf.npf_max_search_nodes"),
+ SLC_VAR("pf.npf.npf_rail_firstred_penalty"),
+ SLC_VAR("pf.npf.npf_rail_firstred_exit_penalty"),
+ SLC_VAR("pf.npf.npf_rail_lastred_penalty"),
+ SLC_VAR("pf.npf.npf_rail_station_penalty"),
+ SLC_VAR("pf.npf.npf_rail_slope_penalty"),
+ SLC_VAR("pf.npf.npf_rail_curve_penalty"),
+ SLC_VAR("pf.npf.npf_rail_depot_reverse_penalty"),
+ SLC_VAR("pf.npf.npf_rail_pbs_cross_penalty"),
+ SLC_VAR("pf.npf.npf_rail_pbs_signal_back_penalty"),
+ SLC_VAR("pf.npf.npf_buoy_penalty"),
+ SLC_VAR("pf.npf.npf_water_curve_penalty"),
+ SLC_VAR("pf.npf.npf_road_curve_penalty"),
+ SLC_VAR("pf.npf.npf_crossing_penalty"),
+ SLC_VAR("pf.npf.npf_road_drive_through_penalty"),
+ SLC_VAR("pf.npf.npf_road_dt_occupied_penalty"),
+ SLC_VAR("pf.npf.npf_road_bay_occupied_penalty"),
+ SLC_VAR("pf.npf.maximum_go_to_depot_penalty"),
+ SLC_VAR("pf.yapf.disable_node_optimization"),
+ SLC_VAR("pf.yapf.max_search_nodes"),
+ SLC_VAR("pf.yapf.rail_firstred_twoway_eol"),
+ SLC_VAR("pf.yapf.rail_firstred_penalty"),
+ SLC_VAR("pf.yapf.rail_firstred_exit_penalty"),
+ SLC_VAR("pf.yapf.rail_lastred_penalty"),
+ SLC_VAR("pf.yapf.rail_lastred_exit_penalty"),
+ SLC_VAR("pf.yapf.rail_station_penalty"),
+ SLC_VAR("pf.yapf.rail_slope_penalty"),
+ SLC_VAR("pf.yapf.rail_curve45_penalty"),
+ SLC_VAR("pf.yapf.rail_curve90_penalty"),
+ SLC_VAR("pf.yapf.rail_depot_reverse_penalty"),
+ SLC_VAR("pf.yapf.rail_crossing_penalty"),
+ SLC_VAR("pf.yapf.rail_look_ahead_max_signals"),
+ SLC_VAR("pf.yapf.rail_look_ahead_signal_p0"),
+ SLC_VAR("pf.yapf.rail_look_ahead_signal_p1"),
+ SLC_VAR("pf.yapf.rail_look_ahead_signal_p2"),
+ SLC_VAR("pf.yapf.rail_pbs_cross_penalty"),
+ SLC_VAR("pf.yapf.rail_pbs_station_penalty"),
+ SLC_VAR("pf.yapf.rail_pbs_signal_back_penalty"),
+ SLC_VAR("pf.yapf.rail_doubleslip_penalty"),
+ SLC_VAR("pf.yapf.rail_longer_platform_penalty"),
+ SLC_VAR("pf.yapf.rail_longer_platform_per_tile_penalty"),
+ SLC_VAR("pf.yapf.rail_shorter_platform_penalty"),
+ SLC_VAR("pf.yapf.rail_shorter_platform_per_tile_penalty"),
+ SLC_VAR("pf.yapf.road_slope_penalty"),
+ SLC_VAR("pf.yapf.road_curve_penalty"),
+ SLC_VAR("pf.yapf.road_crossing_penalty"),
+ SLC_VAR("pf.yapf.road_stop_penalty"),
+ SLC_VAR("pf.yapf.road_stop_occupied_penalty"),
+ SLC_VAR("pf.yapf.road_stop_bay_occupied_penalty"),
+ SLC_VAR("pf.yapf.maximum_go_to_depot_penalty"),
+ SLC_VAR("pf.yapf.ship_curve45_penalty"),
+ SLC_VAR("pf.yapf.ship_curve90_penalty"),
+ SLC_VAR("game_creation.land_generator"),
+ SLC_VAR("game_creation.oil_refinery_limit"),
+ SLC_VAR("game_creation.tgen_smoothness"),
+ SLC_VAR("game_creation.variety"),
+ SLC_VAR("game_creation.generation_seed"),
+ SLC_VAR("game_creation.tree_placer"),
+ SLC_VAR("construction.freeform_edges"),
+ SLC_VAR("game_creation.water_borders"),
+ SLC_VAR("game_creation.custom_town_number"),
+ SLC_VAR("construction.extra_tree_placement"),
+ SLC_VAR("game_creation.custom_terrain_type"),
+ SLC_VAR("game_creation.custom_sea_level"),
+ SLC_VAR("game_creation.min_river_length"),
+ SLC_VAR("game_creation.river_route_random"),
+ SLC_VAR("game_creation.amount_of_rivers"),
+ SLC_VAR("locale.currency"),
+ SLC_VAR("units"),
+ SLC_VAR("locale.units_velocity"),
+ SLC_VAR("locale.units_power"),
+ SLC_VAR("locale.units_weight"),
+ SLC_VAR("locale.units_volume"),
+ SLC_VAR("locale.units_force"),
+ SLC_VAR("locale.units_height"),
+ SLC_VAR("locale.digit_group_separator"),
+ SLC_VAR("locale.digit_group_separator_currency"),
+ SLC_VAR("locale.digit_decimal_separator"),
+};
+
+#endif /* SAVELOAD_COMPAT_SETTINGS_H */
diff --git a/src/saveload/compat/signs_sl_compat.h b/src/saveload/compat/signs_sl_compat.h
new file mode 100644
index 000000000..80bc70789
--- /dev/null
+++ b/src/saveload/compat/signs_sl_compat.h
@@ -0,0 +1,24 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file signs_sl_compat.h Loading of signs chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_SIGNS_H
+#define SAVELOAD_COMPAT_SIGNS_H
+
+#include "../saveload.h"
+
+/** Original field order for _sign_desc. */
+const SaveLoadCompat _sign_sl_compat[] = {
+ SLC_VAR("name"),
+ SLC_VAR("x"),
+ SLC_VAR("y"),
+ SLC_VAR("owner"),
+ SLC_VAR("z"),
+};
+
+#endif /* SAVELOAD_COMPAT_SIGNS_H */
diff --git a/src/saveload/compat/station_sl_compat.h b/src/saveload/compat/station_sl_compat.h
new file mode 100644
index 000000000..397e1660f
--- /dev/null
+++ b/src/saveload/compat/station_sl_compat.h
@@ -0,0 +1,29 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file station_sl_compat.h Loading of station chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_STATION_H
+#define SAVELOAD_COMPAT_STATION_H
+
+#include "../saveload.h"
+
+/** Original field order for _roadstop_desc. */
+const SaveLoadCompat _roadstop_sl_compat[] = {
+ SLC_VAR("xy"),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_45),
+ SLC_VAR("status"),
+ SLC_NULL(4, SL_MIN_VERSION, SLV_9),
+ SLC_NULL(2, SL_MIN_VERSION, SLV_45),
+ SLC_NULL(1, SL_MIN_VERSION, SLV_26),
+ SLC_VAR("next"),
+ SLC_NULL(2, SL_MIN_VERSION, SLV_45),
+ SLC_NULL(4, SL_MIN_VERSION, SLV_25),
+ SLC_NULL(1, SLV_25, SLV_26),
+};
+
+#endif /* SAVELOAD_COMPAT_STATION_H */
diff --git a/src/saveload/compat/storage_sl_compat.h b/src/saveload/compat/storage_sl_compat.h
new file mode 100644
index 000000000..f4f6d0d9a
--- /dev/null
+++ b/src/saveload/compat/storage_sl_compat.h
@@ -0,0 +1,21 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file storage_sl_compat.h Loading of storage chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_STORAGE_H
+#define SAVELOAD_COMPAT_STORAGE_H
+
+#include "../saveload.h"
+
+/** Original field order for _storage_desc. */
+const SaveLoadCompat _storage_sl_compat[] = {
+ SLC_VAR("grfid"),
+ SLC_VAR("storage"),
+};
+
+#endif /* SAVELOAD_COMPAT_STORAGE_H */
diff --git a/src/saveload/compat/story_sl_compat.h b/src/saveload/compat/story_sl_compat.h
new file mode 100644
index 000000000..519ca2bf1
--- /dev/null
+++ b/src/saveload/compat/story_sl_compat.h
@@ -0,0 +1,32 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file story_sl_compat.h Loading for story chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_STORE_H
+#define SAVELOAD_COMPAT_STORE_H
+
+#include "../saveload.h"
+
+/** Original field order for _story_page_elements_desc. */
+const SaveLoadCompat _story_page_elements_sl_compat[] = {
+ SLC_VAR("sort_value"),
+ SLC_VAR("page"),
+ SLC_VAR("type"),
+ SLC_VAR("referenced_id"),
+ SLC_VAR("text"),
+};
+
+/** Original field order for _story_pages_desc. */
+const SaveLoadCompat _story_pages_sl_compat[] = {
+ SLC_VAR("sort_value"),
+ SLC_VAR("date"),
+ SLC_VAR("company"),
+ SLC_VAR("title"),
+};
+
+#endif /* SAVELOAD_COMPAT_STORE_H */
diff --git a/src/saveload/compat/subsidy_sl_compat.h b/src/saveload/compat/subsidy_sl_compat.h
new file mode 100644
index 000000000..7ae758318
--- /dev/null
+++ b/src/saveload/compat/subsidy_sl_compat.h
@@ -0,0 +1,26 @@
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file subsidy_sl_compat.h Loading of subsidy chunks before table headers were added. */
+
+#ifndef SAVELOAD_COMPAT_SUBSIDY_H
+#define SAVELOAD_COMPAT_SUBSIDY_H
+
+#include "../saveload.h"
+
+/** Original field order for _subsidies_desc. */
+const SaveLoadCompat _subsidies_sl_compat[] = {
+ SLC_VAR("cargo_type"),
+ SLC_VAR("remaining"),
+ SLC_VAR("awarded"),
+ SLC_VAR("src_type"),
+ SLC_VAR("dst_type"),
+ SLC_VAR("src"),
+ SLC_VAR("dst"),
+};
+
+#endif /* SAVELOAD_COMPAT_SUBSIDY_H */