OpenTTD Source: src/clear_map.h File Reference

OpenTTD Source 15.0-RC2

Enumerations | Functions
clear_map.h File Reference

Map accessors for 'clear' tiles. More...

`#include "bridge_map.h"`
`#include "industry_type.h"`

Go to the source code of this file.

## Enumerations
enum | ClearGround : uint8_t { CLEAR_GRASS = 0 , CLEAR_ROUGH = 1 , CLEAR_ROCKS = 2 , CLEAR_FIELDS = 3 , CLEAR_SNOW = 4 , CLEAR_DESERT = 5 }
| Ground types. More...

## Functions
bool | IsSnowTile (Tile t)
| Test if a tile is covered with snow.
ClearGround | GetClearGround (Tile t)
| Get the type of clear tile.
bool | IsClearGround (Tile t, ClearGround ct)
| Set the type of clear tile.
uint | GetClearDensity (Tile t)
| Get the density of a non-field clear tile.
void | AddClearDensity (Tile t, int d)
| Increment the density of a non-field clear tile.
void | SetClearDensity (Tile t, uint d)
| Set the density of a non-field clear tile.
uint | GetClearCounter (Tile t)
| Get the counter used to advance to the next clear density/field type.
void | AddClearCounter (Tile t, int c)
| Increments the counter used to advance to the next clear density/field type.
void | SetClearCounter (Tile t, uint c)
| Sets the counter used to advance to the next clear density/field type.
void | SetClearGroundDensity (Tile t, ClearGround type, uint density)
| Sets ground type and density in one go, also sets the counter to 0.
uint | GetFieldType (Tile t)
| Get the field type (production stage) of the field.
void | SetFieldType (Tile t, uint f)
| Set the field type (production stage) of the field.
IndustryID | GetIndustryIndexOfField (Tile t)
| Get the industry (farm) that made the field.
void | SetIndustryIndexOfField (Tile t, IndustryID i)
| Set the industry (farm) that made the field.
uint | GetFence (Tile t, DiagDirection side)
| Is there a fence at the given border?
void | SetFence (Tile t, DiagDirection side, uint h)
| Sets the type of fence (and whether there is one) for the given border.
void | MakeClear (Tile t, ClearGround g, uint density)
| Make a clear tile.
void | MakeField (Tile t, uint field_type, IndustryID industry)
| Make a (farm) field tile.
void | MakeSnow (Tile t, uint density=0)
| Make a snow tile.
void | ClearSnow (Tile t)
| Clear the snow from a tile and return it to its previous type.

## Detailed Description

Map accessors for 'clear' tiles.

Definition in file clear_map.h.

## Enumeration Type Documentation

## ◆ ClearGround

enum ClearGround : uint8_t

Ground types.

Valid densities in comments after the enum.

Enumerator
CLEAR_GRASS | 0-3
CLEAR_ROUGH | 3
CLEAR_ROCKS | 3
CLEAR_FIELDS | 3
CLEAR_SNOW | 0-3 (Not stored in map.)
CLEAR_DESERT | 1,3

Definition at line 19 of file clear_map.h.

## Function Documentation

## ◆ AddClearCounter()

void AddClearCounter | ( | Tile | t,
|  | int | c
| ) |  |
| inline

Increments the counter used to advance to the next clear density/field type.

Parameters

  t | the tile to increment the counter of
  c | the amount to increment the counter with

Precondition
  IsTileType(t, MP_CLEAR)

Definition at line 120 of file clear_map.h.

References IsTileType(), Tile::m5(), and MP_CLEAR.

## ◆ AddClearDensity()

void AddClearDensity | ( | Tile | t,
|  | int | d
| ) |  |
| inline

Increment the density of a non-field clear tile.

Parameters

  t | the tile to increment the density of
  d | the amount to increment the density with

Precondition
  IsTileType(t, MP_CLEAR)

Definition at line 83 of file clear_map.h.

References IsTileType(), Tile::m5(), and MP_CLEAR.

Referenced by TileLoopClearAlps().

## ◆ ClearSnow()

void ClearSnow | ( | Tile | t | ) |
| inline

Clear the snow from a tile and return it to its previous type.

Parameters

  t | the tile to clear of snow

Precondition
  IsSnowTile(t)

Definition at line 304 of file clear_map.h.

References ClrBit(), IsSnowTile(), Tile::m3(), and SetClearDensity().

Referenced by TileLoopClearAlps().

## ◆ GetClearCounter()

uint GetClearCounter | ( | Tile | t | ) |
| inline

Get the counter used to advance to the next clear density/field type.

Parameters

  t | the tile to get the counter of

Precondition
  IsTileType(t, MP_CLEAR)

