OpenTTD Source  20240917-master-g9ab0a47812
tile_map.cpp File Reference
#include "stdafx.h"
#include "tile_map.h"
#include "safeguards.h"

Go to the source code of this file.

Functions

static std::tuple< Slope, int > GetTileSlopeGivenHeight (int hnorth, int hwest, int heast, int hsouth)
 Get a tile's slope given the heigh of its four corners. More...
 
std::tuple< Slope, int > GetTileSlopeZ (TileIndex tile)
 Return the slope of a given tile inside the map. More...
 
std::tuple< Slope, int > GetTilePixelSlopeOutsideMap (int x, int y)
 Return the slope of a given tile, also for tiles outside the map (virtual "black" tiles). More...
 
bool IsTileFlat (TileIndex tile, int *h)
 Check if a given tile is flat. More...
 
int GetTileZ (TileIndex tile)
 Get bottom height of the tile. More...
 
int GetTileMaxZ (TileIndex t)
 Get top height of the tile inside the map. More...
 

Detailed Description

Global tile accessors.

Definition in file tile_map.cpp.

Function Documentation

◆ GetTileMaxZ()

int GetTileMaxZ ( TileIndex  t)

Get top height of the tile inside the map.

Parameters
tTile to compute height of
Returns
Maximum height of the tile

Definition at line 136 of file tile_map.cpp.

References Map::MaxX(), Map::MaxY(), TileHeight(), TileX(), TileXY(), and TileY().

Referenced by AutoslopeCheckForEntranceEdge(), CheckBuildHouseSameZ(), DrawRoadTypeCatenary(), FloodVehicleProc(), GetOtherAqueductEnd(), GetTileMaxPixelZ(), RiverMakeWider(), ShipTestUpDownOnLock(), and TryBuildTownHouse().

◆ GetTilePixelSlopeOutsideMap()

std::tuple<Slope, int> GetTilePixelSlopeOutsideMap ( int  x,
int  y 
)

Return the slope of a given tile, also for tiles outside the map (virtual "black" tiles).

Parameters
xX coordinate of the tile to compute slope of, may be outside the map.
yY coordinate of the tile to compute slope of, may be outside the map.
hIf not nullptr, pointer to storage of z height.
Returns
Slope of the tile, except for the HALFTILE part, and the z height of the tile.

Definition at line 78 of file tile_map.cpp.

◆ GetTileSlopeGivenHeight()

static std::tuple<Slope, int> GetTileSlopeGivenHeight ( int  hnorth,
int  hwest,
int  heast,
int  hsouth 
)
static

Get a tile's slope given the heigh of its four corners.

Parameters
hnorthThe height at the northern corner in the same unit as TileHeight.
hwestThe height at the western corner in the same unit as TileHeight.
heastThe height at the eastern corner in the same unit as TileHeight.
hsouthThe height at the southern corner in the same unit as TileHeight.
Returns
The slope and the lowest height of the four corners.

Definition at line 23 of file tile_map.cpp.

References SLOPE_E, SLOPE_FLAT, SLOPE_N, SLOPE_S, SLOPE_STEEP, and SLOPE_W.

Referenced by GetTileSlopeZ().

◆ GetTileSlopeZ()

std::tuple<Slope, int> GetTileSlopeZ ( TileIndex  tile)

Return the slope of a given tile inside the map.

Parameters
tileTile to compute slope of
Returns
Slope of the tile, except for the HALFTILE part, and the z height

Definition at line 55 of file tile_map.cpp.

References GetTileSlopeGivenHeight(), Map::MaxX(), Map::MaxY(), TileHeight(), TileX(), TileXY(), and TileY().

Referenced by CheckBuildableTile(), FlowsDown(), GetBridgeHeight(), GetFoundationSlope(), GetOtherAqueductEnd(), GetTilePixelSlope(), and GetTileSlope().

◆ GetTileZ()

int GetTileZ ( TileIndex  tile)

◆ IsTileFlat()

bool IsTileFlat ( TileIndex  tile,
int *  h 
)

Check if a given tile is flat.

Parameters
tileTile to check
hIf not nullptr, pointer to storage of z height (only if tile is flat)
Returns
Whether the tile is flat

Definition at line 95 of file tile_map.cpp.

References Map::MaxX(), Map::MaxY(), TileHeight(), TileX(), TileXY(), and TileY().

Referenced by CheckIfIndustryTilesAreFree(), CmdBuildBuoy(), CmdBuildShipDepot(), FindFurthestFromWater(), FindSpring(), GrowTown(), MakeLake(), RiverMakeWider(), SetWaterClassDependingOnSurroundings(), TownCanBePlacedHere(), and TryBuildTransmitter().