|
|
|
@ -182,7 +182,7 @@ public:
|
|
|
|
|
VehicleCache vcache; ///< Cache of often used calculated values
|
|
|
|
|
|
|
|
|
|
/** Create a new vehicle */
|
|
|
|
|
Vehicle();
|
|
|
|
|
Vehicle(VehicleType type = VEH_INVALID);
|
|
|
|
|
|
|
|
|
|
/** Destroy all stuff that (still) needs the virtual functions to work properly */
|
|
|
|
|
void PreDestructor();
|
|
|
|
@ -502,6 +502,11 @@ template <class T, VehicleType Type>
|
|
|
|
|
struct SpecializedVehicle : public Vehicle {
|
|
|
|
|
static const VehicleType EXPECTED_TYPE = Type; ///< Specialized type
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Set vehicle type correctly
|
|
|
|
|
*/
|
|
|
|
|
FORCEINLINE SpecializedVehicle<T, Type>() : Vehicle(Type) { }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the first vehicle in the chain
|
|
|
|
|
* @return first vehicle in the chain
|
|
|
|
@ -559,9 +564,6 @@ struct DisasterVehicle : public SpecializedVehicle<DisasterVehicle, VEH_DISASTER
|
|
|
|
|
uint16 image_override;
|
|
|
|
|
VehicleID big_ufo_destroyer_target;
|
|
|
|
|
|
|
|
|
|
/** Initializes the Vehicle to a disaster vehicle */
|
|
|
|
|
DisasterVehicle() { this->type = VEH_DISASTER; }
|
|
|
|
|
|
|
|
|
|
/** We want to 'destruct' the right class. */
|
|
|
|
|
virtual ~DisasterVehicle() {}
|
|
|
|
|
|
|
|
|
|