# HG changeset patch # User rubidium # Date 2009-12-11 19:28:28 # Node ID 6d17eb9472615210f102377db0b613e120c1c9de # Parent 94c7224364622bf10cc3eb52f0f7c0679de56710 (svn r18463) -Codechange: some simplifications for finding the end of a vehicle diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1402,9 +1402,7 @@ CommandCost CmdMoveRailVehicle(TileIndex if (move_chain) { /* unlink ALL wagons */ if (src != src_head) { - Train *v = src_head; - while (v->GetNextVehicle() != src) v = v->GetNextVehicle(); - v->GetLastEnginePart()->SetNext(NULL); + src->Previous()->SetNext(NULL); } else { InvalidateWindowData(WC_VEHICLE_DEPOT, src_head->tile); // We removed a line src_head = NULL; @@ -1463,8 +1461,8 @@ CommandCost CmdMoveRailVehicle(TileIndex { Train *v; - for (v = src; v->GetNextVehicle() != NULL; v = v->GetNextVehicle()) {} - v->GetLastEnginePart()->SetNext(dst->Next()); + for (v = src; v->Next() != NULL; v = v->Next()) {} + v->SetNext(dst->Next()); } dst->SetNext(src); }