diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ground_vehicle.hpp | 30 | ||||
-rw-r--r-- | src/train.h | 6 |
2 files changed, 33 insertions, 3 deletions
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(); } |