mirror of https://github.com/OpenTTD/OpenTTD
(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.
parent
13d938ae3d
commit
6aeeeb9012
|
@ -1421,20 +1421,20 @@ CommandCost CmdSellRailWagon(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||||
* promote it as a new train, retaining the unitnumber, orders */
|
* promote it as a new train, retaining the unitnumber, orders */
|
||||||
if (new_f != NULL && IsTrainEngine(new_f)) {
|
if (new_f != NULL && IsTrainEngine(new_f)) {
|
||||||
switch_engine = true;
|
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. */
|
/* Make sure the group counts stay correct. */
|
||||||
new_f->group_id = first->group_id;
|
new_f->group_id = first->group_id;
|
||||||
first->group_id = DEFAULT_GROUP;
|
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);
|
new_f->AddToShared(first);
|
||||||
DeleteVehicleOrders(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 we deleted a window then open a new one for the 'new' train */
|
||||||
if (IsLocalPlayer() && w != NULL) ShowVehicleViewWindow(new_f);
|
if (IsLocalPlayer() && w != NULL) ShowVehicleViewWindow(new_f);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue