OpenTTD Source 20241224-master-gf74b0cf984
town_cmd.h File Reference

Command definitions related to towns. More...

#include "command_type.h"
#include "company_type.h"
#include "town_type.h"

Go to the source code of this file.

Typedefs

using HouseID = uint16_t
 

Functions

std::tuple< CommandCost, Money, TownID > CmdFoundTown (DoCommandFlag flags, TileIndex tile, TownSize size, bool city, TownLayout layout, bool random_location, uint32_t townnameparts, const std::string &text)
 Create a new town.
 
CommandCost CmdRenameTown (DoCommandFlag flags, TownID town_id, const std::string &text)
 Rename a town (server-only).
 
CommandCost CmdDoTownAction (DoCommandFlag flags, TownID town_id, uint8_t action)
 Do a town action.
 
CommandCost CmdTownGrowthRate (DoCommandFlag flags, TownID town_id, uint16_t growth_rate)
 Change the growth rate of the town.
 
CommandCost CmdTownRating (DoCommandFlag flags, TownID town_id, CompanyID company_id, int16_t rating)
 Change the rating of a company in a town.
 
CommandCost CmdTownCargoGoal (DoCommandFlag flags, TownID town_id, TownAcceptanceEffect tae, uint32_t goal)
 Change the cargo goal of a town.
 
CommandCost CmdTownSetText (DoCommandFlag flags, TownID town_id, const std::string &text)
 Set a custom text in the Town window.
 
CommandCost CmdExpandTown (DoCommandFlag flags, TownID town_id, uint32_t grow_amount)
 Expand a town (scenario editor only).
 
CommandCost CmdDeleteTown (DoCommandFlag flags, TownID town_id)
 Delete a town (scenario editor or worldgen only).
 
CommandCost CmdPlaceHouse (DoCommandFlag flags, TileIndex tile, HouseID house)
 
void CcFoundRandomTown (Commands cmd, const CommandCost &result, Money, TownID town_id)
 

Variables

CommandCallback CcFoundTown
 

Detailed Description

Command definitions related to towns.

Definition in file town_cmd.h.

Typedef Documentation

◆ HouseID

using HouseID = uint16_t

Definition at line 18 of file town_cmd.h.

Function Documentation

◆ CcFoundRandomTown()

void CcFoundRandomTown ( Commands  cmd,
const CommandCost result,
Money  ,
TownID  town_id 
)

Definition at line 1098 of file town_gui.cpp.

◆ CmdDeleteTown()

◆ CmdDoTownAction()

CommandCost CmdDoTownAction ( DoCommandFlag  flags,
TownID  town_id,
uint8_t  action 
)

Do a town action.

This performs an action such as advertising, building a statue, funding buildings, but also bribing the town-council

Parameters
flagstype of operation
town_idtown to do the action at
actionaction to perform,
See also
_town_action_proc for the list of available actions
Returns
the cost of this operation or an error

Definition at line 3662 of file town_cmd.cpp.

References _current_company, _town_action_costs, CMD_ERROR, DC_EXEC, EXPENSES_OTHER, CommandCost::Failed(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), GetMaskOfTownActions(), HasBit(), lengthof, SetWindowDirty(), and WC_TOWN_AUTHORITY.

◆ CmdExpandTown()

CommandCost CmdExpandTown ( DoCommandFlag  flags,
TownID  town_id,
uint32_t  grow_amount 
)

Expand a town (scenario editor only).

Parameters
flagsType of operation.
TownIDTown ID to expand.
grow_amountAmount to grow, or 0 to grow a random size up to the current amount of houses.
Returns
Empty cost or an error.

Definition at line 3182 of file town_cmd.cpp.

References _current_company, Town::cache, CMD_ERROR, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), GrowTown(), TownCache::num_houses, OWNER_DEITY, RandomRange(), UpdateTownMaxPass(), and UpdateTownRadius().

◆ CmdFoundTown()

std::tuple< CommandCost, Money, TownID > CmdFoundTown ( DoCommandFlag  flags,
TileIndex  tile,
TownSize  size,
bool  city,
TownLayout  layout,
bool  random_location,
uint32_t  townnameparts,
const std::string &  text 
)

Create a new town.

Parameters
flagsThe type of operation.
tileThe coordinates where town is built.
sizeThe size of the town (
See also
TownSize).
Parameters
cityShould we build a city?
layoutThe town road layout (
See also
TownLayout).
Parameters
random_locationShould we use a random location? (randomize tile )
townnamepartsTown name parts.
textCustom name for the town. If empty, the town name parts will be used.
Returns
The cost of this operation or an error.

