(svn r19337) -Codechange: Create the GroundVehicle class.

This commit is contained in:
terkhen 2010-03-06 12:41:18 +00:00
parent b5714c3597
commit f428102092
5 changed files with 42 additions and 3 deletions

View File

@ -1027,6 +1027,10 @@
RelativePath=".\..\src\graph_gui.h"
>
</File>
<File
RelativePath=".\..\src\ground_vehicle.hpp"
>
</File>
<File
RelativePath=".\..\src\group.h"
>

View File

@ -1024,6 +1024,10 @@
RelativePath=".\..\src\graph_gui.h"
>
</File>
<File
RelativePath=".\..\src\ground_vehicle.hpp"
>
</File>
<File
RelativePath=".\..\src\group.h"
>

View File

@ -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

30
src/ground_vehicle.hpp Normal file
View File

@ -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 */

View File

@ -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(); }