summaryrefslogtreecommitdiff
path: root/src/train_cmd.cpp
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2009-07-02 12:10:39 +0000
committersmatz <smatz@openttd.org>2009-07-02 12:10:39 +0000
commit6a0855f0d1cd953c8774a03a1abc06553310f1a5 (patch)
treec97c8f2c0ef33f4795f38083438e44185de9f248 /src/train_cmd.cpp
parent4d14c1b534947ed38780995af4d68bd67b4ae095 (diff)
downloadopenttd-6a0855f0d1cd953c8774a03a1abc06553310f1a5.tar.xz
(svn r16723) -Codechange: make GetNextArticPart(), GetLastEnginePart(), GetNextVehicle(), GetPrevVehicle(), GetNextUnit(), GetPrevUnit() members of Train
Diffstat (limited to 'src/train_cmd.cpp')
-rw-r--r--src/train_cmd.cpp38
1 files changed, 20 insertions, 18 deletions
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp
index 93af6877a..f13bc9865 100644
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -968,7 +968,7 @@ static Train *UnlinkWagon(Train *v, Train *first)
{
/* 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, Train *first)
}
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 *v)
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 tile, DoCommandFlag flags, uint32 p1, u
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 tile, DoCommandFlag flags, uint32 p1, u
* 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 tile, DoCommandFlag flags, uint32 p1, u
}
} 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 tile, DoCommandFlag flags, uint32 p1, u
/* 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 tile, DoCommandFlag flags, uint32 p1, u
/* 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 tile, DoCommandFlag flags, uint32 p1, u
/* 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 tile, DoCommandFlag flags, uint32 p1, u
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 tile, DoCommandFlag flags, uint32 p1, u
{
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 tile, DoCommandFlag flags, uint32 p1, uin
/* 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 tile, DoCommandFlag flags, uint32 p1, uin
* 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 tile, DoCommandFlag flags, uint32 p1, uin
* 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;
}