From 708514dc35b7f079fdf1ff93ca0a630844117077 Mon Sep 17 00:00:00 2001 From: innocenat Date: Mon, 3 Jul 2017 16:49:58 +0700 Subject: [PATCH] Scheduled Dispatch: Fix bug resulting in a hang If a vechile order is decloned. --- src/order_cmd.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index c55ef402e1..453245a35d 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1132,6 +1132,11 @@ void InsertOrder(Vehicle *v, Order *new_o, VehicleOrderID sel_ord) static CommandCost DecloneOrder(Vehicle *dst, DoCommandFlag flags) { if (flags & DC_EXEC) { + /* Clear cheduled dispatch flag if any */ + if (HasBit(dst->vehicle_flags, VF_SCHEDULED_DISPATCH)) { + ClrBit(dst->vehicle_flags, VF_SCHEDULED_DISPATCH); + } + DeleteVehicleOrders(dst); InvalidateVehicleOrder(dst, VIWD_REMOVE_ALL_ORDERS); InvalidateWindowClassesData(GetWindowClassForVehicleType(dst->type), 0);