diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 84c9c26186..2798e72119 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -607,7 +607,7 @@ bool AfterLoadGame() * Because the data stored by TTDPatch are unusable for rail stations > 7x7, * recompute the width and height. Doing this unconditionally for all old * savegames simplifies the code. */ - if (IsSavegameVersionBefore(SLV_2)) { + if (IsSavegameVersionBefore(SLV_VEHICLE_CURRENCY_STATION_CHANGES)) { for (Station *st : Station::Iterate()) { st->train_station.w = st->train_station.h = 0; } @@ -642,19 +642,19 @@ bool AfterLoadGame() } /* in version 2.1 of the savegame, town owner was unified. */ - if (IsSavegameVersionBefore(SLV_2, 1)) ConvertTownOwner(); + if (IsSavegameVersionBefore(SLV_VEHICLE_CURRENCY_STATION_CHANGES, 1)) ConvertTownOwner(); /* from version 4.1 of the savegame, exclusive rights are stored at towns */ - if (IsSavegameVersionBefore(SLV_4, 1)) UpdateExclusiveRights(); + if (IsSavegameVersionBefore(SLV_TOWN_TOLERANCE_PAUSE_MODE, 1)) UpdateExclusiveRights(); /* from version 4.2 of the savegame, currencies are in a different order */ - if (IsSavegameVersionBefore(SLV_4, 2)) UpdateCurrencies(); + if (IsSavegameVersionBefore(SLV_TOWN_TOLERANCE_PAUSE_MODE, 2)) UpdateCurrencies(); /* In old version there seems to be a problem that water is owned by * OWNER_NONE, not OWNER_WATER.. I can't replicate it for the current * (4.3) version, so I just check when versions are older, and then * walk through the whole map.. */ - if (IsSavegameVersionBefore(SLV_4, 3)) { + if (IsSavegameVersionBefore(SLV_TOWN_TOLERANCE_PAUSE_MODE, 3)) { for (const auto t : Map::Iterate()) { if (IsTileType(t, TileType::Water) && GetTileOwner(t) >= MAX_COMPANIES) { SetTileOwner(t, OWNER_WATER); @@ -694,7 +694,7 @@ bool AfterLoadGame() /* the same applies to Company::location_of_HQ */ for (Company *c : Company::Iterate()) { - if (c->location_of_HQ == 0 || (IsSavegameVersionBefore(SLV_4) && c->location_of_HQ == 0xFFFF)) { + if (c->location_of_HQ == 0 || (IsSavegameVersionBefore(SLV_TOWN_TOLERANCE_PAUSE_MODE) && c->location_of_HQ == 0xFFFF)) { c->location_of_HQ = INVALID_TILE; } } @@ -727,7 +727,7 @@ bool AfterLoadGame() } /* The value of TimerGameCalendar::date_fract got divided, so make sure that old games are converted correctly. */ - if (IsSavegameVersionBefore(SLV_11, 1) || (IsSavegameVersionBefore(SLV_147) && TimerGameCalendar::date_fract > Ticks::DAY_TICKS)) TimerGameCalendar::date_fract /= 885; + if (IsSavegameVersionBefore(SLV_LARGER_TOWN_ITERATOR, 1) || (IsSavegameVersionBefore(SLV_147) && TimerGameCalendar::date_fract > Ticks::DAY_TICKS)) TimerGameCalendar::date_fract /= 885; /* Update current year * must be done before loading sprites as some newgrfs check it */ @@ -759,8 +759,8 @@ bool AfterLoadGame() * right value has been chosen in the settings. Otherwise we will be converting * it incorrectly in half of the times without a means to correct that. */ - if (IsSavegameVersionBefore(SLV_4, 2)) _settings_game.station.modified_catchment = false; - if (IsSavegameVersionBefore(SLV_6, 1)) _settings_game.pf.forbid_90_deg = false; + if (IsSavegameVersionBefore(SLV_TOWN_TOLERANCE_PAUSE_MODE, 2)) _settings_game.station.modified_catchment = false; + if (IsSavegameVersionBefore(SLV_MULTIPLE_ROAD_STOPS, 1)) _settings_game.pf.forbid_90_deg = false; if (IsSavegameVersionBefore(SLV_21)) _settings_game.vehicle.train_acceleration_model = AccelerationModel::Original; if (IsSavegameVersionBefore(SLV_90)) _settings_game.vehicle.plane_speed = 4; if (IsSavegameVersionBefore(SLV_95)) _settings_game.vehicle.dynamic_engines = false; @@ -807,7 +807,7 @@ bool AfterLoadGame() /* Connect front and rear engines of multiheaded trains and converts * subtype to the new format */ - if (IsSavegameVersionBefore(SLV_17, 1)) ConvertOldMultiheadToNew(); + if (IsSavegameVersionBefore(SLV_STORE_WAYPOINT_ID_IN_MAP, 1)) ConvertOldMultiheadToNew(); /* Connect front and rear engines of multiheaded trains */ ConnectMultiheadedTrains(); @@ -950,7 +950,7 @@ bool AfterLoadGame() switch (GetStationType(t)) { case StationType::Truck: case StationType::Bus: - if (IsSavegameVersionBefore(SLV_6)) { + if (IsSavegameVersionBefore(SLV_MULTIPLE_ROAD_STOPS)) { /* Before version 5 you could not have more than 250 stations. * Version 6 adds large maps, so you could only place 253*253 * road stops on a map (no freeform edges) = 64009. So, yes @@ -1001,7 +1001,7 @@ bool AfterLoadGame() /* In version 6.1 we put the town index in the map-array. To do this, we need * to use m2 (16bit big), so we need to clean m2, and that is where this is * all about ;) */ - if (IsSavegameVersionBefore(SLV_6, 1)) { + if (IsSavegameVersionBefore(SLV_MULTIPLE_ROAD_STOPS, 1)) { for (auto t : Map::Iterate()) { switch (GetTileType(t)) { case TileType::House: @@ -1031,13 +1031,13 @@ bool AfterLoadGame() /* From version 9.0, we update the max passengers of a town (was sometimes negative * before that. */ - if (IsSavegameVersionBefore(SLV_9)) { + if (IsSavegameVersionBefore(SLV_LARGER_TOWN_CARGO_STATISTICS)) { for (Town *t : Town::Iterate()) UpdateTownMaxPass(t); } /* From version 16.0, we included autorenew on engines, which are now saved, but * of course, we do need to initialize them for older savegames. */ - if (IsSavegameVersionBefore(SLV_16)) { + if (IsSavegameVersionBefore(SLV_ENGINE_RENEW)) { for (Company *c : Company::Iterate()) { c->engine_renew_list = nullptr; c->settings.engine_renew = false; @@ -1378,7 +1378,7 @@ bool AfterLoadGame() /* In version 16.1 of the savegame a company can decide if trains, which get * replaced, shall keep their old length. In all prior versions, just default * to false */ - if (IsSavegameVersionBefore(SLV_16, 1)) { + if (IsSavegameVersionBefore(SLV_ENGINE_RENEW, 1)) { for (Company *c : Company::Iterate()) c->settings.renew_keep_length = false; } @@ -1391,7 +1391,7 @@ bool AfterLoadGame() /* From version 15, we moved a semaphore bit from bit 2 to bit 3 in m4, making * room for PBS. Now in version 21 move it back :P. */ - if (IsSavegameVersionBefore(SLV_21) && !IsSavegameVersionBefore(SLV_15)) { + if (IsSavegameVersionBefore(SLV_21) && !IsSavegameVersionBefore(SLV_MOVE_SEMAPHORE_BITS)) { for (auto t : Map::Iterate()) { switch (GetTileType(t)) { case TileType::Railway: @@ -2309,7 +2309,7 @@ bool AfterLoadGame() } } - if (IsSavegameVersionBefore(SLV_124) && !IsSavegameVersionBefore(SLV_1)) { + if (IsSavegameVersionBefore(SLV_124) && !IsSavegameVersionBeforeOrAt(SL_MIN_VERSION)) { /* The train station tile area was added, but for really old (TTDPatch) it's already valid. */ for (Waypoint *wp : Waypoint::Iterate()) { if (wp->facilities.Test(StationFacility::Train)) { @@ -3057,7 +3057,7 @@ bool AfterLoadGame() /* In version 2.2 of the savegame, we have new airports, so status of all aircraft is reset. * This has to be called after all map array updates */ - if (IsSavegameVersionBefore(SLV_2, 2)) UpdateOldAircraft(); + if (IsSavegameVersionBefore(SLV_VEHICLE_CURRENCY_STATION_CHANGES, 2)) UpdateOldAircraft(); if (IsSavegameVersionBefore(SLV_188)) { /* Fix articulated road vehicles. diff --git a/src/saveload/animated_tile_sl.cpp b/src/saveload/animated_tile_sl.cpp index 2a9509ab7c..59fd8da8eb 100644 --- a/src/saveload/animated_tile_sl.cpp +++ b/src/saveload/animated_tile_sl.cpp @@ -39,7 +39,7 @@ struct ANITChunkHandler : ChunkHandler { if (IsSavegameVersionBefore(SLV_80)) { /* In pre version 6, we has 16bit per tile, now we have 32bit per tile, convert it ;) */ TileIndex anim_list[256]; - SlCopy(anim_list, 256, IsSavegameVersionBefore(SLV_6) ? (SLE_FILE_U16 | SLE_VAR_U32) : SLE_UINT32); + SlCopy(anim_list, 256, IsSavegameVersionBefore(SLV_MULTIPLE_ROAD_STOPS) ? (SLE_FILE_U16 | SLE_VAR_U32) : SLE_UINT32); for (int i = 0; i < 256; i++) { if (anim_list[i] == 0) break; diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index e77789e798..8518e99d33 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -314,11 +314,11 @@ class SlCompanySettings : public DefaultSaveLoadHandler { public: static inline const SaveLoad description[] = { - SLE_CONDVAR(CompanyEconomyEntry, income, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_2), - SLE_CONDVAR(CompanyEconomyEntry, income, SLE_INT64, SLV_2, SL_MAX_VERSION), - SLE_CONDVAR(CompanyEconomyEntry, expenses, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_2), - SLE_CONDVAR(CompanyEconomyEntry, expenses, SLE_INT64, SLV_2, SL_MAX_VERSION), - SLE_CONDVAR(CompanyEconomyEntry, company_value, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_2), - SLE_CONDVAR(CompanyEconomyEntry, company_value, SLE_INT64, SLV_2, SL_MAX_VERSION), + SLE_CONDVAR(CompanyEconomyEntry, income, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_VEHICLE_CURRENCY_STATION_CHANGES), + SLE_CONDVAR(CompanyEconomyEntry, income, SLE_INT64, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), + SLE_CONDVAR(CompanyEconomyEntry, expenses, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_VEHICLE_CURRENCY_STATION_CHANGES), + SLE_CONDVAR(CompanyEconomyEntry, expenses, SLE_INT64, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), + SLE_CONDVAR(CompanyEconomyEntry, company_value, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_VEHICLE_CURRENCY_STATION_CHANGES), + SLE_CONDVAR(CompanyEconomyEntry, company_value, SLE_INT64, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), SLE_CONDVAR(CompanyEconomyEntry, delivered_cargo[NUM_CARGO - 1], SLE_INT32, SL_MIN_VERSION, SLV_170), SLE_CONDARR(CompanyEconomyEntry, delivered_cargo, SLE_UINT32, 32, SLV_170, SLV_EXTEND_CARGOTYPES), @@ -506,8 +506,8 @@ static const SaveLoad _company_desc[] = { SLE_CONDSSTRNAME(CompanyProperties, face.style_label, "face_style", SLE_STR, SLV_FACE_STYLES, SL_MAX_VERSION), /* money was changed to a 64 bit field in savegame version 1. */ - SLE_CONDVAR(CompanyProperties, money, SLE_VAR_I64 | SLE_FILE_I32, SL_MIN_VERSION, SLV_1), - SLE_CONDVAR(CompanyProperties, money, SLE_INT64, SLV_1, SL_MAX_VERSION), + SLE_CONDVAR(CompanyProperties, money, SLE_VAR_I64 | SLE_FILE_I32, SL_MIN_VERSION, SLV_BIG_CURRENCY), + SLE_CONDVAR(CompanyProperties, money, SLE_INT64, SLV_BIG_CURRENCY, SL_MAX_VERSION), SLE_CONDVAR(CompanyProperties, current_loan, SLE_VAR_I64 | SLE_FILE_I32, SL_MIN_VERSION, SLV_65), SLE_CONDVAR(CompanyProperties, current_loan, SLE_INT64, SLV_65, SL_MAX_VERSION), @@ -517,10 +517,10 @@ static const SaveLoad _company_desc[] = { SLE_VAR(CompanyProperties, money_fraction, SLE_UINT8), SLE_VAR(CompanyProperties, block_preview, SLE_UINT8), - SLE_CONDVAR(CompanyProperties, location_of_HQ, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(CompanyProperties, location_of_HQ, SLE_UINT32, SLV_6, SL_MAX_VERSION), - SLE_CONDVAR(CompanyProperties, last_build_coordinate, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(CompanyProperties, last_build_coordinate, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(CompanyProperties, location_of_HQ, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(CompanyProperties, location_of_HQ, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDVAR(CompanyProperties, last_build_coordinate, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(CompanyProperties, last_build_coordinate, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLE_CONDVAR(CompanyProperties, inaugurated_year, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31), SLE_CONDVAR(CompanyProperties, inaugurated_year, SLE_INT32, SLV_31, SL_MAX_VERSION), SLE_CONDVAR(CompanyProperties, inaugurated_year_calendar, SLE_INT32, SLV_COMPANY_INAUGURATED_PERIOD_V2, SL_MAX_VERSION), @@ -535,10 +535,10 @@ static const SaveLoad _company_desc[] = { SLE_CONDVAR(CompanyProperties, bankrupt_value, SLE_INT64, SLV_65, SL_MAX_VERSION), /* yearly expenses was changed to 64-bit in savegame version 2. */ - SLE_CONDARR(CompanyProperties, yearly_expenses, SLE_FILE_I32 | SLE_VAR_I64, 3 * 13, SL_MIN_VERSION, SLV_2), - SLE_CONDARR(CompanyProperties, yearly_expenses, SLE_INT64, 3 * 13, SLV_2, SL_MAX_VERSION), + SLE_CONDARR(CompanyProperties, yearly_expenses, SLE_FILE_I32 | SLE_VAR_I64, 3 * 13, SL_MIN_VERSION, SLV_VEHICLE_CURRENCY_STATION_CHANGES), + SLE_CONDARR(CompanyProperties, yearly_expenses, SLE_INT64, 3 * 13, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), - SLE_CONDVAR(CompanyProperties, is_ai, SLE_BOOL, SLV_2, SL_MAX_VERSION), + SLE_CONDVAR(CompanyProperties, is_ai, SLE_BOOL, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), SLE_CONDVAR(CompanyProperties, terraform_limit, SLE_UINT32, SLV_156, SL_MAX_VERSION), SLE_CONDVAR(CompanyProperties, clear_limit, SLE_UINT32, SLV_156, SL_MAX_VERSION), diff --git a/src/saveload/compat/company_sl_compat.h b/src/saveload/compat/company_sl_compat.h index cec6ef3df7..852cd592a7 100644 --- a/src/saveload/compat/company_sl_compat.h +++ b/src/saveload/compat/company_sl_compat.h @@ -14,32 +14,32 @@ /** Original field order for SlCompanyOldAIBuildRec. */ const SaveLoadCompat _company_old_ai_buildrec_compat[] = { - SLC_NULL(2, SL_MIN_VERSION, SLV_6), - SLC_NULL(4, SLV_6, SLV_107), - SLC_NULL(2, SL_MIN_VERSION, SLV_6), - SLC_NULL(4, SLV_6, SLV_107), + SLC_NULL(2, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLC_NULL(4, SLV_MULTIPLE_ROAD_STOPS, SLV_107), + SLC_NULL(2, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLC_NULL(4, SLV_MULTIPLE_ROAD_STOPS, SLV_107), SLC_NULL(8, SL_MIN_VERSION, SLV_107), }; /** Original field order for SlCompanyOldAI. */ const SaveLoadCompat _company_old_ai_compat[] = { SLC_NULL(2, SL_MIN_VERSION, SLV_107), - SLC_NULL(2, SL_MIN_VERSION, SLV_13), - SLC_NULL(4, SLV_13, SLV_107), + SLC_NULL(2, SL_MIN_VERSION, SLV_LARGER_AI_STATE_COUNTER), + SLC_NULL(4, SLV_LARGER_AI_STATE_COUNTER, SLV_107), SLC_NULL(8, SL_MIN_VERSION, SLV_107), SLC_VAR("num_build_rec"), SLC_NULL(3, SL_MIN_VERSION, SLV_107), - SLC_NULL(2, SL_MIN_VERSION, SLV_6), - SLC_NULL(4, SLV_6, SLV_107), - SLC_NULL(2, SL_MIN_VERSION, SLV_6), - SLC_NULL(4, SLV_6, SLV_107), + SLC_NULL(2, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLC_NULL(4, SLV_MULTIPLE_ROAD_STOPS, SLV_107), + SLC_NULL(2, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLC_NULL(4, SLV_MULTIPLE_ROAD_STOPS, SLV_107), SLC_NULL(2, SL_MIN_VERSION, SLV_107), - SLC_NULL(2, SL_MIN_VERSION, SLV_6), - SLC_NULL(4, SLV_6, SLV_107), - SLC_NULL(2, SL_MIN_VERSION, SLV_6), - SLC_NULL(4, SLV_6, SLV_107), + SLC_NULL(2, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLC_NULL(4, SLV_MULTIPLE_ROAD_STOPS, SLV_107), + SLC_NULL(2, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLC_NULL(4, SLV_MULTIPLE_ROAD_STOPS, SLV_107), SLC_NULL(2, SL_MIN_VERSION, SLV_107), SLC_NULL(2, SL_MIN_VERSION, SLV_69), @@ -49,13 +49,13 @@ const SaveLoadCompat _company_old_ai_compat[] = { SLC_NULL(20, SL_MIN_VERSION, SLV_107), SLC_NULL(32, SL_MIN_VERSION, SLV_107), - SLC_NULL(64, SLV_2, SLV_107), + SLC_NULL(64, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_107), SLC_VAR("buildrec"), }; /** Original field order for SlCompanySettings. */ const SaveLoadCompat _company_settings_compat[] = { - SLC_NULL(512, SLV_16, SLV_19), + SLC_NULL(512, SLV_ENGINE_RENEW, SLV_ENGINE_RENEW_POOL), SLC_VAR("engine_renew_list"), SLC_VAR("settings.engine_renew"), SLC_VAR("settings.engine_renew_months"), @@ -66,7 +66,7 @@ const SaveLoadCompat _company_settings_compat[] = { SLC_VAR("settings.vehicle.servint_roadveh"), SLC_VAR("settings.vehicle.servint_aircraft"), SLC_VAR("settings.vehicle.servint_ships"), - SLC_NULL(63, SLV_2, SLV_144), + SLC_NULL(63, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for SlCompanyEconomy. */ @@ -115,7 +115,7 @@ const SaveLoadCompat _company_sl_compat[] = { SLC_VAR("yearly_expenses"), SLC_VAR("is_ai"), SLC_NULL(1, SLV_107, SLV_112), - SLC_NULL(1, SLV_4, SLV_100), + SLC_NULL(1, SLV_TOWN_TOLERANCE_PAUSE_MODE, SLV_100), SLC_VAR("terraform_limit"), SLC_VAR("clear_limit"), SLC_VAR("tree_limit"), diff --git a/src/saveload/compat/engine_sl_compat.h b/src/saveload/compat/engine_sl_compat.h index 2a303e4bed..d883521b7e 100644 --- a/src/saveload/compat/engine_sl_compat.h +++ b/src/saveload/compat/engine_sl_compat.h @@ -34,7 +34,7 @@ const SaveLoadCompat _engine_sl_compat[] = { SLC_VAR("company_avail"), SLC_VAR("company_hidden"), SLC_VAR("name"), - SLC_NULL(16, SLV_2, SLV_144), + SLC_NULL(16, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for _engine_id_mapping_desc. */ diff --git a/src/saveload/compat/industry_sl_compat.h b/src/saveload/compat/industry_sl_compat.h index 11ef5f8c1a..f6f8dbb68f 100644 --- a/src/saveload/compat/industry_sl_compat.h +++ b/src/saveload/compat/industry_sl_compat.h @@ -70,7 +70,7 @@ const SaveLoadCompat _industry_sl_compat[] = { SLC_NULL(1, SLV_82, SLV_197), SLC_VAR("random"), SLC_VAR("text"), - SLC_NULL(32, SLV_2, SLV_144), + SLC_NULL(32, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for _industry_builder_desc. */ diff --git a/src/saveload/compat/misc_sl_compat.h b/src/saveload/compat/misc_sl_compat.h index 58f4c7b059..cc0c6ac301 100644 --- a/src/saveload/compat/misc_sl_compat.h +++ b/src/saveload/compat/misc_sl_compat.h @@ -25,13 +25,13 @@ const SaveLoadCompat _date_sl_compat[] = { 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_NULL(1, SL_MIN_VERSION, SLV_LARGER_TOWN_COUNTER), + SLC_NULL(4, SLV_LARGER_TOWN_COUNTER, 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), + SLC_NULL(4, SLV_LARGER_TOWN_ITERATOR, SLV_120), }; /** Original field order for _date_check_desc. */ @@ -42,20 +42,20 @@ const SaveLoadCompat _date_check_sl_compat[] = { 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, SLV_MULTIPLE_ROAD_STOPS), // cur_tileloop_tile + SLC_NULL(4, SLV_MULTIPLE_ROAD_STOPS, 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, SLV_LARGER_TOWN_COUNTER), + SLC_NULL(4, SLV_LARGER_TOWN_COUNTER, 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), + SLC_NULL(1, SLV_TOWN_TOLERANCE_PAUSE_MODE, SL_MAX_VERSION), // pause_mode + SLC_NULL(4, SLV_LARGER_TOWN_ITERATOR, SLV_120), }; /** Original field order for _view_desc. */ diff --git a/src/saveload/compat/order_sl_compat.h b/src/saveload/compat/order_sl_compat.h index 3864b99139..16c016284f 100644 --- a/src/saveload/compat/order_sl_compat.h +++ b/src/saveload/compat/order_sl_compat.h @@ -23,7 +23,7 @@ const SaveLoadCompat _order_sl_compat[] = { SLC_VAR("wait_time"), SLC_VAR("travel_time"), SLC_VAR("max_speed"), - SLC_NULL(10, SLV_5, SLV_36), + SLC_NULL(10, SLV_BIG_MAP, SLV_36), }; /** Original field order for _orderlist_desc. */ diff --git a/src/saveload/compat/station_sl_compat.h b/src/saveload/compat/station_sl_compat.h index 30662dce2a..ce8f492b01 100644 --- a/src/saveload/compat/station_sl_compat.h +++ b/src/saveload/compat/station_sl_compat.h @@ -17,7 +17,7 @@ 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(4, SL_MIN_VERSION, SLV_LARGER_TOWN_CARGO_STATISTICS), SLC_NULL(2, SL_MIN_VERSION, SLV_45), SLC_NULL(1, SL_MIN_VERSION, SLV_26), SLC_VAR("next"), @@ -140,15 +140,15 @@ const SaveLoadCompat _station_sl_compat[] = { /** Original field order for _old_station_desc. */ const SaveLoadCompat _old_station_sl_compat[] = { SLC_VAR("xy"), - SLC_NULL(4, SL_MIN_VERSION, SLV_6), + SLC_NULL(4, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), SLC_VAR("train_station.tile"), SLC_VAR("airport.tile"), - SLC_NULL(2, SL_MIN_VERSION, SLV_6), - SLC_NULL(4, SLV_6, SLV_MULTITILE_DOCKS), + SLC_NULL(2, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLC_NULL(4, SLV_MULTIPLE_ROAD_STOPS, SLV_MULTITILE_DOCKS), SLC_VAR("town"), SLC_VAR("train_station.w"), SLC_VAR("train_station.h"), - SLC_NULL(1, SL_MIN_VERSION, SLV_4), + SLC_NULL(1, SL_MIN_VERSION, SLV_TOWN_TOLERANCE_PAUSE_MODE), SLC_VAR("string_id"), SLC_VAR("name"), SLC_VAR("indtype"), @@ -159,12 +159,12 @@ const SaveLoadCompat _old_station_sl_compat[] = { SLC_VAR("owner"), SLC_VAR("facilities"), SLC_VAR("airport.type"), - SLC_NULL(2, SL_MIN_VERSION, SLV_6), - SLC_NULL(1, SL_MIN_VERSION, SLV_5), + SLC_NULL(2, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLC_NULL(1, SL_MIN_VERSION, SLV_BIG_MAP), SLC_VAR("airport.flags"), SLC_NULL(2, SL_MIN_VERSION, SLV_26), SLC_VAR("last_vehicle_type"), - SLC_NULL(2, SLV_3, SLV_26), + SLC_NULL(2, SLV_BIGGER_STATION_VARIABLES, SLV_26), SLC_VAR("build_date"), SLC_VAR("bus_stops"), SLC_VAR("truck_stops"), @@ -172,7 +172,7 @@ const SaveLoadCompat _old_station_sl_compat[] = { SLC_VAR("waiting_triggers"), SLC_VAR("num_specs"), SLC_VAR("loading_vehicles"), - SLC_NULL(32, SLV_2, SL_MAX_VERSION), + SLC_NULL(32, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), SLC_VAR("goods"), SLC_VAR("speclist"), diff --git a/src/saveload/compat/town_sl_compat.h b/src/saveload/compat/town_sl_compat.h index 2dca688cdf..89eb3ff19d 100644 --- a/src/saveload/compat/town_sl_compat.h +++ b/src/saveload/compat/town_sl_compat.h @@ -38,8 +38,8 @@ const SaveLoadCompat _town_acceptance_matrix_sl_compat[] = { /** Original field order for town_desc. */ const SaveLoadCompat _town_sl_compat[] = { SLC_VAR("xy"), - SLC_NULL(2, SL_MIN_VERSION, SLV_3), - SLC_NULL(4, SLV_3, SLV_85), + SLC_NULL(2, SL_MIN_VERSION, SLV_BIGGER_STATION_VARIABLES), + SLC_NULL(4, SLV_BIGGER_STATION_VARIABLES, SLV_85), SLC_NULL(2, SL_MIN_VERSION, SLV_92), SLC_VAR("townnamegrfid"), SLC_VAR("townnametype"), @@ -47,7 +47,7 @@ const SaveLoadCompat _town_sl_compat[] = { SLC_VAR("name"), SLC_VAR("flags"), SLC_VAR("statues"), - SLC_NULL(1, SL_MIN_VERSION, SLV_2), + SLC_NULL(1, SL_MIN_VERSION, SLV_VEHICLE_CURRENCY_STATION_CHANGES), SLC_VAR("have_ratings"), SLC_VAR("ratings"), SLC_VAR("unwanted"), @@ -78,7 +78,7 @@ const SaveLoadCompat _town_sl_compat[] = { SLC_VAR("psa_list"), SLC_NULL(4, SLV_166, SLV_EXTEND_CARGOTYPES), SLC_NULL(8, SLV_EXTEND_CARGOTYPES, SLV_REMOVE_TOWN_CARGO_CACHE), - SLC_NULL(30, SLV_2, SLV_REMOVE_TOWN_CARGO_CACHE), + SLC_NULL(30, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_REMOVE_TOWN_CARGO_CACHE), SLC_VAR("supplied"), SLC_VAR("received"), SLC_VAR("acceptance_matrix"), diff --git a/src/saveload/compat/vehicle_sl_compat.h b/src/saveload/compat/vehicle_sl_compat.h index a26e3251d4..8ecff23228 100644 --- a/src/saveload/compat/vehicle_sl_compat.h +++ b/src/saveload/compat/vehicle_sl_compat.h @@ -87,12 +87,12 @@ const SaveLoadCompat _vehicle_common_sl_compat[] = { SLC_VAR("random_bits"), SLC_VAR("waiting_triggers"), SLC_VAR("next_shared"), - SLC_NULL(2, SLV_2, SLV_69), + SLC_NULL(2, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_69), SLC_NULL(4, SLV_69, SLV_101), SLC_VAR("group_id"), SLC_VAR("current_order_time"), SLC_VAR("lateness_counter"), - SLC_NULL(10, SLV_2, SLV_144), + SLC_NULL(10, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for SlVehicleTrain. */ @@ -103,11 +103,11 @@ const SaveLoadCompat _vehicle_train_sl_compat[] = { SLC_NULL(1, SL_MIN_VERSION, SLV_ENGINE_MULTI_RAILTYPE), SLC_VAR("track"), SLC_VAR("flags"), - SLC_NULL(2, SLV_2, SLV_60), + SLC_NULL(2, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_60), SLC_VAR("wait_counter"), - SLC_NULL(2, SLV_2, SLV_20), + SLC_NULL(2, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_20), SLC_VAR("gv_flags"), - SLC_NULL(11, SLV_2, SLV_144), + SLC_NULL(11, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for SlVehicleRoadVeh. */ @@ -122,11 +122,11 @@ const SaveLoadCompat _vehicle_roadveh_sl_compat[] = { SLC_VAR("reverse_ctr"), SLC_VAR("path.td"), SLC_VAR("path.tile"), - SLC_NULL(2, SLV_6, SLV_69), + SLC_NULL(2, SLV_MULTIPLE_ROAD_STOPS, SLV_69), SLC_VAR("gv_flags"), SLC_NULL(4, SLV_69, SLV_131), - SLC_NULL(2, SLV_6, SLV_131), - SLC_NULL(16, SLV_2, SLV_144), + SLC_NULL(2, SLV_MULTIPLE_ROAD_STOPS, SLV_131), + SLC_NULL(16, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for SlVehicleShip. */ @@ -135,7 +135,7 @@ const SaveLoadCompat _vehicle_ship_sl_compat[] = { SLC_VAR("state"), SLC_VAR("path"), SLC_VAR("rotation"), - SLC_NULL(16, SLV_2, SLV_144), + SLC_NULL(16, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for SlVehicleAircraft. */ @@ -150,7 +150,7 @@ const SaveLoadCompat _vehicle_aircraft_sl_compat[] = { SLC_VAR("number_consecutive_turns"), SLC_VAR("turn_counter"), SLC_VAR("flags"), - SLC_NULL(13, SLV_2, SLV_144), + SLC_NULL(13, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for SlVehicleEffect. */ @@ -167,7 +167,7 @@ const SaveLoadCompat _vehicle_effect_sl_compat[] = { SLC_VAR("animation_state"), SLC_VAR("animation_substate"), SLC_VAR("spritenum"), - SLC_NULL(15, SLV_2, SLV_144), + SLC_NULL(15, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for SlVehicleDisaster. */ @@ -190,7 +190,7 @@ const SaveLoadCompat _vehicle_disaster_sl_compat[] = { SLC_VAR("image_override"), SLC_VAR("big_ufo_destroyer_target"), SLC_VAR("flags"), - SLC_NULL(16, SLV_2, SLV_144), + SLC_NULL(16, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_144), }; /** Original field order for vehicle_desc. */ diff --git a/src/saveload/depot_sl.cpp b/src/saveload/depot_sl.cpp index 59079b7680..22ed22a287 100644 --- a/src/saveload/depot_sl.cpp +++ b/src/saveload/depot_sl.cpp @@ -20,8 +20,8 @@ static TownID _town_index; static const SaveLoad _depot_desc[] = { - SLE_CONDVAR(Depot, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Depot, xy, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Depot, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Depot, xy, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLEG_CONDVAR("town_index", _town_index, SLE_UINT16, SL_MIN_VERSION, SLV_141), SLE_CONDREF(Depot, town, REF_TOWN, SLV_141, SL_MAX_VERSION), SLE_CONDVAR(Depot, town_cn, SLE_UINT16, SLV_141, SL_MAX_VERSION), diff --git a/src/saveload/industry_sl.cpp b/src/saveload/industry_sl.cpp index 10fd0b8a77..2f09bd7dae 100644 --- a/src/saveload/industry_sl.cpp +++ b/src/saveload/industry_sl.cpp @@ -153,8 +153,8 @@ public: }; static const SaveLoad _industry_desc[] = { - SLE_CONDVAR(Industry, location.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Industry, location.tile, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Industry, location.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Industry, location.tile, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLE_VAR(Industry, location.w, SLE_FILE_U8 | SLE_VAR_U16), SLE_VAR(Industry, location.h, SLE_FILE_U8 | SLE_VAR_U16), SLE_REF(Industry, town, REF_TOWN), diff --git a/src/saveload/map_sl.cpp b/src/saveload/map_sl.cpp index 22374d02d3..4606e14980 100644 --- a/src/saveload/map_sl.cpp +++ b/src/saveload/map_sl.cpp @@ -22,8 +22,8 @@ static uint32_t _map_dim_x; static uint32_t _map_dim_y; static const SaveLoad _map_desc[] = { - SLEG_CONDVAR("dim_x", _map_dim_x, SLE_UINT32, SLV_6, SL_MAX_VERSION), - SLEG_CONDVAR("dim_y", _map_dim_y, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLEG_CONDVAR("dim_x", _map_dim_x, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLEG_CONDVAR("dim_y", _map_dim_y, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), }; struct MAPSChunkHandler : ChunkHandler { @@ -158,7 +158,7 @@ struct MAP2ChunkHandler : ChunkHandler { for (TileIndex i{}; i != size;) { SlCopy(buf.data(), MAP_SL_BUF_SIZE, /* In those versions the m2 was 8 bits */ - IsSavegameVersionBefore(SLV_5) ? SLE_FILE_U8 | SLE_VAR_U16 : SLE_UINT16 + IsSavegameVersionBefore(SLV_BIG_MAP) ? SLE_FILE_U8 | SLE_VAR_U16 : SLE_UINT16 ); for (uint j = 0; j != MAP_SL_BUF_SIZE; j++) Tile(i++).m2() = buf[j]; } diff --git a/src/saveload/misc_sl.cpp b/src/saveload/misc_sl.cpp index 9917a9327b..53cf10082b 100644 --- a/src/saveload/misc_sl.cpp +++ b/src/saveload/misc_sl.cpp @@ -94,14 +94,14 @@ static const SaveLoad _date_desc[] = { SLEG_CONDVAR("days_since_last_month", TimerGameEconomy::days_since_last_month, SLE_UINT32, SLV_INDUSTRY_ACCEPTED_HISTORY, SL_MAX_VERSION), SLEG_CONDVAR("calendar_sub_date_fract", TimerGameCalendar::sub_date_fract, SLE_UINT16, SLV_CALENDAR_SUB_DATE_FRACT, SL_MAX_VERSION), SLEG_CONDVAR("age_cargo_skip_counter", _age_cargo_skip_counter, SLE_UINT8, SL_MIN_VERSION, SLV_162), - SLEG_CONDVAR("cur_tileloop_tile", _cur_tileloop_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLEG_CONDVAR("cur_tileloop_tile", _cur_tileloop_tile, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLEG_CONDVAR("cur_tileloop_tile", _cur_tileloop_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLEG_CONDVAR("cur_tileloop_tile", _cur_tileloop_tile, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLEG_VAR("next_disaster_start", _disaster_delay, SLE_UINT16), SLEG_VAR("random_state[0]", _random.state[0], SLE_UINT32), SLEG_VAR("random_state[1]", _random.state[1], SLE_UINT32), SLEG_VAR("company_tick_counter", _cur_company_tick_index, SLE_FILE_U8 | SLE_VAR_U32), SLEG_VAR("trees_tick_counter", _trees_tick_ctr, SLE_UINT8), - SLEG_CONDVAR("pause_mode", _pause_mode, SLE_UINT8, SLV_4, SL_MAX_VERSION), + SLEG_CONDVAR("pause_mode", _pause_mode, SLE_UINT8, SLV_TOWN_TOLERANCE_PAUSE_MODE, SL_MAX_VERSION), SLEG_CONDSSTR("id", _game_session_stats.savegame_id, SLE_STR, SLV_SAVEGAME_ID, SL_MAX_VERSION), /* For older savegames, we load the current value as the "period"; afterload will set the "fired" and "elapsed". */ SLEG_CONDVAR("next_competitor_start", _new_competitor_timeout.period.value, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_109), @@ -157,10 +157,10 @@ struct DATEChunkHandler : ChunkHandler { }; static const SaveLoad _view_desc[] = { - SLEG_CONDVAR("x", _saved_scrollpos_x, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6), - SLEG_CONDVAR("x", _saved_scrollpos_x, SLE_INT32, SLV_6, SL_MAX_VERSION), - SLEG_CONDVAR("y", _saved_scrollpos_y, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6), - SLEG_CONDVAR("y", _saved_scrollpos_y, SLE_INT32, SLV_6, SL_MAX_VERSION), + SLEG_CONDVAR("x", _saved_scrollpos_x, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLEG_CONDVAR("x", _saved_scrollpos_x, SLE_INT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLEG_CONDVAR("y", _saved_scrollpos_y, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLEG_CONDVAR("y", _saved_scrollpos_y, SLE_INT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLEG_VAR("zoom", _saved_scrollpos_zoom, SLE_UINT8), }; diff --git a/src/saveload/order_sl.cpp b/src/saveload/order_sl.cpp index cac50ec853..26ea08fa1e 100644 --- a/src/saveload/order_sl.cpp +++ b/src/saveload/order_sl.cpp @@ -163,12 +163,12 @@ struct ORDRChunkHandler : ChunkHandler { void Load() const override { - if (IsSavegameVersionBefore(SLV_5, 2)) { + if (IsSavegameVersionBefore(SLV_BIG_MAP, 2)) { /* Version older than 5.2 did not have a ->next pointer. Convert them * (in the old days, the orderlist was 5000 items big) */ size_t len = SlGetFieldLength(); - if (IsSavegameVersionBefore(SLV_5)) { + if (IsSavegameVersionBefore(SLV_BIG_MAP)) { /* Pre-version 5 had another layout for orders * (uint16_t instead of uint32_t) */ len /= sizeof(uint16_t); @@ -180,7 +180,7 @@ struct ORDRChunkHandler : ChunkHandler { auto &item = AllocateOldOrder(i); item.order.AssignOrder(UnpackVersion4Order(orders[i])); } - } else if (IsSavegameVersionBefore(SLV_5, 2)) { + } else if (IsSavegameVersionBefore(SLV_BIG_MAP, 2)) { len /= sizeof(uint32_t); std::vector orders(len); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 101b0d514e..8a8dc2b236 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1298,7 +1298,7 @@ static void *IntToReference(size_t index, SLRefType rt) /* After version 4.3 REF_VEHICLE_OLD is saved as REF_VEHICLE, * and should be loaded like that */ - if (rt == REF_VEHICLE_OLD && !IsSavegameVersionBefore(SLV_4, 4)) { + if (rt == REF_VEHICLE_OLD && !IsSavegameVersionBefore(SLV_TOWN_TOLERANCE_PAUSE_MODE, 4)) { rt = REF_VEHICLE; } @@ -3163,7 +3163,7 @@ static SaveLoadResult DoLoad(std::shared_ptr reader, bool load_check _gamelog.Reset(); - if (IsSavegameVersionBefore(SLV_4)) { + if (IsSavegameVersionBefore(SLV_TOWN_TOLERANCE_PAUSE_MODE)) { /* * NewGRFs were introduced between 0.3,4 and 0.3.5, which both * shared savegame version 4. Anything before that 'obviously' diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 510c692791..ff67dd0744 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -30,39 +30,40 @@ enum SaveLoadVersion : uint16_t { SL_MIN_VERSION, ///< First savegame version - SLV_1, ///< 1.0 0.1.x, 0.2.x - SLV_2, /**< 2.0 0.3.0 - * 2.1 0.3.1, 0.3.2 */ - SLV_3, ///< 3.x lost - SLV_4, /**< 4.0 1 - * 4.1 122 0.3.3, 0.3.4 - * 4.2 1222 0.3.5 - * 4.3 1417 - * 4.4 1426 */ + SLV_BIG_CURRENCY, ///< 1.0 0.1.x, 0.2.x Change currency from 32 to 64 bits + SLV_VEHICLE_CURRENCY_STATION_CHANGES, /**< 2.0 0.3.0 Adding vehicle state, larger currency size for statistics, station size revamped. + * 2.1 0.3.1, 0.3.2 Unify way of storing town owner + * 2.2 lost New airports */ + SLV_BIGGER_STATION_VARIABLES, ///< 3.x lost Increase size of airport blocks/station build date + SLV_TOWN_TOLERANCE_PAUSE_MODE, /**< 4.0 1 Town council tolerance and pause mode + * 4.1 122 0.3.3, 0.3.4 Store exclusive rights in towns + * 4.2 1222 0.3.5 Currencies are reordered + * 4.3 1417 Make water owned by OWNER_NONE + * 4.4 1426 Make vehicle references same as other references */ - SLV_5, /**< 5.0 1429 - * 5.1 1440 - * 5.2 1525 0.3.6 */ - SLV_6, /**< 6.0 1721 - * 6.1 1768 */ - SLV_7, ///< 7.0 1770 - SLV_8, ///< 8.0 1786 - SLV_9, ///< 9.0 1909 + SLV_BIG_MAP, /**< 5.0 1429 Making maps a different size than 256x256 + * 5.1 1440 Flexible airport layouts + * 5.2 1525 0.3.6 Dynamic order array */ + SLV_MULTIPLE_ROAD_STOPS, /**< 6.0 1721 Multi tile road stops, and some map size related fixes + * 6.1 1768 Town index in m2 */ + SLV_LARGER_CARGO_SOURCE, ///< 7.0 1770 With more stations, the size of the cargo source needed to be increased + SLV_LARGER_UNIT_NUMBER, ///< 8.0 1786 Increase size of (vehicle) unit numbers + SLV_LARGER_TOWN_CARGO_STATISTICS, ///< 9.0 1909 Increase size of passenger/mail production of this and previous months - SLV_10, ///< 10.0 2030 - SLV_11, /**< 11.0 2033 - * 11.1 2041 */ - SLV_12, ///< 12.1 2046 - SLV_13, ///< 13.1 2080 0.4.0, 0.4.0.1 - SLV_14, ///< 14.0 2441 + SLV_LARGER_TOWN_COUNTER, ///< 10.0 2030 Increase size of the town counter + SLV_LARGER_TOWN_ITERATOR, /**< 11.0 2033 Increase size of the town iterator + * 11.1 2041 Fix vehicle counters */ + SLV_LINK_WAYPOINT_TO_TOWN, ///< 12.1 2046 Link waypoints to towns and remove some bit stuffing + SLV_LARGER_AI_STATE_COUNTER, ///< 13.1 2080 0.4.0, 0.4.0.1 AI state counter increased due it storing tile indices + SLV_TRANSFER_ORDER, ///< 14.0 2441 Transfer orders for feeder systems - SLV_15, ///< 15.0 2499 - SLV_16, /**< 16.0 2817 - * 16.1 3155 */ - SLV_17, /**< 17.0 3212 - * 17.1 3218 */ - SLV_18, ///< 18 3227 - SLV_19, ///< 19 3396 + SLV_MOVE_SEMAPHORE_BITS, ///< 15.0 2499 Move rail signal bit for semaphores + SLV_ENGINE_RENEW, /**< 16.0 2817 Automatic replacing/renewing of vehicles + * 16.1 3155 Keep vehicle length during autoreplace */ + SLV_STORE_WAYPOINT_ID_IN_MAP, /**< 17.0 3212 Store the ID of waypoints in m2 of the map + * 17.1 3218 Make train subtype a bitmask */ + SLV_REMOVE_MINOR_VERSION, ///< 18 3227 Remove the minor versions from savegames + SLV_ENGINE_RENEW_POOL, ///< 19 3396 Engine renews are now stored in a pool SLV_20, ///< 20 3403 SLV_21, ///< 21 3472 0.4.x diff --git a/src/saveload/settings_sl.cpp b/src/saveload/settings_sl.cpp index 72faa0ef98..e20c633270 100644 --- a/src/saveload/settings_sl.cpp +++ b/src/saveload/settings_sl.cpp @@ -37,7 +37,7 @@ void PrepareOldDiffCustom() void HandleOldDiffCustom(bool savegame) { /* Savegames before v4 didn't have "town_council_tolerance" in savegame yet. */ - bool has_no_town_council_tolerance = savegame && IsSavegameVersionBefore(SLV_4); + bool has_no_town_council_tolerance = savegame && IsSavegameVersionBefore(SLV_TOWN_TOLERANCE_PAUSE_MODE); uint options_to_load = GAME_DIFFICULTY_NUM - (has_no_town_council_tolerance ? 1 : 0); if (!savegame) { diff --git a/src/saveload/signs_sl.cpp b/src/saveload/signs_sl.cpp index 5b22eebe5d..7003e15db3 100644 --- a/src/saveload/signs_sl.cpp +++ b/src/saveload/signs_sl.cpp @@ -21,11 +21,11 @@ static const SaveLoad _sign_desc[] = { SLE_CONDVAR(Sign, name, SLE_NAME, SL_MIN_VERSION, SLV_84), SLE_CONDSSTR(Sign, name, SLE_STR | SLF_ALLOW_CONTROL, SLV_84, SL_MAX_VERSION), - SLE_CONDVAR(Sign, x, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_5), - SLE_CONDVAR(Sign, y, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_5), - SLE_CONDVAR(Sign, x, SLE_INT32, SLV_5, SL_MAX_VERSION), - SLE_CONDVAR(Sign, y, SLE_INT32, SLV_5, SL_MAX_VERSION), - SLE_CONDVAR(Sign, owner, SLE_UINT8, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Sign, x, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_BIG_MAP), + SLE_CONDVAR(Sign, y, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_BIG_MAP), + SLE_CONDVAR(Sign, x, SLE_INT32, SLV_BIG_MAP, SL_MAX_VERSION), + SLE_CONDVAR(Sign, y, SLE_INT32, SLV_BIG_MAP, SL_MAX_VERSION), + SLE_CONDVAR(Sign, owner, SLE_UINT8, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLE_CONDVAR(Sign, z, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_164), SLE_CONDVAR(Sign, z, SLE_INT32, SLV_164, SL_MAX_VERSION), SLE_CONDVAR(Sign, text_colour, SLE_UINT8, SLV_SIGN_TEXT_COLOURS, SL_MAX_VERSION), @@ -58,7 +58,7 @@ struct SIGNChunkHandler : ChunkHandler { * - we can't use IsValidCompany() now, so this is fixed in AfterLoadGame() * All signs that were saved are valid (including those with just 'Sign' and INVALID_OWNER). * - so set owner to OWNER_NONE if needed (signs from pre-version 6.1 would be lost) */ - if (IsSavegameVersionBefore(SLV_6, 1) || (IsSavegameVersionBefore(SLV_83) && si->owner == INVALID_OWNER)) { + if (IsSavegameVersionBefore(SLV_MULTIPLE_ROAD_STOPS, 1) || (IsSavegameVersionBefore(SLV_83) && si->owner == INVALID_OWNER)) { si->owner = OWNER_NONE; } diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index 6b6440e32a..6805a68fe2 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -375,13 +375,13 @@ public: SLE_CONDVAR(GoodsEntry, status, SLE_UINT8, SLV_68, SL_MAX_VERSION), SLE_VAR(GoodsEntry, time_since_pickup, SLE_UINT8), SLE_VAR(GoodsEntry, rating, SLE_UINT8), - SLEG_CONDVAR("cargo_source", _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_7), - SLEG_CONDVAR("cargo_source", _cargo_source, SLE_UINT16, SLV_7, SLV_68), + SLEG_CONDVAR("cargo_source", _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_LARGER_CARGO_SOURCE), + SLEG_CONDVAR("cargo_source", _cargo_source, SLE_UINT16, SLV_LARGER_CARGO_SOURCE, SLV_68), SLEG_CONDVAR("cargo_source_xy", _cargo_source_xy, SLE_UINT32, SLV_44, SLV_68), SLEG_CONDVAR("cargo_days", _cargo_periods, SLE_UINT8, SL_MIN_VERSION, SLV_68), SLE_VAR(GoodsEntry, last_speed, SLE_UINT8), SLE_VAR(GoodsEntry, last_age, SLE_UINT8), - SLEG_CONDVAR("cargo_feeder_share", _cargo_feeder_share, SLE_FILE_U32 | SLE_VAR_I64, SLV_14, SLV_65), + SLEG_CONDVAR("cargo_feeder_share", _cargo_feeder_share, SLE_FILE_U32 | SLE_VAR_I64, SLV_TRANSFER_ORDER, SLV_65), SLEG_CONDVAR("cargo_feeder_share", _cargo_feeder_share, SLE_INT64, SLV_65, SLV_68), SLE_CONDVAR(GoodsEntry, amount_fract, SLE_UINT8, SLV_150, SL_MAX_VERSION), SLEG_CONDREFLIST("packets", _packets, REF_CARGO_PACKET, SLV_68, SLV_183), @@ -448,7 +448,7 @@ public: ge.status.Set(GoodsEntry::State::Acceptance, HasBit(_waiting_acceptance, 15)); if (GB(_waiting_acceptance, 0, 12) != 0) { /* In old versions, enroute_from used 0xFF as StationID::Invalid() */ - StationID source = (IsSavegameVersionBefore(SLV_7) && _cargo_source == 0xFF) ? StationID::Invalid() : static_cast(_cargo_source); + StationID source = (IsSavegameVersionBefore(SLV_LARGER_CARGO_SOURCE) && _cargo_source == 0xFF) ? StationID::Invalid() : static_cast(_cargo_source); /* Make sure we can allocate the CargoPacket. This is safe * as there can only be ~64k stations and 32 cargoes in these @@ -485,15 +485,15 @@ public: }; static const SaveLoad _old_station_desc[] = { - SLE_CONDVAR(Station, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Station, xy, SLE_UINT32, SLV_6, SL_MAX_VERSION), - SLE_CONDVAR(Station, train_station.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Station, train_station.tile, SLE_UINT32, SLV_6, SL_MAX_VERSION), - SLE_CONDVAR(Station, airport.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Station, airport.tile, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Station, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Station, xy, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDVAR(Station, train_station.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Station, train_station.tile, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDVAR(Station, airport.tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Station, airport.tile, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLE_REF(Station, town, REF_TOWN), SLE_VAR(Station, train_station.w, SLE_FILE_U8 | SLE_VAR_U16), - SLE_CONDVAR(Station, train_station.h, SLE_FILE_U8 | SLE_VAR_U16, SLV_2, SL_MAX_VERSION), + SLE_CONDVAR(Station, train_station.h, SLE_FILE_U8 | SLE_VAR_U16, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), SLE_VAR(Station, string_id, SLE_STRINGID), SLE_CONDSSTR(Station, name, SLE_STR | SLF_ALLOW_CONTROL, SLV_84, SL_MAX_VERSION), @@ -507,17 +507,17 @@ static const SaveLoad _old_station_desc[] = { SLE_VAR(Station, owner, SLE_UINT8), SLE_VAR(Station, facilities, SLE_UINT8), SLE_VAR(Station, airport.type, SLE_UINT8), - SLE_CONDVARNAME(Station, airport.blocks, "airport.flags", SLE_VAR_U64 | SLE_FILE_U16, SL_MIN_VERSION, SLV_3), - SLE_CONDVARNAME(Station, airport.blocks, "airport.flags", SLE_VAR_U64 | SLE_FILE_U32, SLV_3, SLV_46), + SLE_CONDVARNAME(Station, airport.blocks, "airport.flags", SLE_VAR_U64 | SLE_FILE_U16, SL_MIN_VERSION, SLV_BIGGER_STATION_VARIABLES), + SLE_CONDVARNAME(Station, airport.blocks, "airport.flags", SLE_VAR_U64 | SLE_FILE_U32, SLV_BIGGER_STATION_VARIABLES, SLV_46), SLE_CONDVARNAME(Station, airport.blocks, "airport.flags", SLE_UINT64, SLV_46, SL_MAX_VERSION), SLE_CONDVAR(Station, last_vehicle_type, SLE_UINT8, SLV_26, SL_MAX_VERSION), - SLE_CONDVAR(Station, build_date, SLE_FILE_U16 | SLE_VAR_I32, SLV_3, SLV_31), + SLE_CONDVAR(Station, build_date, SLE_FILE_U16 | SLE_VAR_I32, SLV_BIGGER_STATION_VARIABLES, SLV_31), SLE_CONDVAR(Station, build_date, SLE_INT32, SLV_31, SL_MAX_VERSION), - SLE_CONDREF(Station, bus_stops, REF_ROADSTOPS, SLV_6, SL_MAX_VERSION), - SLE_CONDREF(Station, truck_stops, REF_ROADSTOPS, SLV_6, SL_MAX_VERSION), + SLE_CONDREF(Station, bus_stops, REF_ROADSTOPS, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDREF(Station, truck_stops, REF_ROADSTOPS, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), /* Used by newstations for graphic variations */ SLE_CONDVAR(Station, random_bits, SLE_UINT16, SLV_27, SL_MAX_VERSION), diff --git a/src/saveload/storage_sl.cpp b/src/saveload/storage_sl.cpp index 38ca830cbf..83a5351ad5 100644 --- a/src/saveload/storage_sl.cpp +++ b/src/saveload/storage_sl.cpp @@ -18,7 +18,7 @@ /** Description of the data to save and load in #PersistentStorage. */ static const SaveLoad _storage_desc[] = { - SLE_CONDVAR(PersistentStorage, grfid, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(PersistentStorage, grfid, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLE_CONDARR(PersistentStorage, storage, SLE_UINT32, 16, SLV_161, SLV_EXTEND_PERSISTENT_STORAGE), SLE_CONDARR(PersistentStorage, storage, SLE_UINT32, 256, SLV_EXTEND_PERSISTENT_STORAGE, SL_MAX_VERSION), }; diff --git a/src/saveload/subsidy_sl.cpp b/src/saveload/subsidy_sl.cpp index fcd529980b..a32c3a67f7 100644 --- a/src/saveload/subsidy_sl.cpp +++ b/src/saveload/subsidy_sl.cpp @@ -23,10 +23,10 @@ static const SaveLoad _subsidies_desc[] = { SLE_CONDVAR(Subsidy, awarded, SLE_UINT8, SLV_125, SL_MAX_VERSION), SLE_CONDVARNAME(Subsidy, src.type, "src_type", SLE_UINT8, SLV_125, SL_MAX_VERSION), SLE_CONDVARNAME(Subsidy, dst.type, "dst_type", SLE_UINT8, SLV_125, SL_MAX_VERSION), - SLE_CONDVARNAME(Subsidy, src.id, "src", SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5), - SLE_CONDVARNAME(Subsidy, src.id, "src", SLE_UINT16, SLV_5, SL_MAX_VERSION), - SLE_CONDVARNAME(Subsidy, dst.id, "dst", SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5), - SLE_CONDVARNAME(Subsidy, dst.id, "dst", SLE_UINT16, SLV_5, SL_MAX_VERSION), + SLE_CONDVARNAME(Subsidy, src.id, "src", SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_BIG_MAP), + SLE_CONDVARNAME(Subsidy, src.id, "src", SLE_UINT16, SLV_BIG_MAP, SL_MAX_VERSION), + SLE_CONDVARNAME(Subsidy, dst.id, "dst", SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_BIG_MAP), + SLE_CONDVARNAME(Subsidy, dst.id, "dst", SLE_UINT16, SLV_BIG_MAP, SL_MAX_VERSION), }; struct SUBSChunkHandler : ChunkHandler { diff --git a/src/saveload/town_sl.cpp b/src/saveload/town_sl.cpp index 5cc7641c76..fab354d9bf 100644 --- a/src/saveload/town_sl.cpp +++ b/src/saveload/town_sl.cpp @@ -296,8 +296,8 @@ static std::array _old_pass_supplied{}; static std::array _old_mail_supplied{}; static const SaveLoad _town_desc[] = { - SLE_CONDVAR(Town, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Town, xy, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Town, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Town, xy, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLE_CONDVAR(Town, townnamegrfid, SLE_UINT32, SLV_66, SL_MAX_VERSION), SLE_VAR(Town, townnametype, SLE_UINT16), @@ -312,26 +312,26 @@ static const SaveLoad _town_desc[] = { SLE_CONDVAR(Town, have_ratings, SLE_UINT16, SLV_104, SL_MAX_VERSION), SLE_CONDARR(Town, ratings, SLE_INT16, 8, SL_MIN_VERSION, SLV_104), SLE_CONDARR(Town, ratings, SLE_INT16, MAX_COMPANIES, SLV_104, SL_MAX_VERSION), - SLE_CONDARR(Town, unwanted, SLE_INT8, 8, SLV_4, SLV_104), + SLE_CONDARR(Town, unwanted, SLE_INT8, 8, SLV_TOWN_TOLERANCE_PAUSE_MODE, SLV_104), SLE_CONDARR(Town, unwanted, SLE_INT8, MAX_COMPANIES, SLV_104, SL_MAX_VERSION), /* Slots 0 and 2 are passengers and mail respectively for old saves. */ - SLEG_CONDVAR("supplied[CT_PASSENGERS].old_max", _old_pass_supplied[LAST_MONTH].production, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9), - SLEG_CONDVAR("supplied[CT_PASSENGERS].old_max", _old_pass_supplied[LAST_MONTH].production, SLE_UINT32, SLV_9, SLV_165), - SLEG_CONDVAR( "supplied[CT_MAIL].old_max", _old_mail_supplied[LAST_MONTH].production, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9), - SLEG_CONDVAR( "supplied[CT_MAIL].old_max", _old_mail_supplied[LAST_MONTH].production, SLE_UINT32, SLV_9, SLV_165), - SLEG_CONDVAR("supplied[CT_PASSENGERS].new_max", _old_pass_supplied[THIS_MONTH].production, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9), - SLEG_CONDVAR("supplied[CT_PASSENGERS].new_max", _old_pass_supplied[THIS_MONTH].production, SLE_UINT32, SLV_9, SLV_165), - SLEG_CONDVAR( "supplied[CT_MAIL].new_max", _old_mail_supplied[THIS_MONTH].production, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9), - SLEG_CONDVAR( "supplied[CT_MAIL].new_max", _old_mail_supplied[THIS_MONTH].production, SLE_UINT32, SLV_9, SLV_165), - SLEG_CONDVAR("supplied[CT_PASSENGERS].old_act", _old_pass_supplied[LAST_MONTH].transported, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9), - SLEG_CONDVAR("supplied[CT_PASSENGERS].old_act", _old_pass_supplied[LAST_MONTH].transported, SLE_UINT32, SLV_9, SLV_165), - SLEG_CONDVAR( "supplied[CT_MAIL].old_act", _old_mail_supplied[LAST_MONTH].transported, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9), - SLEG_CONDVAR( "supplied[CT_MAIL].old_act", _old_mail_supplied[LAST_MONTH].transported, SLE_UINT32, SLV_9, SLV_165), - SLEG_CONDVAR("supplied[CT_PASSENGERS].new_act", _old_pass_supplied[THIS_MONTH].transported, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9), - SLEG_CONDVAR("supplied[CT_PASSENGERS].new_act", _old_pass_supplied[THIS_MONTH].transported, SLE_UINT32, SLV_9, SLV_165), - SLEG_CONDVAR( "supplied[CT_MAIL].new_act", _old_mail_supplied[THIS_MONTH].transported, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_9), - SLEG_CONDVAR( "supplied[CT_MAIL].new_act", _old_mail_supplied[THIS_MONTH].transported, SLE_UINT32, SLV_9, SLV_165), + SLEG_CONDVAR("supplied[CT_PASSENGERS].old_max", _old_pass_supplied[LAST_MONTH].production, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_LARGER_TOWN_CARGO_STATISTICS), + SLEG_CONDVAR("supplied[CT_PASSENGERS].old_max", _old_pass_supplied[LAST_MONTH].production, SLE_UINT32, SLV_LARGER_TOWN_CARGO_STATISTICS, SLV_165), + SLEG_CONDVAR( "supplied[CT_MAIL].old_max", _old_mail_supplied[LAST_MONTH].production, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_LARGER_TOWN_CARGO_STATISTICS), + SLEG_CONDVAR( "supplied[CT_MAIL].old_max", _old_mail_supplied[LAST_MONTH].production, SLE_UINT32, SLV_LARGER_TOWN_CARGO_STATISTICS, SLV_165), + SLEG_CONDVAR("supplied[CT_PASSENGERS].new_max", _old_pass_supplied[THIS_MONTH].production, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_LARGER_TOWN_CARGO_STATISTICS), + SLEG_CONDVAR("supplied[CT_PASSENGERS].new_max", _old_pass_supplied[THIS_MONTH].production, SLE_UINT32, SLV_LARGER_TOWN_CARGO_STATISTICS, SLV_165), + SLEG_CONDVAR( "supplied[CT_MAIL].new_max", _old_mail_supplied[THIS_MONTH].production, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_LARGER_TOWN_CARGO_STATISTICS), + SLEG_CONDVAR( "supplied[CT_MAIL].new_max", _old_mail_supplied[THIS_MONTH].production, SLE_UINT32, SLV_LARGER_TOWN_CARGO_STATISTICS, SLV_165), + SLEG_CONDVAR("supplied[CT_PASSENGERS].old_act", _old_pass_supplied[LAST_MONTH].transported, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_LARGER_TOWN_CARGO_STATISTICS), + SLEG_CONDVAR("supplied[CT_PASSENGERS].old_act", _old_pass_supplied[LAST_MONTH].transported, SLE_UINT32, SLV_LARGER_TOWN_CARGO_STATISTICS, SLV_165), + SLEG_CONDVAR( "supplied[CT_MAIL].old_act", _old_mail_supplied[LAST_MONTH].transported, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_LARGER_TOWN_CARGO_STATISTICS), + SLEG_CONDVAR( "supplied[CT_MAIL].old_act", _old_mail_supplied[LAST_MONTH].transported, SLE_UINT32, SLV_LARGER_TOWN_CARGO_STATISTICS, SLV_165), + SLEG_CONDVAR("supplied[CT_PASSENGERS].new_act", _old_pass_supplied[THIS_MONTH].transported, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_LARGER_TOWN_CARGO_STATISTICS), + SLEG_CONDVAR("supplied[CT_PASSENGERS].new_act", _old_pass_supplied[THIS_MONTH].transported, SLE_UINT32, SLV_LARGER_TOWN_CARGO_STATISTICS, SLV_165), + SLEG_CONDVAR( "supplied[CT_MAIL].new_act", _old_mail_supplied[THIS_MONTH].transported, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_LARGER_TOWN_CARGO_STATISTICS), + SLEG_CONDVAR( "supplied[CT_MAIL].new_act", _old_mail_supplied[THIS_MONTH].transported, SLE_UINT32, SLV_LARGER_TOWN_CARGO_STATISTICS, SLV_165), SLE_CONDVARNAME(Town, received[TownAcceptanceEffect::Food].old_act, "received[TE_FOOD].old_act", SLE_UINT16, SL_MIN_VERSION, SLV_165), SLE_CONDVARNAME(Town, received[TownAcceptanceEffect::Water].old_act, "received[TE_WATER].old_act", SLE_UINT16, SL_MIN_VERSION, SLV_165), @@ -353,8 +353,8 @@ static const SaveLoad _town_desc[] = { SLE_VAR(Town, fund_buildings_months, SLE_UINT8), SLE_VAR(Town, road_build_months, SLE_UINT8), - SLE_CONDVAR(Town, exclusivity, SLE_UINT8, SLV_2, SL_MAX_VERSION), - SLE_CONDVAR(Town, exclusive_counter, SLE_UINT8, SLV_2, SL_MAX_VERSION), + SLE_CONDVAR(Town, exclusivity, SLE_UINT8, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), + SLE_CONDVAR(Town, exclusive_counter, SLE_UINT8, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), SLE_CONDVAR(Town, larger_town, SLE_BOOL, SLV_56, SL_MAX_VERSION), SLE_CONDVAR(Town, layout, SLE_UINT8, SLV_113, SL_MAX_VERSION), diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index 7be4828c9b..4626be874c 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -298,7 +298,7 @@ void AfterLoadVehiclesPhase1(bool part_of_load) } else { v->orders = mapping[v->old_orders]; /* For old games (case a) we must create the shared vehicle chain */ - if (IsSavegameVersionBefore(SLV_5, 2)) { + if (IsSavegameVersionBefore(SLV_BIG_MAP, 2)) { v->AddToShared(v->orders->GetFirstSharedVehicle()); } } @@ -492,7 +492,7 @@ void AfterLoadVehiclesPhase2(bool part_of_load) } /* trains weren't stopping gradually in old OTTD versions (and TTO/TTD) * other vehicle types didn't have zero speed while stopped (even in 'recent' OTTD versions) */ - if (v->vehstatus.Test(VehState::Stopped) && (v->type != VehicleType::Train || IsSavegameVersionBefore(SLV_2, 1))) { + if (v->vehstatus.Test(VehState::Stopped) && (v->type != VehicleType::Train || IsSavegameVersionBefore(SLV_VEHICLE_CURRENCY_STATION_CHANGES, 1))) { v->cur_speed = 0; } } @@ -659,18 +659,18 @@ public: SLE_REF(Vehicle, next, REF_VEHICLE_OLD), SLE_CONDVAR(Vehicle, name, SLE_NAME, SL_MIN_VERSION, SLV_84), SLE_CONDSSTR(Vehicle, name, SLE_STR | SLF_ALLOW_CONTROL, SLV_84, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, unitnumber, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_8), - SLE_CONDVAR(Vehicle, unitnumber, SLE_UINT16, SLV_8, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, unitnumber, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_LARGER_UNIT_NUMBER), + SLE_CONDVAR(Vehicle, unitnumber, SLE_UINT16, SLV_LARGER_UNIT_NUMBER, SL_MAX_VERSION), SLE_VAR(Vehicle, owner, SLE_UINT8), - SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, tile, SLE_UINT32, SLV_6, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, tile, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, x_pos, SLE_UINT32, SLV_6, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, y_pos, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, x_pos, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, y_pos, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_164), SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, SLV_164, SL_MAX_VERSION), SLE_VAR(Vehicle, direction, SLE_UINT8), @@ -684,15 +684,15 @@ public: SLE_VAR(Vehicle, progress, SLE_UINT8), SLE_VAR(Vehicle, vehstatus, SLE_UINT8), - SLE_CONDVAR(Vehicle, last_station_visited, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5), - SLE_CONDVAR(Vehicle, last_station_visited, SLE_UINT16, SLV_5, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, last_station_visited, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_BIG_MAP), + SLE_CONDVAR(Vehicle, last_station_visited, SLE_UINT16, SLV_BIG_MAP, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, last_loading_station, SLE_UINT16, SLV_182, SL_MAX_VERSION), SLE_VAR(Vehicle, cargo_type, SLE_UINT8), SLE_CONDVAR(Vehicle, cargo_subtype, SLE_UINT8, SLV_35, SL_MAX_VERSION), SLEG_CONDVAR("cargo_days", _cargo_periods, SLE_UINT8, SL_MIN_VERSION, SLV_68), - SLEG_CONDVAR("cargo_source", _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_7), - SLEG_CONDVAR("cargo_source", _cargo_source, SLE_UINT16, SLV_7, SLV_68), + SLEG_CONDVAR("cargo_source", _cargo_source, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_LARGER_CARGO_SOURCE), + SLEG_CONDVAR("cargo_source", _cargo_source, SLE_UINT16, SLV_LARGER_CARGO_SOURCE, SLV_68), SLEG_CONDVAR("cargo_source_xy", _cargo_source_xy, SLE_UINT32, SLV_44, SLV_68), SLE_VAR(Vehicle, cargo_cap, SLE_UINT16), SLE_CONDVAR(Vehicle, refit_cap, SLE_UINT16, SLV_182, SL_MAX_VERSION), @@ -711,13 +711,13 @@ public: /* This next line is for version 4 and prior compatibility.. it temporarily reads type and flags (which were both 4 bits) into type. Later on this is converted correctly */ - SLE_CONDVAR(Vehicle, current_order.type, SLE_UINT8, SL_MIN_VERSION, SLV_5), - SLE_CONDVAR(Vehicle, current_order.dest, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5), + SLE_CONDVAR(Vehicle, current_order.type, SLE_UINT8, SL_MIN_VERSION, SLV_BIG_MAP), + SLE_CONDVAR(Vehicle, current_order.dest, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_BIG_MAP), /* Orders for version 5 and on */ - SLE_CONDVAR(Vehicle, current_order.type, SLE_UINT8, SLV_5, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, current_order.flags, SLE_UINT8, SLV_5, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, current_order.dest, SLE_UINT16, SLV_5, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, current_order.type, SLE_UINT8, SLV_BIG_MAP, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, current_order.flags, SLE_UINT8, SLV_BIG_MAP, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, current_order.dest, SLE_UINT16, SLV_BIG_MAP, SL_MAX_VERSION), /* Refit in current order */ SLE_CONDVAR(Vehicle, current_order.refit_cargo, SLE_UINT8, SLV_36, SL_MAX_VERSION), @@ -767,11 +767,11 @@ public: SLE_CONDVAR(Vehicle, value, SLE_FILE_I32 | SLE_VAR_I64, SL_MIN_VERSION, SLV_65), SLE_CONDVAR(Vehicle, value, SLE_INT64, SLV_65, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, random_bits, SLE_FILE_U8 | SLE_VAR_U16, SLV_2, SLV_EXTEND_VEHICLE_RANDOM), + SLE_CONDVAR(Vehicle, random_bits, SLE_FILE_U8 | SLE_VAR_U16, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_EXTEND_VEHICLE_RANDOM), SLE_CONDVAR(Vehicle, random_bits, SLE_UINT16, SLV_EXTEND_VEHICLE_RANDOM, SL_MAX_VERSION), - SLE_CONDVARNAME(Vehicle, waiting_random_triggers, "waiting_triggers", SLE_UINT8, SLV_2, SL_MAX_VERSION), + SLE_CONDVARNAME(Vehicle, waiting_random_triggers, "waiting_triggers", SLE_UINT8, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), - SLE_CONDREF(Vehicle, next_shared, REF_VEHICLE, SLV_2, SL_MAX_VERSION), + SLE_CONDREF(Vehicle, next_shared, REF_VEHICLE, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, group_id, SLE_UINT16, SLV_60, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, current_order_time, SLE_FILE_U32 | SLE_VAR_I32, SLV_67, SLV_TIMETABLE_TICKS_TYPE), @@ -810,7 +810,7 @@ public: SLE_VAR(Train, force_proceed, SLE_UINT8), SLE_VAR(Train, track, SLE_UINT8), - SLE_CONDVAR(Train, flags, SLE_FILE_U8 | SLE_VAR_U16, SLV_2, SLV_100), + SLE_CONDVAR(Train, flags, SLE_FILE_U8 | SLE_VAR_U16, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SLV_100), SLE_CONDVAR(Train, flags, SLE_UINT16, SLV_100, SL_MAX_VERSION), SLE_CONDVAR(Train, wait_counter, SLE_UINT16, SLV_136, SL_MAX_VERSION), SLE_CONDVAR(Train, gv_flags, SLE_UINT16, SLV_139, SL_MAX_VERSION), @@ -967,14 +967,14 @@ public: SLE_VAR(Aircraft, crashed_counter, SLE_UINT16), SLE_VAR(Aircraft, pos, SLE_UINT8), - SLE_CONDVAR(Aircraft, targetairport, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5), - SLE_CONDVAR(Aircraft, targetairport, SLE_UINT16, SLV_5, SL_MAX_VERSION), + SLE_CONDVAR(Aircraft, targetairport, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_BIG_MAP), + SLE_CONDVAR(Aircraft, targetairport, SLE_UINT16, SLV_BIG_MAP, SL_MAX_VERSION), SLE_VAR(Aircraft, state, SLE_UINT8), - SLE_CONDVAR(Aircraft, previous_pos, SLE_UINT8, SLV_2, SL_MAX_VERSION), - SLE_CONDVAR(Aircraft, last_direction, SLE_UINT8, SLV_2, SL_MAX_VERSION), - SLE_CONDVAR(Aircraft, number_consecutive_turns, SLE_UINT8, SLV_2, SL_MAX_VERSION), + SLE_CONDVAR(Aircraft, previous_pos, SLE_UINT8, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), + SLE_CONDVAR(Aircraft, last_direction, SLE_UINT8, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), + SLE_CONDVAR(Aircraft, number_consecutive_turns, SLE_UINT8, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), SLE_CONDVAR(Aircraft, turn_counter, SLE_UINT8, SLV_136, SL_MAX_VERSION), SLE_CONDVAR(Aircraft, flags, SLE_UINT8, SLV_167, SL_MAX_VERSION), @@ -1005,13 +1005,13 @@ public: static inline const SaveLoad description[] = { SLE_VAR(Vehicle, subtype, SLE_UINT8), - SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, tile, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, tile, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, SLV_6, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_164), SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, SLV_164, SL_MAX_VERSION), @@ -1022,7 +1022,7 @@ public: SLE_VAR(EffectVehicle, animation_state, SLE_UINT16), SLE_VAR(EffectVehicle, animation_substate, SLE_UINT8), - SLE_CONDVAR(Vehicle, spritenum, SLE_UINT8, SLV_2, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, spritenum, SLE_UINT8, SLV_VEHICLE_CURRENCY_STATION_CHANGES, SL_MAX_VERSION), }; static inline const SaveLoadCompatTable compat_description = _vehicle_effect_sl_compat; @@ -1051,23 +1051,23 @@ public: SLE_REF(Vehicle, next, REF_VEHICLE_OLD), SLE_VAR(Vehicle, subtype, SLE_UINT8), - SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, tile, SLE_UINT32, SLV_6, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, tile, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, SLV_6, SL_MAX_VERSION), - SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, SLV_6, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, z_pos, SLE_FILE_U8 | SLE_VAR_I32, SL_MIN_VERSION, SLV_164), SLE_CONDVAR(Vehicle, z_pos, SLE_INT32, SLV_164, SL_MAX_VERSION), SLE_VAR(Vehicle, direction, SLE_UINT8), SLE_VAR(Vehicle, owner, SLE_UINT8), SLE_VAR(Vehicle, vehstatus, SLE_UINT8), - SLE_CONDVARNAME(DisasterVehicle, state, "current_order.dest", SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_5), - SLE_CONDVARNAME(DisasterVehicle, state, "current_order.dest", SLE_UINT16, SLV_5, SLV_DISASTER_VEH_STATE), + SLE_CONDVARNAME(DisasterVehicle, state, "current_order.dest", SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_BIG_MAP), + SLE_CONDVARNAME(DisasterVehicle, state, "current_order.dest", SLE_UINT16, SLV_BIG_MAP, SLV_DISASTER_VEH_STATE), SLE_CONDVAR(DisasterVehicle, state, SLE_UINT16, SLV_DISASTER_VEH_STATE, SL_MAX_VERSION), SLE_VAR(Vehicle, sprite_cache.sprite_seq.seq[0].sprite, SLE_FILE_U16 | SLE_VAR_U32), @@ -1159,13 +1159,13 @@ struct VEHSChunkHandler : ChunkHandler { } /* Old savegames used 'last_station_visited = 0xFF' */ - if (IsSavegameVersionBefore(SLV_5) && v->last_station_visited == 0xFF) { + if (IsSavegameVersionBefore(SLV_BIG_MAP) && v->last_station_visited == 0xFF) { v->last_station_visited = StationID::Invalid(); } if (IsSavegameVersionBefore(SLV_182)) v->last_loading_station = StationID::Invalid(); - if (IsSavegameVersionBefore(SLV_5)) { + if (IsSavegameVersionBefore(SLV_BIG_MAP)) { /* Convert the current_order.type (which is a mix of type and flags, because * in those versions, they both were 4 bits big) to type and flags */ v->current_order.flags = GB(v->current_order.type, 4, 4); diff --git a/src/saveload/waypoint_sl.cpp b/src/saveload/waypoint_sl.cpp index 96a051193e..84c3a42c97 100644 --- a/src/saveload/waypoint_sl.cpp +++ b/src/saveload/waypoint_sl.cpp @@ -71,7 +71,7 @@ void MoveWaypointsToBaseStations() * waypoints to make way for storing the index in m2. The custom graphics * id which was stored in m4 is now saved as a grf/id reference in the * waypoint struct. */ - if (IsSavegameVersionBefore(SLV_17)) { + if (IsSavegameVersionBefore(SLV_STORE_WAYPOINT_ID_IN_MAP)) { for (OldWaypoint &wp : _old_waypoints) { if (wp.delete_ctr != 0) continue; // The waypoint was deleted @@ -168,20 +168,20 @@ void ResetOldWaypoints() } static const SaveLoad _old_waypoint_desc[] = { - SLE_CONDVAR(OldWaypoint, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6), - SLE_CONDVAR(OldWaypoint, xy, SLE_UINT32, SLV_6, SL_MAX_VERSION), - SLE_CONDVAR(OldWaypoint, town_index, SLE_UINT16, SLV_12, SLV_122), + SLE_CONDVAR(OldWaypoint, xy, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_MULTIPLE_ROAD_STOPS), + SLE_CONDVAR(OldWaypoint, xy, SLE_UINT32, SLV_MULTIPLE_ROAD_STOPS, SL_MAX_VERSION), + SLE_CONDVAR(OldWaypoint, town_index, SLE_UINT16, SLV_LINK_WAYPOINT_TO_TOWN, SLV_122), SLE_CONDREF(OldWaypoint, town, REF_TOWN, SLV_122, SL_MAX_VERSION), - SLE_CONDVAR(OldWaypoint, town_cn, SLE_FILE_U8 | SLE_VAR_U16, SLV_12, SLV_89), + SLE_CONDVAR(OldWaypoint, town_cn, SLE_FILE_U8 | SLE_VAR_U16, SLV_LINK_WAYPOINT_TO_TOWN, SLV_89), SLE_CONDVAR(OldWaypoint, town_cn, SLE_UINT16, SLV_89, SL_MAX_VERSION), SLE_CONDVAR(OldWaypoint, string_id, SLE_STRINGID, SL_MIN_VERSION, SLV_84), SLE_CONDSSTR(OldWaypoint, name, SLE_STR, SLV_84, SL_MAX_VERSION), SLE_VAR(OldWaypoint, delete_ctr, SLE_UINT8), - SLE_CONDVAR(OldWaypoint, build_date, SLE_FILE_U16 | SLE_VAR_I32, SLV_3, SLV_31), + SLE_CONDVAR(OldWaypoint, build_date, SLE_FILE_U16 | SLE_VAR_I32, SLV_BIGGER_STATION_VARIABLES, SLV_31), SLE_CONDVAR(OldWaypoint, build_date, SLE_INT32, SLV_31, SL_MAX_VERSION), - SLE_CONDVAR(OldWaypoint, localidx, SLE_UINT8, SLV_3, SL_MAX_VERSION), - SLE_CONDVAR(OldWaypoint, grfid, SLE_UINT32, SLV_17, SL_MAX_VERSION), + SLE_CONDVAR(OldWaypoint, localidx, SLE_UINT8, SLV_BIGGER_STATION_VARIABLES, SL_MAX_VERSION), + SLE_CONDVAR(OldWaypoint, grfid, SLE_UINT32, SLV_STORE_WAYPOINT_ID_IN_MAP, SL_MAX_VERSION), SLE_CONDVAR(OldWaypoint, owner, SLE_UINT8, SLV_101, SL_MAX_VERSION), }; @@ -208,7 +208,7 @@ struct CHKPChunkHandler : ChunkHandler { for (OldWaypoint &wp : _old_waypoints) { SlObject(&wp, _old_waypoint_desc); - if (IsSavegameVersionBefore(SLV_12)) { + if (IsSavegameVersionBefore(SLV_LINK_WAYPOINT_TO_TOWN)) { wp.town_cn = (wp.string_id & 0xC000) == 0xC000 ? (wp.string_id >> 8) & 0x3F : 0; wp.town = ClosestTownFromTile(wp.xy, UINT_MAX); } else if (IsSavegameVersionBefore(SLV_122)) { diff --git a/src/table/settings/old_gameopt_settings.ini b/src/table/settings/old_gameopt_settings.ini index 001681f539..307e553843 100644 --- a/src/table/settings/old_gameopt_settings.ini +++ b/src/table/settings/old_gameopt_settings.ini @@ -76,7 +76,7 @@ flags = SettingFlag::NotInConfig var = _old_diff_custom length = 17 def = """" -to = SLV_4 +to = SLV_TOWN_TOLERANCE_PAUSE_MODE [SDTG_LIST] name = ""diff_custom"" @@ -88,7 +88,7 @@ var = _old_diff_custom length = 18 def = """" full = nullptr -from = SLV_4 +from = SLV_TOWN_TOLERANCE_PAUSE_MODE [SDTG_VAR] name = ""diff_level""