OpenTTD Source 20260208-master-g43af8e94d0
town_cmd.h File Reference

Command definitions related to towns. More...

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

Go to the source code of this file.

Functions

std::tuple< CommandCost, Money, TownID > CmdFoundTown (DoCommandFlags 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 (DoCommandFlags flags, TownID town_id, const std::string &text)
 Rename a town (server-only).
CommandCost CmdDoTownAction (DoCommandFlags flags, TownID town_id, TownAction action)
 Do a town action.
CommandCost CmdTownGrowthRate (DoCommandFlags flags, TownID town_id, uint16_t growth_rate)
 Change the growth rate of the town.
CommandCost CmdTownRating (DoCommandFlags flags, TownID town_id, CompanyID company_id, int16_t rating)
 Change the rating of a company in a town.
CommandCost CmdTownCargoGoal (DoCommandFlags flags, TownID town_id, TownAcceptanceEffect tae, uint32_t goal)
 Change the cargo goal of a town.
CommandCost CmdTownSetText (DoCommandFlags flags, TownID town_id, const EncodedString &text)
 Set a custom text in the Town window.
CommandCost CmdExpandTown (DoCommandFlags flags, TownID town_id, uint32_t grow_amount, TownExpandModes modes)
 Expand a town (scenario editor only).
CommandCost CmdDeleteTown (DoCommandFlags flags, TownID town_id)
 Delete a town (scenario editor or worldgen only).
CommandCost CmdPlaceHouse (DoCommandFlags flags, TileIndex tile, HouseID house, bool house_protected, bool replace)
 Place an individual house.
CommandCost CmdPlaceHouseArea (DoCommandFlags flags, TileIndex tile, TileIndex start_tile, HouseID house, bool is_protected, bool replace, bool diagonal)
 Construct multiple houses in an area.
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.

Function Documentation

◆ CcFoundRandomTown()

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

Definition at line 1067 of file town_gui.cpp.

◆ CmdDeleteTown()

◆ CmdDoTownAction()

CommandCost CmdDoTownAction ( DoCommandFlags flags,
TownID town_id,
TownAction 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 3792 of file town_cmd.cpp.

References _current_company, CMD_ERROR, Execute, EXPENSES_OTHER, CommandCost::Failed(), GetMaskOfTownActions(), GetTownActionCost(), SetWindowDirty(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), to_underlying(), TownAction, and WC_TOWN_AUTHORITY.

◆ CmdExpandTown()

CommandCost CmdExpandTown ( DoCommandFlags flags,
TownID town_id,
uint32_t grow_amount,
TownExpandModes modes )

Expand a town (scenario editor only).

Parameters
flagsType of operation.
town_idTown ID to expand.
modesThe parts of the town that are being grown.
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 3321 of file town_cmd.cpp.

References _current_company, Town::cache, ClampTo(), CMD_ERROR, Execute, GrowTown(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::None(), TownCache::num_houses, OWNER_DEITY, RandomRange(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), UpdateTownMaxPass(), and UpdateTownRadius().

◆ CmdFoundTown()

std::tuple< CommandCost, Money, TownID > CmdFoundTown ( DoCommandFlags 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 2202 of file town_cmd.cpp.

References _current_company, _generating_world, _settings_game, AI::BroadcastNewEvent(), BuildTown, CMD_ERROR, CreateRandomTown(), DoCreateTown(), Execute, EXPENSES_OTHER, CommandCost::Failed(), GetAvailableMoneyForCommand(), CommandCost::GetCost(), GetEncodedString(), GetString(), IndustryOpen, IsUniqueTownName(), lengthof, MAX_LENGTH_TOWN_NAME_CHARS, CommandCost::MultiplyCost(), Town::name, Game::NewEvent(), NUM_TLS, OWNER_DEITY, Backup< T >::Restore(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), TF_CUSTOM_LAYOUT, TF_FORBIDDEN, TownCanBePlacedHere(), TSZ_END, TSZ_LARGE, TSZ_RANDOM, UpdateNearestTownForRoadTiles(), Town::UpdateVirtCoord(), Utf8StringLength(), and VerifyTownName().

◆ CmdPlaceHouse()

CommandCost CmdPlaceHouse ( DoCommandFlags flags,
TileIndex tile,
HouseID house,
bool is_protected,
bool replace )

Place an individual house.

Parameters
flagsType of operation.
tileTile on which to place the house.
houseThe HouseID of the house spec.
is_protectedWhether the house is protected from the town upgrading it.
replaceWhether to automatically demolish an existing house on this tile, if present.
Returns
Empty cost or an error.

Definition at line 2957 of file town_cmd.cpp.

References _settings_game, OrthogonalTileArea::Add(), Auto, HouseSpec::building_flags, BuildTownHouse(), ClearTownHouse(), ClosestTownFromTile(), CMD_ERROR, DIAGDIR_SE, DIAGDIR_SW, HouseSpec::enabled, Execute, HouseSpec::Get(), GetTileMaxZ(), GetTileSlope(), GetTileType(), House, IsBridgeAbove(), IsSteepSlope(), NotSloped, NoWater, Size1x2, Size2x1, Size2x2, SLOPE_FLAT, HouseSpec::Specs(), CommandCost::Succeeded(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), TileAddByDiagDir(), and TileAddXY().

◆ CmdPlaceHouseArea()

CommandCost CmdPlaceHouseArea ( DoCommandFlags flags,
TileIndex tile,
TileIndex start_tile,
HouseID house,
bool is_protected,
bool replace,
bool diagonal )

Construct multiple houses in an area.

Parameters
flagsType of operation.
tileEnd tile of area dragging.
start_tileStart tile of area dragging.
houseThe HouseID of the house spec.
is_protectedWhether the house is protected from the town upgrading it.
replaceWhether we can replace existing houses.
diagonalWhether to use the Diagonal or Orthogonal tile iterator.
Returns
Empty cost or an error.

Definition at line 3024 of file town_cmd.cpp.

References _current_company, _settings_game, CompanyProperties::build_object_limit, HouseSpec::building_flags, CMD_ERROR, TileIterator::Create(), HouseSpec::enabled, Execute, CommandCost::Failed(), GB(), HouseSpec::Get(), INVALID_TILE, Map::Size(), Size1x1, HouseSpec::Specs(), and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().

◆ CmdRenameTown()

CommandCost CmdRenameTown ( DoCommandFlags 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 3156 of file town_cmd.cpp.

References Town::cached_name, CMD_ERROR, Execute, InvalidateWindowData(), IsUniqueTownName(), MAX_LENGTH_TOWN_NAME_CHARS, Town::name, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), UpdateAllStationVirtCoords(), Town::UpdateVirtCoord(), Utf8StringLength(), and WC_TOWN_DIRECTORY.

◆ CmdTownCargoGoal()

CommandCost CmdTownCargoGoal ( DoCommandFlags 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 3206 of file town_cmd.cpp.

References _current_company, CMD_ERROR, Execute, FindFirstCargoWithTownAcceptanceEffect(), Town::goal, InvalidateWindowData(), OWNER_DEITY, TAE_END, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), UpdateTownGrowth(), and WC_TOWN_VIEW.

◆ CmdTownGrowthRate()

CommandCost CmdTownGrowthRate ( DoCommandFlags 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 3257 of file town_cmd.cpp.

References _current_company, CMD_ERROR, CustomGrowth, Execute, Town::flags, Town::grow_counter, Town::growth_rate, InvalidateWindowData(), OWNER_DEITY, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Reset(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), UpdateTownGrowth(), and WC_TOWN_VIEW.

◆ CmdTownRating()

CommandCost CmdTownRating ( DoCommandFlags 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 3295 of file town_cmd.cpp.

References _current_company, Clamp(), CMD_ERROR, Execute, InvalidateWindowData(), OWNER_DEITY, Town::ratings, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and WC_TOWN_AUTHORITY.

◆ CmdTownSetText()

CommandCost CmdTownSetText ( DoCommandFlags flags,
TownID town_id,
const EncodedString & 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 3235 of file town_cmd.cpp.

References _current_company, CMD_ERROR, Execute, InvalidateWindowData(), OWNER_DEITY, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), Town::text, and WC_TOWN_VIEW.

Variable Documentation

◆ CcFoundTown

CommandCallback CcFoundTown

Definition at line 46 of file town_cmd.h.