changeset 11850:c522c537333f draft

(svn r16240) -Fix: Make 'stop in depot'-orders only apply on the target depot, not those which are entered on the way to them.
author frosch <frosch@openttd.org>
date Wed, 06 May 2009 13:15:07 +0000
parents a90ffc1a219d
children 78901cd3230f
files src/vehicle.cpp
diffstat 1 files changed, 4 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -600,11 +600,8 @@
  */
 void VehicleEnteredDepotThisTick(Vehicle *v)
 {
-	/* Vehicle should stop in the depot if it was in 'stopping' state or
-	 * when the vehicle is ordered to halt in the depot. */
-	_vehicles_to_autoreplace[v] = !(v->vehstatus & VS_STOPPED) &&
-			(!v->current_order.IsType(OT_GOTO_DEPOT) ||
-			 !(v->current_order.GetDepotActionType() & ODATFB_HALT));
+	/* Vehicle should stop in the depot if it was in 'stopping' state */
+	_vehicles_to_autoreplace[v] = !(v->vehstatus & VS_STOPPED);
 
 	/* We ALWAYS set the stopped state. Even when the vehicle does not plan on
 	 * stopping in the depot, so we stop it to ensure that it will not reserve
@@ -1073,8 +1070,8 @@
 			v->cur_order_index++;
 		}
 		if (t.GetDepotActionType() & ODATFB_HALT) {
-			/* Force depot visit */
-			v->vehstatus |= VS_STOPPED;
+			/* Vehicles are always stopped on entering depots. Do not restart this one. */
+			_vehicles_to_autoreplace[v] = false;
 			if (v->owner == _local_company) {
 				StringID string;