Fix timetable durations when loading old saves

With version 1 of XSLFI_TT_WAIT_IN_DEPOT or without XSLFI_TIMETABLE_EXTRA
This commit is contained in:
Jonathan G Rennison
2024-02-20 00:33:57 +00:00
parent 0993622f09
commit 6e10f01f59

View File

@@ -3528,9 +3528,6 @@ bool AfterLoadGame()
order->SetTravelTimetabled(order->GetTravelTime() > 0);
order->SetWaitTimetabled(order->GetWaitTime() > 0);
}
for (OrderList *orderlist : OrderList::Iterate()) {
orderlist->RecalculateTimetableDuration();
}
} else if (SlXvIsFeatureMissing(XSLFI_TIMETABLE_EXTRA)) {
for (Order *order : Order::Iterate()) {
if (order->IsType(OT_CONDITIONAL)) {
@@ -3539,6 +3536,12 @@ bool AfterLoadGame()
}
}
if (SlXvIsFeaturePresent(XSLFI_TT_WAIT_IN_DEPOT, 1, 1) || IsSavegameVersionBefore(SLV_190) || SlXvIsFeatureMissing(XSLFI_TIMETABLE_EXTRA)) {
for (OrderList *orderlist : OrderList::Iterate()) {
orderlist->RecalculateTimetableDuration();
}
}
if (SlXvIsFeatureMissing(XSLFI_REVERSE_AT_WAYPOINT)) {
for (Train *t : Train::Iterate()) {
t->reverse_distance = 0;