|
OpenTTD Source
14.0-beta3
|
Go to the documentation of this file.
44 #include "table/strings.h"
125 if (ret.
Failed())
return ret;
131 if (ret.
Failed())
return ret;
162 bool IsPossibleDockingTile(
Tile t)
265 if (ret.
Failed())
return ret;
273 if (ret.
Failed())
return ret;
277 delete Depot::GetByTile(tile);
307 if (ret.
Failed())
return ret;
312 if (ret.
Failed())
return ret;
318 if (ret.
Failed())
return ret;
320 cost.
AddCost(_price[PR_BUILD_CANAL]);
330 if (ret.
Failed())
return ret;
332 cost.
AddCost(_price[PR_BUILD_CANAL]);
366 cost.
AddCost(_price[PR_BUILD_LOCK]);
381 if (ret.
Failed())
return ret;
390 if (ret.
Failed())
return ret;
405 MakeWaterKeepingClass(tile + delta,
GetTileOwner(tile + delta));
406 MakeWaterKeepingClass(tile - delta,
GetTileOwner(tile - delta));
483 if (ret.
Failed())
return ret;
499 if (_game_mode == GM_EDITOR) {
525 cost.
AddCost(_price[PR_BUILD_CANAL]);
542 Money base_cost =
IsCanal(tile) ? _price[PR_CLEAR_CANAL] : _price[PR_CLEAR_WATER];
551 if (ret.
Failed())
return ret;
556 if (ret.
Failed())
return ret;
576 if (ret.
Failed())
return ret;
592 { { 0, 0}, {0, 0}, { 0, 0}, {0, 0} },
593 { {-1, 0}, {0, 1}, { 1, 0}, {0, -1} },
594 { { 1, 0}, {0, -1}, {-1, 0}, {0, 1} },
605 return RemoveShipDepot(tile, flags);
625 default: NOT_REACHED();
635 default:
return false;
647 default:
return false;
680 default:
return false;
693 if (base != SPR_FLAT_WATER_TILE) {
713 if (base == 0) base = SPR_CANAL_DIKES_BASE;
715 feature = CF_RIVER_EDGE;
717 if (base == 0)
return;
767 SpriteID image = SPR_FLAT_WATER_TILE;
771 if (image == 0) image = SPR_FLAT_WATER_TILE;
795 uint tile_offs = offset + dtss->image.
sprite;
798 ti->
x + dtss->
delta_x, ti->
y + dtss->delta_y,
799 dtss->size_x, dtss->size_y,
800 dtss->size_z, ti->
z + dtss->
delta_z,
815 if (water_base == 0) {
817 water_base = SPR_CANALS_BASE;
820 if (image == SPR_FLAT_WATER_TILE) {
827 if (image < 5) image += water_base;
836 base = SPR_LOCK_BASE;
838 zoffs = ti->
z > z_threshold ? 24 : 0;
847 DrawWaterClassGround(ti);
851 static void DrawRiverWater(
const TileInfo *ti)
853 SpriteID image = SPR_FLAT_WATER_TILE;
855 uint edges_offset = 0;
861 case SLOPE_NW: image = SPR_WATER_SLOPE_Y_DOWN;
break;
862 case SLOPE_SW: image = SPR_WATER_SLOPE_X_UP;
break;
863 case SLOPE_SE: image = SPR_WATER_SLOPE_Y_UP;
break;
864 case SLOPE_NE: image = SPR_WATER_SLOPE_X_DOWN;
break;
865 default: image = SPR_FLAT_WATER_TILE;
break;
872 case SLOPE_SE: edges_offset += 12;
break;
873 case SLOPE_NE: offset += 1; edges_offset += 24;
break;
874 case SLOPE_SW: offset += 2; edges_offset += 36;
break;
875 case SLOPE_NW: offset += 3; edges_offset += 48;
break;
876 default: offset = 0;
break;
889 void DrawShoreTile(
Slope tileh)
893 static const byte tileh_to_shoresprite[32] = {
894 0, 1, 2, 3, 4, 16, 6, 7, 8, 9, 17, 11, 12, 13, 14, 0,
895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 10, 15, 0,
906 void DrawWaterClassGround(
const TileInfo *ti)
912 default: NOT_REACHED();
916 static void DrawTile_Water(
TileInfo *ti)
920 DrawWaterClassGround(ti);
925 DrawShoreTile(ti->
tileh);
940 void DrawShipDepotSprite(
int x,
int y,
Axis axis,
DepotPart part)
949 static int GetSlopePixelZ_Water(
TileIndex tile, uint x, uint y,
bool)
970 default: NOT_REACHED();
976 td->
str = STR_LAI_WATER_DESCRIPTION_SHIP_DEPOT;
979 default: NOT_REACHED();
992 uint pass = v->
Crash(
true);
997 AddTileNewsItem(STR_NEWS_DISASTER_FLOOD_VEHICLE,
NT_ACCIDENT, v->
tile);
1031 int z = *(
int*)data;
1032 if (v->
z_pos > z)
break;
1120 bool flooded =
false;
1198 default: NOT_REACHED();
1200 SetRailGroundType(tile, new_ground);
1218 default: NOT_REACHED();
1247 if (z_dest > 0)
continue;
1272 void ConvertGroundTilesIntoWaterTiles()
1325 if (
TileX(tile) == 0) {
1329 if (
TileY(tile) == 0) {
1336 static bool ClickTile_Water(
TileIndex tile)
1397 GetSlopePixelZ_Water,
1401 GetTileTrackStatus_Water,
1405 ChangeTileOwner_Water,
1408 GetFoundation_Water,
1409 TerraformTile_Water,
@ VEH_AIRCRAFT
Aircraft vehicle type.
static debug_inline uint TileY(TileIndex tile)
Get the Y component of a tile.
@ MP_CLEAR
A tile without any structures, i.e. grass, rocks, farm fields etc.
bool IsTileFlat(TileIndex tile, int *h)
Check if a given tile is flat.
@ FLOOD_DRYUP
The tile drys up if it is not constantly flooded from neighboured tiles.
TileIndexDiff TileOffsByDir(Direction dir)
Convert a Direction to a TileIndexDiff.
@ SLOPE_SE
south and east corner are raised
@ LOCK_PART_UPPER
Upper part of a lock.
@ TROPICZONE_DESERT
Tile is desert.
TileArea docking_station
Tile area the docking tiles cover.
Direction ReverseDir(Direction d)
Return the reverse of a direction.
bool IsInclinedSlope(Slope s)
Tests if a specific slope is an inclined slope.
@ TRACK_BIT_NONE
No track.
static Titem * Get(size_t index)
Returns Titem with given index.
TileIndex GetOtherBridgeEnd(TileIndex tile)
Starting at one bridge end finds the other bridge end.
Direction
Defines the 8 directions on the map.
@ DIR_BEGIN
Used to iterate.
int GetTileMaxZ(TileIndex t)
Get top height of the tile inside the map.
static constexpr bool IsHalftileSlope(Slope s)
Checks for non-continuous slope on halftile foundations.
static const SpriteID SPR_SHORE_BASE
shore tiles - action 05-0D
static SigSegState UpdateSignalsInBuffer(Owner owner)
Updates blocks in _globset buffer.
constexpr bool IsInsideMM(const T x, const size_t min, const size_t max) noexcept
Checks if a value is in an interval.
static Titem * GetIfValid(size_t index)
Returns Titem with given index.
static const CommandCost CMD_ERROR
Define a default return value for a failed command.
TreeGround GetTreeGround(Tile t)
Returns the groundtype for tree tiles.
@ TO_BUILDINGS
company buildings - depots, stations, HQ, ...
Tile information, used while rendering the tile.
WaterClass GetWaterClass(Tile t)
Get the water class at a tile.
Class to backup a specific variable and restore it later.
static debug_inline uint MaxX()
Gets the maximum X coordinate within the map, including MP_VOID.
byte GetLockPart(Tile t)
Get the part of a lock.
static void DrawWaterLock(const TileInfo *ti)
Draw a lock tile.
Owner owner[4]
Name of the owner(s)
Axis
Allow incrementing of DiagDirDiff variables.
@ SLOPE_NW
north and west corner are raised
static debug_inline bool IsPlainRail(Tile t)
Returns whether this is plain rails, with or without signals.
static void FloodVehicles(TileIndex tile)
Finds a vehicle to flood.
void AmbientSoundEffect(TileIndex tile)
Play an ambient sound effect for an empty tile.
bool IsWateredTile(TileIndex tile, Direction from)
return true if a tile is a water tile wrt.
@ DIAGDIR_END
Used for iterations.
bool IsTransparencySet(TransparencyOption to)
Check if the transparency option bit is set and if we aren't in the game menu (there's never transpar...
Tindex index
Index of this pool item.
virtual uint Crash(bool flooded=false)
Crash the (whole) vehicle chain.
Axis DiagDirToAxis(DiagDirection d)
Convert a DiagDirection to the axis.
bool FloodHalftile(TileIndex t)
Called from water_cmd if a non-flat rail-tile gets flooded and should be converted to shore.
SpriteID sprite
The 'real' sprite.
static CommandCost DoBuildLock(TileIndex tile, DiagDirection dir, DoCommandFlag flags)
Builds a lock.
constexpr TileIndex INVALID_TILE
The very nice invalid tile marker.
bool IsOilRig(Tile t)
Is tile t part of an oilrig?
@ SND_12_EXPLOSION
16 == 0x10 Destruction, crashes, disasters, ...
@ RAIL_GROUND_FENCE_VERT1
Grass with a fence at the eastern side.
static std::unique_ptr< TileIterator > Create(TileIndex corner1, TileIndex corner2, bool diagonal)
Create either an OrthogonalTileIterator or DiagonalTileIterator given the diagonal parameter.
uint GetCanalSpriteOffset(CanalFeature feature, TileIndex tile, uint cur_offset)
Get the new sprite offset for a water tile.
@ VETSB_CONTINUE
Bit sets of the above specified bits.
static void DrawWaterTileStruct(const TileInfo *ti, const DrawTileSeqStruct *dtss, SpriteID base, uint offset, PaletteID palette, CanalFeature feature)
Draw a build sprite sequence for water tiles.
uint GetPartialPixelZ(int x, int y, Slope corners)
Determines height at given coordinate of a slope.
void DrawBridgeMiddle(const TileInfo *ti)
Draw the middle bits of a bridge.
Wrapper class to abstract away the way the tiles are stored.
ClientSettings _settings_client
The current settings for this game.
@ RAIL_GROUND_FENCE_VERT2
Grass with a fence at the western side.
@ DC_NO_WATER
don't allow building on water
@ CFF_HAS_FLAT_SPRITE
Additional flat ground sprite in the beginning.
@ MP_INDUSTRY
Part of an industry.
@ TRANSPORT_WATER
Transport over water.
int y
Y position of the tile in unit coordinates.
void Add(TileIndex to_add)
Add a single tile to a tile area; enlarge if needed.
@ SLOPE_S
the south corner of the tile is raised
CompanyInfrastructure infrastructure
NOSAVE: Counts of company owned infrastructure.
bool IsWaterTile(Tile t)
Is it a water tile with plain water?
@ VEH_ROAD
Road vehicle type.
@ WATER_TILE_DEPOT
Water Depot.
Owner owner
Which company owns the vehicle?
Owner
Enum for all companies/owners.
@ EV_EXPLOSION_LARGE
Various explosions.
@ DC_EXEC
execute the given command
uint32_t PaletteID
The number of the palette.
@ WATER_CLASS_INVALID
Used for industry tiles on land (also for oilrig if newgrf says so).
Tile description for the 'land area information' tool.
@ SLOPE_E
the east corner of the tile is raised
DoCommandFlag
List of flags for a command.
Foundation
Enumeration for Foundations.
CommandCost CmdBuildLock(DoCommandFlag flags, TileIndex tile)
Builds a lock.
bool IsLock(Tile t)
Is there a lock on a given water tile?
CommandCost EnsureNoVehicleOnGround(TileIndex tile)
Ensure there is no vehicle at the ground at the given position.
@ AIR_SHADOW
shadow of the aircraft
Station * neutral_station
Associated neutral station.
@ TRACK_BIT_UPPER
Upper track.
bool Succeeded() const
Did this command succeed?
void MakeSea(Tile t)
Make a sea tile.
@ DEPOT_PART_NORTH
Northern part of a depot.
TrackStatus GetTileTrackStatus(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)
Returns information about trackdirs and signal states.
@ TRACK_BIT_RIGHT
Right track.
const AirportFTAClass * GetFTA() const
Get the finite-state machine for this airport or the finite-state machine for the dummy airport in ca...
bool IsCoast(Tile t)
Is it a coast tile?
TileIndex GetOtherShipDepotTile(Tile t)
Get the other tile of the ship depot.
TrackBits DiagDirToDiagTrackBits(DiagDirection diagdir)
Maps a (4-way) direction to the diagonal track bits incidating with that diagdir.
Slope tileh
Slope of the tile.
static debug_inline TileType GetTileType(Tile tile)
Get the tiletype of a given tile.
void MakeClear(Tile t, ClearGround g, uint density)
Make a clear tile.
bool IsInvisibilitySet(TransparencyOption to)
Check if the invisibility option bit is set and if we aren't in the game menu (there's never transpar...
PalSpriteID ground
Palette and sprite for the ground.
bool IsDock(Tile t)
Is tile t a dock tile?
TimerGameCalendar::Date build_date
Date of construction of tile contents.
Slope
Enumeration for the slope-type.
void MakeLock(Tile t, Owner o, DiagDirection d, WaterClass wc_lower, WaterClass wc_upper, WaterClass wc_middle)
Make a water lock.
#define return_cmd_error(errcode)
Returns from a function with a specific StringID as error.
TrackdirBits TrackBitsToTrackdirBits(TrackBits bits)
Converts TrackBits to TrackdirBits while allowing both directions.
TileIndexDiff ToTileIndexDiff(TileIndexDiffC tidc)
Return the offset between two tiles from a TileIndexDiffC struct.
DiagDirection GetLockDirection(Tile t)
Get the direction of the water lock.
@ EXPENSES_CONSTRUCTION
Construction costs.
static void NewEvent(CompanyID company, ScriptEvent *event)
Queue a new event for an AI.
Common return value for all commands.
WaterClass
classes of water (for WATER_TILE_CLEAR water tile type).
Iterable ensemble of each set bit in a value.
SoundSettings sound
sound effect settings
bool CircularTileSearch(TileIndex *tile, uint size, TestTileOnSearchProc proc, void *user_data)
Function performing a search around a center tile and going outward, thus in circle.
static Vehicle * FloodVehicleProc(Vehicle *v, void *data)
Flood a vehicle if we are allowed to flood it, i.e.
@ SLOPE_NE
north and east corner are raised
static Industry * GetByTile(TileIndex tile)
Get the industry of the given tile.
@ WATER_TILE_CLEAR
Plain water.
void DirtyCompanyInfrastructureWindows(CompanyID company)
Redraw all windows with company infrastructure counts.
TileIndex tile
Current tile index.
static void DrawCanalWater(TileIndex tile)
draw a canal styled water tile with dikes around
@ MP_OBJECT
Contains objects such as transmitters and owned land.
TransportType
Available types of transport.
@ VS_CRASHED
Vehicle is crashed.
int8_t delta_z
0x80 identifies child sprites
static const uint8_t _flood_from_dirs[]
Describes from which directions a specific slope can be flooded (if the tile is floodable at all).
@ TRACKDIR_BIT_NONE
No track build.
@ INVALID_OWNER
An invalid owner.
DiagDirection ReverseDiagDir(DiagDirection d)
Returns the reverse direction of the given DiagDirection.
bool Failed() const
Did this command fail?
@ WATER_CLASS_CANAL
Canal.
bool RiverModifyDesertZone(TileIndex tile, void *)
Callback to create non-desert around a river tile.
Airport airport
Tile area the airport covers.
@ LOCK_PART_MIDDLE
Middle part of a lock.
TileIndexDiff TileDiffXY(int x, int y)
Calculates an offset for the given coordinate(-offset).
GameSettings _settings_game
Game settings of a running game or the scenario editor.
bool IsTileOnWater(Tile t)
Tests if the tile was built on water.
WaterFeature _water_feature[CF_END]
Table of canal 'feature' sprite groups.
bool IsBridgeTile(Tile t)
checks if there is a bridge on this tile
static void NewEvent(class ScriptEvent *event)
Queue a new event for a Game Script.
bool IsTerminator() const
Check whether this is a sequence terminator.
CompanyID _local_company
Company controlled by the human player at this client. Can also be COMPANY_SPECTATOR.
@ TRACK_BIT_X
X-axis track.
IndustryID GetIndustryIndex(Tile t)
Get the industry ID of the given tile.
bool freeform_edges
allow terraforming the tiles at the map edges
SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile)
Lookup the base sprite to use for a canal.
Money GetCost() const
The costs as made up to this moment.
Slope GetTileSlope(TileIndex tile, int *h)
Return the slope of a given tile inside the map.
DiagDirection DirToDiagDir(Direction dir)
Convert a Direction to a DiagDirection.
Ground palette sprite of a tile, together with its sprite layout.
TimerGameCalendar::Date build_date
Date of construction.
Owner GetTileOwner(Tile tile)
Returns the owner of a tile.
@ INVALID_DIAGDIR
Flag for an invalid DiagDirection.
void DrawSprite(SpriteID img, PaletteID pal, int x, int y, const SubSprite *sub, ZoomLevel zoom)
Draw a sprite, not in a viewport.
@ MP_TUNNELBRIDGE
Tunnel entry/exit and bridge heads.
void MakeCanal(Tile t, Owner o, uint8_t random_bits)
Make a canal tile.
Finite sTate mAchine (FTA) of an airport.
bool disaster
Play disaster and accident sounds.
int32_t TileIndexDiff
An offset value between two tiles.
@ FOUNDATION_NONE
The tile has no foundation, the slope remains unchanged.
@ SLOPE_NS
north and south corner are raised
DiagDirection
Enumeration for diagonal directions.
static void MarkCanalsAndRiversAroundDirty(TileIndex tile)
Marks the tiles around a tile as dirty, if they are canals or rivers.
@ WATER_CLASS_RIVER
River.
Slope GetFoundationSlope(TileIndex tile, int *z)
Get slope of a tile on top of a (possible) foundation If a tile does not have a foundation,...
@ TRACK_BIT_ALL
All possible tracks.
@ SLOPE_HALFTILE_MASK
three bits used for halftile slopes
EffectVehicle * CreateEffectVehicleRel(const Vehicle *v, int x, int y, int z, EffectVehicleType type)
Create an effect vehicle above a particular vehicle.
TrackStatus CombineTrackStatus(TrackdirBits trackdirbits, TrackdirBits red_signals)
Builds a TrackStatus.
TrackBits TrackStatusToTrackBits(TrackStatus ts)
Returns the present-track-information of a TrackStatus.
void AddCost(const Money &cost)
Adds the given cost to the cost of the command.
@ TRACK_BIT_LOWER
Lower track.
void SetTreeGroundDensity(Tile t, TreeGround g, uint d)
Set the density and ground type of a tile with trees.
bool IsValidAxis(Axis d)
Checks if an integer value is a valid Axis.
DepotPart GetShipDepotPart(Tile t)
Get the part of a ship depot.
TileIndex TileAddByDir(TileIndex tile, Direction dir)
Adds a Direction to a tile.
Set of callback functions for performing tile operations of a given tile type.
void SetTileOwner(Tile tile, Owner owner)
Sets the owner of a tile.
uint32_t SpriteID
The number of a sprite, without mapping bits and colourtables.
@ DC_BANKRUPT
company bankrupts, skip money check, skip vehicle on tile check in some cases
void TileLoop_Water(TileIndex tile)
Let a water tile floods its diagonal adjoining tiles called from tunnelbridge_cmd,...
RailGroundType
The ground 'under' the rail.
bool HasTileWaterClass(Tile t)
Checks whether the tile has an waterclass associated.
int32_t z_pos
z coordinate.
void AddSortableSpriteToDraw(SpriteID image, PaletteID pal, int x, int y, int w, int h, int dz, int z, bool transparent, int bb_offset_x, int bb_offset_y, int bb_offset_z, const SubSprite *sub)
Draw a (transparent) sprite at given coordinates with a given bounding box.
@ TREE_GROUND_GRASS
normal grass
@ SLOPE_W
the west corner of the tile is raised
bool IsValidTile(Tile tile)
Checks if a tile is valid.
TrackBits GetTrackBits(Tile tile)
Gets the track bits of the given tile.
@ RAIL_GROUND_WATER
Grass with a fence and shore or water on the free halftile.
TileIndexDiff TileOffsByDiagDir(DiagDirection dir)
Convert a DiagDirection to a TileIndexDiff.
@ MP_TREES
Tile got trees.
A pair-construct of a TileIndexDiff.
void CheckForDockingTile(TileIndex t)
Mark the supplied tile as a docking tile if it is suitable for docking.
byte delta_z
Z adjustment for helicopter pads.
@ DEPOT_PART_SOUTH
Southern part of a depot.
void MakeRiverAndModifyDesertZoneAround(TileIndex tile)
Make a river tile and remove desert directly around it.
void MakeDefaultName(T *obj)
Set the default name for a depot/waypoint.
CompanyID _current_company
Company currently doing an action.
@ NT_ACCIDENT
An accident or disaster has occurred.
static void FloodVehicle(Vehicle *v)
Handle the flooding of a vehicle.
@ FLOOD_PASSIVE
The tile does not actively flood neighboured tiles, but it prevents them from drying up.
static uint MaxY()
Gets the maximum Y coordinate within the map, including MP_VOID.
bool IsBuoy(Tile t)
Is tile t a buoy tile?
Vehicle * First() const
Get the first vehicle of this vehicle chain.
@ RAIL_GROUND_FENCE_HORIZ1
Grass with a fence at the southern side.
void DoFloodTile(TileIndex target)
Floods a tile.
@ SLOPE_EW
east and west corner are raised
@ TRACK_BIT_LEFT
Left track.
@ MP_VOID
Invisible tiles at the SW and SE border.
void Restore()
Restore the variable.
@ SLOPE_N
the north corner of the tile is raised
Slope GetTilePixelSlope(TileIndex tile, int *h)
Return the slope of a given tile.
@ DIR_END
Used to iterate.
static debug_inline uint Size()
Get the size of the map.
void MakeShore(Tile t)
Helper function to make a coast tile.
void SetDParam(size_t n, uint64_t v)
Set a string parameter v at index n in the global string parameter array.
@ SLOPE_SW
south and west corner are raised
void MarkTileDirtyByTile(TileIndex tile, int bridge_level_offset, int tile_height_override)
Mark a tile given by its index dirty for repaint.
@ OWNER_NONE
The tile has no ownership.
void SetDockingTile(Tile t, bool b)
Set the docking tile state of a tile.
@ MP_STATION
A tile of a station.
FloodingBehaviour
Describes the behaviour of a tile during flooding.
static Station * GetByTile(TileIndex tile)
Get the station belonging to a specific tile.
static const uint RIVER_OFFSET_DESERT_DISTANCE
Circular tile search radius to create non-desert around a river tile.
void FindVehicleOnPos(TileIndex tile, void *data, VehicleFromPosProc *proc)
Find a vehicle from a specific location.
@ FLOOD_NONE
The tile does not flood neighboured tiles.
static bool CanAllocateItem(size_t n=1)
Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function()
void DrawOrigTileSeqInGUI(int x, int y, const DrawTileSprites *dts, PaletteID default_palette)
Draw TTD sprite sequence in GUI.
TransportType GetTunnelBridgeTransportType(Tile t)
Tunnel: Get the transport type of the tunnel (road or rail) Bridge: Get the transport type of the bri...
void InvalidateWaterRegion(TileIndex tile)
Marks the water region that tile is part of as invalid.
@ DIAGDIR_BEGIN
Used for iterations.
bool IsBridgeAbove(Tile t)
checks if a bridge is set above the ground of this tile
StringID str
Description of the tile.
@ DC_AUTO
don't allow building on structures
void MakeShipDepot(Tile t, Owner o, DepotID did, DepotPart part, Axis a, WaterClass original_water_class)
Make a ship depot section.
bool IsDockWaterPart(Tile t)
Check whether a dock tile is the tile on water.
#define TILE_ADDXY(tile, x, y)
Adds a given offset to a tile.
static const uint LOCK_DEPOT_TILE_FACTOR
Multiplier for how many regular tiles a lock counts.
static void DrawWaterDepot(const TileInfo *ti)
Draw a ship depot tile.
TrackBits
Allow incrementing of Track variables.
byte subtype
subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubty...
TileIndex GetShipDepotNorthTile(Tile t)
Get the most northern tile of a ship depot.
CommandCost CheckTileOwnership(TileIndex tile)
Check whether the current owner owns the stuff on the given tile.
const DrawTileSeqStruct * seq
Array of child sprites. Terminated with a terminator entry.
@ FLOOD_ACTIVE
The tile floods neighboured tiles.
static debug_inline uint TileHeight(Tile tile)
Returns the height of a tile.
static CommandCost RemoveLock(TileIndex tile, DoCommandFlag flags)
Remove a lock.
FloodingBehaviour GetFloodingBehaviour(TileIndex tile)
Returns the behaviour of a tile during flooding.
TrackBits AxisToTrackBits(Axis a)
Maps an Axis to the corresponding TrackBits value.
int x
X position of the tile in unit coordinates.
@ RAIL_GROUND_FENCE_HORIZ2
Grass with a fence at the northern side.
PaletteID pal
The palette (use PAL_NONE) if not needed)
@ TRACK_BIT_Y
Y-axis track.
static Date date
Current date in days (day counter).
TileIndex tile
Tile index.
ConstructionSettings construction
construction of things in-game
CommandCost CmdBuildShipDepot(DoCommandFlag flags, TileIndex tile, Axis axis)
Build a ship depot.
bool IsAirportTile(Tile t)
Is this tile a station tile and an airport tile?
bool IsDockTile(Tile t)
Is tile t a dock tile?
static debug_inline bool IsTileType(Tile tile, TileType type)
Checks if a tile is a given tiletype.
@ VEH_TRAIN
Train vehicle type.
static bool IsValidID(size_t index)
Tests whether given index can be used to get valid (non-nullptr) Titem.
WaterTileType GetWaterTileType(Tile t)
Get the water tile type at a tile.
VehicleType type
Type of vehicle.
@ TROPICZONE_NORMAL
Normal tropiczone.
static debug_inline uint TileX(TileIndex tile)
Get the X component of a tile.
static void DrawSeaWater(TileIndex)
Draw a plain sea water tile with no edges.
int GetBridgePixelHeight(TileIndex tile)
Get the height ('z') of a bridge in pixels.
@ WATER_TILE_LOCK
Water lock.
CommandCost CmdBuildCanal(DoCommandFlag flags, TileIndex tile, TileIndex start_tile, WaterClass wc, bool diagonal)
Build a piece of canal.
int8_t delta_x
0x80 is sequence terminator
void ShowDepotWindow(TileIndex tile, VehicleType type)
Opens a depot window.
@ VEH_SHIP
Ship vehicle type.
Axis GetShipDepotAxis(Tile t)
Get the axis of the ship depot.
bool IsSlopeWithOneCornerRaised(Slope s)
Tests if a specific slope has exactly one corner raised.
bool IsCanal(Tile t)
Is it a canal tile?
bool IsTileOwner(Tile tile, Owner owner)
Checks if a tile belongs to the given owner.
DepotPart
Sections of the water depot.
@ OWNER_WATER
The tile/execution is done by "water".
TropicZone GetTropicZone(Tile tile)
Get the tropic zone.
bool IsRiver(Tile t)
Is it a river water tile?
DiagDirection GetInclinedSlopeDirection(Slope s)
Returns the direction of an inclined slope.
static void DrawWaterSprite(SpriteID base, uint offset, CanalFeature feature, TileIndex tile)
Draw a water sprite, potentially with a NewGRF-modified sprite offset.
bool HasTileWaterGround(Tile t)
Checks whether the tile has water at the ground.
bool IsShipDepot(Tile t)
Is it a water tile with a ship depot on it?
void SetTropicZone(Tile tile, TropicZone type)
Set the tropic zone.
@ SLOPE_STEEP
indicates the slope is steep
uint32_t water
Count of company owned track bits for canals.
VehicleEnterTileStatus
The returned bits of VehicleEnterTile.
bool IsValidWaterClass(WaterClass wc)
Checks if a water class is valid.
static void DrawWaterEdges(bool canal, uint offset, TileIndex tile)
Draw canal or river edges.
void DrawGroundSprite(SpriteID image, PaletteID pal, const SubSprite *sub, int extra_offs_x, int extra_offs_y)
Draws a ground sprite for the current tile.
static void MarkTileDirtyIfCanalOrRiver(TileIndex tile)
Marks tile dirty if it is a canal or river tile.
DiagDirection GetTunnelBridgeDirection(Tile t)
Get the direction pointing to the other end.
A tile child sprite and palette to draw for stations etc, with 3D bounding box.
static void DoDryUp(TileIndex tile)
Drys a tile up.
CanalFeature
List of different canal 'features'.
void MakeRiver(Tile t, uint8_t random_bits)
Make a river tile.
constexpr debug_inline bool HasBit(const T x, const uint8_t y)
Checks if a bit in a value is set.