diff --git a/src/saveload/ai_sl.cpp b/src/saveload/ai_sl.cpp --- a/src/saveload/ai_sl.cpp +++ b/src/saveload/ai_sl.cpp @@ -121,7 +121,7 @@ static void Save_AIPL() } extern const ChunkHandler _ai_chunk_handlers[] = { - { 'AIPL', Save_AIPL, Load_AIPL, NULL, CH_ARRAY | CH_LAST}, + { 'AIPL', Save_AIPL, Load_AIPL, NULL, NULL, CH_ARRAY | CH_LAST}, }; #else @@ -197,6 +197,6 @@ static void Load_AIPL() } extern const ChunkHandler _ai_chunk_handlers[] = { - { 'AIPL', NULL, Load_AIPL, NULL, CH_ARRAY | CH_LAST}, + { 'AIPL', NULL, Load_AIPL, NULL, NULL, CH_ARRAY | CH_LAST}, }; #endif /* ENABLE_AI */ diff --git a/src/saveload/airport_sl.cpp b/src/saveload/airport_sl.cpp --- a/src/saveload/airport_sl.cpp +++ b/src/saveload/airport_sl.cpp @@ -50,5 +50,5 @@ static void Load_APID() } extern const ChunkHandler _airport_chunk_handlers[] = { - { 'APID', Save_APID, Load_APID, NULL, CH_ARRAY | CH_LAST }, + { 'APID', Save_APID, Load_APID, NULL, NULL, CH_ARRAY | CH_LAST }, }; diff --git a/src/saveload/animated_tile_sl.cpp b/src/saveload/animated_tile_sl.cpp --- a/src/saveload/animated_tile_sl.cpp +++ b/src/saveload/animated_tile_sl.cpp @@ -59,5 +59,5 @@ static void Load_ANIT() * the animated tile table. */ extern const ChunkHandler _animated_tile_chunk_handlers[] = { - { 'ANIT', Save_ANIT, Load_ANIT, NULL, CH_RIFF | CH_LAST}, + { 'ANIT', Save_ANIT, Load_ANIT, NULL, NULL, CH_RIFF | CH_LAST}, }; diff --git a/src/saveload/autoreplace_sl.cpp b/src/saveload/autoreplace_sl.cpp --- a/src/saveload/autoreplace_sl.cpp +++ b/src/saveload/autoreplace_sl.cpp @@ -60,5 +60,5 @@ static void Ptrs_ERNW() } extern const ChunkHandler _autoreplace_chunk_handlers[] = { - { 'ERNW', Save_ERNW, Load_ERNW, Ptrs_ERNW, CH_ARRAY | CH_LAST}, + { 'ERNW', Save_ERNW, Load_ERNW, Ptrs_ERNW, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/cargopacket_sl.cpp b/src/saveload/cargopacket_sl.cpp --- a/src/saveload/cargopacket_sl.cpp +++ b/src/saveload/cargopacket_sl.cpp @@ -122,5 +122,5 @@ static void Load_CAPA() } extern const ChunkHandler _cargopacket_chunk_handlers[] = { - { 'CAPA', Save_CAPA, Load_CAPA, NULL, CH_ARRAY | CH_LAST}, + { 'CAPA', Save_CAPA, Load_CAPA, NULL, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/cheat_sl.cpp b/src/saveload/cheat_sl.cpp --- a/src/saveload/cheat_sl.cpp +++ b/src/saveload/cheat_sl.cpp @@ -40,5 +40,5 @@ static void Load_CHTS() } extern const ChunkHandler _cheat_chunk_handlers[] = { - { 'CHTS', Save_CHTS, Load_CHTS, NULL, CH_RIFF | CH_LAST}, + { 'CHTS', Save_CHTS, Load_CHTS, NULL, NULL, CH_RIFF | CH_LAST}, }; diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -300,5 +300,5 @@ static void Ptrs_PLYR() extern const ChunkHandler _company_chunk_handlers[] = { - { 'PLYR', Save_PLYR, Load_PLYR, Ptrs_PLYR, CH_ARRAY | CH_LAST}, + { 'PLYR', Save_PLYR, Load_PLYR, Ptrs_PLYR, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/depot_sl.cpp b/src/saveload/depot_sl.cpp --- a/src/saveload/depot_sl.cpp +++ b/src/saveload/depot_sl.cpp @@ -61,5 +61,5 @@ static void Ptrs_DEPT() } extern const ChunkHandler _depot_chunk_handlers[] = { - { 'DEPT', Save_DEPT, Load_DEPT, Ptrs_DEPT, CH_ARRAY | CH_LAST}, + { 'DEPT', Save_DEPT, Load_DEPT, Ptrs_DEPT, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/economy_sl.cpp b/src/saveload/economy_sl.cpp --- a/src/saveload/economy_sl.cpp +++ b/src/saveload/economy_sl.cpp @@ -99,8 +99,8 @@ static void Ptrs_CAPY() extern const ChunkHandler _economy_chunk_handlers[] = { - { 'CAPY', Save_CAPY, Load_CAPY, Ptrs_CAPY, CH_ARRAY}, - { 'PRIC', NULL, Load_PRIC, NULL, CH_RIFF | CH_AUTO_LENGTH}, - { 'CAPR', NULL, Load_CAPR, NULL, CH_RIFF | CH_AUTO_LENGTH}, - { 'ECMY', Save_ECMY, Load_ECMY, NULL, CH_RIFF | CH_LAST}, + { 'CAPY', Save_CAPY, Load_CAPY, Ptrs_CAPY, NULL, CH_ARRAY}, + { 'PRIC', NULL, Load_PRIC, NULL, NULL, CH_RIFF | CH_AUTO_LENGTH}, + { 'CAPR', NULL, Load_CAPR, NULL, NULL, CH_RIFF | CH_AUTO_LENGTH}, + { 'ECMY', Save_ECMY, Load_ECMY, NULL, NULL, CH_RIFF | CH_LAST}, }; diff --git a/src/saveload/engine_sl.cpp b/src/saveload/engine_sl.cpp --- a/src/saveload/engine_sl.cpp +++ b/src/saveload/engine_sl.cpp @@ -149,7 +149,7 @@ static void Load_EIDS() } extern const ChunkHandler _engine_chunk_handlers[] = { - { 'EIDS', Save_EIDS, Load_EIDS, NULL, CH_ARRAY }, - { 'ENGN', Save_ENGN, Load_ENGN, NULL, CH_ARRAY }, - { 'ENGS', NULL, Load_ENGS, NULL, CH_RIFF | CH_LAST }, + { 'EIDS', Save_EIDS, Load_EIDS, NULL, NULL, CH_ARRAY }, + { 'ENGN', Save_ENGN, Load_ENGN, NULL, NULL, CH_ARRAY }, + { 'ENGS', NULL, Load_ENGS, NULL, NULL, CH_RIFF | CH_LAST }, }; diff --git a/src/saveload/gamelog_sl.cpp b/src/saveload/gamelog_sl.cpp --- a/src/saveload/gamelog_sl.cpp +++ b/src/saveload/gamelog_sl.cpp @@ -168,5 +168,5 @@ static void Save_GLOG() extern const ChunkHandler _gamelog_chunk_handlers[] = { - { 'GLOG', Save_GLOG, Load_GLOG, NULL, CH_RIFF | CH_LAST } + { 'GLOG', Save_GLOG, Load_GLOG, NULL, NULL, CH_RIFF | CH_LAST } }; diff --git a/src/saveload/group_sl.cpp b/src/saveload/group_sl.cpp --- a/src/saveload/group_sl.cpp +++ b/src/saveload/group_sl.cpp @@ -46,5 +46,5 @@ static void Load_GRPS() } extern const ChunkHandler _group_chunk_handlers[] = { - { 'GRPS', Save_GRPS, Load_GRPS, NULL, CH_ARRAY | CH_LAST}, + { 'GRPS', Save_GRPS, Load_GRPS, NULL, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/industry_sl.cpp b/src/saveload/industry_sl.cpp --- a/src/saveload/industry_sl.cpp +++ b/src/saveload/industry_sl.cpp @@ -162,7 +162,7 @@ static void Ptrs_INDY() } extern const ChunkHandler _industry_chunk_handlers[] = { - { 'INDY', Save_INDY, Load_INDY, Ptrs_INDY, CH_ARRAY}, - { 'IIDS', Save_IIDS, Load_IIDS, NULL, CH_ARRAY}, - { 'TIDS', Save_TIDS, Load_TIDS, NULL, CH_ARRAY | CH_LAST}, + { 'INDY', Save_INDY, Load_INDY, Ptrs_INDY, NULL, CH_ARRAY}, + { 'IIDS', Save_IIDS, Load_IIDS, NULL, NULL, CH_ARRAY}, + { 'TIDS', Save_TIDS, Load_TIDS, NULL, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/labelmaps_sl.cpp b/src/saveload/labelmaps_sl.cpp --- a/src/saveload/labelmaps_sl.cpp +++ b/src/saveload/labelmaps_sl.cpp @@ -118,6 +118,6 @@ static void Load_RAIL() } extern const ChunkHandler _labelmaps_chunk_handlers[] = { - { 'RAIL', Save_RAIL, Load_RAIL, NULL, CH_ARRAY | CH_LAST}, + { 'RAIL', Save_RAIL, Load_RAIL, NULL, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/map_sl.cpp b/src/saveload/map_sl.cpp --- a/src/saveload/map_sl.cpp +++ b/src/saveload/map_sl.cpp @@ -241,13 +241,13 @@ static void Save_MAP7() } extern const ChunkHandler _map_chunk_handlers[] = { - { 'MAPS', Save_MAPS, Load_MAPS, NULL, CH_RIFF }, - { 'MAPT', Save_MAPT, Load_MAPT, NULL, CH_RIFF }, - { 'MAPO', Save_MAP1, Load_MAP1, NULL, CH_RIFF }, - { 'MAP2', Save_MAP2, Load_MAP2, NULL, CH_RIFF }, - { 'M3LO', Save_MAP3, Load_MAP3, NULL, CH_RIFF }, - { 'M3HI', Save_MAP4, Load_MAP4, NULL, CH_RIFF }, - { 'MAP5', Save_MAP5, Load_MAP5, NULL, CH_RIFF }, - { 'MAPE', Save_MAP6, Load_MAP6, NULL, CH_RIFF }, - { 'MAP7', Save_MAP7, Load_MAP7, NULL, CH_RIFF | CH_LAST }, + { 'MAPS', Save_MAPS, Load_MAPS, NULL, NULL, CH_RIFF }, + { 'MAPT', Save_MAPT, Load_MAPT, NULL, NULL, CH_RIFF }, + { 'MAPO', Save_MAP1, Load_MAP1, NULL, NULL, CH_RIFF }, + { 'MAP2', Save_MAP2, Load_MAP2, NULL, NULL, CH_RIFF }, + { 'M3LO', Save_MAP3, Load_MAP3, NULL, NULL, CH_RIFF }, + { 'M3HI', Save_MAP4, Load_MAP4, NULL, NULL, CH_RIFF }, + { 'MAP5', Save_MAP5, Load_MAP5, NULL, NULL, CH_RIFF }, + { 'MAPE', Save_MAP6, Load_MAP6, NULL, NULL, CH_RIFF }, + { 'MAP7', Save_MAP7, Load_MAP7, NULL, NULL, CH_RIFF | CH_LAST }, }; diff --git a/src/saveload/misc_sl.cpp b/src/saveload/misc_sl.cpp --- a/src/saveload/misc_sl.cpp +++ b/src/saveload/misc_sl.cpp @@ -109,6 +109,6 @@ static void SaveLoad_VIEW() } extern const ChunkHandler _misc_chunk_handlers[] = { - { 'DATE', SaveLoad_DATE, SaveLoad_DATE, NULL, CH_RIFF}, - { 'VIEW', SaveLoad_VIEW, SaveLoad_VIEW, NULL, CH_RIFF | CH_LAST}, + { 'DATE', SaveLoad_DATE, SaveLoad_DATE, NULL, NULL, CH_RIFF}, + { 'VIEW', SaveLoad_VIEW, SaveLoad_VIEW, NULL, NULL, CH_RIFF | CH_LAST}, }; diff --git a/src/saveload/newgrf_sl.cpp b/src/saveload/newgrf_sl.cpp --- a/src/saveload/newgrf_sl.cpp +++ b/src/saveload/newgrf_sl.cpp @@ -55,5 +55,5 @@ static void Load_NGRF() } extern const ChunkHandler _newgrf_chunk_handlers[] = { - { 'NGRF', Save_NGRF, Load_NGRF, NULL, CH_ARRAY | CH_LAST } + { 'NGRF', Save_NGRF, Load_NGRF, NULL, NULL, CH_ARRAY | CH_LAST } }; diff --git a/src/saveload/order_sl.cpp b/src/saveload/order_sl.cpp --- a/src/saveload/order_sl.cpp +++ b/src/saveload/order_sl.cpp @@ -234,6 +234,6 @@ static void Ptrs_ORDL() } extern const ChunkHandler _order_chunk_handlers[] = { - { 'ORDR', Save_ORDR, Load_ORDR, Ptrs_ORDR, CH_ARRAY}, - { 'ORDL', Save_ORDL, Load_ORDL, Ptrs_ORDL, CH_ARRAY | CH_LAST}, + { 'ORDR', Save_ORDR, Load_ORDR, Ptrs_ORDR, NULL, CH_ARRAY}, + { 'ORDL', Save_ORDL, Load_ORDL, Ptrs_ORDL, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -60,6 +60,7 @@ struct ChunkHandler { ChunkSaveLoadProc *save_proc; ChunkSaveLoadProc *load_proc; ChunkSaveLoadProc *ptrs_proc; + ChunkSaveLoadProc *load_check_proc; uint32 flags; }; diff --git a/src/saveload/signs_sl.cpp b/src/saveload/signs_sl.cpp --- a/src/saveload/signs_sl.cpp +++ b/src/saveload/signs_sl.cpp @@ -57,5 +57,5 @@ static void Load_SIGN() } extern const ChunkHandler _sign_chunk_handlers[] = { - { 'SIGN', Save_SIGN, Load_SIGN, NULL, CH_ARRAY | CH_LAST}, + { 'SIGN', Save_SIGN, Load_SIGN, NULL, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -475,7 +475,7 @@ static void Ptrs_ROADSTOP() } extern const ChunkHandler _station_chunk_handlers[] = { - { 'STNS', NULL, Load_STNS, Ptrs_STNS, CH_ARRAY }, - { 'STNN', Save_STNN, Load_STNN, Ptrs_STNN, CH_ARRAY }, - { 'ROAD', Save_ROADSTOP, Load_ROADSTOP, Ptrs_ROADSTOP, CH_ARRAY | CH_LAST}, + { 'STNS', NULL, Load_STNS, Ptrs_STNS, NULL, CH_ARRAY }, + { 'STNN', Save_STNN, Load_STNN, Ptrs_STNN, NULL, CH_ARRAY }, + { 'ROAD', Save_ROADSTOP, Load_ROADSTOP, Ptrs_ROADSTOP, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/strings_sl.cpp b/src/saveload/strings_sl.cpp --- a/src/saveload/strings_sl.cpp +++ b/src/saveload/strings_sl.cpp @@ -125,5 +125,5 @@ static void Load_NAME() } extern const ChunkHandler _name_chunk_handlers[] = { - { 'NAME', NULL, Load_NAME, NULL, CH_ARRAY | CH_LAST}, + { 'NAME', NULL, Load_NAME, NULL, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/subsidy_sl.cpp b/src/saveload/subsidy_sl.cpp --- a/src/saveload/subsidy_sl.cpp +++ b/src/saveload/subsidy_sl.cpp @@ -46,5 +46,5 @@ static void Load_SUBS() } extern const ChunkHandler _subsidy_chunk_handlers[] = { - { 'SUBS', Save_SUBS, Load_SUBS, NULL, CH_ARRAY | CH_LAST}, + { 'SUBS', Save_SUBS, Load_SUBS, NULL, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/town_sl.cpp b/src/saveload/town_sl.cpp --- a/src/saveload/town_sl.cpp +++ b/src/saveload/town_sl.cpp @@ -192,6 +192,6 @@ static void Load_TOWN() } extern const ChunkHandler _town_chunk_handlers[] = { - { 'HIDS', Save_HOUSEIDS, Load_HOUSEIDS, NULL, CH_ARRAY }, - { 'CITY', Save_TOWN, Load_TOWN, NULL, CH_ARRAY | CH_LAST}, + { 'HIDS', Save_HOUSEIDS, Load_HOUSEIDS, NULL, NULL, CH_ARRAY }, + { 'CITY', Save_TOWN, Load_TOWN, NULL, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -757,5 +757,5 @@ static void Ptrs_VEHS() } extern const ChunkHandler _veh_chunk_handlers[] = { - { 'VEHS', Save_VEHS, Load_VEHS, Ptrs_VEHS, CH_SPARSE_ARRAY | CH_LAST}, + { 'VEHS', Save_VEHS, Load_VEHS, Ptrs_VEHS, NULL, CH_SPARSE_ARRAY | CH_LAST}, }; diff --git a/src/saveload/waypoint_sl.cpp b/src/saveload/waypoint_sl.cpp --- a/src/saveload/waypoint_sl.cpp +++ b/src/saveload/waypoint_sl.cpp @@ -199,5 +199,5 @@ static void Ptrs_WAYP() } extern const ChunkHandler _waypoint_chunk_handlers[] = { - { 'CHKP', NULL, Load_WAYP, Ptrs_WAYP, CH_ARRAY | CH_LAST}, + { 'CHKP', NULL, Load_WAYP, Ptrs_WAYP, NULL, CH_ARRAY | CH_LAST}, }; diff --git a/src/settings.cpp b/src/settings.cpp --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1985,8 +1985,8 @@ void CheckConfig() } extern const ChunkHandler _setting_chunk_handlers[] = { - { 'OPTS', NULL, Load_OPTS, NULL, CH_RIFF}, - { 'PATS', Save_PATS, Load_PATS, NULL, CH_RIFF | CH_LAST}, + { 'OPTS', NULL, Load_OPTS, NULL, NULL, CH_RIFF}, + { 'PATS', Save_PATS, Load_PATS, NULL, NULL, CH_RIFF | CH_LAST}, }; static bool IsSignedVarMemType(VarType vt)