diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index b1b9bcf1de..77e0e6ba36 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1891,6 +1891,9 @@ CommandCost CmdModifyOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 order->SetRefit(CT_NO_REFIT); order->SetLoadType(OLF_LOAD_IF_POSSIBLE); order->SetUnloadType(OUF_UNLOAD_IF_POSSIBLE); + if (order->IsWaitTimetabled() || order->GetWaitTime() > 0) { + DoCommandEx(tile, v->index | (MTF_WAIT_TIME << 28) | (1 << 31), 0, p3, flags, CMD_CHANGE_TIMETABLE); + } } break; diff --git a/src/timetable_cmd.cpp b/src/timetable_cmd.cpp index 4b02c7321b..a53971bdfc 100644 --- a/src/timetable_cmd.cpp +++ b/src/timetable_cmd.cpp @@ -206,7 +206,10 @@ CommandCost CmdChangeTimetable(TileIndex tile, DoCommandFlag flags, uint32 p1, u if (wait_time != order->GetWaitTime() || leave_type != order->GetLeaveType()) { switch (order->GetType()) { case OT_GOTO_STATION: - if (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) return_cmd_error(STR_ERROR_TIMETABLE_NOT_STOPPING_HERE); + if (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) { + if (mtf == MTF_WAIT_TIME && clear_field) break; + return_cmd_error(STR_ERROR_TIMETABLE_NOT_STOPPING_HERE); + } break; case OT_GOTO_DEPOT: