mirror of https://github.com/OpenTTD/OpenTTD
Delay the nearest depot order search for a day if the vehicle can't find its destination, which happens when it has already attempted to do so and failed to find a valid destination.pull/11695/head
parent
7a5106042f
commit
847f3f660d
|
@ -1961,6 +1961,10 @@ bool UpdateOrderDest(Vehicle *v, const Order *order, int conditional_depth, bool
|
||||||
}
|
}
|
||||||
|
|
||||||
if (v->current_order.GetDepotActionType() & ODATFB_NEAREST_DEPOT) {
|
if (v->current_order.GetDepotActionType() & ODATFB_NEAREST_DEPOT) {
|
||||||
|
/* If the vehicle can't find its destination, delay its next search.
|
||||||
|
* In case many vehicles are in this state, use the vehicle index to spread out pathfinder calls. */
|
||||||
|
if (v->dest_tile == 0 && TimerGameCalendar::date_fract != (v->index % Ticks::DAY_TICKS)) break;
|
||||||
|
|
||||||
/* We need to search for the nearest depot (hangar). */
|
/* We need to search for the nearest depot (hangar). */
|
||||||
ClosestDepot closestDepot = v->FindClosestDepot();
|
ClosestDepot closestDepot = v->FindClosestDepot();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue