changeset 9977:52c0b911ba94 draft

(svn r14134) -Fix (r12667, r13579) [FS#2245]: Update 'current_order' when changing 'cur_order_index'.
author frosch <frosch@openttd.org>
date Sat, 23 Aug 2008 00:32:01 +0000
parents 352e0aecf28a
children 793681882d37
files src/order_cmd.cpp
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/order_cmd.cpp
+++ b/src/order_cmd.cpp
@@ -1628,6 +1628,8 @@
 			break;
 
 		case OT_CONDITIONAL: {
+			if (conditional_depth > v->num_orders) return false;
+
 			VehicleOrderID next_order = ProcessConditionalOrder(order, v);
 			if (next_order != INVALID_VEH_ORDER_ID) {
 				UpdateVehicleTimetable(v, false);
@@ -1638,12 +1640,12 @@
 				v->cur_order_index++;
 			}
 
-			if (conditional_depth > v->num_orders) return false;
-
 			/* Get the current order */
 			if (v->cur_order_index >= v->num_orders) v->cur_order_index = 0;
 
-			return UpdateOrderDest(v, GetVehicleOrder(v, v->cur_order_index), conditional_depth + 1);
+			const Order *order = GetVehicleOrder(v, v->cur_order_index);
+			v->current_order = *order;
+			return UpdateOrderDest(v, order, conditional_depth + 1);
 		}
 
 		default: