summaryrefslogtreecommitdiff
path: root/src/train.h
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2009-05-26 22:10:13 +0000
committersmatz <smatz@openttd.org>2009-05-26 22:10:13 +0000
commit7ee882d03f4c41d8659ed82fd5be0d0efbae0a0c (patch)
tree7107a4626a58464bd677e9fb8f7576cadf1b8bf2 /src/train.h
parentaa546e513f6b121377fd1b6cad1b727f89b66528 (diff)
downloadopenttd-7ee882d03f4c41d8659ed82fd5be0d0efbae0a0c.tar.xz
(svn r16441) -Codechange: new class SpecializedVehicle used as superclass for all vehicle types
Diffstat (limited to 'src/train.h')
-rw-r--r--src/train.h10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/train.h b/src/train.h
index fb99e730e..a96ccb3f2 100644
--- a/src/train.h
+++ b/src/train.h
@@ -301,7 +301,7 @@ struct TrainCache {
*
* As side-effect the vehicle type is set correctly.
*/
-struct Train : public Vehicle {
+struct Train : public SpecializedVehicle<Train, VEH_TRAIN> {
TrainCache tcache;
/* Link between the two ends of a multiheaded engine */
@@ -338,14 +338,10 @@ struct Train : public Vehicle {
Trackdir GetVehicleTrackdir() const;
TileIndex GetOrderStationLocation(StationID station);
bool FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse);
- Train *First() { return (Train *)this->Vehicle::First(); }
- Train *First() const { return (Train *)this->Vehicle::First(); }
- Train *Next() { return (Train *)this->Vehicle::Next(); }
- Train *Next() const { return (Train *)this->Vehicle::Next(); }
- Train *Previous() { return (Train *)this->Vehicle::Previous(); }
- Train *Previous() const { return (Train *)this->Vehicle::Previous(); }
};
+#define FOR_ALL_TRAINS(var) FOR_ALL_VEHICLES_OF_TYPE(Train, var)
+
/**
* Get the next part of a multi-part engine.
* Will only work on a multi-part engine (EngineHasArticPart(v) == true),