diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index a033f409f9..5964637489 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -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;