From 84c604cb949c2c36f97728849c5160af4a0e161a Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 19 Jan 2016 19:25:11 +0000 Subject: [PATCH] Fix auto timetable not being unset when sharing orders. Copy auto timetable when copying orders. Clear autofill timetable when sharing, or copying automated orders. --- src/order_cmd.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index b53a7da479..3163ff658a 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -1624,7 +1624,11 @@ CommandCost CmdCloneOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 /* Set automation bit if target has it. */ if (HasBit(src->vehicle_flags, VF_AUTOMATE_TIMETABLE)) { SetBit(dst->vehicle_flags, VF_AUTOMATE_TIMETABLE); + } else { + ClrBit(dst->vehicle_flags, VF_AUTOMATE_TIMETABLE); } + ClrBit(dst->vehicle_flags, VF_AUTOFILL_TIMETABLE); + ClrBit(dst->vehicle_flags, VF_AUTOFILL_PRES_WAIT_TIME); dst->ClearSeparation(); if (_settings_game.order.timetable_separation) ClrBit(dst->vehicle_flags, VF_TIMETABLE_STARTED); @@ -1693,6 +1697,15 @@ CommandCost CmdCloneOrder(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 dst->orders.list = new OrderList(first, dst); } + /* Set automation bit if target has it. */ + if (HasBit(src->vehicle_flags, VF_AUTOMATE_TIMETABLE)) { + SetBit(dst->vehicle_flags, VF_AUTOMATE_TIMETABLE); + ClrBit(dst->vehicle_flags, VF_AUTOFILL_TIMETABLE); + ClrBit(dst->vehicle_flags, VF_AUTOFILL_PRES_WAIT_TIME); + } else { + ClrBit(dst->vehicle_flags, VF_AUTOMATE_TIMETABLE); + } + InvalidateVehicleOrder(dst, VIWD_REMOVE_ALL_ORDERS); InvalidateWindowClassesData(GetWindowClassForVehicleType(dst->type), 0);