# tile_cmd.h File Reference

Generic 'commands' that can be performed on all tiles. More...

`#include "slope_type.h"`
`#include "tile_type.h"`
`#include "command_type.h"`
`#include "vehicle_type.h"`
`#include "cargo_type.h"`
`#include "strings_type.h"`
`#include "date_type.h"`
`#include "player_type.h"`
`#include "direction_type.h"`
`#include "track_type.h"`

Go to the source code of this file.

## Data Structures
struct | TileInfo
struct | TileDesc
struct | TileTypeProcs
## Typedefs
typedef void | DrawTileProc (TileInfo *ti)
typedef uint | GetSlopeZProc (TileIndex tile, uint x, uint y)
typedef CommandCost | ClearTileProc (TileIndex tile, byte flags)
typedef void | GetAcceptedCargoProc (TileIndex tile, AcceptedCargo res)
typedef void | GetTileDescProc (TileIndex tile, TileDesc *td)
typedef TrackStatus | GetTileTrackStatusProc (TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)
| GetTileTrackStatusProcs return a value that contains the possible tracks that can be taken on a given tile by a given transport.
typedef void | GetProducedCargoProc (TileIndex tile, CargoID *b)
typedef void | ClickTileProc (TileIndex tile)
typedef void | AnimateTileProc (TileIndex tile)
typedef void | TileLoopProc (TileIndex tile)
typedef void | ChangeTileOwnerProc (TileIndex tile, PlayerID old_player, PlayerID new_player)
typedef VehicleEnterTileStatus | VehicleEnterTileProc (Vehicle *v, TileIndex tile, int x, int y)
typedef Foundation | GetFoundationProc (TileIndex tile, Slope tileh)
typedef CommandCost | TerraformTileProc (TileIndex tile, uint32 flags, uint z_new, Slope tileh_new)
| Called when a tile is affected by a terraforming operation.
## Enumerations
enum | VehicleEnterTileStatus { VETS_ENTERED_STATION = 1, VETS_ENTERED_WORMHOLE = 2, VETS_CANNOT_ENTER = 3, VETS_STATION_ID_OFFSET = 8, VETS_STATION_MASK = 0xFFFF << VETS_STATION_ID_OFFSET, VETSB_CONTINUE = 0, VETSB_ENTERED_STATION = 1 << VETS_ENTERED_STATION, VETSB_ENTERED_WORMHOLE = 1 << VETS_ENTERED_WORMHOLE, VETSB_CANNOT_ENTER = 1 << VETS_CANNOT_ENTER }
| The returned bits of VehicleEnterTile. More...
## Functions
| DECLARE_ENUM_AS_BIT_SET (VehicleEnterTileStatus)
TrackStatus | GetTileTrackStatus (TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side=INVALID_DIAGDIR)
| Returns information about trackdirs and signal states.
void | GetAcceptedCargo (TileIndex tile, AcceptedCargo ac)
void | ChangeTileOwner (TileIndex tile, PlayerID old_player, PlayerID new_player)
void | AnimateTile (TileIndex tile)
void | ClickTile (TileIndex tile)
void | GetTileDesc (TileIndex tile, TileDesc *td)
## Variables
const TileTypeProcs *const | _tile_type_procs [16]

## Detailed Description

Generic 'commands' that can be performed on all tiles.

Definition in file tile_cmd.h.

## Typedef Documentation

typedef TrackStatus GetTileTrackStatusProc(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)

GetTileTrackStatusProcs return a value that contains the possible tracks that can be taken on a given tile by a given transport.

The return value contains the existing trackdirs and signal states.

see track_func.h for usage of TrackStatus.

Parameters:

  | tile | the tile to get the track status from
  | mode | the mode of transportation
  | sub_mode | used to differentiate between different kinds within the mode

Returns:
  the track status information

Definition at line 74 of file tile_cmd.h.

typedef CommandCost TerraformTileProc(TileIndex tile, uint32 flags, uint z_new, Slope tileh_new)

Called when a tile is affected by a terraforming operation.

The function has to check if terraforming of the tile is allowed and return extra terraform-cost that depend on the tiletype. With DC_EXEC in flags it has to perform tiletype-specific actions (like clearing land etc., but not the terraforming itself).

Note:
  The terraforming has not yet taken place. So GetTileZ() and GetTileSlope() refer to the landscape before the terraforming operation.

Parameters:

  | tile | The involved tile.
  | flags | Command flags passed to the terraform command (DC_EXEC, DC_QUERY_COST, etc.).
  | z_new | TileZ after terraforming.
  | tileh_new | Slope after terraforming.

Returns:
  Error code or extra cost for terraforming (like clearing land, building foundations, etc., but not the terraforming itself.)

Definition at line 98 of file tile_cmd.h.

typedef VehicleEnterTileStatus VehicleEnterTileProc(Vehicle *v, TileIndex tile, int x, int y)

See also:
  VehicleEnterTileStatus to see what the return values mean

Definition at line 82 of file tile_cmd.h.

## Enumeration Type Documentation

enum VehicleEnterTileStatus

The returned bits of VehicleEnterTile.

Enumerator:

  VETS_ENTERED_STATION | The vehicle entered a station.
  VETS_ENTERED_WORMHOLE | The vehicle either entered a bridge, tunnel or depot tile (this includes the last tile of the bridge/tunnel).
  VETS_CANNOT_ENTER | The vehicle cannot enter the tile.
  VETS_STATION_ID_OFFSET | Shift the VehicleEnterTileStatus this many bits to the right to get the station ID when VETS_ENTERED_STATION is set.
  VETSB_CONTINUE | Bit sets of the above specified bits. The vehicle can continue normally
  VETSB_ENTERED_STATION | The vehicle entered a station.
  VETSB_ENTERED_WORMHOLE | The vehicle either entered a bridge, tunnel or depot tile (this includes the last tile of the bridge/tunnel).
  VETSB_CANNOT_ENTER | The vehicle cannot enter the tile.

Definition at line 20 of file tile_cmd.h.

## Function Documentation

TrackStatus GetTileTrackStatus | ( | TileIndex | tile,
|  | TransportType | mode,
|  | uint | sub_mode,
|  | DiagDirection | side |
| ) |  |  |

Returns information about trackdirs and signal states.

If there is any trackbit at 'side', return all trackdirbits. For TRANSPORT_ROAD, return no trackbits if there is no roadbit (of given subtype) at given side.

Parameters:

  | tile | tile to get info about
  | mode | transport type
  | sub_mode | for TRANSPORT_ROAD, roadtypes to check
  | side | side we are entering from, INVALID_DIAGDIR to return all trackbits

Returns:
  trackdirbits and other info depending on 'mode'

Definition at line 453 of file landscape.cpp.

References GetTileType().