|
@@ -30,24 +30,25 @@ enum DisasterSubType {
|
|
|
ST_BIG_UFO_DESTROYER, ///< Aircraft the will bomb the big UFO
|
|
|
ST_BIG_UFO_DESTROYER_SHADOW, ///< Shadow of the aircraft.
|
|
|
ST_SMALL_SUBMARINE, ///< Small submarine, pops up in the oceans but doesn't do anything
|
|
|
ST_BIG_SUBMARINE, ///< Big submarine, pops up in the oceans but doesn't do anything
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* Disasters, like submarines, skyrangers and their shadows, belong to this class.
|
|
|
*/
|
|
|
struct DisasterVehicle FINAL : public SpecializedVehicle<DisasterVehicle, VEH_DISASTER> {
|
|
|
SpriteID image_override; ///< Override for the default disaster vehicle sprite.
|
|
|
VehicleID big_ufo_destroyer_target; ///< The big UFO that this destroyer is supposed to bomb.
|
|
|
byte flags; ///< Flags about the state of the vehicle, @see AirVehicleFlags
|
|
|
|
|
|
/** For use by saveload. */
|
|
|
DisasterVehicle() : SpecializedVehicleBase() {}
|
|
|
DisasterVehicle(int x, int y, Direction direction, DisasterSubType subtype, VehicleID big_ufo_destroyer_target = VEH_INVALID);
|
|
|
/** We want to 'destruct' the right class. */
|
|
|
virtual ~DisasterVehicle() {}
|
|
|
|
|
|
void UpdatePosition(int x, int y, int z);
|
|
|
void UpdateDeltaXY(Direction direction);
|
|
|
void UpdateImage();
|
|
|
bool Tick();
|
|
|
};
|