# HG changeset patch # User glx # Date 1189184495 0 # Node ID 8a7fb284410fac3803ae0488804c3a4f04b46479 # Parent 80ddda32859612a0b201c5ea37a6a137d623023f (svn r11052) -Fix (r11017)[FS#1210]: vehicles always skip service order diff -r 80ddda328596 -r 8a7fb284410f 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 */