# HG changeset patch # User celestar # Date 2006-04-21 17:15:05 # Node ID 60e41251f988bcdb8196d1410cb13b2c9bc607a1 # Parent 2481f07556bf3b0ba4be1b4166ac67de61b61687 (svn r4501) -Fix: (FS#129) When, in a train that head multiple engines in front, the _first_ of those engines is sold, all the orders are copied to the second engine (to ensure "seamless" operation). However, during this operation, it was forgotten to update the prev_shared and next_shared pointers of the new head engine AND the next_shared and prev_shared of the share partners. diff --git a/train_cmd.c b/train_cmd.c --- a/train_cmd.c +++ b/train_cmd.c @@ -1317,6 +1317,16 @@ int32 CmdSellRailWagon(TileIndex tile, u new_f->current_order = first->current_order; new_f->cur_order_index = first->cur_order_index; new_f->orders = first->orders; + if (first->prev_shared != NULL) { + first->prev_shared->next_shared = new_f; + new_f->prev_shared = first->prev_shared; + } + + if (first->next_shared != NULL) { + first->next_shared->prev_shared = new_f; + new_f->next_shared = first->next_shared; + } + new_f->num_orders = first->num_orders; first->orders = NULL; // XXX - to not to delete the orders */ if (IsLocalPlayer()) ShowTrainViewWindow(new_f);