Returns
  the value of the counter

Definition at line 108 of file clear_map.h.

References GB(), IsTileType(), Tile::m5(), and MP_CLEAR.

## ◆ GetClearDensity()

uint GetClearDensity | ( | Tile | t | ) |
| inline

Get the density of a non-field clear tile.

Parameters

  t | the tile to get the density of

Precondition
  IsTileType(t, MP_CLEAR)

Returns
  the density

Definition at line 71 of file clear_map.h.

References GB(), IsTileType(), Tile::m5(), and MP_CLEAR.

Referenced by AfterLoadGame(), GetSmallMapVegetationPixels(), GetTerrainType(), PlantTreesOnTile(), TileLoopClearAlps(), and TownCanBePlacedHere().

## ◆ GetClearGround()

ClearGround GetClearGround | ( | Tile | t | ) |
| inline

Get the type of clear tile.

Parameters

  t | the tile to get the clear ground type of

Precondition
  IsTileType(t, MP_CLEAR)

Returns
  the ground type

Definition at line 47 of file clear_map.h.

References GB(), IsTileType(), Tile::m5(), and MP_CLEAR.

Referenced by AfterLoadGame(), CmdPlantTree(), GetFieldType(), GetIndustryIndexOfField(), GetSmallMapVegetationPixels(), IsClearGround(), IsSuitableForFarmField(), MakeSnow(), PlantTreesOnTile(), SetFieldType(), and SetIndustryIndexOfField().

## ◆ GetFence()

uint GetFence | ( | Tile | t,
|  | DiagDirection | side
| ) |  |
| inline

Is there a fence at the given border?

Parameters

  t | the tile to check for fences
  side | the border to check

Precondition
  IsClearGround(t, CLEAR_FIELDS)

Returns
  0 if there is no fence, otherwise the fence type

Definition at line 209 of file clear_map.h.

References CLEAR_FIELDS, DIAGDIR_NE, DIAGDIR_NW, DIAGDIR_SE, DIAGDIR_SW, GB(), IsClearGround(), Tile::m3(), Tile::m4(), and Tile::m6().

Referenced by SetupFarmFieldFence().

## ◆ GetFieldType()

uint GetFieldType | ( | Tile | t | ) |
| inline

Get the field type (production stage) of the field.

Parameters

  t | the field to get the type of

Precondition
  GetClearGround(t) == CLEAR_FIELDS

Returns
  the field type

Definition at line 159 of file clear_map.h.

References CLEAR_FIELDS, GB(), GetClearGround(), and Tile::m3().

## ◆ GetIndustryIndexOfField()

IndustryID GetIndustryIndexOfField | ( | Tile | t | ) |
| inline

Get the industry (farm) that made the field.

Parameters

  t | the field to get creating industry of

Precondition
  GetClearGround(t) == CLEAR_FIELDS

Returns
  the industry that made the field

Definition at line 183 of file clear_map.h.

References CLEAR_FIELDS, GetClearGround(), and Tile::m2().

## ◆ IsClearGround()

bool IsClearGround | ( | Tile | t,
|  | ClearGround | ct
| ) |  |
| inline

Set the type of clear tile.

Parameters

  t | the tile to set the clear ground type of
  ct | the ground type

Precondition
  IsTileType(t, MP_CLEAR)

Definition at line 59 of file clear_map.h.

References GetClearGround().

Referenced by AfterLoadGame(), CanPlantTreesOnTile(), GetFence(), GetSmallMapVegetationPixels(), SetFence(), and SetupFarmFieldFence().

## ◆ IsSnowTile()

bool IsSnowTile | ( | Tile | t | ) |
| inline

Test if a tile is covered with snow.

Parameters

  t | the tile to check

Precondition
  IsTileType(t, MP_CLEAR)

Returns
  whether the tile is covered with snow.

Definition at line 35 of file clear_map.h.

References HasBit(), IsTileType(), Tile::m3(), and MP_CLEAR.

Referenced by ClearSnow(), GetSmallMapVegetationPixels(), GetTerrainType(), MakeSnow(), PlantTreesOnTile(), and TileLoopClearAlps().

## ◆ MakeClear()

void MakeClear | ( | Tile | t,
|  | ClearGround | g,
|  | uint | density
| ) |  |
| inline

Make a clear tile.

Parameters

  t | the tile to make a clear tile
  g | the type of ground
  density | the density of the grass/snow/desert etc

Definition at line 247 of file clear_map.h.

References Tile::m1(), Tile::m2(), Tile::m3(), Tile::m4(), Tile::m6(), Tile::m7(), Tile::m8(), MP_CLEAR, OWNER_NONE, SetClearGroundDensity(), SetTileOwner(), and SetTileType().

