OpenTTD Source  20241124-master-g9399a92a4f
disaster_vehicle.h
Go to the documentation of this file.
1 /*
2  * This file is part of OpenTTD.
3  * 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.
4  * 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.
5  * 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/>.
6  */
7 
10 #ifndef DISASTER_VEHICLE_H
11 #define DISASTER_VEHICLE_H
12 
13 #include "vehicle_base.h"
14 
32 };
33 
37 struct DisasterVehicle final : public SpecializedVehicle<DisasterVehicle, VEH_DISASTER> {
40  uint8_t flags;
41  uint16_t state;
42 
47  virtual ~DisasterVehicle() = default;
48 
49  void UpdatePosition(int x, int y, int z);
50  void UpdateDeltaXY() override;
51  void UpdateImage();
52  bool Tick() override;
53 };
54 
55 #endif /* DISASTER_VEHICLE_H */
Direction
Defines the 8 directions on the map.
DisasterSubType
Different sub types of disaster vehicles.
@ ST_ZEPPELINER_SHADOW
Shadow of the zeppelin.
@ ST_HELICOPTER_SHADOW
Shadow of helicopter.
@ ST_SMALL_UFO_SHADOW
Shadow of small UFO.
@ ST_SMALL_UFO
Small UFO, tries to find a road vehicle to destroy.
@ ST_BIG_UFO
Big UFO, finds a piece of railroad to "park" on.
@ ST_BIG_UFO_SHADOW
Shadow of the big UFO.
@ ST_ZEPPELINER
Zeppelin, crashes at airports.
@ ST_BIG_UFO_DESTROYER_SHADOW
Shadow of the aircraft.
@ ST_BIG_UFO_DESTROYER
Aircraft the will bomb the big UFO.
@ ST_BIG_SUBMARINE
Big submarine, pops up in the oceans but doesn't do anything.
@ ST_SMALL_SUBMARINE
Small submarine, pops up in the oceans but doesn't do anything.
@ ST_HELICOPTER
Helicopter destroying a factory.
@ ST_AIRPLANE
Airplane destroying an oil refinery.
@ ST_HELICOPTER_ROTORS
Rotors of helicopter.
@ ST_AIRPLANE_SHADOW
Shadow of airplane.
uint32_t SpriteID
The number of a sprite, without mapping bits and colourtables.
Definition: gfx_type.h:18
Disasters, like submarines, skyrangers and their shadows, belong to this class.
void UpdateDeltaXY() override
Updates the x and y offsets and the size of the sprite used for this vehicle.
SpriteID image_override
Override for the default disaster vehicle sprite.
DisasterVehicle()
For use by saveload.
virtual ~DisasterVehicle()=default
We want to 'destruct' the right class.
VehicleID big_ufo_destroyer_target
The big UFO that this destroyer is supposed to bomb.
bool Tick() override
Calls the tick handler of the vehicle.
uint8_t flags
Flags about the state of the vehicle,.
uint16_t state
Action stage of the disaster vehicle.
Class defining several overloaded accessors so we don't have to cast vehicle types that often.
Direction direction
facing
Definition: vehicle_base.h:307
uint8_t subtype
subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubty...
Definition: vehicle_base.h:355
void UpdatePosition()
Update the position of the vehicle.
Definition: vehicle.cpp:1693
Base class for all vehicles.
@ VEH_INVALID
Non-existing type of vehicle.
Definition: vehicle_type.h:35
uint32_t VehicleID
The type all our vehicle IDs have.
Definition: vehicle_type.h:16