OpenTTD Source
20240917-master-g9ab0a47812
|
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)
264 if (ret.
Failed())
return ret;
272 if (ret.
Failed())
return ret;
278 delete Depot::GetByTile(tile);
287 if (!do_clear) MakeWaterKeepingClass(tile,
GetTileOwner(tile));
309 if (ret.
Failed())
return ret;
314 if (ret.
Failed())
return ret;
320 if (ret.
Failed())
return ret;
322 cost.
AddCost(_price[PR_BUILD_CANAL]);
332 if (ret.
Failed())
return ret;
334 cost.
AddCost(_price[PR_BUILD_CANAL]);
368 cost.
AddCost(_price[PR_BUILD_LOCK]);
383 if (ret.
Failed())
return ret;
392 if (ret.
Failed())
return ret;
407 MakeWaterKeepingClass(tile + delta,
GetTileOwner(tile + delta));
408 MakeWaterKeepingClass(tile - delta,
GetTileOwner(tile - delta));
485 if (ret.
Failed())
return ret;
501 if (_game_mode == GM_EDITOR) {
527 cost.
AddCost(_price[PR_BUILD_CANAL]);
544 Money base_cost =
IsCanal(tile) ? _price[PR_CLEAR_CANAL] : _price[PR_CLEAR_WATER];
553 if (ret.
Failed())
return ret;
558 if (ret.
Failed())
return ret;
578 if (ret.
Failed())
return ret;
594 { { 0, 0}, {0, 0}, { 0, 0}, {0, 0} },
595 { {-1, 0}, {0, 1}, { 1, 0}, {0, -1} },
596 { { 1, 0}, {0, -1}, {-1, 0}, {0, 1} },
607 return RemoveShipDepot(tile, flags);
627 default: NOT_REACHED();
637 default:
return false;
649 default:
return false;
682 default:
return false;
695 if (base != SPR_FLAT_WATER_TILE) {
715 if (base == 0) base = SPR_CANAL_DIKES_BASE;
717 feature = CF_RIVER_EDGE;
719 if (base == 0)
return;
769 SpriteID image = SPR_FLAT_WATER_TILE;
773 if (image == 0) image = SPR_FLAT_WATER_TILE;
797 uint tile_offs = offset + dtss->image.
sprite;
800 ti->
x + dtss->
delta_x, ti->
y + dtss->delta_y,
801 dtss->size_x, dtss->size_y,
802 dtss->size_z, ti->
z + dtss->
delta_z,
817 if (water_base == 0) {
819 water_base = SPR_CANALS_BASE;
822 if (image == SPR_FLAT_WATER_TILE) {
829 if (image < 5) image += water_base;
838 base = SPR_LOCK_BASE;
840 zoffs = ti->
z > z_threshold ? 24 : 0;
849 DrawWaterClassGround(ti);
853 static void DrawRiverWater(
const TileInfo *ti)
855 SpriteID image = SPR_FLAT_WATER_TILE;
857 uint edges_offset = 0;
863 case SLOPE_NW: image = SPR_WATER_SLOPE_Y_DOWN;
break;
864 case SLOPE_SW: image = SPR_WATER_SLOPE_X_UP;
break;
865 case SLOPE_SE: image = SPR_WATER_SLOPE_Y_UP;
break;
866 case SLOPE_NE: image = SPR_WATER_SLOPE_X_DOWN;
break;
867 default: image = SPR_FLAT_WATER_TILE;
break;
874 case SLOPE_SE: edges_offset += 12;
break;
875 case SLOPE_NE: offset += 1; edges_offset += 24;
break;
876 case SLOPE_SW: offset += 2; edges_offset += 36;
break;
877 case SLOPE_NW: offset += 3; edges_offset += 48;
break;
878 default: offset = 0;
break;
891 void DrawShoreTile(
Slope tileh)
895 static const uint8_t tileh_to_shoresprite[32] = {
896 0, 1, 2, 3, 4, 16, 6, 7, 8, 9, 17, 11, 12, 13, 14, 0,
897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 10, 15, 0,
908 void DrawWaterClassGround(
const TileInfo *ti)
914 default: NOT_REACHED();
918 static void DrawTile_Water(
TileInfo *ti)
922 DrawWaterClassGround(ti);
927 DrawShoreTile(ti->
tileh);
942 void DrawShipDepotSprite(
int x,
int y,
Axis axis,
DepotPart part)
951 static int GetSlopePixelZ_Water(
TileIndex tile, uint x, uint y,
bool)
971 default: NOT_REACHED();
977 td->
str = STR_LAI_WATER_DESCRIPTION_SHIP_DEPOT;
980 default: NOT_REACHED();
993 uint victims = v->
Crash(
true);
996 Game::NewEvent(
new ScriptEventVehicleCrashed(v->
index, v->
tile, ScriptEventVehicleCrashed::CRASH_FLOODED, victims));
998 AddTileNewsItem(STR_NEWS_DISASTER_FLOOD_VEHICLE,
NT_ACCIDENT, v->
tile);
1032 int z = *(
int*)data;
1033 if (v->
z_pos > z)
break;
1121 bool flooded =
false;
1199 default: NOT_REACHED();
1201 SetRailGroundType(tile, new_ground);
1219 default: NOT_REACHED();
1247 if (z_dest > 0)
continue;
1272 void ConvertGroundTilesIntoWaterTiles()
1323 if (
TileX(tile) == 0) {
1327 if (
TileY(tile) == 0) {
1334 static bool ClickTile_Water(
TileIndex tile)
1395 GetSlopePixelZ_Water,
1399 GetTileTrackStatus_Water,
1403 ChangeTileOwner_Water,
1406 GetFoundation_Water,
1407 TerraformTile_Water,
@ SLOPE_E
the east corner of the tile is raised
@ SLOPE_SE
south and east corner are raised
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.
@ 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.
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.
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.
uint8_t GetLockPart(Tile t)
Get the part of a lock.
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.
@ TRACK_BIT_X
X-axis track.
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.
@ DIR_BEGIN
Used to iterate.
static debug_inline uint MaxX()
Gets the maximum X coordinate within the map, including MP_VOID.
static void DrawWaterLock(const TileInfo *ti)
Draw a lock tile.
Owner owner[4]
Name of the owner(s)
@ SLOPE_NE
north and east corner are raised
@ TRANSPORT_WATER
Transport over water.
Slope GetTileSlope(TileIndex tile)
Return the slope of a given tile inside the map.
static debug_inline bool IsPlainRail(Tile t)
Returns whether this is plain rails, with or without signals.
@ INVALID_OWNER
An invalid owner.
@ NT_ACCIDENT
An accident or disaster has occurred.
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.
Owner
Enum for all companies/owners.
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...
@ DIR_END
Used to iterate.
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.
@ VEH_TRAIN
Train vehicle type.
TileIndex TileAddXY(TileIndex tile, int x, int y)
Adds a given offset to a tile.
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.
@ VEH_ROAD
Road vehicle type.
DiagDirection
Enumeration for diagonal directions.
void DrawBridgeMiddle(const TileInfo *ti)
Draw the middle bits of a bridge.
Wrapper class to abstract away the way the tiles are stored.
@ SLOPE_NW
north and west corner are raised
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.
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.
CompanyInfrastructure infrastructure
NOSAVE: Counts of company owned infrastructure.
@ SLOPE_W
the west corner of the tile is raised
bool IsWaterTile(Tile t)
Is it a water tile with plain water?
@ SLOPE_EW
east and west corner are raised
@ WATER_TILE_DEPOT
Water Depot.
Owner owner
Which company owns the vehicle?
@ EV_EXPLOSION_LARGE
Various explosions.
@ DC_EXEC
execute the given command
uint32_t PaletteID
The number of the palette.
Tile description for the 'land area information' tool.
DoCommandFlag
List of flags for a command.
@ SLOPE_S
the south corner of the tile is raised
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.
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.
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.
@ TRACK_BIT_NONE
No track.
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.
TransportType
Available types of transport.
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.
static void NewEvent(CompanyID company, ScriptEvent *event)
Queue a new event for an AI.
Common return value for all commands.
Iterable ensemble of each set bit in a value.
@ SLOPE_NS
north and south corner are raised
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.
@ OWNER_NONE
The tile has no ownership.
static Vehicle * FloodVehicleProc(Vehicle *v, void *data)
Flood a vehicle if we are allowed to flood it, i.e.
static Industry * GetByTile(TileIndex tile)
Get the industry of the given tile.
@ WATER_TILE_CLEAR
Plain water.
TrackBits
Allow incrementing of Track variables.
@ INVALID_DIAGDIR
Flag for an invalid DiagDirection.
void DirtyCompanyInfrastructureWindows(CompanyID company)
Redraw all windows with company infrastructure counts.
std::tuple< Slope, int > GetTilePixelSlope(TileIndex tile)
Return the slope of a given tile.
TileIndex tile
Current tile index.
@ SLOPE_HALFTILE_MASK
three bits used for halftile slopes
static void DrawCanalWater(TileIndex tile)
draw a canal styled water tile with dikes around
@ DIAGDIR_BEGIN
Used for iterations.
@ MP_OBJECT
Contains objects such as transmitters and owned land.
@ 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.
@ WATER_CLASS_INVALID
Used for industry tiles on land (also for oilrig if newgrf says so).
DiagDirection ReverseDiagDir(DiagDirection d)
Returns the reverse direction of the given DiagDirection.
bool Failed() const
Did this command fail?
@ VEH_SHIP
Ship vehicle type.
bool RiverModifyDesertZone(TileIndex tile, void *)
Callback to create non-desert around a river tile.
@ TRACK_BIT_LEFT
Left track.
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.
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.
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.
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.
static void MarkCanalsAndRiversAroundDirty(TileIndex tile)
Marks the tiles around a tile as dirty, if they are canals or rivers.
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.
@ SLOPE_N
the north corner of the tile is raised
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.
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.
@ TRACK_BIT_ALL
All possible tracks.
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
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.
@ TRACK_BIT_UPPER
Upper track.
@ DEPOT_PART_SOUTH
Southern part of a depot.
uint8_t subtype
subtype (Filled with values from AircraftSubType/DisasterSubType/EffectVehicleType/GroundVehicleSubty...
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.
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.
@ DC_FORCE_CLEAR_TILE
do not only remove the object on the tile, but also clear any water left on it
@ TRACK_BIT_RIGHT
Right track.
@ WATER_CLASS_CANAL
Canal.
void DoFloodTile(TileIndex target)
Floods a tile.
@ MP_VOID
Invisible tiles at the SW and SE border.
@ SLOPE_STEEP
indicates the slope is steep
void Restore()
Restore the variable.
Slope
Enumeration for the slope-type.
Axis
Allow incrementing of DiagDirDiff variables.
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.
@ OWNER_WATER
The tile/execution is done by "water".
@ 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.
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.
uint8_t delta_z
Z adjustment for helicopter pads.
@ DIAGDIR_END
Used for iterations.
Direction
Defines the 8 directions on the map.
std::tuple< Slope, int > GetFoundationSlope(TileIndex tile)
Get slope of a tile on top of a (possible) foundation If a tile does not have a foundation,...
bool IsBridgeAbove(Tile t)
checks if a bridge is set above the ground of this tile
StringID str
Description of the tile.
@ TRACK_BIT_Y
Y-axis track.
@ 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.
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.
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.
@ VEH_AIRCRAFT
Aircraft vehicle type.
static CommandCost RemoveLock(TileIndex tile, DoCommandFlag flags)
Remove a lock.
@ TRACK_BIT_LOWER
Lower track.
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)
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.
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
WaterClass
classes of water (for WATER_TILE_CLEAR water tile type).
void ShowDepotWindow(TileIndex tile, VehicleType type)
Opens a depot window.
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.
TropicZone GetTropicZone(Tile tile)
Get the tropic zone.
@ WATER_CLASS_RIVER
River.
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.
uint32_t water
Count of company owned track bits for canals.
std::tuple< Slope, int > GetTileSlopeZ(TileIndex tile)
Return the slope of a given tile inside the map.
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.
@ EXPENSES_CONSTRUCTION
Construction costs.
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.