OpenTTD: Town Struct Reference

OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Public Member Functions | Static Public Member Functions | Data Fields
Town Struct Reference

Town data structure. More...

`#include <town.h>`

Inheritance diagram for Town:

## Public Member Functions
byte | GetPercentTransported (CargoID cid) const
| Town (TileIndex tile=INVALID_TILE)
| Creates a new town.
| ~Town ()
| Destroy the town.
void | InitializeLayout (TownLayout layout)
| Assigns town layout.
uint16 | MaxTownNoise () const
| Calculate the max town noise.
void | UpdateVirtCoord ()
| Resize the sign(label) of the town after changes in population (creation or growth or else)
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >
void * | operator new (size_t size)
| Allocates space for new Titem.
void * | operator new (size_t size, size_t index)
| Allocates space for new Titem with given index.
void * | operator new (size_t size, void *ptr)
| Allocates space for new Titem at given memory address.
void | operator delete (void *p)
| Marks Titem as free.

## Static Public Member Functions
static Town * | GetByTile (TileIndex tile)
static Town * | GetRandom ()
| Return a random valid town.
static void | PostDestructor (size_t index)
| Invalidating of the "nearest town cache" has to be done after removing item from the pool.
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >
static bool | CanAllocateItem (size_t n=1)
| Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function()
static bool | CleaningPool ()
| Returns current state of pool cleaning - yes or no.
static bool | IsValidID (size_t index)
| Tests whether given index can be used to get valid (non-NULL) Titem.
static Titem * | Get (size_t index)
| Returns Titem with given index.
static Titem * | GetIfValid (size_t index)
| Returns Titem with given index.
static size_t | GetPoolSize ()
| Returns first unused index.
static size_t | GetNumItems ()
| Returns number of valid items in the pool.

## Data Fields
TileIndex | xy
| town center tile
TownCache | cache
| Container for all cacheable data.
uint32 | townnamegrfid
uint16 | townnametype
uint32 | townnameparts
char * | name
| Custom town name. If NULL, the town was not renamed and uses the generated name.
byte | flags
| See TownFlags.
uint16 | noise_reached
| level of noise that all the airports are generating
CompanyMask | statues
| which companies have a statue?
CompanyMask | have_ratings
| which companies have a rating
uint8 | unwanted [MAX_COMPANIES]
| how many months companies aren't wanted by towns (bribe)
CompanyByte | exclusivity
| which company has exclusivity
uint8 | exclusive_counter
| months till the exclusivity expires
int16 | ratings [MAX_COMPANIES]
| ratings of each company for this town
TransportedCargoStat< uint32 > | supplied [NUM_CARGO]
| Cargo statistics about supplied cargo.
TransportedCargoStat< uint16 > | received [NUM_TE]
| Cargo statistics about received cargotypes.
uint32 | goal [NUM_TE]
| Amount of cargo required for the town to grow.
char * | text
| General text with additional information.
uint32 | cargo_produced
| Bitmap of all cargoes produced by houses in this town.
AcceptanceMatrix | cargo_accepted
| Bitmap of cargoes accepted by houses for each 4*4 map square of the town.
uint32 | cargo_accepted_total
| NOSAVE: Bitmap of all cargoes accepted by houses in this town.
uint16 | time_until_rebuild
| time until we rebuild a house
uint16 | grow_counter
| counter to count when to grow, value is smaller than or equal to growth_rate
uint16 | growth_rate
| town growth rate
byte | fund_buildings_months
| fund buildings program in action?
byte | road_build_months
| fund road reconstruction in action?
bool | larger_town
| if this is a larger town and should grow more quickly
TownLayoutByte | layout
| town specific road layout
std::list< PersistentStorage * > | psa_list
Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >
Tindex | index
| Index of this pool item.

## Detailed Description

Town data structure.

Definition at line 55 of file town.h.

## Constructor & Destructor Documentation

Town::Town | ( | TileIndex | tile = `INVALID_TILE` | ) |
| inline

Creates a new town.

Parameters

  tile | center tile of the town

Definition at line 109 of file town.h.

Town::~Town | ( |  | ) |

Destroy the town.

Definition at line 62 of file town_cmd.cpp.

References ClosestTownFromTile(), DeleteNewGRFInspectWindow(), DeleteSubsidyWith(), DeleteWindowById(), free(), GetTileType(), GetTownIndex(), GSF_FAKE_TOWNS, HasTownOwnedRoad(), CargoPacket::InvalidateAllFrom(), IsTileOwner(), MapSize(), MarkWholeScreenDirty(), MP_HOUSE, MP_ROAD, MP_TUNNELBRIDGE, OWNER_TOWN, ST_TOWN, Object::town, Industry::town, and WC_TOWN_VIEW.

## Member Function Documentation

Town * Town::GetRandom | ( |  | ) |
| static

Return a random valid town.

Returns
  random town, NULL if there are no towns

Definition at line 145 of file town_cmd.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetNumItems(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetPoolSize(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::IsValidID(), MAX_UVALUE, and RandomRange().

Referenced by FindSubsidyCargoDestination(), FindSubsidyPassengerRoute(), and FindSubsidyTownCargoRoute().

void Town::InitializeLayout | ( | TownLayout | layout | ) |

Assigns town layout.

If Random, generates one based on TileHash.

Definition at line 131 of file town_cmd.cpp.

References layout, NUM_TLS, TileHash(), TileX(), TileY(), TL_RANDOM, and xy.

Referenced by DoCreateTown().

uint16 Town::MaxTownNoise | ( |  | ) | const
| inline

Calculate the max town noise.

The value is counted using the population divided by the content of the entry in town_noise_population corresponding to the town's tolerance.

Returns
  the maximum noise level the town will tolerate.

Definition at line 122 of file town.h.

References _settings_game, cache, GameSettings::difficulty, GameSettings::economy, TownCache::population, DifficultySettings::town_council_tolerance, and EconomySettings::town_noise_population.

Referenced by CmdBuildAirport(), and TownViewWindow::DrawWidget().

void Town::PostDestructor | ( | size_t | index | ) |
| static

Invalidating of the "nearest town cache" has to be done after removing item from the pool.

Parameters

  index | index of deleted item

Reimplemented from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >.

Definition at line 116 of file town_cmd.cpp.

References CalcClosestTownFromTile(), InvalidateWindowData(), Object::location, OrthogonalTileArea::tile, Object::town, UpdateNearestTownForRoadTiles(), and WC_TOWN_DIRECTORY.

The documentation for this struct was generated from the following files:

- src/town.h
- src/town_cmd.cpp