OpenTTD Source: src/town_map.h File Reference

OpenTTD Source 14.0-beta3

Functions
town_map.h File Reference
`#include "road_map.h"`
`#include "house.h"`
`#include "timer/timer_game_calendar.h"`

Go to the source code of this file.

## Functions
TownID | GetTownIndex (Tile t)
| Get the index of which town this house/street is attached to. More...
void | SetTownIndex (Tile t, TownID index)
| Set the town index for a road or house tile. More...
HouseID | GetCleanHouseType (Tile t)
| Get the type of this house, which is an index into the house spec array without doing any NewGRF related translations. More...
HouseID | GetHouseType (Tile t)
| Get the type of this house, which is an index into the house spec array. More...
void | SetHouseType (Tile t, HouseID house_id)
| Set the house type. More...
bool | LiftHasDestination (Tile t)
| Check if the lift of this animated house has a destination. More...
void | SetLiftDestination (Tile t, byte dest)
| Set the new destination of the lift for this animated house, and activate the LiftHasDestination bit. More...
byte | GetLiftDestination (Tile t)
| Get the current destination for this lift. More...
void | HaltLift (Tile t)
| Stop the lift of this animated house from moving. More...
byte | GetLiftPosition (Tile t)
| Get the position of the lift on this animated house. More...
void | SetLiftPosition (Tile t, byte pos)
| Set the position of the lift on this animated house. More...
bool | IsHouseCompleted (Tile t)
| Get the completion of this house. More...
void | SetHouseCompleted (Tile t, bool status)
| Mark this house as been completed. More...
byte | GetHouseBuildingStage (Tile t)
| House Construction Scheme. More...
byte | GetHouseConstructionTick (Tile t)
| Gets the construction stage of a house. More...
void | IncHouseConstructionTick (Tile t)
| Sets the increment stage of a house It is working with the whole counter + stage 5 bits, making it easier to work: the wraparound is automatic. More...
void | ResetHouseAge (Tile t)
| Sets the age of the house to zero. More...
void | IncrementHouseAge (Tile t)
| Increments the age of the house. More...
TimerGameCalendar::Year | GetHouseAge (Tile t)
| Get the age of the house. More...
void | SetHouseRandomBits (Tile t, byte random)
| Set the random bits for this house. More...
byte | GetHouseRandomBits (Tile t)
| Get the random bits for this house. More...
void | SetHouseTriggers (Tile t, byte triggers)
| Set the activated triggers bits for this house. More...
byte | GetHouseTriggers (Tile t)
| Get the already activated triggers bits for this house. More...
byte | GetHouseProcessingTime (Tile t)
| Get the amount of time remaining before the tile loop processes this tile. More...
void | SetHouseProcessingTime (Tile t, byte time)
| Set the amount of time remaining before the tile loop processes this tile. More...
void | DecHouseProcessingTime (Tile t)
| Decrease the amount of time remaining before the tile loop processes this tile. More...
void | MakeHouseTile (Tile t, TownID tid, byte counter, byte stage, HouseID type, byte random_bits)
| Make the tile a house. More...

## Detailed Description

Accessors for towns

Definition in file town_map.h.

## Function Documentation

## ◆ DecHouseProcessingTime()

void DecHouseProcessingTime | ( | Tile | t | ) |
| inline

Decrease the amount of time remaining before the tile loop processes this tile.

Parameters

  t | the house tile

Precondition
  IsTileType(t, MP_HOUSE)

Definition at line 337 of file town_map.h.

References IsTileType(), Tile::m6(), and MP_HOUSE.

## ◆ GetCleanHouseType()

HouseID GetCleanHouseType | ( | Tile | t | ) |
| inline

Get the type of this house, which is an index into the house spec array without doing any NewGRF related translations.

Parameters

  t | the tile

Precondition
  IsTileType(t, MP_HOUSE)

Returns
  house type

Definition at line 48 of file town_map.h.

References GB(), IsTileType(), Tile::m3(), Tile::m4(), and MP_HOUSE.

Referenced by GetHouseType(), and UpdateHousesAndTowns().

## ◆ GetHouseAge()