Definition at line 2142 of file town_cmd.cpp.

References _current_company, _generating_world, _settings_game, AI::BroadcastNewEvent(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::CanAllocateItem(), CMD_ERROR, CreateRandomTown(), DC_EXEC, DoCreateTown(), GameSettings::economy, EXPENSES_OTHER, CommandCost::Failed(), EconomySettings::found_town, GameSettings::game_creation, GetAvailableMoneyForCommand(), CommandCost::GetCost(), GetString(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsUniqueTownName(), lengthof, MAX_LENGTH_TOWN_NAME_CHARS, CommandCost::MultiplyCost(), Town::name, Game::NewEvent(), NT_INDUSTRY_OPEN, NUM_TLS, OWNER_DEITY, Backup< T >::Restore(), SetDParam(), SetDParamStr(), TF_CUSTOM_LAYOUT, TF_FORBIDDEN, EconomySettings::town_layout, GameCreationSettings::town_name, TownCanBePlacedHere(), TSZ_END, TSZ_LARGE, TSZ_RANDOM, UpdateNearestTownForRoadTiles(), Town::UpdateVirtCoord(), Utf8StringLength(), and VerifyTownName().

◆ CmdPlaceHouse()

CommandCost CmdPlaceHouse ( DoCommandFlag  flags,
TileIndex  tile,
HouseID  house 
)

Definition at line 2880 of file town_cmd.cpp.

◆ CmdRenameTown()

CommandCost CmdRenameTown ( DoCommandFlag  flags,
TownID  town_id,
const std::string &  text 
)

Rename a town (server-only).

Parameters
flagstype of operation
town_idtown ID to rename
textthe new name or an empty string when resetting to the default
Returns
the cost of this operation or an error

Definition at line 3018 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, UpdateAllStationVirtCoords(), Town::UpdateVirtCoord(), Utf8StringLength(), and WC_TOWN_DIRECTORY.

◆ CmdTownCargoGoal()

CommandCost CmdTownCargoGoal ( DoCommandFlag  flags,
TownID  town_id,
TownAcceptanceEffect  tae,
uint32_t  goal 
)

Change the cargo goal of a town.

Parameters
flagsType of operation.
town_idTown ID to cargo game of.
taeTownEffect to change the game of.
goalThe new goal value.
Returns
Empty cost or an error.

Definition at line 3068 of file town_cmd.cpp.

References _current_company, CMD_ERROR, DC_EXEC, FindFirstCargoWithTownAcceptanceEffect(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), Town::goal, InvalidateWindowData(), OWNER_DEITY, TAE_END, UpdateTownGrowth(), and WC_TOWN_VIEW.

◆ CmdTownGrowthRate()

CommandCost CmdTownGrowthRate ( DoCommandFlag  flags,
TownID  town_id,
uint16_t  growth_rate 
)

Change the growth rate of the town.

Parameters
flagsType of operation.
town_idTown ID to cargo game of.
growth_rateAmount of days between growth, or TOWN_GROWTH_RATE_NONE, or 0 to reset custom growth rate.
Returns
Empty cost or an error.

Definition at line 3119 of file town_cmd.cpp.

References _current_company, ClrBit(), CMD_ERROR, DC_EXEC, Town::flags, 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.

◆ CmdTownRating()

CommandCost CmdTownRating ( DoCommandFlag  flags,
TownID  town_id,
CompanyID  company_id,
int16_t  rating 
)

Change the rating of a company in a town.

Parameters
flagsType of operation.
town_idTown ID to change, bit 16..23 =
company_idCompany ID to change.
ratingNew rating of company (signed int16_t).
Returns
Empty cost or an error.

Definition at line 3157 of file town_cmd.cpp.

References _current_company, Clamp(), CMD_ERROR, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::GetIfValid(), InvalidateWindowData(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), OWNER_DEITY, Town::ratings, and WC_TOWN_AUTHORITY.

◆ CmdTownSetText()

CommandCost CmdTownSetText ( DoCommandFlag  flags,
TownID  town_id,
const std::string &  text 
)

Set a custom text in the Town window.

Parameters
flagsType of operation.
town_idTown ID to change the text of.
textThe new text (empty to remove the text).
Returns
Empty cost or an error.

Definition at line 3097 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, Town::text, and WC_TOWN_VIEW.

Variable Documentation

◆ CcFoundTown

CommandCallback CcFoundTown

Definition at line 42 of file town_cmd.h.