changeset 14749:bbedd3d60af9 draft

(svn r19337) -Codechange: Create the GroundVehicle class.
author terkhen <terkhen@openttd.org>
date Sat, 06 Mar 2010 12:41:18 +0000
parents 9ca905190d47
children bf6990330311
files projects/openttd_vs80.vcproj projects/openttd_vs90.vcproj source.list src/ground_vehicle.hpp src/train.h
diffstat 5 files changed, 42 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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>
--- 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>
--- a/source.list
+++ b/source.list
@@ -166,6 +166,7 @@
 gfx_type.h
 gfxinit.h
 graph_gui.h
+ground_vehicle.hpp
 group.h
 group_gui.h
 group_type.h
new file mode 100644
--- /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 */
--- 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 @@
 /**
  * '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 @@
 	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(); }