Referenced by AfterLoadGame(), DoDryUp(), FixOwnerOfRailTrack(), FixSlopes(), GenerateRockyArea(), GreyscaleToMapHeights(), and TgenSetTileHeight().

## ◆ MakeField()

void MakeField | ( | Tile | t,
|  | uint | field_type,
|  | IndustryID | industry
| ) |  |
| inline

Make a (farm) field tile.

Parameters

  t | the tile to make a farm field
  field_type | the 'growth' level of the field
  industry | the industry this tile belongs to

Definition at line 268 of file clear_map.h.

References CLEAR_FIELDS, Tile::m1(), Tile::m2(), Tile::m3(), Tile::m4(), Tile::m6(), Tile::m7(), Tile::m8(), MP_CLEAR, OWNER_NONE, SB(), SetClearGroundDensity(), SetTileOwner(), and SetTileType().

## ◆ MakeSnow()

void MakeSnow | ( | Tile | t,
|  | uint | density = `0`
| ) |  |
| inline

Make a snow tile.

Parameters

  t | the tile to make snowy
  density | The density of snowiness.

Precondition
  !IsSnowTile(t)

Definition at line 288 of file clear_map.h.

References CLEAR_FIELDS, CLEAR_GRASS, GetClearGround(), IsSnowTile(), Tile::m3(), SetBit(), SetClearDensity(), and SetClearGroundDensity().

Referenced by TileLoopClearAlps().

## ◆ SetClearCounter()

void SetClearCounter | ( | Tile | t,
|  | uint | c
| ) |  |
| inline

Sets the counter used to advance to the next clear density/field type.

Parameters

  t | the tile to set the counter of
  c | the amount to set the counter to

Precondition
  IsTileType(t, MP_CLEAR)

Definition at line 132 of file clear_map.h.

References IsTileType(), Tile::m5(), MP_CLEAR, and SB().

## ◆ SetClearDensity()

void SetClearDensity | ( | Tile | t,
|  | uint | d
| ) |  |
| inline

Set the density of a non-field clear tile.

Parameters

  t | the tile to set the density of
  d | the new density

Precondition
  IsTileType(t, MP_CLEAR)

Definition at line 95 of file clear_map.h.

References IsTileType(), Tile::m5(), MP_CLEAR, and SB().

Referenced by ClearSnow(), and MakeSnow().

## ◆ SetClearGroundDensity()

void SetClearGroundDensity | ( | Tile | t,
|  | ClearGround | type,
|  | uint | density
| ) |  |
| inline

Sets ground type and density in one go, also sets the counter to 0.

Parameters

  t | the tile to set the ground type and density for
  type | the new ground type of the tile
  density | the density of the ground tile

Precondition
  IsTileType(t, MP_CLEAR)

Definition at line 146 of file clear_map.h.

References IsTileType(), Tile::m5(), and MP_CLEAR.

Referenced by AfterLoadGame(), MakeClear(), MakeField(), MakeSnow(), and MakeWetlands().

## ◆ SetFence()

void SetFence | ( | Tile | t,
|  | DiagDirection | side,
|  | uint | h
| ) |  |
| inline

Sets the type of fence (and whether there is one) for the given border.

Parameters

  t | the tile to check for fences
  side | the border to check
  h | 0 if there is no fence, otherwise the fence type

Precondition
  IsClearGround(t, CLEAR_FIELDS)

Definition at line 228 of file clear_map.h.

References CLEAR_FIELDS, DIAGDIR_NE, DIAGDIR_NW, DIAGDIR_SE, DIAGDIR_SW, IsClearGround(), Tile::m3(), Tile::m4(), Tile::m6(), and SB().

Referenced by AfterLoadGame(), and SetupFarmFieldFence().

## ◆ SetFieldType()

void SetFieldType | ( | Tile | t,
|  | uint | f
| ) |  |
| inline

Set the field type (production stage) of the field.

Parameters

  t | the field to get the type of
  f | the field type

Precondition
  GetClearGround(t) == CLEAR_FIELDS

Definition at line 171 of file clear_map.h.

References CLEAR_FIELDS, GetClearGround(), Tile::m3(), and SB().

## ◆ SetIndustryIndexOfField()

void SetIndustryIndexOfField | ( | Tile | t,
|  | IndustryID | i
| ) |  |
| inline

Set the industry (farm) that made the field.

Parameters

  t | the field to get creating industry of
  i | the industry that made the field

Precondition
  GetClearGround(t) == CLEAR_FIELDS

Definition at line 195 of file clear_map.h.

References CLEAR_FIELDS, GetClearGround(), and Tile::m2().