OpenTTD Source
1.11.2
|
#include "stdafx.h"
#include "road.h"
#include "road_internal.h"
#include "road_cmd.h"
#include "landscape.h"
#include "viewport_func.h"
#include "viewport_kdtree.h"
#include "cmd_helper.h"
#include "command_func.h"
#include "industry.h"
#include "station_base.h"
#include "station_kdtree.h"
#include "company_base.h"
#include "news_func.h"
#include "error.h"
#include "object.h"
#include "genworld.h"
#include "newgrf_debug.h"
#include "newgrf_house.h"
#include "newgrf_text.h"
#include "autoslope.h"
#include "tunnelbridge_map.h"
#include "strings_func.h"
#include "window_func.h"
#include "string_func.h"
#include "newgrf_cargo.h"
#include "cheat_type.h"
#include "animated_tile_func.h"
#include "date_func.h"
#include "subsidy_func.h"
#include "core/pool_func.hpp"
#include "town.h"
#include "town_kdtree.h"
#include "townname_func.h"
#include "core/random_func.hpp"
#include "core/backup_type.hpp"
#include "depot_base.h"
#include "object_map.h"
#include "object_base.h"
#include "ai/ai.hpp"
#include "game/game.hpp"
#include "table/strings.h"
#include "table/town_land.h"
#include "safeguards.h"
Go to the source code of this file.
Data Structures | |
struct | SpotData |
Used as the user_data for FindFurthestFromWater. More... | |
struct | StatueBuildSearchData |
Structure for storing data while searching the best place to build a statue. More... | |
Typedefs | |
typedef void | TownDrawTileProc(const TileInfo *ti) |
typedef CommandCost | TownActionProc(Town *t, DoCommandFlag flags) |
Enumerations | |
enum | TownGrowthResult { GROWTH_SUCCEED = -1, GROWTH_SEARCH_STOPPED = 0 } |
Functions | |
void | RebuildTownKdtree () |
static bool | TestTownOwnsBridge (TileIndex tile, const Town *t) |
Check if a town 'owns' a bridge. More... | |
static bool | BuildTownHouse (Town *t, TileIndex tile) |
Tries to build a house at this tile. More... | |
static Town * | CreateRandomTown (uint attempts, uint32 townnameparts, TownSize size, bool city, TownLayout layout) |
static void | TownDrawHouseLift (const TileInfo *ti) |
static DiagDirection | RandomDiagDir () |
Return a random direction. More... | |
static void | DrawTile_Town (TileInfo *ti) |
House Tile drawing handler. More... | |
static int | GetSlopePixelZ_Town (TileIndex tile, uint x, uint y) |
static Foundation | GetFoundation_Town (TileIndex tile, Slope tileh) |
Tile callback routine. | |
static void | AnimateTile_Town (TileIndex tile) |
Animate a tile for a town Only certain houses can be animated The newhouses animation supersedes regular ones. More... | |
static bool | IsCloseToTown (TileIndex tile, uint dist) |
Determines if a town is close to a tile. More... | |
void | UpdateAllTownVirtCoords () |
Update the virtual coords needed to draw the town sign for all towns. | |
void | ClearAllTownCachedNames () |
static void | ChangePopulation (Town *t, int mod) |
Change the towns population. More... | |
uint32 | GetWorldPopulation () |
Determines the world population Basically, count population of all towns, one by one. More... | |
static void | RemoveNearbyStations (Town *t, TileIndex tile, BuildingFlags flags) |
Remove stations from nearby station list if a town is no longer in the catchment area of each. More... | |
static void | MakeSingleHouseBigger (TileIndex tile) |
Helper function for house completion stages progression. More... | |
static void | MakeTownHouseBigger (TileIndex tile) |
Make the house advance in its construction stages until completion. More... | |
static void | TileLoop_Town (TileIndex tile) |
Tile callback function. More... | |
static CommandCost | ClearTile_Town (TileIndex tile, DoCommandFlag flags) |
static void | AddProducedCargo_Town (TileIndex tile, CargoArray &produced) |
static void | AddAcceptedCargoSetMask (CargoID cargo, uint amount, CargoArray &acceptance, CargoTypes *always_accepted) |
static void | AddAcceptedCargo_Town (TileIndex tile, CargoArray &acceptance, CargoTypes *always_accepted) |
static void | GetTileDesc_Town (TileIndex tile, TileDesc *td) |
static TrackStatus | GetTileTrackStatus_Town (TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side) |
static void | ChangeTileOwner_Town (TileIndex tile, Owner old_owner, Owner new_owner) |
static bool | GrowTown (Town *t) |
Grow the town. More... | |
static void | TownTickHandler (Town *t) |
void | OnTick_Town () |
static RoadBits | GetTownRoadBits (TileIndex tile) |
Return the RoadBits of a tile. More... | |
RoadType | GetTownRoadType (const Town *t) |
static bool | IsNeighborRoadTile (TileIndex tile, const DiagDirection dir, uint dist_multi) |
Check for parallel road inside a given distance. More... | |
static bool | IsRoadAllowedHere (Town *t, TileIndex tile, DiagDirection dir) |
Check if a Road is allowed on a given tile. More... | |
static bool | TerraformTownTile (TileIndex tile, int edges, int dir) |
static void | LevelTownLand (TileIndex tile) |
static RoadBits | GetTownRoadGridElement (Town *t, TileIndex tile, DiagDirection dir) |
Generate the RoadBits of a grid tile. More... | |
static bool | GrowTownWithExtraHouse (Town *t, TileIndex tile) |
Grows the town with an extra house. More... | |
static bool | GrowTownWithRoad (const Town *t, TileIndex tile, RoadBits rcmd) |
Grows the town with a road piece. More... | |
static bool | CanRoadContinueIntoNextTile (const Town *t, const TileIndex tile, const DiagDirection road_dir) |
Checks if a town road can be continued into the next tile. More... | |
static bool | GrowTownWithBridge (const Town *t, const TileIndex tile, const DiagDirection bridge_dir) |
Grows the town with a bridge. More... | |
static bool | GrowTownWithTunnel (const Town *t, const TileIndex tile, const DiagDirection tunnel_dir) |
Grows the town with a tunnel. More... | |
static bool | RoadTypesAllowHouseHere (TileIndex t) |
Checks whether at least one surrounding roads allows to build a house here. More... | |
static void | GrowTownInTile (TileIndex *tile_ptr, RoadBits cur_rb, DiagDirection target_dir, Town *t1) |
Grows the given town. More... | |
static bool | CanFollowRoad (TileIndex tile, DiagDirection dir) |
Checks whether a road can be followed or is a dead end, that can not be extended to the next tile. More... | |
static bool | GrowTownAtRoad (Town *t, TileIndex tile) |
Returns "growth" if a house was built, or no if the build failed. More... | |
static RoadBits | GenRandomRoadBits () |
Generate a random road block. More... | |
void | UpdateTownRadius (Town *t) |
void | UpdateTownMaxPass (Town *t) |
static void | UpdateTownGrowthRate (Town *t) |
Updates town growth rate. More... | |
static void | UpdateTownGrowth (Town *t) |
Updates town growth state (whether it is growing or not). More... | |
static void | DoCreateTown (Town *t, TileIndex tile, uint32 townnameparts, TownSize size, bool city, TownLayout layout, bool manual) |
Does the actual town creation. More... | |
static CommandCost | TownCanBePlacedHere (TileIndex tile) |
Checks if it's possible to place a town at given tile. More... | |
static bool | IsUniqueTownName (const char *name) |
Verifies this custom name is unique. More... | |
CommandCost | CmdFoundTown (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Create a new town. More... | |
static TileIndex | AlignTileToGrid (TileIndex tile, TownLayout layout) |
Towns must all be placed on the same grid or when they eventually interpenetrate their road networks will not mesh nicely; this function adjusts a tile so that it aligns properly. More... | |
static bool | IsTileAlignedToGrid (TileIndex tile, TownLayout layout) |
Towns must all be placed on the same grid or when they eventually interpenetrate their road networks will not mesh nicely; this function tells you if a tile is properly aligned. More... | |
static bool | FindFurthestFromWater (TileIndex tile, void *user_data) |
CircularTileSearch callback; finds the tile furthest from any water. More... | |
static bool | FindNearestEmptyLand (TileIndex tile, void *user_data) |
CircularTileSearch callback; finds the nearest land tile. More... | |
static TileIndex | FindNearestGoodCoastalTownSpot (TileIndex tile, TownLayout layout) |
Given a spot on the map (presumed to be a water tile), find a good coastal spot to build a city. More... | |
bool | GenerateTowns (TownLayout layout) |
This function will generate a certain amount of towns, with a certain layout It can be called from the scenario editor (i.e. More... | |
HouseZonesBits | GetTownRadiusGroup (const Town *t, TileIndex tile) |
Returns the bit corresponding to the town zone of the specified tile. More... | |
static void | ClearMakeHouseTile (TileIndex tile, Town *t, byte counter, byte stage, HouseID type, byte random_bits) |
Clears tile and builds a house or house part. More... | |
static void | MakeTownHouse (TileIndex t, Town *town, byte counter, byte stage, HouseID type, byte random_bits) |
Write house information into the map. More... | |
static bool | CanBuildHouseHere (TileIndex tile, bool noslope) |
Checks if a house can be built here. More... | |
static bool | CheckBuildHouseSameZ (TileIndex tile, int z, bool noslope) |
Checks if a house can be built at this tile, must have the same max z as parameter. More... | |
static bool | CheckFree2x2Area (TileIndex tile, int z, bool noslope) |
Checks if a house of size 2x2 can be built at this tile. More... | |
static bool | TownLayoutAllowsHouseHere (Town *t, TileIndex tile) |
Checks if current town layout allows building here. More... | |
static bool | TownLayoutAllows2x2HouseHere (Town *t, TileIndex tile) |
Checks if current town layout allows 2x2 building here. More... | |
static bool | CheckTownBuild2House (TileIndex *tile, Town *t, int maxz, bool noslope, DiagDirection second) |
Checks if 1x2 or 2x1 building is allowed here, also takes into account current town layout Also, tests both building positions that occupy this tile. More... | |
static bool | CheckTownBuild2x2House (TileIndex *tile, Town *t, int maxz, bool noslope) |
Checks if 2x2 building is allowed here, also takes into account current town layout Also, tests all four building positions that occupy this tile. More... | |
static void | DoClearTownHouseHelper (TileIndex tile, Town *t, HouseID house) |
Update data structures when a house is removed. More... | |
TileIndexDiff | GetHouseNorthPart (HouseID &house) |
Determines if a given HouseID is part of a multitile house. More... | |
void | ClearTownHouse (Town *t, TileIndex tile) |
CommandCost | CmdRenameTown (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Rename a town (server-only). More... | |
const CargoSpec * | FindFirstCargoWithTownEffect (TownEffect effect) |
Determines the first cargo with a certain town effect. More... | |
CommandCost | CmdTownCargoGoal (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Change the cargo goal of a town. More... | |
CommandCost | CmdTownSetText (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Set a custom text in the Town window. More... | |
CommandCost | CmdTownGrowthRate (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Change the growth rate of the town. More... | |
CommandCost | CmdTownRating (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Change the rating of a company in a town. More... | |
CommandCost | CmdExpandTown (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Expand a town (scenario editor only). More... | |
CommandCost | CmdDeleteTown (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Delete a town (scenario editor or worldgen only). More... | |
static CommandCost | TownActionAdvertiseSmall (Town *t, DoCommandFlag flags) |
static CommandCost | TownActionAdvertiseMedium (Town *t, DoCommandFlag flags) |
static CommandCost | TownActionAdvertiseLarge (Town *t, DoCommandFlag flags) |
static CommandCost | TownActionRoadRebuild (Town *t, DoCommandFlag flags) |
static bool | TryClearTile (TileIndex tile) |
Check whether the land can be cleared. More... | |
static bool | SearchTileForStatue (TileIndex tile, void *user_data) |
Search callback function for TownActionBuildStatue. More... | |
static CommandCost | TownActionBuildStatue (Town *t, DoCommandFlag flags) |
Perform a 9x9 tiles circular search from the center of the town in order to find a free tile to place a statue. More... | |
static CommandCost | TownActionFundBuildings (Town *t, DoCommandFlag flags) |
static CommandCost | TownActionBuyRights (Town *t, DoCommandFlag flags) |
static CommandCost | TownActionBribe (Town *t, DoCommandFlag flags) |
uint | GetMaskOfTownActions (int *nump, CompanyID cid, const Town *t) |
Get a list of available actions to do at a town. More... | |
CommandCost | CmdDoTownAction (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) |
Do a town action. More... | |
template<typename Func > | |
static void | ForAllStationsNearTown (Town *t, Func func) |
static void | UpdateTownRating (Town *t) |
static void | UpdateTownGrowCounter (Town *t, uint16 prev_growth_rate) |
Updates town grow counter after growth rate change. More... | |
static int | CountActiveStations (Town *t) |
Calculates amount of active stations in the range of town (HZB_TOWN_EDGE). More... | |
static uint | GetNormalGrowthRate (Town *t) |
Calculates town growth rate in normal conditions (custom growth rate not set). More... | |
static void | UpdateTownAmounts (Town *t) |
static void | UpdateTownUnwanted (Town *t) |
CommandCost | CheckIfAuthorityAllowsNewStation (TileIndex tile, DoCommandFlag flags) |
Checks whether the local authority allows construction of a new station (rail, road, airport, dock) on the given tile. More... | |
Town * | CalcClosestTownFromTile (TileIndex tile, uint threshold) |
Return the town closest to the given tile within threshold. More... | |
Town * | ClosestTownFromTile (TileIndex tile, uint threshold) |
Return the town closest (in distance or ownership) to a given tile, within a given threshold. More... | |
void | SetTownRatingTestMode (bool mode) |
Switch the town rating to test-mode, to allow commands to be tested without affecting current ratings. More... | |
static int | GetRating (const Town *t) |
Get the rating of a town for the _current_company. More... | |
void | ChangeTownRating (Town *t, int add, int max, DoCommandFlag flags) |
Changes town rating of the current company. More... | |
CommandCost | CheckforTownRating (DoCommandFlag flags, Town *t, TownRatingCheckType type) |
Does the town authority allow the (destructive) action of the current company? More... | |
void | TownsMonthlyLoop () |
void | TownsYearlyLoop () |
static CommandCost | TerraformTile_Town (TileIndex tile, DoCommandFlag flags, int z_new, Slope tileh_new) |
void | ResetHouses () |
Variables | |
TownID | _new_town_id |
TownPool | _town_pool ("Town") |
TownKdtree _town_kdtree & | Kdtree_TownXYFunc |
static int | _grow_town_result |
static TownDrawTileProc *const | _town_draw_tile_procs [1] |
static const byte | _num_initial_towns [4] = {5, 11, 23, 46} |
const byte | _town_action_costs [TACT_COUNT] |
Factor in the cost of each town action. More... | |
static TownActionProc *const | _town_action_proc [] |
static bool | _town_rating_test = false |
If true , town rating is in test-mode. | |
static SmallMap< const Town *, int > | _town_test_ratings |
Map of towns to modified ratings, while in town rating test-mode. | |
const TileTypeProcs | _tile_type_town_procs |
Tile callback functions for a town. More... | |
HouseSpec | _house_specs [NUM_HOUSES] |
Handling of town tiles.
Definition in file town_cmd.cpp.
|
static |
Towns must all be placed on the same grid or when they eventually interpenetrate their road networks will not mesh nicely; this function adjusts a tile so that it aligns properly.
tile | the tile to start at |
layout | which town layout algo is in effect |
Definition at line 2045 of file town_cmd.cpp.
References TileX(), TileXY(), TileY(), TL_2X2_GRID, and TL_3X3_GRID.
|
static |
Animate a tile for a town Only certain houses can be animated The newhouses animation supersedes regular ones.
tile | TileIndex of the house to animate |
Definition at line 333 of file town_cmd.cpp.
References GetHouseType(), and NEW_HOUSE_OFFSET.
Tries to build a house at this tile.
t | town the house will belong to |
tile | where the house will be built |
Definition at line 2510 of file town_cmd.cpp.
References _settings_game, CanBuildHouseHere(), GameSettings::game_creation, GetTileMaxZ(), GetTileSlope(), GetTownRadiusGroup(), GameCreationSettings::landscape, and TownLayoutAllowsHouseHere().
Referenced by GrowTownWithExtraHouse().
Return the town closest to the given tile within threshold.
tile | Starting point of the search. |
threshold | Biggest allowed distance to the town. |
nullptr
if there is no such town.Definition at line 3580 of file town_cmd.cpp.
Referenced by AirportGetNearestTown(), BuildObject(), ClosestTownFromTile(), CmdBuildBridge(), CmdBuildRoad(), and CmdBuildTunnel().
|
inlinestatic |
Checks if a house can be built here.
Important is slope, bridge above and ability to clear the land.
tile | tile to check |
noslope | are slopes (foundations) allowed? |
Definition at line 2329 of file town_cmd.cpp.
References CMD_LANDSCAPE_CLEAR, DC_AUTO, DC_NO_WATER, DoCommand(), GetTileSlope(), IsBridgeAbove(), IsSteepSlope(), RoadTypesAllowHouseHere(), SLOPE_FLAT, and CommandCost::Succeeded().
Referenced by BuildTownHouse(), and CheckBuildHouseSameZ().
|
static |
Checks whether a road can be followed or is a dead end, that can not be extended to the next tile.
This only checks trivial but often cases.
tile | Start tile for road. |
dir | Direction for road to follow or build. |
Definition at line 1552 of file town_cmd.cpp.
References _generating_world, _settings_game, EconomySettings::allow_town_roads, DiagDirToRoadBits(), GameSettings::economy, GetTileType(), GetTownRoadBits(), GetTunnelBridgeTransportType(), HasTileWaterGround(), IsDriveThroughStopTile(), IsValidTile(), MP_HOUSE, MP_INDUSTRY, MP_OBJECT, MP_ROAD, MP_STATION, MP_TUNNELBRIDGE, ReverseDiagDir(), ROAD_NONE, TileOffsByDiagDir(), and TRANSPORT_ROAD.
|
static |
Checks if a town road can be continued into the next tile.
Road vehicle stations, bridges, and tunnels are fine, as long as they are facing the right direction.
t | The current town |
tile | The tile where the road would be built |
road_dir | The direction of the road |
Definition at line 1122 of file town_cmd.cpp.
References DiagDirToRoadBits(), ReverseDiagDir(), and TileOffsByDiagDir().
Referenced by GrowTownWithBridge(), and GrowTownWithTunnel().
|
static |
Change the towns population.
t | Town which population has changed |
mod | population change (can be positive or negative) |
Definition at line 432 of file town_cmd.cpp.
References _settings_client, Town::cache, ClientSettings::gui, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, InvalidateWindowData(), TownCache::population, GUISettings::population_in_label, Town::UpdateVirtCoord(), WC_TOWN_DIRECTORY, and WC_TOWN_VIEW.
void ChangeTownRating | ( | Town * | t, |
int | add, | ||
int | max, | ||
DoCommandFlag | flags | ||
) |
Changes town rating of the current company.
t | Town to affect |
add | Value to add |
max | Minimum (add < 0) resp. maximum (add > 0) rating that should be achievable with this change. |
flags | Command flags, especially DC_NO_MODIFY_TOWN_RATING is tested |
Definition at line 3677 of file town_cmd.cpp.
References _cheats, _current_company, _town_rating_test, _town_test_ratings, DC_NO_MODIFY_TOWN_RATING, GetRating(), Town::have_ratings, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), Cheats::magic_bulldozer, Town::ratings, SetBit(), SetWindowDirty(), Cheat::value, and WC_TOWN_AUTHORITY.
|
inlinestatic |
Checks if a house can be built at this tile, must have the same max z as parameter.
tile | tile to check |
z | max z of this tile so more parts of a house are at the same height (with foundation) |
noslope | are slopes (foundations) allowed? |
Definition at line 2354 of file town_cmd.cpp.
References CanBuildHouseHere(), and GetTileMaxZ().
Referenced by CheckFree2x2Area(), and CheckTownBuild2House().
CommandCost CheckforTownRating | ( | DoCommandFlag | flags, |
Town * | t, | ||
TownRatingCheckType | type | ||
) |
Does the town authority allow the (destructive) action of the current company?
flags | Checking flags of the command. |
t | Town that must allow the company action. |
type | Type of action that is wanted. |
Definition at line 3714 of file town_cmd.cpp.
References _cheats, _current_company, _settings_game, DC_NO_TEST_TOWN_RATING, GameSettings::difficulty, GetRating(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), Cheats::magic_bulldozer, RATING_ROAD_NEEDED_HOSTILE, RATING_ROAD_NEEDED_NEUTRAL, RATING_ROAD_NEEDED_PERMISSIVE, RATING_TUNNEL_BRIDGE_NEEDED_HOSTILE, RATING_TUNNEL_BRIDGE_NEEDED_NEUTRAL, RATING_TUNNEL_BRIDGE_NEEDED_PERMISSIVE, return_cmd_error, SetDParam(), DifficultySettings::town_council_tolerance, TOWN_RATING_CHECK_TYPE_COUNT, and Cheat::value.
|
static |
Checks if a house of size 2x2 can be built at this tile.
tile | tile, N corner |
z | maximum tile z so all tile have the same max z |
noslope | are slopes (foundations) allowed? |
Definition at line 2373 of file town_cmd.cpp.
References CheckBuildHouseSameZ(), DIAGDIR_END, DIAGDIR_SE, and TileOffsByDiagDir().
Referenced by CheckTownBuild2x2House().
CommandCost CheckIfAuthorityAllowsNewStation | ( | TileIndex | tile, |
DoCommandFlag | flags | ||
) |
Checks whether the local authority allows construction of a new station (rail, road, airport, dock) on the given tile.
tile | The tile where the station shall be constructed. |
flags | Command flags. DC_NO_TEST_TOWN_RATING is tested. |
Definition at line 3559 of file town_cmd.cpp.
References _current_company, _settings_game, ClosestTownFromTile(), DC_NO_TEST_TOWN_RATING, EconomySettings::dist_local_authority, GameSettings::economy, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), and Town::ratings.
Referenced by CmdBuildRailStation().
|
static |
Checks if 1x2 or 2x1 building is allowed here, also takes into account current town layout Also, tests both building positions that occupy this tile.
tile | tile where the building should be built |
t | town |
maxz | all tiles should have the same height |
noslope | are slopes forbidden? |
second | diagdir from first tile to second tile |
Definition at line 2462 of file town_cmd.cpp.
References CheckBuildHouseSameZ(), ReverseDiagDir(), TileOffsByDiagDir(), and TownLayoutAllowsHouseHere().
Checks if 2x2 building is allowed here, also takes into account current town layout Also, tests all four building positions that occupy this tile.
tile | tile where the building should be built |
t | town |
maxz | all tiles should have the same height |
noslope | are slopes forbidden? |
Definition at line 2487 of file town_cmd.cpp.
References CheckFree2x2Area(), DIAGDIR_END, DIAGDIR_SE, ReverseDiagDir(), TileOffsByDiagDir(), and TownLayoutAllows2x2HouseHere().
|
inlinestatic |
Clears tile and builds a house or house part.
tile | tile index |
t | The town to clear the house for |
counter | of construction step |
stage | of construction (used for drawing) |
type | of house. Index into house specs array |
random_bits | required for newgrf houses |
Definition at line 2280 of file town_cmd.cpp.
References CMD_LANDSCAPE_CLEAR, DC_AUTO, DC_EXEC, DC_NO_WATER, DoCommand(), IncreaseBuildingCount(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, MakeHouseTile(), and CommandCost::Succeeded().
Referenced by MakeTownHouse().
Return the town closest (in distance or ownership) to a given tile, within a given threshold.
tile | Starting point of the search. |
threshold | Biggest allowed distance to the town. |
nullptr
if there is no such town.Definition at line 3598 of file town_cmd.cpp.
References CalcClosestTownFromTile(), GetTileType(), GetTownIndex(), HasTownOwnedRoad(), IsRoadDepot(), and MP_ROAD.
Referenced by CheckIfAuthorityAllowsNewStation(), FindTownForIndustry(), GenerateCompanyName(), GetNameOfOwner(), StationResolverObject::GetTown(), ObjectResolverObject::GetTown(), IndustryTileScopeResolver::GetVariable(), AirportTileScopeResolver::GetVariable(), ObjectScopeResolver::GetVariable(), and LandInfoWindow::OnInit().
CommandCost CmdDeleteTown | ( | TileIndex | tile, |
DoCommandFlag | flags, | ||
uint32 | p1, | ||
uint32 | p2, | ||
const char * | text | ||
) |
Delete a town (scenario editor or worldgen only).
tile | Unused. |
flags | Type of operation. |
p1 | Town ID to delete. |
p2 | Unused. |
text | Unused. |
Definition at line 2966 of file town_cmd.cpp.
CommandCost CmdDoTownAction | ( | TileIndex | tile, |
DoCommandFlag | flags, | ||
uint32 | p1, | ||
uint32 | p2, | ||
const char * | text | ||
) |
Do a town action.
This performs an action such as advertising, building a statue, funding buildings, but also bribing the town-council
tile | unused |
flags | type of operation |
p1 | town to do the action at |
p2 | action to perform, |
text | unused |
Definition at line 3355 of file town_cmd.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), and lengthof.
CommandCost CmdExpandTown | ( | TileIndex | tile, |
DoCommandFlag | flags, | ||
uint32 | p1, | ||
uint32 | p2, | ||
const char * | text | ||
) |
Expand a town (scenario editor only).
tile | Unused. |
flags | Type of operation. |
p1 | Town ID to expand. |
p2 | Amount to grow, or 0 to grow a random size up to the current amount of houses. |
text | Unused. |
Definition at line 2926 of file town_cmd.cpp.
CommandCost CmdFoundTown | ( | TileIndex | tile, |
DoCommandFlag | flags, | ||
uint32 | p1, | ||
uint32 | p2, | ||
const char * | text | ||
) |
Create a new town.
tile | coordinates where town is built |
flags | type of operation |
p1 | 0..1 size of the town ( |
tile
) p2 | town name parts |
text | Custom name for the town. If empty, the town name parts will be used. |
Definition at line 1931 of file town_cmd.cpp.
References _settings_game, CMD_ERROR, GameSettings::game_creation, HasBit(), NUM_TLS, GameCreationSettings::town_name, and TSZ_END.
CommandCost CmdRenameTown | ( | TileIndex | tile, |
DoCommandFlag | flags, | ||
uint32 | p1, | ||
uint32 | p2, | ||
const char * | text | ||
) |
Rename a town (server-only).
tile | unused |
flags | type of operation |
p1 | town ID to rename |
p2 | unused |
text | the new name or an empty string when resetting to the default |
Definition at line 2746 of file town_cmd.cpp.
References Town::cached_name, CMD_ERROR, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), InvalidateWindowData(), IsUniqueTownName(), MAX_LENGTH_TOWN_NAME_CHARS, Town::name, return_cmd_error, StrEmpty(), Town::UpdateVirtCoord(), Utf8StringLength(), and WC_TOWN_DIRECTORY.
CommandCost CmdTownCargoGoal | ( | TileIndex | tile, |
DoCommandFlag | flags, | ||
uint32 | p1, | ||
uint32 | p2, | ||
const char * | text | ||
) |
Change the cargo goal of a town.
tile | Unused. |
flags | Type of operation. |
p1 | various bitstuffed elements
|
p2 | The new goal value. |
text | Unused. |
Definition at line 2800 of file town_cmd.cpp.
References _current_company, CMD_ERROR, DC_EXEC, FindFirstCargoWithTownEffect(), GB(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), Town::goal, InvalidateWindowData(), OWNER_DEITY, TE_END, UpdateTownGrowth(), and WC_TOWN_VIEW.
CommandCost CmdTownGrowthRate | ( | TileIndex | tile, |
DoCommandFlag | flags, | ||
uint32 | p1, | ||
uint32 | p2, | ||
const char * | text | ||
) |
Change the growth rate of the town.
tile | Unused. |
flags | Type of operation. |
p1 | Town ID to cargo game of. |
p2 | Amount of days between growth, or TOWN_GROWTH_RATE_NONE, or 0 to reset custom growth rate. |
text | Unused. |
Definition at line 2857 of file town_cmd.cpp.
References _current_company, ClrBit(), CMD_ERROR, DC_EXEC, Town::flags, GB(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), Town::grow_counter, Town::growth_rate, InvalidateWindowData(), OWNER_DEITY, SetBit(), TOWN_CUSTOM_GROWTH, UpdateTownGrowth(), and WC_TOWN_VIEW.
CommandCost CmdTownRating | ( | TileIndex | tile, |
DoCommandFlag | flags, | ||
uint32 | p1, | ||
uint32 | p2, | ||
const char * | text | ||
) |
Change the rating of a company in a town.
tile | Unused. |
flags | Type of operation. |
p1 | Bit 0..15 = Town ID to change, bit 16..23 = Company ID to change. |
p2 | Bit 0..15 = New rating of company (signed int16). |
text | Unused. |
Definition at line 2897 of file town_cmd.cpp.
References _current_company, CMD_ERROR, and OWNER_DEITY.
CommandCost CmdTownSetText | ( | TileIndex | tile, |
DoCommandFlag | flags, | ||
uint32 | p1, | ||
uint32 | p2, | ||
const char * | text | ||
) |
Set a custom text in the Town window.
tile | Unused. |
flags | Type of operation. |
p1 | Town ID to change the text of. |
p2 | Unused. |
text | The new text (empty to remove the text). |
Definition at line 2833 of file town_cmd.cpp.
References _current_company, CMD_ERROR, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), InvalidateWindowData(), OWNER_DEITY, StrEmpty(), Town::text, and WC_TOWN_VIEW.
|
static |
Calculates amount of active stations in the range of town (HZB_TOWN_EDGE).
t | The town to calculate stations for |
Definition at line 3442 of file town_cmd.cpp.
Referenced by GetNormalGrowthRate().
Update data structures when a house is removed.
Definition at line 2664 of file town_cmd.cpp.
References DecreaseBuildingCount(), IsTileType(), and MP_HOUSE.
|
static |
Does the actual town creation.
t | The town |
tile | Where to put it |
townnameparts | The town name |
size | Parameter for size determination |
city | whether to build a city or town |
layout | the (road) layout of the town |
manual | was the town placed manually? |
Definition at line 1809 of file town_cmd.cpp.
References Town::cache, TownCache::num_houses, Town::time_until_rebuild, and Town::xy.
|
static |
House Tile drawing handler.
Part of the tile loop process
ti | TileInfo of the tile to draw |
Definition at line 254 of file town_cmd.cpp.
References GetHouseType(), NEW_HOUSE_OFFSET, and TileInfo::tile.
const CargoSpec* FindFirstCargoWithTownEffect | ( | TownEffect | effect | ) |
Determines the first cargo with a certain town effect.
effect | Town effect of interest |
Definition at line 2780 of file town_cmd.cpp.
Referenced by CmdTownCargoGoal().
|
static |
CircularTileSearch callback; finds the tile furthest from any water.
slightly bit tricky, since it has to do a search of its own in order to find the distance to the water from each square in the radius.
Also, this never returns true, because it needs to take into account all locations being searched before it knows which is the furthest.
tile | Start looking from this tile |
user_data | Storage area for data that must last across calls; must be a pointer to struct SpotData |
Definition at line 2097 of file town_cmd.cpp.
References GetClosestWaterDistance(), IsTileAlignedToGrid(), IsTileFlat(), IsTileType(), SpotData::layout, SpotData::max_dist, MP_CLEAR, and SpotData::tile.
Referenced by FindNearestGoodCoastalTownSpot().
|
static |
CircularTileSearch callback; finds the nearest land tile.
tile | Start looking from this tile |
user_data | not used |
Definition at line 2119 of file town_cmd.cpp.
References IsTileType(), and MP_CLEAR.
Referenced by FindNearestGoodCoastalTownSpot().
|
static |
Given a spot on the map (presumed to be a water tile), find a good coastal spot to build a city.
We don't want to build too close to the edge if we can help it (since that retards city growth) hence the search within a search within a search. O(n*m^2), where n is how far to search for land, and m is how far inland to look for a flat spot.
tile | Start looking from this spot. |
layout | the road layout to search for |
Definition at line 2136 of file town_cmd.cpp.
References CircularTileSearch(), FindFurthestFromWater(), FindNearestEmptyLand(), INVALID_TILE, and SpotData::tile.
bool GenerateTowns | ( | TownLayout | layout | ) |
This function will generate a certain amount of towns, with a certain layout It can be called from the scenario editor (i.e.
: generate Random Towns) as well as from world creation.
layout | which towns will be set to, when created |
Definition at line 2204 of file town_cmd.cpp.
|
static |
Generate a random road block.
The probability of a straight road is somewhat higher than a curved.
Definition at line 1676 of file town_cmd.cpp.
TileIndexDiff GetHouseNorthPart | ( | HouseID & | house | ) |
Determines if a given HouseID is part of a multitile house.
The given ID is set to the ID of the north tile and the TileDiff to the north tile is returned.
house | Is changed to the HouseID of the north tile of the same house |
Definition at line 2681 of file town_cmd.cpp.
Referenced by GetDistanceFromNearbyHouse(), SearchNearbyHouseClass(), SearchNearbyHouseGRFID(), and SearchNearbyHouseID().
Get a list of available actions to do at a town.
nump | if not nullptr add put the number of available actions in it |
cid | the company that is querying the town |
t | the town that is queried |
Definition at line 3302 of file town_cmd.cpp.
References _settings_game, EconomySettings::bribe, COMPANY_SPECTATOR, GameSettings::economy, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), TACT_NONE, and Town::unwanted.
Referenced by TownAuthorityWindow::OnPaint().
|
static |
Calculates town growth rate in normal conditions (custom growth rate not set).
If town growth speed is set to None(0) returns the same rate as if it was Normal(2).
t | The town to calculate growth rate for |
Note: Unserviced+unfunded towns get an additional malus in UpdateTownGrowth(), so the "320" is actually not better than the "420".
Definition at line 3459 of file town_cmd.cpp.
References _settings_game, CountActiveStations(), GameSettings::economy, Town::fund_buildings_months, Town::larger_town, and EconomySettings::town_growth_rate.
Referenced by UpdateTownGrowthRate().
|
static |
Get the rating of a town for the _current_company.
t | Town to get the rating from. |
Definition at line 3659 of file town_cmd.cpp.
References _current_company, _town_rating_test, _town_test_ratings, and Town::ratings.
Referenced by ChangeTownRating(), and CheckforTownRating().
Returns the bit corresponding to the town zone of the specified tile.
t | Town on which town zone is to be found |
tile | TileIndex where town zone needs to be found |
Definition at line 2256 of file town_cmd.cpp.
References DistanceSquare(), Town::fund_buildings_months, and Town::xy.
Referenced by BuildTownHouse(), IndustryTileScopeResolver::GetVariable(), IndustriesScopeResolver::GetVariable(), AirportTileScopeResolver::GetVariable(), HouseScopeResolver::GetVariable(), and ObjectScopeResolver::GetVariable().
Return the RoadBits of a tile.
tile | The tile we want to analyse |
Definition at line 842 of file town_cmd.cpp.
References GetAnyRoadBits(), IsRoadDepotTile(), IsStandardRoadStopTile(), and ROAD_NONE.
Referenced by CanFollowRoad(), GrowTownWithBridge(), GrowTownWithTunnel(), IsNeighborRoadTile(), and IsRoadAllowedHere().
|
static |
Generate the RoadBits of a grid tile.
t | current town |
tile | tile in reference to the town |
dir | The direction to which we are growing ATM |
Definition at line 1002 of file town_cmd.cpp.
References Town::layout, ROAD_NONE, TileIndexToTileIndexDiffC(), and Town::xy.
uint32 GetWorldPopulation | ( | ) |
Determines the world population Basically, count population of all towns, one by one.
Definition at line 446 of file town_cmd.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::Iterate().
Referenced by TownDirectoryWindow::SetStringParameters().
|
static |
Grow the town.
t | town to grow |
Definition at line 1690 of file town_cmd.cpp.
References _current_company, and OWNER_TOWN.
Returns "growth" if a house was built, or no if the build failed.
t | town to inquiry |
tile | to inquiry |
Definition at line 1594 of file town_cmd.cpp.
References DIAGDIR_END, Town::layout, MapSize(), and TL_BETTER_ROADS.
|
static |
Grows the given town.
There are at the moment 3 possible way's for the town expansion:
tile_ptr | The current tile |
cur_rb | The current tiles RoadBits |
target_dir | The target road dir |
t1 | The current town |
Definition at line 1348 of file town_cmd.cpp.
|
static |
Grows the town with a bridge.
At first we check if a bridge is reasonable. If so we check if we are able to build it.
t | The current town |
tile | The current tile |
bridge_dir | The valid direction in which to grow a bridge |
Definition at line 1166 of file town_cmd.cpp.
References Town::cache, CanRoadContinueIntoNextTile(), DIAGDIR_END, DiagDirToRoadBits(), DRD_NONE, GetDisallowedRoadDirections(), GetTileSlope(), GetTownRoadBits(), InclinedSlope(), IsNormalRoadTile(), IsPlainRailTile(), IsSea(), IsValidTile(), IsWaterTile(), MAX_BRIDGES, TownCache::population, RandomRange(), ReverseDiagDir(), SLOPE_FLAT, TileAddByDiagDir(), and TileOffsByDiagDir().
Grows the town with an extra house.
Check if there are enough neighbor house tiles next to the current tile. If there are enough add another house.
t | The current town |
tile | The target tile for the extra house |
Definition at line 1061 of file town_cmd.cpp.
References BuildTownHouse(), DIAGDIR_BEGIN, DIAGDIR_END, DistanceFromEdge(), GetTileType(), MP_HOUSE, MP_VOID, and TileAddByDiagDir().
Grows the town with a road piece.
t | The current town |
tile | The current tile |
rcmd | The RoadBits we want to build on the tile |
Definition at line 1103 of file town_cmd.cpp.
|
static |
Grows the town with a tunnel.
First we check if a tunnel is reasonable. If so we check if we are able to build it.
t | The current town |
tile | The current tile |
tunnel_dir | The valid direction in which to grow a tunnel |
Definition at line 1241 of file town_cmd.cpp.
References Town::cache, CanRoadContinueIntoNextTile(), DIAGDIR_END, DiagDirToRoadBits(), GetTileSlope(), GetTileZ(), GetTownRoadBits(), InclinedSlope(), IsSlopeWithOneCornerRaised(), IsSteepSlope(), IsValidTile(), TownCache::population, ReverseDiagDir(), TileAddByDiagDir(), and TileOffsByDiagDir().
|
static |
Determines if a town is close to a tile.
tile | TileIndex of the tile to query |
dist | maximum distance to be accepted |
Definition at line 384 of file town_cmd.cpp.
Referenced by TownCanBePlacedHere().
|
static |
Check for parallel road inside a given distance.
Assuming a road from (tile - TileOffsByDiagDir(dir)) to tile, is there a parallel road left or right of it within distance dist_multi?
tile | current tile |
dir | target direction |
dist_multi | distance multiplayer |
Definition at line 890 of file town_cmd.cpp.
References ChangeDiagDir(), DIAGDIRDIFF_90LEFT, DIAGDIRDIFF_90RIGHT, DiagDirToRoadBits(), GetTownRoadBits(), IsValidTile(), ReverseDiagDir(), TILE_ADD, and TileOffsByDiagDir().
|
static |
Check if a Road is allowed on a given tile.
t | The current town |
tile | The target tile |
dir | The direction in which we want to extend the town |
Definition at line 924 of file town_cmd.cpp.
References DiagDirToAxis(), DistanceFromEdge(), GetBridgeAxis(), GetTownRoadBits(), IsBridgeAbove(), and ROAD_NONE.
|
static |
Towns must all be placed on the same grid or when they eventually interpenetrate their road networks will not mesh nicely; this function tells you if a tile is properly aligned.
tile | the tile to start at |
layout | which town layout algo is in effect |
Definition at line 2063 of file town_cmd.cpp.
References TileX(), TileY(), TL_2X2_GRID, and TL_3X3_GRID.
Referenced by FindFurthestFromWater().
|
static |
Verifies this custom name is unique.
Only custom names are checked.
name | name to check |
Definition at line 1910 of file town_cmd.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::Iterate(), and Town::name.
Referenced by CmdRenameTown().
|
static |
Helper function for house completion stages progression.
tile | TileIndex of the house (or parts of it) to "grow" |
Definition at line 482 of file town_cmd.cpp.
References GetHouseConstructionTick(), IncHouseConstructionTick(), IsTileType(), and MP_HOUSE.
|
static |
Write house information into the map.
For houses > 1 tile, all tiles are marked.
t | tile index |
town | The town related to this house |
counter | of construction step |
stage | of construction (used for drawing) |
type | of house. Index into house specs array |
random_bits | required for newgrf houses |
Definition at line 2304 of file town_cmd.cpp.
References HouseSpec::building_flags, and ClearMakeHouseTile().
|
static |
Make the house advance in its construction stages until completion.
tile | TileIndex of house |
Definition at line 505 of file town_cmd.cpp.
References HouseSpec::building_flags, and GetHouseType().
|
inlinestatic |
Remove stations from nearby station list if a town is no longer in the catchment area of each.
To improve performance only checks stations that cover the provided house area (doesn't need to contain an actual house).
t | Town to work on |
tile | Location of house area (north part) |
flags | BuildingFlags containing the size of house area |
Definition at line 460 of file town_cmd.cpp.
References Town::stations_near.
|
inlinestatic |
Checks whether at least one surrounding roads allows to build a house here.
t | the tile where the house will be built |
Definition at line 1307 of file town_cmd.cpp.
References endof, IsTileType(), IsValidTile(), MP_ROAD, MP_STATION, and ToTileIndexDiff().
Referenced by CanBuildHouseHere().
|
static |
Search callback function for TownActionBuildStatue.
tile | Tile on which to perform the search. |
user_data | Reference to the statue search data. |
Definition at line 3134 of file town_cmd.cpp.
References StatueBuildSearchData::best_position, GetTileSlope(), INVALID_TILE, IsBridgeAbove(), IsSteepSlope(), IsTileType(), MP_CLEAR, MP_HOUSE, MP_TREES, StatueBuildSearchData::tile_count, and TryClearTile().
Referenced by TownActionBuildStatue().
void SetTownRatingTestMode | ( | bool | mode | ) |
Switch the town rating to test-mode, to allow commands to be tested without affecting current ratings.
The function is safe to use in nested calls.
mode | Test mode switch (true means go to test-mode, false means leave test-mode). |
Definition at line 3639 of file town_cmd.cpp.
References _town_rating_test, and _town_test_ratings.
Check if a town 'owns' a bridge.
Bridges to not directly have an owner, so we check the tiles adjacent to the bridge ends. If either adjacent tile belongs to the town then it will be assumed that the town built the bridge.
tile | Bridge tile to test |
t | Town we are interested in |
Definition at line 85 of file town_cmd.cpp.
References GetOtherTunnelBridgeEnd(), GetTownIndex(), GetTunnelBridgeDirection(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsTileOwner(), IsTileType(), MP_ROAD, OWNER_TOWN, ReverseDiagDir(), and TileOffsByDiagDir().
Referenced by Town::~Town().
|
static |
Tile callback function.
Periodic tic handler for houses and town
tile | been asked to do its stuff |
Definition at line 520 of file town_cmd.cpp.
References GetHouseType(), and NEW_HOUSE_OFFSET.
|
static |
Perform a 9x9 tiles circular search from the center of the town in order to find a free tile to place a statue.
t | town to search in |
flags | Used to check if the statue must be built or not. |
Definition at line 3177 of file town_cmd.cpp.
References _current_company, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_object_pool >::CanAllocateItem(), CircularTileSearch(), DC_EXEC, INVALID_TILE, OWNER_NONE, return_cmd_error, SearchTileForStatue(), and Town::xy.
|
static |
Checks if it's possible to place a town at given tile.
tile | tile to check |
Definition at line 1885 of file town_cmd.cpp.
References DistanceFromEdge(), EXPENSES_OTHER, IsCloseToTown(), IsTileFlat(), IsTileType(), MP_CLEAR, MP_TREES, and return_cmd_error.
Checks if current town layout allows 2x2 building here.
t | town |
tile | tile to check |
Definition at line 2425 of file town_cmd.cpp.
References _generating_world, _settings_game, EconomySettings::allow_town_roads, GameSettings::economy, Town::layout, TileIndexToTileIndexDiffC(), TL_2X2_GRID, TL_3X3_GRID, TileIndexDiffC::x, Town::xy, and TileIndexDiffC::y.
Referenced by CheckTownBuild2x2House().
Checks if current town layout allows building here.
t | town |
tile | tile to check |
Definition at line 2394 of file town_cmd.cpp.
References _generating_world, _settings_game, EconomySettings::allow_town_roads, GameSettings::economy, Town::layout, TileIndexToTileIndexDiffC(), TL_2X2_GRID, TL_3X3_GRID, TileIndexDiffC::x, Town::xy, and TileIndexDiffC::y.
Referenced by BuildTownHouse(), and CheckTownBuild2House().
|
static |
Check whether the land can be cleared.
tile | Tile to check. |
Definition at line 3112 of file town_cmd.cpp.
References _current_company, and OWNER_NONE.
Referenced by SearchTileForStatue().
|
static |
Updates town grow counter after growth rate change.
Preserves relative house builting progress whenever it can.
t | The town to calculate grow counter for |
prev_growth_rate | Town growth rate before it changed (one that was used with grow counter to be updated) |
Definition at line 3427 of file town_cmd.cpp.
References Town::grow_counter, Town::growth_rate, RoundDivSU(), and TOWN_GROWTH_RATE_NONE.
Referenced by UpdateTownGrowthRate().
|
static |
Updates town growth state (whether it is growing or not).
t | The town to update growth for |
Definition at line 3499 of file town_cmd.cpp.
References _settings_game, ClrBit(), GameSettings::economy, Town::flags, Town::fund_buildings_months, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, SetWindowDirty(), EconomySettings::town_growth_rate, TOWN_IS_GROWING, UpdateTownGrowthRate(), and WC_TOWN_VIEW.
Referenced by CmdTownCargoGoal(), and CmdTownGrowthRate().
|
static |
Updates town growth rate.
t | The town to update growth rate for |
Definition at line 3486 of file town_cmd.cpp.
References Town::flags, GetNormalGrowthRate(), Town::growth_rate, HasBit(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, SetWindowDirty(), TOWN_CUSTOM_GROWTH, UpdateTownGrowCounter(), and WC_TOWN_VIEW.
Referenced by UpdateTownGrowth().
const TileTypeProcs _tile_type_town_procs |
Tile callback functions for a town.
Definition at line 47 of file landscape.cpp.
const byte _town_action_costs[TACT_COUNT] |
Factor in the cost of each town action.
Definition at line 3056 of file town_cmd.cpp.
|
static |
Definition at line 3284 of file town_cmd.cpp.
|
static |
Definition at line 235 of file town_cmd.cpp.