Fix savegames with incorrect signal always reserve through bits
See: #620
This commit is contained in:
@@ -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 },
|
||||
|
Reference in New Issue
Block a user