Fix savegames with incorrect signal always reserve through bits

See: #620
wip-string
Jonathan G Rennison 5 months ago
parent 8256bb8359
commit f3614c419d

@ -4347,7 +4347,8 @@ bool AfterLoadGame()
extern void YapfCheckRailSignalPenalties();
YapfCheckRailSignalPenalties();
UpdateExtraAspectsVariable();
bool update_always_reserve_through = SlXvIsFeaturePresent(XSLFI_REALISTIC_TRAIN_BRAKING, 8, 10);
UpdateExtraAspectsVariable(update_always_reserve_through);
if (_networking && !_network_server) {
SlProcessVENC();

@ -1892,7 +1892,7 @@ static bool DetermineExtraAspectsVariable()
return changed;
}
void UpdateExtraAspectsVariable()
void UpdateExtraAspectsVariable(bool update_always_reserve_through)
{
std::array<NewSignalStyleMapping, MAX_NEW_SIGNAL_STYLES> new_mapping;
DetermineSignalStyleMapping(new_mapping);
@ -1915,6 +1915,8 @@ void UpdateExtraAspectsVariable()
if (_extra_aspects > 0) UpdateAllSignalAspects();
UpdateAllBlockSignals();
MarkWholeScreenDirty();
} else if (update_always_reserve_through) {
UpdateAllSignalReserveThroughBits();
}
}

@ -195,7 +195,7 @@ void UpdateLookaheadCombinedNormalShuntSignalDeferred(TileIndex tile, Trackdir t
void FlushDeferredAspectUpdates();
void FlushDeferredDetermineCombineNormalShuntMode(Train *v);
void UpdateAllSignalAspects();
void UpdateExtraAspectsVariable();
void UpdateExtraAspectsVariable(bool update_always_reserve_through = false);
void InitialiseExtraAspectsVariable();
bool IsRailSpecialSignalAspect(TileIndex tile, Track track);

@ -157,7 +157,7 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = {
{ XSLFI_ANIMATED_TILE_EXTRA, XSCF_NULL, 1, 1, "animated_tile_extra", nullptr, nullptr, nullptr },
{ XSLFI_NEWGRF_INFO_EXTRA, XSCF_NULL, 1, 1, "newgrf_info_extra", nullptr, nullptr, nullptr },
{ XSLFI_INDUSTRY_CARGO_ADJ, XSCF_IGNORABLE_UNKNOWN, 1, 1, "industry_cargo_adj", nullptr, nullptr, nullptr },
{ XSLFI_REALISTIC_TRAIN_BRAKING, XSCF_NULL, 10, 10, "realistic_train_braking", nullptr, nullptr, "VLKA" },
{ XSLFI_REALISTIC_TRAIN_BRAKING, XSCF_NULL, 11, 11, "realistic_train_braking", nullptr, nullptr, "VLKA" },
{ XSLFI_INFLATION_FIXED_DATES, XSCF_IGNORABLE_ALL, 1, 1, "inflation_fixed_dates", nullptr, nullptr, nullptr },
{ XSLFI_WATER_FLOODING, XSCF_NULL, 2, 2, "water_flooding", nullptr, nullptr, nullptr },
{ XSLFI_MORE_HOUSES, XSCF_NULL, 2, 2, "more_houses", nullptr, nullptr, nullptr },

Loading…
Cancel
Save