summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--projects/openttd_vs80.vcproj4
-rw-r--r--projects/openttd_vs90.vcproj4
-rw-r--r--source.list1
-rw-r--r--src/ground_vehicle.hpp30
-rw-r--r--src/train.h6
5 files changed, 42 insertions, 3 deletions
diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj
index d7a5ffc52..3bd155680 100644
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -1028,6 +1028,10 @@
>
</File>
<File
+ RelativePath=".\..\src\ground_vehicle.hpp"
+ >
+ </File>
+ <File
RelativePath=".\..\src\group.h"
>
</File>
diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj
index 9021d6294..f95dd212a 100644
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -1025,6 +1025,10 @@
>
</File>
<File
+ RelativePath=".\..\src\ground_vehicle.hpp"
+ >
+ </File>
+ <File
RelativePath=".\..\src\group.h"
>
</File>
diff --git a/source.list b/source.list
index adae228ba..66c121688 100644
--- a/source.list
+++ b/source.list
@@ -166,6 +166,7 @@ gfx_func.h
gfx_type.h
gfxinit.h
graph_gui.h
+ground_vehicle.hpp
group.h
group_gui.h
group_type.h
diff --git a/src/ground_vehicle.hpp b/src/ground_vehicle.hpp
new file mode 100644
index 000000000..e852fcee2
--- /dev/null
+++ b/src/ground_vehicle.hpp
@@ -0,0 +1,30 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file ground_vehicle.hpp Base class and functions for all vehicles that move through ground. */
+
+#ifndef GROUND_VEHICLE_HPP
+#define GROUND_VEHICLE_HPP
+
+#include "vehicle_base.h"
+
+/**
+ * Base class for all vehicles that move through ground.
+ */
+template <class T, VehicleType Type>
+struct GroundVehicle : public SpecializedVehicle<T, Type> {
+
+ /**
+ * The constructor at SpecializedVehicle must be called.
+ */
+ GroundVehicle() : SpecializedVehicle<T, Type>() {}
+
+};
+
+#endif /* GROUND_VEHICLE_HPP */
diff --git a/src/train.h b/src/train.h
index 70eed6854..89d9ce63c 100644
--- a/src/train.h
+++ b/src/train.h
@@ -12,12 +12,12 @@
#ifndef TRAIN_H
#define TRAIN_H
-#include "vehicle_base.h"
#include "newgrf_engine.h"
#include "cargotype.h"
#include "rail.h"
#include "engine_base.h"
#include "rail_map.h"
+#include "ground_vehicle.hpp"
struct Train;
@@ -111,7 +111,7 @@ enum AccelStatus {
/**
* 'Train' is either a loco or a wagon.
*/
-struct Train : public SpecializedVehicle<Train, VEH_TRAIN> {
+struct Train : public GroundVehicle<Train, VEH_TRAIN> {
TrainCache tcache;
/* Link between the two ends of a multiheaded engine */
@@ -129,7 +129,7 @@ struct Train : public SpecializedVehicle<Train, VEH_TRAIN> {
uint16 wait_counter;
/** We don't want GCC to zero our struct! It already is zeroed and has an index! */
- Train() : SpecializedVehicle<Train, VEH_TRAIN>() {}
+ Train() : GroundVehicle<Train, VEH_TRAIN>() {}
/** We want to 'destruct' the right class. */
virtual ~Train() { this->PreDestructor(); }