(svn r11052) -Fix (r11017)[FS#1210]: vehicles always skip service order
authorglx
Fri, 07 Sep 2007 17:01:35 +0000
changeset 8028 8a7fb284410f
parent 8027 80ddda328596
child 8029 c48a2a2c2c84
(svn r11052) -Fix (r11017)[FS#1210]: vehicles always skip service order
src/vehicle.cpp
--- a/src/vehicle.cpp	Thu Sep 06 03:02:38 2007 +0000
+++ b/src/vehicle.cpp	Fri Sep 07 17:01:35 2007 +0000
@@ -92,9 +92,11 @@
 bool VehicleNeedsService(const Vehicle *v)
 {
 	if (v->vehstatus & (VS_STOPPED | VS_CRASHED))       return false;
-	if (_patches.gotodepot && VehicleHasDepotOrders(v)) return false;
-	if (v->current_order.type == OT_LOADING)            return false;
-	if (v->current_order.type == OT_GOTO_DEPOT && v->current_order.flags & OF_HALT_IN_DEPOT) return false;
+	if (v->current_order.type != OT_GOTO_DEPOT || !(v->current_order.flags & OF_PART_OF_ORDERS)) { // Don't interfere with a depot visit by the order list
+		if (_patches.gotodepot && VehicleHasDepotOrders(v)) return false;
+		if (v->current_order.type == OT_LOADING)            return false;
+		if (v->current_order.type == OT_GOTO_DEPOT && v->current_order.flags & OF_HALT_IN_DEPOT) return false;
+	}
 
 	if (_patches.no_servicing_if_no_breakdowns && _opt.diff.vehicle_breakdowns == 0) {
 		return EngineHasReplacementForPlayer(GetPlayer(v->owner), v->engine_type, v->group_id);  /* Vehicles set for autoreplacing needs to go to a depot even if breakdowns are turned off */