Mercurial > hg > openttd
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(); }