diff options
-rw-r--r-- | projects/openttd_vs80.vcproj | 4 | ||||
-rw-r--r-- | projects/openttd_vs90.vcproj | 4 | ||||
-rw-r--r-- | source.list | 1 | ||||
-rw-r--r-- | src/ground_vehicle.hpp | 30 | ||||
-rw-r--r-- | src/train.h | 6 |
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(); } |