diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index a71df735d1..eadc547e29 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -657,6 +657,11 @@ CommandCost CmdStartStopVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, } else if (v->type != VEH_TRAIN) { v->cur_speed = 0; // trains can stop 'slowly' } + if (v->type == VEH_TRAIN && !(v->vehstatus & VS_STOPPED) && v->cur_speed == 0 && Train::From(v)->lookahead != nullptr) { + /* Starting train from stationary with a lookahead, refresh it */ + Train::From(v)->lookahead.reset(); + FillTrainReservationLookAhead(Train::From(v)); + } v->MarkDirty(); SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, WID_VV_START_STOP); SetWindowDirty(WC_VEHICLE_DEPOT, v->tile);