diff options
-rw-r--r-- | src/roadveh_cmd.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 573182133..21bfb7df5 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -1719,7 +1719,7 @@ again: v->u.road.frame == RVC_DRIVE_THROUGH_STOP_FRAME))) { RoadStop *rs = GetRoadStopByTile(v->tile, GetRoadStopType(v->tile)); - Station* st = GetStationByTile(v->tile); + Station *st = GetStationByTile(v->tile); /* Vehicle is at the stop position (at a bay) in a road stop. * Note, if vehicle is loading/unloading it has already been handled, @@ -1754,19 +1754,13 @@ again: v->last_station_visited = st->index; - if (IsDriveThroughStopTile(v->tile) || v->current_order.GetDestination() == st->index) { + if (IsDriveThroughStopTile(v->tile) || (v->current_order.IsType(OT_GOTO_STATION) && v->current_order.GetDestination() == st->index)) { RoadVehArrivesAt(v, st); v->BeginLoading(); - } else { - v->current_order.MakeLeaveStation(); - InvalidateVehicleOrder(v); + return false; } - - return false; - } - - /* Vehicle is ready to leave a bay in a road stop */ - if (!v->current_order.IsType(OT_GOTO_DEPOT)) { + } else { + /* Vehicle is ready to leave a bay in a road stop */ if (rs->IsEntranceBusy()) { /* Road stop entrance is busy, so wait as there is nowhere else to go */ v->cur_speed = 0; |