diff options
author | glx22 <glx@openttd.org> | 2021-06-07 23:24:37 +0200 |
---|---|---|
committer | Loïc Guilloux <glx22@users.noreply.github.com> | 2021-07-06 22:29:08 +0200 |
commit | 2c941cd8b3cb1774f4982b86735e276597a91750 (patch) | |
tree | ae545cd8e0b66ece181fb5b5bc9ebe8db48c374a /src/saveload/labelmaps_sl.cpp | |
parent | c1a9fe6fbd736c9e3a93314b0721d8f2cb8a2052 (diff) | |
download | openttd-2c941cd8b3cb1774f4982b86735e276597a91750.tar.xz |
Codechange: Use ChunkHandlers sub-classes
Diffstat (limited to 'src/saveload/labelmaps_sl.cpp')
-rw-r--r-- | src/saveload/labelmaps_sl.cpp | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/src/saveload/labelmaps_sl.cpp b/src/saveload/labelmaps_sl.cpp index 970985b92..432aa9ce4 100644 --- a/src/saveload/labelmaps_sl.cpp +++ b/src/saveload/labelmaps_sl.cpp @@ -99,35 +99,39 @@ static const SaveLoad _label_object_desc[] = { SLE_VAR(LabelObject, label, SLE_UINT32), }; -static void Save_RAIL() -{ - SlTableHeader(_label_object_desc); +struct RAILChunkHandler : ChunkHandler { + RAILChunkHandler() : ChunkHandler('RAIL', CH_TABLE) {} + + void Save() const override + { + SlTableHeader(_label_object_desc); - LabelObject lo; + LabelObject lo; - for (RailType r = RAILTYPE_BEGIN; r != RAILTYPE_END; r++) { - lo.label = GetRailTypeInfo(r)->label; + for (RailType r = RAILTYPE_BEGIN; r != RAILTYPE_END; r++) { + lo.label = GetRailTypeInfo(r)->label; - SlSetArrayIndex(r); - SlObject(&lo, _label_object_desc); + SlSetArrayIndex(r); + SlObject(&lo, _label_object_desc); + } } -} -static void Load_RAIL() -{ - const std::vector<SaveLoad> slt = SlCompatTableHeader(_label_object_desc, _label_object_sl_compat); + void Load() const override + { + const std::vector<SaveLoad> slt = SlCompatTableHeader(_label_object_desc, _label_object_sl_compat); - ResetLabelMaps(); + ResetLabelMaps(); - LabelObject lo; + LabelObject lo; - while (SlIterateArray() != -1) { - SlObject(&lo, slt); - _railtype_list.push_back((RailTypeLabel)lo.label); + while (SlIterateArray() != -1) { + SlObject(&lo, slt); + _railtype_list.push_back((RailTypeLabel)lo.label); + } } -} +}; -static const ChunkHandler RAIL{ 'RAIL', Save_RAIL, Load_RAIL, nullptr, nullptr, CH_TABLE }; +static const RAILChunkHandler RAIL; static const ChunkHandlerRef labelmaps_chunk_handlers[] = { RAIL, }; |