OpenTTD
Functions
town_map.h File Reference

Accessors for towns. More...

#include "road_map.h"
#include "house.h"

Go to the source code of this file.

Functions

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

Detailed Description

Accessors for towns.

Definition in file town_map.h.

Function Documentation

static void DecHouseProcessingTime ( TileIndex  t)
inlinestatic

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

Parameters
tthe house tile
Precondition
IsTileType(t, MP_HOUSE)

Definition at line 338 of file town_map.h.

References _me, IsTileType(), TileExtended::m6, and MP_HOUSE.

static HouseID GetCleanHouseType ( TileIndex  t)
inlinestatic

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

Parameters
tthe tile
Precondition
IsTileType(t, MP_HOUSE)
Returns
house type

Definition at line 49 of file town_map.h.

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

Referenced by GetHouseType(), and UpdateHousesAndTowns().

static Year GetHouseAge ( TileIndex  t)
inlinestatic

Get the age of the house.

Parameters
tthe tile of this house
Precondition
IsTileType(t, MP_HOUSE)
Returns
year

Definition at line 251 of file town_map.h.

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

Referenced by HouseScopeResolver::GetVariable(), and TileLoop_Town().

static byte GetHouseBuildingStage ( TileIndex  t)
inlinestatic

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
tthe 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 185 of file town_map.h.

References _m, GB(), IsHouseCompleted(), IsTileType(), MP_HOUSE, and TOWN_HOUSE_COMPLETED.

Referenced by DrawTile_Town(), and HouseScopeResolver::GetVariable().

static byte GetHouseConstructionTick ( TileIndex  t)
inlinestatic

Gets the construction stage of a house.

Parameters
tthe 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 197 of file town_map.h.

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

Referenced by MakeSingleHouseBigger().

static byte GetHouseProcessingTime ( TileIndex  t)
inlinestatic

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

Parameters
tthe house tile
Precondition
IsTileType(t, MP_HOUSE)
Returns
time remaining

Definition at line 315 of file town_map.h.

References _me, GB(), IsTileType(), and MP_HOUSE.

static byte GetHouseRandomBits ( TileIndex  t)
inlinestatic

Get the random bits for this house.

This is required for newgrf house

Parameters
tthe tile of this house
Precondition
IsTileType(t, MP_HOUSE)
Returns
random bits

Definition at line 277 of file town_map.h.

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

Referenced by HouseScopeResolver::GetRandomBits().

static byte GetHouseTriggers ( TileIndex  t)
inlinestatic

Get the already activated triggers bits for this house.

This is required for newgrf house

Parameters
tthe tile of this house
Precondition
IsTileType(t, MP_HOUSE)
Returns
triggers

Definition at line 303 of file town_map.h.

References _m, GB(), IsTileType(), and MP_HOUSE.

Referenced by HouseScopeResolver::GetTriggers().

static HouseID GetHouseType ( TileIndex  t)
inlinestatic

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

Parameters
tthe tile
Precondition
IsTileType(t, MP_HOUSE)
Returns
house type

Definition at line 61 of file town_map.h.

References GetCleanHouseType(), and GetTranslatedHouseID().

Referenced by AfterLoadGame(), AnimateTile_Town(), DoWatchedCargoCallback(), DrawTile_Town(), GetFoundation_Town(), HouseScopeResolver::GetVariable(), MakeSingleHouseBigger(), MakeTownHouseBigger(), RebuildTownCaches(), SearchNearbyHouseClass(), SearchNearbyHouseGRFID(), SearchNearbyHouseID(), TileLoop_Town(), and WatchedCargoCallback().

static byte GetLiftDestination ( TileIndex  t)
inlinestatic

Get the current destination for this lift.

Parameters
tthe tile
Returns
destination

Definition at line 106 of file town_map.h.

References _me, and GB().

Referenced by AnimateTile_Town().

static byte GetLiftPosition ( TileIndex  t)
inlinestatic

Get the position of the lift on this animated house.

Parameters
tthe tile
Returns
position, from 0 to 36

Definition at line 127 of file town_map.h.

References _me, and GB().

Referenced by AnimateTile_Town().

static TownID GetTownIndex ( TileIndex  t)
inlinestatic

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

Parameters
tthe tile
Precondition
IsTileType(t, MP_HOUSE) or IsTileType(t, MP_ROAD) but not a road depot
Returns
TownID

Definition at line 24 of file town_map.h.

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

Referenced by AfterLoadGame(), CanBuildHouseHere(), ClosestTownFromTile(), CmdBuildSingleRail(), CmdDeleteTown(), CmdRemoveSingleRail(), FixOwnerOfRailTrack(), UpdateTownCargoes(), and Town::~Town().

static void HaltLift ( TileIndex  t)
inlinestatic

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
tthe tile

Definition at line 117 of file town_map.h.

References _me, and SB().

Referenced by AnimateTile_Town().

static void IncHouseConstructionTick ( TileIndex  t)
inlinestatic

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
tthe tile of the house to increment the construction stage of
Precondition
IsTileType(t, MP_HOUSE)

