Mercurial > hg > openttd
changeset 9611:8ac3cfc62291 draft
(svn r13664) -Fix [FS#2117]: bus/truck forgetting go-to-depot order when entering a non-drivethrough road stop.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Mon, 30 Jun 2008 15:13:40 +0000 |
parents | 9fef7cbc9e5b |
children | dbe1767b17a7 |
files | src/roadveh_cmd.cpp |
diffstat | 1 files changed, 5 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -1719,7 +1719,7 @@ 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 @@ 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;