OpenTTD Source: src/tile_cmd.h File Reference

OpenTTD Source 14.1

Data Structures | Typedefs | Enumerations | Functions | Variables
tile_cmd.h File Reference
`#include "command_type.h"`
`#include "vehicle_type.h"`
`#include "cargo_type.h"`
`#include "track_type.h"`
`#include "tile_map.h"`
`#include "timer/timer_game_calendar.h"`

Go to the source code of this file.

## Data Structures
struct | TileInfo
| Tile information, used while rendering the tile. More...
struct | TileDesc
| Tile description for the 'land area information' tool. More...
struct | TileTypeProcs
| Set of callback functions for performing tile operations of a given tile type. More...

## Typedefs
typedef void | DrawTileProc(TileInfo *ti)
| Tile callback function signature for drawing a tile and its contents to the screen. More...
typedef int | GetSlopeZProc(TileIndex tile, uint x, uint y, bool ground_vehicle)
| Tile callback function signature for obtaining the world `Z` coordinate of a given point of a tile. More...
typedef CommandCost | ClearTileProc(TileIndex tile, DoCommandFlag flags)
typedef void | AddAcceptedCargoProc(TileIndex tile, CargoArray &acceptance, CargoTypes *always_accepted)
| Tile callback function signature for obtaining cargo acceptance of a tile. More...
typedef void | GetTileDescProc(TileIndex tile, TileDesc *td)
| Tile callback function signature for obtaining a tile description. More...
typedef TrackStatus | GetTileTrackStatusProc(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)
| Tile callback function signature for getting the possible tracks that can be taken on a given tile by a given transport. More...
typedef void | AddProducedCargoProc(TileIndex tile, CargoArray &produced)
| Tile callback function signature for obtaining the produced cargo of a tile. More...
typedef bool | ClickTileProc(TileIndex tile)
typedef void | AnimateTileProc(TileIndex tile)
typedef void | TileLoopProc(TileIndex tile)
typedef void | ChangeTileOwnerProc(TileIndex tile, Owner old_owner, Owner new_owner)
typedef VehicleEnterTileStatus | VehicleEnterTileProc(Vehicle *v, TileIndex tile, int x, int y)
typedef Foundation | GetFoundationProc(TileIndex tile, Slope tileh)
typedef CommandCost | TerraformTileProc(TileIndex tile, DoCommandFlag flags, int z_new, Slope tileh_new)
| Tile callback function signature of the terraforming callback. More...

## 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
TrackStatus | GetTileTrackStatus (TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side=INVALID_DIAGDIR)
| Returns information about trackdirs and signal states. More...
VehicleEnterTileStatus | VehicleEnterTile (Vehicle *v, TileIndex tile, int x, int y)
| Call the tile callback function for a vehicle entering a tile. More...
void | ChangeTileOwner (TileIndex tile, Owner old_owner, Owner new_owner)
| Change the owner of a tile. More...
void | GetTileDesc (TileIndex tile, TileDesc *td)
void | AddAcceptedCargo (TileIndex tile, CargoArray &acceptance, CargoTypes *always_accepted)
void | AddProducedCargo (TileIndex tile, CargoArray &produced)
void | AnimateTile (TileIndex tile)
bool | ClickTile (TileIndex tile)

## Variables
const TileTypeProcs *const | _tile_type_procs [16]
| Tile callback functions for each type of tile. More...

## Detailed Description

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

Definition in file tile_cmd.h.

## Typedef Documentation

## ◆ AddAcceptedCargoProc

typedef void AddAcceptedCargoProc(TileIndex tile, CargoArray &acceptance, CargoTypes *always_accepted)

Tile callback function signature for obtaining cargo acceptance of a tile.

Parameters

  tile | Tile queried for its accepted cargo
  acceptance | Storage destination of the cargo acceptance in 1/8
  always_accepted | Bitmask of always accepted cargo types

Definition at line 98 of file tile_cmd.h.

## ◆ AddProducedCargoProc

typedef void AddProducedCargoProc(TileIndex tile, CargoArray &produced)

Tile callback function signature for obtaining the produced cargo of a tile.

Parameters

  tile | Tile being queried
  produced | Destination array for produced cargo

