From 62a2dff61e5e41805bd85dded45bf11ba91611c8 Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 28 May 2009 21:12:54 +0000 Subject: [PATCH] (svn r16457) -Fix [FS#2925]: skipping a 'nearest depot order' because none could be found could cause multiple orders to get skipped --- src/order_cmd.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index c367a9e871..06f7029cc3 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1628,8 +1628,15 @@ bool UpdateOrderDest(Vehicle *v, const Order *order, int conditional_depth) } } } else { + if (conditional_depth > v->GetNumOrders()) return false; + UpdateVehicleTimetable(v, true); v->IncrementOrderIndex(); + + /* Get the current order */ + const Order *order = v->GetOrder(v->cur_order_index); + v->current_order = *order; + return UpdateOrderDest(v, order, conditional_depth + 1); } } else if (v->type != VEH_AIRCRAFT) { v->dest_tile = Depot::Get(order->GetDestination())->xy;