diff options
author | rubidium <rubidium@openttd.org> | 2008-06-30 15:13:40 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-06-30 15:13:40 +0000 |
commit | f06daceb164842557f861b253b35d51e4d3664e9 (patch) | |
tree | 52f5cfd63a70a45c369be2a335b616114c4b011b /src | |
parent | 4f5eae2789d8d6067af7242b451db0b86e950c01 (diff) | |
download | openttd-f06daceb164842557f861b253b35d51e4d3664e9.tar.xz |
(svn r13664) -Fix [FS#2117]: bus/truck forgetting go-to-depot order when entering a non-drivethrough road stop.
Diffstat (limited to 'src')
-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; |