summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2008-08-23 23:31:27 +0000
committerfrosch <frosch@openttd.org>2008-08-23 23:31:27 +0000
commitf932e81127d42a9c65d0fd4d749744ca362d29cb (patch)
tree20397b399e3908e20ff4b820f235167641a58546
parentb66b3937ed289c324a062ec990b783750a716683 (diff)
downloadopenttd-f932e81127d42a9c65d0fd4d749744ca362d29cb.tar.xz
(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.
-rw-r--r--src/train_cmd.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp
index 77d1be499..42e1d02ff 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);
}