OpenTTD Source 20260108-master-g8ba1860eaa
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 <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
6 */
7
10#ifndef DISASTER_VEHICLE_H
11#define DISASTER_VEHICLE_H
12
13#include "vehicle_base.h"
14
33
37struct DisasterVehicle final : public SpecializedVehicle<DisasterVehicle, VEH_DISASTER> {
39 VehicleID big_ufo_destroyer_target = VehicleID::Invalid();
40 uint8_t flags = 0;
41 uint16_t state = 0;
42
47 ~DisasterVehicle() override = 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:17
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(VehicleID index)
For use by saveload.
~DisasterVehicle() override=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.
const Tindex index
Index of this pool item.
Class defining several overloaded accessors so we don't have to cast vehicle types that often.
Direction direction
facing
uint8_t subtype
subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubty...
void UpdatePosition()
Update the position of the vehicle.
Definition vehicle.cpp:1663
Base class for all vehicles.