Mercurial > hg > openttd
changeset 9992:c6f421e5a733 draft
(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.
author | frosch <frosch@openttd.org> |
---|---|
date | Sat, 23 Aug 2008 23:31:27 +0000 |
parents | 82c0a9b867a3 |
children | 9bd8842e9d02 |
files | src/train_cmd.cpp |
diffstat | 1 files changed, 6 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1421,20 +1421,20 @@ * 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); }