diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -968,7 +968,7 @@ static Train *UnlinkWagon(Train *v, Trai { /* unlinking the first vehicle of the chain? */ if (v == first) { - v = GetNextVehicle(v); + v = v->GetNextVehicle(); if (v == NULL) return NULL; if (v->IsWagon()) v->SetFreeWagon(); @@ -982,8 +982,8 @@ static Train *UnlinkWagon(Train *v, Trai } Train *u; - for (u = first; GetNextVehicle(u) != v; u = GetNextVehicle(u)) {} - GetLastEnginePart(u)->SetNext(GetNextVehicle(v)); + for (u = first; u->GetNextVehicle() != v; u = u->GetNextVehicle()) {} + u->GetLastEnginePart()->SetNext(v->GetNextVehicle()); return first; } @@ -1034,7 +1034,7 @@ static void NormaliseTrainConsist(Train assert(v->IsFrontEngine()); - for (; v != NULL; v = GetNextVehicle(v)) { + for (; v != NULL; v = v->GetNextVehicle()) { if (!v->IsMultiheaded() || !v->IsEngine()) continue; /* make sure that there are no free cars before next engine */ @@ -1094,7 +1094,7 @@ CommandCost CmdMoveRailVehicle(TileIndex dst_head = dst->First(); if (dst_head->tile != src_head->tile) return CMD_ERROR; /* Now deal with articulated part of destination wagon */ - dst = GetLastEnginePart(dst); + dst = dst->GetLastEnginePart(); } else { dst_head = NULL; } @@ -1126,8 +1126,9 @@ CommandCost CmdMoveRailVehicle(TileIndex * row that are being moved. */ if (HasBit(p2, 0)) { const Train *u; - for (u = src_head; u != src && u != NULL; u = GetNextVehicle(u)) + for (u = src_head; u != src && u != NULL; u = u->GetNextVehicle()) { src_len--; + } } else { /* If moving only one vehicle, just count that. */ src_len = 1; @@ -1141,8 +1142,9 @@ CommandCost CmdMoveRailVehicle(TileIndex } } else { /* Abort if we're creating a new train on an existing row. */ - if (src_len > max_len && src == src_head && GetNextVehicle(src_head)->IsEngine()) + if (src_len > max_len && src == src_head && src_head->GetNextVehicle()->IsEngine()) { return_cmd_error(STR_ERROR_TRAIN_TOO_LONG); + } } } @@ -1157,7 +1159,7 @@ CommandCost CmdMoveRailVehicle(TileIndex /* When we move the front vehicle, the second vehicle might need a unitnumber */ if (!HasBit(p2, 0) && (src->IsFreeWagon() || (src->IsFrontEngine() && dst == NULL)) && (flags & DC_AUTOREPLACE) == 0) { - Train *second = GetNextUnit(src); + Train *second = src->GetNextUnit(); if (second != NULL && second->IsEngine() && GetFreeUnitNumber(VEH_TRAIN) > _settings_game.vehicle.max_trains) { return_cmd_error(STR_ERROR_TOO_MANY_VEHICLES_IN_GAME); } @@ -1268,7 +1270,7 @@ CommandCost CmdMoveRailVehicle(TileIndex /* If we move the front Engine and if the second vehicle is not an engine add the whole vehicle to the DEFAULT_GROUP */ if (src->IsFrontEngine() && !IsDefaultGroupID(src->group_id)) { - Train *v = GetNextVehicle(src); + Train *v = src->GetNextVehicle(); if (v != NULL && v->IsEngine()) { v->group_id = src->group_id; @@ -1280,8 +1282,8 @@ CommandCost CmdMoveRailVehicle(TileIndex /* unlink ALL wagons */ if (src != src_head) { Train *v = src_head; - while (GetNextVehicle(v) != src) v = GetNextVehicle(v); - GetLastEnginePart(v)->SetNext(NULL); + while (v->GetNextVehicle() != src) v = v->GetNextVehicle(); + v->GetLastEnginePart()->SetNext(NULL); } else { InvalidateWindowData(WC_VEHICLE_DEPOT, src_head->tile); // We removed a line src_head = NULL; @@ -1291,7 +1293,7 @@ CommandCost CmdMoveRailVehicle(TileIndex if (src_head == dst_head) dst_head = NULL; /* unlink single wagon from linked list */ src_head = UnlinkWagon(src, src_head); - GetLastEnginePart(src)->SetNext(NULL); + src->GetLastEnginePart()->SetNext(NULL); } if (dst == NULL) { @@ -1340,8 +1342,8 @@ CommandCost CmdMoveRailVehicle(TileIndex { Train *v; - for (v = src; GetNextVehicle(v) != NULL; v = GetNextVehicle(v)) {} - GetLastEnginePart(v)->SetNext(dst->Next()); + for (v = src; v->GetNextVehicle() != NULL; v = v->GetNextVehicle()) {} + v->GetLastEnginePart()->SetNext(dst->Next()); } dst->SetNext(src); } @@ -1460,7 +1462,7 @@ CommandCost CmdSellRailWagon(TileIndex t /* 2. We are selling the front vehicle, some special action might be required * here, so take attention */ if (v == first) { - Train *new_f = GetNextVehicle(first); + Train *new_f = first->GetNextVehicle(); /* 2.2 If there are wagons present after the deleted front engine, check * if the second wagon (which will be first) is an engine. If it is one, @@ -1521,7 +1523,7 @@ CommandCost CmdSellRailWagon(TileIndex t * If we encounter a matching rear-engine to a front-engine * earlier in the chain (before deletion), leave it alone */ for (Train *tmp; v != NULL; v = tmp) { - tmp = GetNextVehicle(v); + tmp = v->GetNextVehicle(); if (v->IsMultiheaded()) { if (v->IsEngine()) { @@ -1537,7 +1539,7 @@ CommandCost CmdSellRailWagon(TileIndex t * deleted here. However, because tmp has already * been set it needs to be updated now so that the * loop never sees the rear part. */ - if (tmp == rear) tmp = GetNextVehicle(tmp); + if (tmp == rear) tmp = tmp->GetNextVehicle(); if (flags & DC_EXEC) { first = UnlinkWagon(rear, first); @@ -4439,7 +4441,7 @@ Money Train::GetRunningCost() const if (v->IsMultiheaded()) cost_factor /= 2; cost += cost_factor * GetPriceByIndex(rvi->running_cost_class); - } while ((v = GetNextVehicle(v)) != NULL); + } while ((v = v->GetNextVehicle()) != NULL); return cost; }