From 6aeeeb9012cd4f8d69d0337c930a38c9eb351786 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 23 Aug 2008 23:31:27 +0000 Subject: [PATCH] (svn r14149) -Fix: When selling the front engine of a train consist with another engine at the second position, not all 'important' data was copied to the new head. --- src/train_cmd.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 77d1be499c..42e1d02ffc 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1421,20 +1421,20 @@ CommandCost CmdSellRailWagon(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) * promote it as a new train, retaining the unitnumber, orders */ if (new_f != NULL && IsTrainEngine(new_f)) { switch_engine = true; - /* Copy important data from the front engine */ - new_f->unitnumber = first->unitnumber; - new_f->current_order = first->current_order; - new_f->cur_order_index = first->cur_order_index; - new_f->orders = first->orders; - new_f->num_orders = first->num_orders; /* Make sure the group counts stay correct. */ new_f->group_id = first->group_id; first->group_id = DEFAULT_GROUP; + /* Copy orders (by sharing) */ + new_f->orders = first->orders; + new_f->num_orders = first->num_orders; new_f->AddToShared(first); DeleteVehicleOrders(first); + /* Copy other important data from the front engine */ + new_f->CopyVehicleConfigAndStatistics(first); + /* If we deleted a window then open a new one for the 'new' train */ if (IsLocalPlayer() && w != NULL) ShowVehicleViewWindow(new_f); }