update current_order on all affected shared vehicles when timetable changed diff -r 1f1f5558ca20 src/timetable_cmd.cpp --- a/src/timetable_cmd.cpp Tue Aug 19 10:55:33 2008 +0000 +++ b/src/timetable_cmd.cpp Tue Aug 19 20:43:27 2008 +0200 @@ -24,15 +24,14 @@ static void ChangeTimetable(Vehicle *v, order->wait_time = time; } - if (v->cur_order_index == order_number && v->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) { - if (is_journey) { - v->current_order.travel_time = time; - } else { - v->current_order.wait_time = time; - } - } - - for (v = v->FirstShared(); v != NULL; v = v->NextShared()) { + for (v = v->FirstShared(); v != NULL; v = v->NextShared()) { + if (v->cur_order_index == order_number && v->current_order.Equals(*order)) { + if (is_journey) { + v->current_order.travel_time = time; + } else { + v->current_order.wait_time = time; + } + } InvalidateWindow(WC_VEHICLE_TIMETABLE, v->index); } }