Definition at line 127 of file tile_cmd.h.

## ◆ DrawTileProc

typedef void DrawTileProc(TileInfo *ti)

Tile callback function signature for drawing a tile and its contents to the screen.

Parameters

  ti | Information about the tile to draw

Definition at line 76 of file tile_cmd.h.

## ◆ GetSlopeZProc

typedef int GetSlopeZProc(TileIndex tile, uint x, uint y, bool ground_vehicle)

Tile callback function signature for obtaining the world `Z` coordinate of a given point of a tile.

Parameters

  tile | The queries tile for the Z coordinate.
  x | World X coordinate in tile "units".
  y | World Y coordinate in tile "units".
  ground_vehicle | Whether to get the Z coordinate of the ground vehicle, or the ground.

Returns
  World Z coordinate at tile ground (vehicle) level, including slopes and foundations.

See also
  GetSlopePixelZ

Definition at line 89 of file tile_cmd.h.

## ◆ GetTileDescProc

typedef void GetTileDescProc(TileIndex tile, TileDesc *td)

Tile callback function signature for obtaining a tile description.

Parameters

  tile | Tile being queried
  td | Storage pointer for returned tile description

Definition at line 105 of file tile_cmd.h.

## ◆ GetTileTrackStatusProc

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

Tile callback function signature for getting 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 120 of file tile_cmd.h.

## ◆ TerraformTileProc

typedef CommandCost TerraformTileProc(TileIndex tile, DoCommandFlag flags, int z_new, Slope tileh_new)

Tile callback function signature of the terraforming callback.

The function is called when a tile is affected by a terraforming operation. It 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 152 of file tile_cmd.h.

## ◆ VehicleEnterTileProc

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

See also
  VehicleEnterTileStatus to see what the return values mean

Definition at line 134 of file tile_cmd.h.

## Enumeration Type Documentation

## ◆ VehicleEnterTileStatus

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 21 of file tile_cmd.h.

## Function Documentation

## ◆ ChangeTileOwner()

void ChangeTileOwner | ( | TileIndex | tile,
|  | Owner | old_owner,
|  | Owner | new_owner
| ) |  |

Change the owner of a tile.

Parameters

  tile | Tile to change
  old_owner | Current owner of the tile
  new_owner | New owner of the tile

Definition at line 567 of file landscape.cpp.

References _tile_type_procs, and GetTileType().

## ◆ GetTileTrackStatus()

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 556 of file landscape.cpp.

References _tile_type_procs, TileTypeProcs::get_tile_track_status_proc, and GetTileType().

Referenced by CheckRoadBlockedForOvertaking(), CYapfFollowShipT< Types >::CheckShipReverse(), DisasterTick_Submarine(), FixOwnerOfRailTrack(), CFollowTrackT< Ttr_type_, VehicleType, T90deg_turns_allowed_, Tmask_reserved_tracks >::Follow(), GenericPlaceSignals(), GetDriveableTrackdirBits(), GetTrackdirBitsForRoad(), MaskWireBits(), RoadFindPathToDest(), RoadVehicle::TileMayHaveSlopedTrack(), TrainController(), TryPathReserve(), TryReserveRailTrack(), UnreserveRailTrack(), and UpdateSignalsInBuffer().

## ◆ VehicleEnterTile()

VehicleEnterTileStatus VehicleEnterTile | ( | Vehicle * | v,
|  | TileIndex | tile,
|  | int | x,
|  | int | y
| ) |  |

Call the tile callback function for a vehicle entering a tile.

Parameters

  v | Vehicle entering the tile
  tile | Tile entered
  x | X position
  y | Y position

Returns
  Some meta-data over the to be entered tile.

See also
  VehicleEnterTileStatus to see what the bits in the return value mean.

Definition at line 1831 of file vehicle.cpp.

Referenced by TrainController(), and UpdateStatusAfterSwap().

## Variable Documentation

## ◆ _tile_type_procs

const TileTypeProcs* const _tile_type_procs[16]

Tile callback functions for each type of tile.

See also
  TileType

Definition at line 64 of file landscape.cpp.

Referenced by ChangeTileOwner(), GetFoundationSlope(), and GetTileTrackStatus().