TimerGameCalendar::Year GetHouseAge | ( | Tile | t | ) |
| inline

Get the age of the house.

Parameters

  t | the tile of this house

Precondition
  IsTileType(t, MP_HOUSE)

Returns
  year

Definition at line 250 of file town_map.h.

References IsHouseCompleted(), IsTileType(), Tile::m5(), and MP_HOUSE.

Referenced by HouseScopeResolver::GetVariable().

## ◆ GetHouseBuildingStage()

byte GetHouseBuildingStage | ( | Tile | t | ) |
| inline

House Construction Scheme.

Construction counter, for buildings under construction. Incremented on every periodic tile processing. On wraparound, the stage of building in is increased. GetHouseBuildingStage is taking care of the real stages, (as the sprite for the next phase of house building) (Get|Inc)HouseConstructionTick is simply a tick counter between the different stages Gets the building stage of a house Since the stage is used for determining what sprite to use, if the house is complete (and that stage no longer is available), fool the system by returning the TOWN_HOUSE_COMPLETE (3), thus showing a beautiful complete house.

Parameters

  t | the tile of the house to get the building stage of

Precondition
  IsTileType(t, MP_HOUSE)

Returns
  the building stage of the house

Definition at line 184 of file town_map.h.

References IsHouseCompleted(), IsTileType(), and MP_HOUSE.

Referenced by HouseScopeResolver::GetVariable().

## ◆ GetHouseConstructionTick()

byte GetHouseConstructionTick | ( | Tile | t | ) |
| inline

Gets the construction stage of a house.

Parameters

  t | the tile of the house to get the construction stage of

Precondition
  IsTileType(t, MP_HOUSE)

Returns
  the construction stage of the house

Definition at line 196 of file town_map.h.

References GB(), IsHouseCompleted(), IsTileType(), Tile::m5(), and MP_HOUSE.

Referenced by AdvanceSingleHouseConstruction().

## ◆ GetHouseProcessingTime()

byte GetHouseProcessingTime | ( | Tile | t | ) |
| inline

Get the amount of time remaining before the tile loop processes this tile.

Parameters

  t | the house tile

Precondition
  IsTileType(t, MP_HOUSE)

Returns
  time remaining

Definition at line 314 of file town_map.h.

References GB(), IsTileType(), Tile::m6(), and MP_HOUSE.

## ◆ GetHouseRandomBits()

byte GetHouseRandomBits | ( | Tile | t | ) |
| inline

Get the random bits for this house.

This is required for newgrf house

Parameters

  t | the tile of this house

Precondition
  IsTileType(t, MP_HOUSE)

Returns
  random bits

Definition at line 276 of file town_map.h.

References IsTileType(), Tile::m1(), and MP_HOUSE.

Referenced by HouseScopeResolver::GetRandomBits().

## ◆ GetHouseTriggers()

byte GetHouseTriggers | ( | Tile | t | ) |
| inline

Get the already activated triggers bits for this house.

This is required for newgrf house

Parameters

  t | the tile of this house

Precondition
  IsTileType(t, MP_HOUSE)

Returns
  triggers

Definition at line 302 of file town_map.h.

References GB(), IsTileType(), Tile::m3(), and MP_HOUSE.

Referenced by HouseScopeResolver::GetTriggers().

## ◆ GetHouseType()

HouseID GetHouseType | ( | Tile | t | ) |
| inline

Get the type of this house, which is an index into the house spec array.

Parameters

  t | the tile

Precondition
  IsTileType(t, MP_HOUSE)

Returns
  house type

Definition at line 60 of file town_map.h.

References GetCleanHouseType(), and GetTranslatedHouseID().

Referenced by AdvanceHouseConstruction(), AnimateTile_Town(), ClearTownHouse(), DrawTile_Town(), GetFoundation_Town(), NIHHouse::GetGRFID(), NIHHouse::GetSpec(), NIHHouse::IsInspectable(), NIHHouse::Resolve(), SearchNearbyHouseClass(), SearchNearbyHouseGRFID(), SearchNearbyHouseID(), TileLoop_Town(), and WatchedCargoCallback().

