diff options
author | rubidium <rubidium@openttd.org> | 2007-08-31 17:13:39 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-08-31 17:13:39 +0000 |
commit | 2c8e50f20c84f65b19bc1d983e2715f827ee19d8 (patch) | |
tree | 9b85848c6535d62d87e3afbd781847214c62b4e2 /src/roadveh_cmd.cpp | |
parent | 976ce8ad3f16f2e1f38672eae3eeb6700a920f72 (diff) | |
download | openttd-2c8e50f20c84f65b19bc1d983e2715f827ee19d8.tar.xz |
(svn r11017) -Codechange: unify determining whether a vehicle needs/can be service a little more.
Diffstat (limited to 'src/roadveh_cmd.cpp')
-rw-r--r-- | src/roadveh_cmd.cpp | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index ccb0c6962..137ecd77e 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -1841,29 +1841,15 @@ void RoadVehicle::Tick() static void CheckIfRoadVehNeedsService(Vehicle *v) { - const Depot* depot; - - if (_patches.servint_roadveh == 0) return; - if (!VehicleNeedsService(v)) return; - if (v->vehstatus & VS_STOPPED) return; - if (_patches.gotodepot && VehicleHasDepotOrders(v)) return; - - /* Don't interfere with a depot visit scheduled by the user, or a - * depot visit by the order list. */ - if (v->current_order.type == OT_GOTO_DEPOT && - (v->current_order.flags & (OF_HALT_IN_DEPOT | OF_PART_OF_ORDERS)) != 0) - return; - /* If we already got a slot at a stop, use that FIRST, and go to a depot later */ - if (v->u.road.slot != NULL) return; - + if (v->u.road.slot != NULL || _patches.servint_roadveh == 0 || !VehicleNeedsService(v)) return; if (v->IsInDepot()) { VehicleServiceInDepot(v); return; } /* XXX If we already have a depot order, WHY do we search over and over? */ - depot = FindClosestRoadDepot(v); + const Depot *depot = FindClosestRoadDepot(v); if (depot == NULL || DistanceManhattan(v->tile, depot->xy) > 12) { if (v->current_order.type == OT_GOTO_DEPOT) { |