src/vehicle.cpp
changeset 7998 f1a308b61b8f
parent 7995 6c22a5f9e281
child 8008 82de75c83c3e
--- a/src/vehicle.cpp	Fri Aug 31 17:09:13 2007 +0000
+++ b/src/vehicle.cpp	Fri Aug 31 17:13:39 2007 +0000
@@ -91,8 +91,10 @@
 
 bool VehicleNeedsService(const Vehicle *v)
 {
-	if (v->vehstatus & VS_CRASHED)
-		return false; // Crashed vehicles don't need service anymore
+	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 (_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 */