## ◆ GetLiftDestination()

byte GetLiftDestination | ( | Tile | t | ) |
| inline

Get the current destination for this lift.

Parameters

  t | the tile

Returns
  destination

Definition at line 105 of file town_map.h.

References GB(), and Tile::m7().

## ◆ GetLiftPosition()

byte GetLiftPosition | ( | Tile | t | ) |
| inline

Get the position of the lift on this animated house.

Parameters

  t | the tile

Returns
  position, from 0 to 36

Definition at line 126 of file town_map.h.

References GB(), and Tile::m6().

## ◆ GetTownIndex()

TownID GetTownIndex | ( | Tile | t | ) |
| inline

Get the index of which town this house/street is attached to.

Parameters

  t | the tile

Precondition
  IsTileType(t, MP_HOUSE) or IsTileType(t, MP_ROAD) but not a road depot

Returns
  TownID

Definition at line 23 of file town_map.h.

References IsRoadDepot(), IsTileType(), Tile::m2(), MP_HOUSE, and MP_ROAD.

Referenced by Station::CatchmentCoversTown(), ClosestTownFromTile(), NIHHouse::GetParent(), NIHHouse::SetStringParameters(), TestTownOwnsBridge(), and Town::~Town().

## ◆ HaltLift()

void HaltLift | ( | Tile | t | ) |
| inline

Stop the lift of this animated house from moving.

Clears the first 4 bits of m7 at once, clearing the LiftHasDestination bit and the destination.

Parameters

  t | the tile

Definition at line 116 of file town_map.h.

References Tile::m7(), and SB().

## ◆ IncHouseConstructionTick()

void IncHouseConstructionTick | ( | Tile | t | ) |
| inline

Sets the increment stage of a house It is working with the whole counter + stage 5 bits, making it easier to work: the wraparound is automatic.

Parameters

  t | the tile of the house to increment the construction stage of

Precondition
  IsTileType(t, MP_HOUSE)

Definition at line 209 of file town_map.h.

References AB(), GB(), IsTileType(), Tile::m5(), MP_HOUSE, SetHouseCompleted(), and TOWN_HOUSE_COMPLETED.

Referenced by AdvanceSingleHouseConstruction().

## ◆ IncrementHouseAge()

void IncrementHouseAge | ( | Tile | t | ) |
| inline

Increments the age of the house.

Parameters

  t | the tile of this house

Precondition
  IsTileType(t, MP_HOUSE)

Definition at line 238 of file town_map.h.

References IsHouseCompleted(), IsTileType(), Tile::m5(), and MP_HOUSE.

## ◆ IsHouseCompleted()

bool IsHouseCompleted | ( | Tile | t | ) |
| inline

Get the completion of this house.

Parameters

  t | the tile

Returns
  true if it is, false if it is not

Definition at line 146 of file town_map.h.

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

Referenced by ClearTownHouse(), GetHouseAge(), GetHouseBuildingStage(), GetHouseConstructionTick(), IncrementHouseAge(), MakeHouseTile(), and ResetHouseAge().

## ◆ LiftHasDestination()

bool LiftHasDestination | ( | Tile | t | ) |
| inline

Check if the lift of this animated house has a destination.

Parameters

  t | the tile

Returns
  has destination

Definition at line 83 of file town_map.h.

References HasBit(), and Tile::m7().

## ◆ MakeHouseTile()

void MakeHouseTile | ( | Tile | t,
|  | TownID | tid,
|  | byte | counter,
|  | byte | stage,
|  | HouseID | type,
|  | byte | random_bits
| ) |  |
| inline

Make the tile a house.

Parameters

  t | tile index
  tid | Town index
  counter | of construction step
  stage | of construction (used for drawing)
  type | of house. Index into house specs array
  random_bits | required for newgrf houses

Precondition
  IsTileType(t, MP_CLEAR)

Definition at line 353 of file town_map.h.

References IsHouseCompleted(), IsTileType(), Tile::m1(), Tile::m2(), Tile::m3(), Tile::m5(), MP_CLEAR, MP_HOUSE, SetAnimationFrame(), SetHouseCompleted(), SetHouseProcessingTime(), SetHouseType(), SetTileType(), and TOWN_HOUSE_COMPLETED.