Definition at line 210 of file town_map.h.

References _m, AB(), GB(), IsTileType(), MP_HOUSE, SetHouseCompleted(), and TOWN_HOUSE_COMPLETED.

Referenced by MakeSingleHouseBigger().

static void IncrementHouseAge ( TileIndex  t)
inlinestatic

Increments the age of the house.

Parameters
tthe tile of this house
Precondition
IsTileType(t, MP_HOUSE)

Definition at line 239 of file town_map.h.

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

static bool IsHouseCompleted ( TileIndex  t)
inlinestatic

Get the completion of this house.

Parameters
tthe tile
Returns
true if it is, false if it is not

Definition at line 147 of file town_map.h.

References _m, HasBit(), IsTileType(), and MP_HOUSE.

Referenced by AfterLoadGame(), GetHouseAge(), GetHouseBuildingStage(), GetHouseConstructionTick(), IncrementHouseAge(), MakeHouseTile(), MakeSingleHouseBigger(), RebuildTownCaches(), ResetHouseAge(), and TileLoop_Town().

static bool LiftHasDestination ( TileIndex  t)
inlinestatic

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

Parameters
tthe tile
Returns
has destination

Definition at line 84 of file town_map.h.

References _me, and HasBit().

Referenced by AnimateTile_Town(), and TileLoop_Town().

static void MakeHouseTile ( TileIndex  t,
TownID  tid,
byte  counter,
byte  stage,
HouseID  type,
byte  random_bits 
)
inlinestatic

Make the tile a house.

Parameters
ttile index
tidTown index
counterof construction step
stageof construction (used for drawing)
typeof house. Index into house specs array
random_bitsrequired for newgrf houses
Precondition
IsTileType(t, MP_CLEAR)

Definition at line 354 of file town_map.h.

References _m, 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().

static void ResetHouseAge ( TileIndex  t)
inlinestatic

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
tthe tile of this house
Precondition
IsTileType(t, MP_HOUSE) && IsHouseCompleted(t)

Definition at line 228 of file town_map.h.

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

Referenced by MakeSingleHouseBigger().

static void SetHouseCompleted ( TileIndex  t,
bool  status 
)
inlinestatic

Mark this house as been completed.

Parameters
tthe tile
status

Definition at line 158 of file town_map.h.

References _m, IsTileType(), MP_HOUSE, and SB().

Referenced by AfterLoadGame(), IncHouseConstructionTick(), and MakeHouseTile().

static void SetHouseProcessingTime ( TileIndex  t,
byte  time 
)
inlinestatic

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

Parameters
tthe house tile
timethe time to be set
Precondition
IsTileType(t, MP_HOUSE)

Definition at line 327 of file town_map.h.

References _me, IsTileType(), MP_HOUSE, and SB().

Referenced by MakeHouseTile().

static void SetHouseRandomBits ( TileIndex  t,
byte  random 
)
inlinestatic

Set the random bits for this house.

This is required for newgrf house

Parameters
tthe tile of this house
randomthe new random bits
Precondition
IsTileType(t, MP_HOUSE)

Definition at line 264 of file town_map.h.

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

static void SetHouseTriggers ( TileIndex  t,
byte  triggers 
)
inlinestatic

Set the activated triggers bits for this house.

This is required for newgrf house

Parameters
tthe tile of this house
triggersthe activated triggers
Precondition
IsTileType(t, MP_HOUSE)

Definition at line 290 of file town_map.h.

References _m, IsTileType(), MP_HOUSE, and SB().

Referenced by HouseScopeResolver::SetTriggers().

static void SetHouseType ( TileIndex  t,
HouseID  house_id 
)
inlinestatic

Set the house type.

Parameters
tthe tile
house_idthe new house type
Precondition
IsTileType(t, MP_HOUSE)

Definition at line 72 of file town_map.h.

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

Referenced by MakeHouseTile(), and UpdateHousesAndTowns().

static void SetLiftDestination ( TileIndex  t,
byte  dest 
)
inlinestatic

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

Parameters
tthe tile
destnew destination

Definition at line 95 of file town_map.h.

References _me, SB(), and SetBit().

Referenced by AnimateTile_Town().

static void SetLiftPosition ( TileIndex  t,
byte  pos 
)
inlinestatic

Set the position of the lift on this animated house.

Parameters
tthe tile
posposition, from 0 to 36

Definition at line 137 of file town_map.h.

References _me, and SB().

Referenced by AfterLoadGame(), and AnimateTile_Town().

static void SetTownIndex ( TileIndex  t,
TownID  index 
)
inlinestatic

Set the town index for a road or house tile.

Parameters
tthe tile
indexthe index of the town
Precondition
IsTileType(t, MP_HOUSE) or IsTileType(t, MP_ROAD) but not a road depot

Definition at line 36 of file town_map.h.

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

Referenced by AfterLoadGame(), CmdBuildRoad(), GrowTownAtRoad(), RemoveRoad(), and UpdateNearestTownForRoadTiles().