Go to the documentation of this file.
43 #include "table/strings.h"
124 if (ret.
Failed())
return ret;
130 if (ret.
Failed())
return ret;
264 if (ret.
Failed())
return ret;
272 if (ret.
Failed())
return ret;
276 delete Depot::GetByTile(tile);
306 if (ret.
Failed())
return ret;
311 if (ret.
Failed())
return ret;
317 if (ret.
Failed())
return ret;
319 cost.
AddCost(_price[PR_BUILD_CANAL]);
329 if (ret.
Failed())
return ret;
331 cost.
AddCost(_price[PR_BUILD_CANAL]);
363 cost.
AddCost(_price[PR_BUILD_LOCK]);
378 if (ret.
Failed())
return ret;
387 if (ret.
Failed())
return ret;
402 MakeWaterKeepingClass(tile + delta,
GetTileOwner(tile + delta));
403 MakeWaterKeepingClass(tile - delta,
GetTileOwner(tile - delta));
451 std::unique_ptr<TileIterator> iter;
453 iter = std::make_unique<DiagonalTileIterator>(tile, start_tile);
455 iter = std::make_unique<OrthogonalTileIterator>(tile, start_tile);
473 if (ret.
Failed())
return ret;
489 if (_game_mode == GM_EDITOR) {
515 cost.
AddCost(_price[PR_BUILD_CANAL]);
531 Money base_cost =
IsCanal(tile) ? _price[PR_CLEAR_CANAL] : _price[PR_CLEAR_WATER];
540 if (ret.
Failed())
return ret;
545 if (ret.
Failed())
return ret;
565 if (ret.
Failed())
return ret;
581 { { 0, 0}, {0, 0}, { 0, 0}, {0, 0} },
582 { {-1, 0}, {0, 1}, { 1, 0}, {0, -1} },
583 { { 1, 0}, {0, -1}, {-1, 0}, {0, 1} },
594 return RemoveShipDepot(tile, flags);
614 default: NOT_REACHED();
624 default:
return false;
636 default:
return false;
669 default:
return false;
682 if (base != SPR_FLAT_WATER_TILE) {
702 if (base == 0) base = SPR_CANAL_DIKES_BASE;
704 feature = CF_RIVER_EDGE;
706 if (base == 0)
return;
756 SpriteID image = SPR_FLAT_WATER_TILE;
760 if (image == 0) image = SPR_FLAT_WATER_TILE;
784 uint tile_offs = offset + dtss->image.
sprite;
787 ti->
x + dtss->
delta_x, ti->
y + dtss->delta_y,
788 dtss->size_x, dtss->size_y,
789 dtss->size_z, ti->
z + dtss->
delta_z,
804 if (water_base == 0) {
806 water_base = SPR_CANALS_BASE;
809 if (image == SPR_FLAT_WATER_TILE) {
816 if (image < 5) image += water_base;
825 base = SPR_LOCK_BASE;
827 zoffs = ti->
z > z_threshold ? 24 : 0;
836 DrawWaterClassGround(ti);
840 static void DrawRiverWater(
const TileInfo *ti)
842 SpriteID image = SPR_FLAT_WATER_TILE;
844 uint edges_offset = 0;
850 case SLOPE_NW: image = SPR_WATER_SLOPE_Y_DOWN;
break;
851 case SLOPE_SW: image = SPR_WATER_SLOPE_X_UP;
break;
852 case SLOPE_SE: image = SPR_WATER_SLOPE_Y_UP;
break;
853 case SLOPE_NE: image = SPR_WATER_SLOPE_X_DOWN;
break;
854 default: image = SPR_FLAT_WATER_TILE;
break;
861 case SLOPE_SE: edges_offset += 12;
break;
862 case SLOPE_NE: offset += 1; edges_offset += 24;
break;
863 case SLOPE_SW: offset += 2; edges_offset += 36;
break;
864 case SLOPE_NW: offset += 3; edges_offset += 48;
break;
865 default: offset = 0;
break;
878 void DrawShoreTile(
Slope tileh)
882 static const byte tileh_to_shoresprite[32] = {
883 0, 1, 2, 3, 4, 16, 6, 7, 8, 9, 17, 11, 12, 13, 14, 0,
884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 10, 15, 0,
895 void DrawWaterClassGround(
const TileInfo *ti)
901 default: NOT_REACHED();
905 static void DrawTile_Water(
TileInfo *ti)
909 DrawWaterClassGround(ti);
914 DrawShoreTile(ti->
tileh);
929 void DrawShipDepotSprite(
int x,
int y,
Axis axis,
DepotPart part)
938 static int GetSlopePixelZ_Water(
TileIndex tile, uint x, uint y)
959 default: NOT_REACHED();
965 td->
str = STR_LAI_WATER_DESCRIPTION_SHIP_DEPOT;
968 default: NOT_REACHED();
981 uint pass = v->
Crash(
true);
986 AddTileNewsItem(STR_NEWS_DISASTER_FLOOD_VEHICLE,
NT_ACCIDENT, v->
tile);
1020 int z = *(
int*)data;
1021 if (v->
z_pos > z)
break;
1106 bool flooded =
false;
1184 default: NOT_REACHED();
1186 SetRailGroundType(tile, new_ground);
1204 default: NOT_REACHED();
1233 if (z_dest > 0)
continue;
1258 void ConvertGroundTilesIntoWaterTiles()
1311 if (
TileX(tile) == 0) {
1315 if (
TileY(tile) == 0) {
1322 static bool ClickTile_Water(
TileIndex tile)
1383 GetSlopePixelZ_Water,
1387 GetTileTrackStatus_Water,
1391 ChangeTileOwner_Water,
1394 GetFoundation_Water,
1395 TerraformTile_Water,
@ VEH_AIRCRAFT
Aircraft vehicle type.
@ 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.
@ 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.
static constexpr bool IsInsideMM(const T x, const size_t min, const size_t max) noexcept
Checks if a value is in an interval.
@ TRACK_BIT_NONE
No track.
static bool IsValidAxis(Axis d)
Checks if an integer value is a valid Axis.
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.
static TileIndexDiff TileOffsByDiagDir(DiagDirection dir)
Convert a DiagDirection to a TileIndexDiff.
Direction
Defines the 8 directions on the map.
static bool IsCanal(TileIndex t)
Is it a canal tile?
static TileIndex GetOtherShipDepotTile(TileIndex t)
Get the other tile of the ship depot.
@ DIR_BEGIN
Used to iterate.
int GetTileMaxZ(TileIndex t)
Get top height of the tile inside the map.
static const SpriteID SPR_SHORE_BASE
shore tiles - action 05-0D
static void DrawOrigTileSeqInGUI(int x, int y, const DrawTileSprites *dts, PaletteID default_palette)
Draw TTD sprite sequence in GUI.
static bool HasTileWaterClass(TileIndex t)
Checks whether the tile has an waterclass associated.
static SigSegState UpdateSignalsInBuffer(Owner owner)
Updates blocks in _globset buffer.
uint x
X position of the tile in unit coordinates.
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.
@ TO_BUILDINGS
company buildings - depots, stations, HQ, ...
Tile information, used while rendering the tile.
Class to backup a specific variable and restore it later.
static 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...
static DiagDirection GetLockDirection(TileIndex t)
Get the direction of the water 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 void AmbientSoundEffect(TileIndex tile)
Play an ambient sound effect for an empty tile.
static void FloodVehicles(TileIndex tile)
Finds a vehicle to flood.
static bool IsAirportTile(TileIndex t)
Is this tile a station tile and an airport tile?
bool IsWateredTile(TileIndex tile, Direction from)
return true if a tile is a water tile wrt.
static Axis DiagDirToAxis(DiagDirection d)
Convert a DiagDirection to the axis.
static void MakeSea(TileIndex t)
Make a sea tile.
static TileIndex TileAddByDir(TileIndex tile, Direction dir)
Adds a Direction to a tile.
@ DIAGDIR_END
Used for iterations.
static void MakeClear(TileIndex t, ClearGround g, uint density)
Make a clear tile.
uint32 water
Count of company owned track bits for canals.
Tindex index
Index of this pool item.
virtual uint Crash(bool flooded=false)
Crash the (whole) vehicle chain.
static TrackBits AxisToTrackBits(Axis a)
Maps an Axis to the corresponding TrackBits value.
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.
static bool HasBit(const T x, const uint8 y)
Checks if a bit in a value is set.
static bool IsHalftileSlope(Slope s)
Checks for non-continuous slope on halftile foundations.
static constexpr TileIndex INVALID_TILE
The very nice invalid tile marker.
@ SND_12_EXPLOSION
16 == 0x10 Destruction, crashes, disasters, ...
@ RAIL_GROUND_FENCE_VERT1
Grass with a fence at the eastern side.
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.
static TrackBits GetTrackBits(TileIndex tile)
Gets the track bits of the given tile.
uint y
Y position of the tile in unit coordinates.
ClientSettings _settings_client
The current settings for this game.
@ RAIL_GROUND_FENCE_VERT2
Grass with a fence at the western side.
static bool IsCoast(TileIndex t)
Is it a coast tile?
@ 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.
static uint TileY(TileIndex tile)
Get the Y component of a tile.
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.
@ 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
@ WATER_CLASS_INVALID
Used for industry tiles on land (also for oilrig if newgrf says so).
Tile description for the 'land area information' tool.
static void SetDParam(uint n, uint64 v)
Set a string parameter v at index n in the global string parameter array.
@ 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.
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?
static uint TileX(TileIndex tile)
Get the X component of a tile.
static byte GetLockPart(TileIndex t)
Get the part of a lock.
@ 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...
Slope tileh
Slope of the tile.
uint32 SpriteID
The number of a sprite, without mapping bits and colourtables.
static bool IsTileOnWater(TileIndex t)
Tests if the tile was built on water.
static TileIndex GetShipDepotNorthTile(TileIndex t)
Get the most northern tile of a ship depot.
Date build_date
Date of construction of tile contents.
PalSpriteID ground
Palette and sprite for the ground.
static TileIndexDiff ToTileIndexDiff(TileIndexDiffC tidc)
Return the offset between two tiles from a TileIndexDiffC struct.
Slope
Enumeration for the slope-type.
int8 delta_x
0x80 is sequence terminator
static DiagDirection DirToDiagDir(Direction dir)
Convert a Direction to a DiagDirection.
#define return_cmd_error(errcode)
Returns from a function with a specific StringID as error.
static uint MapSize()
Get the size of the map.
@ EXPENSES_CONSTRUCTION
Construction costs.
static void NewEvent(CompanyID company, ScriptEvent *event)
Queue a new event for an AI.
static bool IsBridgeTile(TileIndex t)
checks if there is a bridge on this tile
Common return value for all commands.
static bool HasTileWaterGround(TileIndex t)
Checks whether the tile has water at the ground.
WaterClass
classes of water (for WATER_TILE_CLEAR water tile type).
Iterable ensemble of each set bit in a value.
Date _date
Current date in days (day counter)
static void SetTropicZone(TileIndex tile, TropicZone type)
Set the tropic zone.
static uint TileHeight(TileIndex tile)
Returns the height of a tile.
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
int8 delta_z
0x80 identifies child sprites
static Industry * GetByTile(TileIndex tile)
Get the industry of the given tile.
@ WATER_TILE_CLEAR
Plain water.
static void MakeLock(TileIndex t, Owner o, DiagDirection d, WaterClass wc_lower, WaterClass wc_upper, WaterClass wc_middle)
Make a water lock.
void DirtyCompanyInfrastructureWindows(CompanyID company)
Redraw all windows with company infrastructure counts.
static TrackdirBits TrackBitsToTrackdirBits(TrackBits bits)
Converts TrackBits to TrackdirBits while allowing both directions.
int32 TileIndexDiff
An offset value between two tiles.
TileIndex tile
Current tile index.
static TrackBits TrackStatusToTrackBits(TrackStatus ts)
Returns the present-track-information of a TrackStatus.
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.
static bool IsBuoy(TileIndex t)
Is tile t a buoy tile?
@ INVALID_OWNER
An invalid owner.
bool Failed() const
Did this command fail?
@ WATER_CLASS_CANAL
Canal.
static 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...
bool RiverModifyDesertZone(TileIndex tile, void *)
Callback to create non-desert around a river tile.
Airport airport
Tile area the airport covers.
static bool IsShipDepot(TileIndex t)
Is it a water tile with a ship depot on it?
@ LOCK_PART_MIDDLE
Middle part of a lock.
static bool IsValidWaterClass(WaterClass wc)
Checks if a water class is valid.
GameSettings _settings_game
Game settings of a running game or the scenario editor.
static TropicZone GetTropicZone(TileIndex tile)
Get the tropic zone.
WaterFeature _water_feature[CF_END]
Table of canal 'feature' sprite groups.
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.
static TileIndexDiff TileOffsByDir(Direction dir)
Convert a Direction to a TileIndexDiff.
static TrackStatus CombineTrackStatus(TrackdirBits trackdirbits, TrackdirBits red_signals)
Builds a TrackStatus.
static void SetDockingTile(TileIndex t, bool b)
Set the docking tile state of a tile.
static bool IsValidTile(TileIndex tile)
Checks if a tile is valid.
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.
static DiagDirection ReverseDiagDir(DiagDirection d)
Returns the reverse direction of the given DiagDirection.
Slope GetTileSlope(TileIndex tile, int *h)
Return the slope of a given tile inside the map.
static bool IsTileOwner(TileIndex tile, Owner owner)
Checks if a tile belongs to the given owner.
Ground palette sprite of a tile, together with its sprite layout.
@ 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.
Finite sTate mAchine (FTA) of an airport.
bool disaster
Play disaster and accident sounds.
@ 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.
void AddCost(const Money &cost)
Adds the given cost to the cost of the command.
@ TRACK_BIT_LOWER
Lower track.
static DepotPart GetShipDepotPart(TileIndex t)
Get the part of a ship depot.
Set of callback functions for performing tile operations of a given tile type.
@ DC_BANKRUPT
company bankrupts, skip money check, skip vehicle on tile check in some cases
bool IsValidDockingDirectionForDock(TileIndex t, DiagDirection d)
Check if a dock tile can be docked from the given direction.
void TileLoop_Water(TileIndex tile)
Let a water tile floods its diagonal adjoining tiles called from tunnelbridge_cmd,...
static bool IsTileType(TileIndex tile, TileType type)
Checks if a tile is a given tiletype.
RailGroundType
The ground 'under' the rail.
static DiagDirection GetTunnelBridgeDirection(TileIndex t)
Get the direction pointing to the other end.
static Owner GetTileOwner(TileIndex tile)
Returns the owner of a tile.
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
@ RAIL_GROUND_WATER
Grass with a fence and shore or water on the free halftile.
@ 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.
static Direction ReverseDir(Direction d)
Return the reverse of a direction.
void MakeDefaultName(T *obj)
Set the default name for a depot/waypoint.
static bool IsDockTile(TileIndex t)
Is tile t a dock tile?
@ TRACKDIR_BIT_NONE
No track build.
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.
Vehicle * First() const
Get the first vehicle of this vehicle chain.
static WaterClass GetWaterClass(TileIndex t)
Get the water class at a tile.
@ RAIL_GROUND_FENCE_HORIZ1
Grass with a fence at the southern side.
static uint MapMaxY()
Gets the maximum Y coordinate within the map, including MP_VOID.
void DoFloodTile(TileIndex target)
Floods a tile.
@ SLOPE_EW
east and west corner are raised
@ TRACK_BIT_LEFT
Left track.
static void DrawSeaWater(TileIndex tile)
Draw a plain sea water tile with no edges.
@ MP_VOID
Invisible tiles at the SW and SE border.
static bool IsPlainRail(TileIndex t)
Returns whether this is plain rails, with or without signals.
void Restore()
Restore the variable.
static WaterTileType GetWaterTileType(TileIndex t)
Get the water tile type at a tile.
@ SLOPE_N
the north corner of the tile is raised
static bool IsSlopeWithOneCornerRaised(Slope s)
Tests if a specific slope has exactly one corner raised.
static void MakeShipDepot(TileIndex t, Owner o, DepotID did, DepotPart part, Axis a, WaterClass original_water_class)
Make a ship depot section.
@ DIR_END
Used to iterate.
static bool IsWaterTile(TileIndex t)
Is it a water tile with plain water?
uint32 PaletteID
The number of the palette.
@ SLOPE_SW
south and west corner are raised
static IndustryID GetIndustryIndex(TileIndex t)
Get the industry ID of the given tile.
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.
static void MakeShore(TileIndex t)
Helper function to make a coast tile.
static TileIndexDiff TileDiffXY(int x, int y)
Calculates an offset for the given coordinate(-offset).
@ 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()
static bool IsLock(TileIndex t)
Is there a lock on a given water tile?
@ DIAGDIR_BEGIN
Used for iterations.
static Axis GetShipDepotAxis(TileIndex t)
Get the axis of the ship depot.
StringID str
Description of the tile.
@ DC_AUTO
don't allow building on structures
static bool IsRiver(TileIndex t)
Is it a river water tile?
static uint MapMaxX()
Gets the maximum X coordinate within the map, including MP_VOID.
static TreeGround GetTreeGround(TileIndex t)
Returns the groundtype for tree tiles.
#define TILE_ADDXY(tile, x, y)
Adds a given offset to a tile.
static const uint8 _flood_from_dirs[]
Describes from which directions a specific slope can be flooded (if the tile is floodable at all).
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
Bitfield corresponding to Track.
byte subtype
subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubty...
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.
Date build_date
Date of construction.
@ FLOOD_ACTIVE
The tile floods neighboured tiles.
static void MakeCanal(TileIndex t, Owner o, uint8 random_bits)
Make a canal tile.
static TrackBits DiagDirToDiagTrackBits(DiagDirection diagdir)
Maps a (4-way) direction to the diagonal track bits incidating with that diagdir.
static int GetBridgePixelHeight(TileIndex tile)
Get the height ('z') of a bridge in pixels.
static bool IsDock(TileIndex t)
Is tile t a dock tile?
static bool IsOilRig(TileIndex t)
Is tile t part of an oilrig?
static CommandCost RemoveLock(TileIndex tile, DoCommandFlag flags)
Remove a lock.
FloodingBehaviour GetFloodingBehaviour(TileIndex tile)
Returns the behaviour of a tile during flooding.
static void SetTileOwner(TileIndex tile, Owner owner)
Sets the owner of a tile.
@ 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.
TileIndex tile
Tile index.
ConstructionSettings construction
construction of things in-game
static bool IsInclinedSlope(Slope s)
Tests if a specific slope is an inclined slope.
CommandCost CmdBuildShipDepot(DoCommandFlag flags, TileIndex tile, Axis axis)
Build a ship depot.
static TileType GetTileType(TileIndex tile)
Get the tiletype of a given tile.
@ VEH_TRAIN
Train vehicle type.
static bool IsValidID(size_t index)
Tests whether given index can be used to get valid (non-nullptr) Titem.
VehicleType type
Type of vehicle.
@ TROPICZONE_NORMAL
Normal tropiczone.
@ WATER_TILE_LOCK
Water lock.
static Slope GetTilePixelSlope(TileIndex tile, int *h)
Return the slope of a given tile.
CommandCost CmdBuildCanal(DoCommandFlag flags, TileIndex tile, TileIndex start_tile, WaterClass wc, bool diagonal)
Build a piece of canal.
void ShowDepotWindow(TileIndex tile, VehicleType type)
Opens a depot window.
static TransportType GetTunnelBridgeTransportType(TileIndex t)
Tunnel: Get the transport type of the tunnel (road or rail) Bridge: Get the transport type of the bri...
@ VEH_SHIP
Ship vehicle type.
DepotPart
Sections of the water depot.
@ OWNER_WATER
The tile/execution is done by "water".
static void DrawWaterSprite(SpriteID base, uint offset, CanalFeature feature, TileIndex tile)
Draw a water sprite, potentially with a NewGRF-modified sprite offset.
@ SLOPE_STEEP
indicates the slope is steep
VehicleEnterTileStatus
The returned bits of VehicleEnterTile.
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 MakeRiver(TileIndex t, uint8 random_bits)
Make a river tile.
static void SetTreeGroundDensity(TileIndex t, TreeGround g, uint d)
Set the density and ground type of a tile with trees.
static DiagDirection GetInclinedSlopeDirection(Slope s)
Returns the direction of an inclined slope.
static void MarkTileDirtyIfCanalOrRiver(TileIndex tile)
Marks tile dirty if it is a canal or river tile.
static bool IsBridgeAbove(TileIndex t)
checks if a bridge is set above the ground of this tile
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'.