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;