(svn r9754) -Codechange: make classes for all vehicle types, so we can make nicer/better maintainable code, i.e. virtual methods instead of switches.
This commit is contained in:
@@ -22,4 +22,23 @@ static inline bool IsRoadVehInDepotStopped(const Vehicle* v)
|
||||
void CcBuildRoadVeh(bool success, TileIndex tile, uint32 p1, uint32 p2);
|
||||
void CcCloneRoadVeh(bool success, TileIndex tile, uint32 p1, uint32 p2);
|
||||
|
||||
|
||||
/**
|
||||
* This class 'wraps' Vehicle; you do not actually instantiate this class.
|
||||
* You create a Vehicle using AllocateVehicle, so it is added to the pool
|
||||
* and you reinitialize that to a Train using:
|
||||
* v = new (v) RoadVehicle();
|
||||
*
|
||||
* As side-effect the vehicle type is set correctly.
|
||||
*/
|
||||
struct RoadVehicle : public Vehicle {
|
||||
/** Initializes the Vehicle to a road vehicle */
|
||||
RoadVehicle() { this->type = VEH_ROAD; }
|
||||
|
||||
/** We want to 'destruct' the right class. */
|
||||
virtual ~RoadVehicle() {}
|
||||
|
||||
const char *GetTypeString() { return "road vehicle"; }
|
||||
};
|
||||
|
||||
#endif /* ROADVEH_H */
|
||||
|
||||
Reference in New Issue
Block a user