Referenced by ClearMakeHouseTile().

## ◆ ResetHouseAge()

void ResetHouseAge | ( | Tile | t | ) |
| inline

Sets the age of the house to zero.

Needs to be called after the house is completed. During construction stages the map space is used otherwise.

Parameters

  t | the tile of this house

Precondition
  IsTileType(t, MP_HOUSE) && IsHouseCompleted(t)

Definition at line 227 of file town_map.h.

References IsHouseCompleted(), IsTileType(), Tile::m5(), and MP_HOUSE.

## ◆ SetHouseCompleted()

void SetHouseCompleted | ( | Tile | t,
|  | bool | status
| ) |  |
| inline

Mark this house as been completed.

Parameters

  t | the tile
  status |

Definition at line 157 of file town_map.h.

References IsTileType(), Tile::m3(), MP_HOUSE, and SB().

Referenced by IncHouseConstructionTick(), and MakeHouseTile().

## ◆ SetHouseProcessingTime()

void SetHouseProcessingTime | ( | Tile | t,
|  | byte | time
| ) |  |
| inline

Set the amount of time remaining before the tile loop processes this tile.

Parameters

  t | the house tile
  time | the time to be set

Precondition
  IsTileType(t, MP_HOUSE)

Definition at line 326 of file town_map.h.

References IsTileType(), Tile::m6(), MP_HOUSE, and SB().

Referenced by MakeHouseTile().

## ◆ SetHouseRandomBits()

void SetHouseRandomBits | ( | Tile | t,
|  | byte | random
| ) |  |
| inline

Set the random bits for this house.

This is required for newgrf house

Parameters

  t | the tile of this house
  random | the new random bits

Precondition
  IsTileType(t, MP_HOUSE)

Definition at line 263 of file town_map.h.

References IsTileType(), Tile::m1(), and MP_HOUSE.

## ◆ SetHouseTriggers()

void SetHouseTriggers | ( | Tile | t,
|  | byte | triggers
| ) |  |
| inline

Set the activated triggers bits for this house.

This is required for newgrf house

Parameters

  t | the tile of this house
  triggers | the activated triggers

Precondition
  IsTileType(t, MP_HOUSE)

Definition at line 289 of file town_map.h.

References IsTileType(), Tile::m3(), MP_HOUSE, and SB().

## ◆ SetHouseType()

void SetHouseType | ( | Tile | t,
|  | HouseID | house_id
| ) |  |
| inline

Set the house type.

Parameters

  t | the tile
  house_id | the new house type

Precondition
  IsTileType(t, MP_HOUSE)

Definition at line 71 of file town_map.h.

References GB(), IsTileType(), Tile::m3(), Tile::m4(), MP_HOUSE, and SB().

Referenced by MakeHouseTile().

## ◆ SetLiftDestination()

void SetLiftDestination | ( | Tile | t,
|  | byte | dest
| ) |  |
| inline

Set the new destination of the lift for this animated house, and activate the LiftHasDestination bit.

Parameters

  t | the tile
  dest | new destination

Definition at line 94 of file town_map.h.

References Tile::m7(), SB(), and SetBit().

## ◆ SetLiftPosition()

void SetLiftPosition | ( | Tile | t,
|  | byte | pos
| ) |  |
| inline

Set the position of the lift on this animated house.

Parameters

  t | the tile
  pos | position, from 0 to 36

Definition at line 136 of file town_map.h.

References Tile::m6(), and SB().

## ◆ SetTownIndex()

void SetTownIndex | ( | Tile | t,
|  | TownID | index
| ) |  |
| inline

Set the town index for a road or house tile.

Parameters

  t | the tile
  index | the index of the town

Precondition
  IsTileType(t, MP_HOUSE) or IsTileType(t, MP_ROAD) but not a road depot

Definition at line 35 of file town_map.h.

References IsRoadDepot(), IsTileType(), Tile::m2(), MP_HOUSE, and MP_ROAD.