diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 1d4d1282cf..4173d632c3 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -4952,6 +4952,18 @@ static bool TrainLocoHandler(Train *v, bool mode) if (v->current_order.IsType(OT_WAITING) && v->reverse_distance == 0) { v->HandleWaiting(false); if (v->current_order.IsType(OT_WAITING)) return true; + ProcessOrders(v); + if (IsRailWaypointTile(v->tile)) { + StationID station_id = GetStationIndex(v->tile); + if (v->current_order.ShouldStopAtStation(v, station_id, true)) { + UpdateVehicleTimetable(v, true); + v->last_station_visited = station_id; + SetWindowDirty(WC_VEHICLE_VIEW, v->index); + v->current_order.MakeWaiting(); + v->current_order.SetNonStopType(ONSF_NO_STOP_AT_ANY_STATION); + return true; + } + } } if (!mode) v->ShowVisualEffect();