#include "command_type.h"
#include "company_type.h"
Go to the source code of this file.
Defines | |
#define | return_cmd_error(errcode) return CommandCost(errcode); |
Returns from a function with a specific StringID as error. | |
Functions | |
CommandCost | DoCommand (TileIndex tile, uint32 p1, uint32 p2, DoCommandFlag flags, uint32 cmd, const char *text=NULL) |
Execute a command. | |
CommandCost | DoCommand (const CommandContainer *container, DoCommandFlag flags) |
Shorthand for calling the long DoCommand with a container. | |
bool | DoCommandP (TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallback *callback=NULL, const char *text=NULL, bool my_cmd=true) |
Execute a network safe DoCommand function. | |
bool | DoCommandP (const CommandContainer *container, bool my_cmd=true) |
Shortcut for the long DoCommandP when having a container with the data. | |
CommandCost | DoCommandPInternal (TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallback *callback, const char *text, bool my_cmd, bool estimate_only) |
Internal helper function for DoCommandP. | |
bool | IsValidCommand (uint32 cmd) |
Checks if a integer value belongs to a command. | |
byte | GetCommandFlags (uint32 cmd) |
Returns the flags from a given command. | |
Money | GetAvailableMoneyForCommand () |
Returns the current money available which can be used for a command. | |
static DoCommandFlag | CommandFlagsToDCFlags (uint cmd_flags) |
Extracts the DC flags needed for DoCommand from the flags returned by GetCommandFlags. | |
Variables | |
static const CommandCost | CMD_ERROR = CommandCost(INVALID_STRING_ID) |
Define a default return value for a failed command. | |
Money | _additional_cash_required |
StringID | _error_message |
CommandCallback | CcAI |
CommandCallback | CcBuildAirport |
CommandCallback | CcBuildBridge |
CommandCallback | CcBuildDocks |
CommandCallback | CcBuildCanal |
CommandCallback | CcCloneVehicle |
CommandCallback | CcCreateGroup |
CommandCallback | CcPlaySound10 |
CommandCallback | CcPlaceSign |
CommandCallback | CcTerraform |
CommandCallback | CcGiveMoney |
CommandCallback | CcPlaySound1E |
CommandCallback | CcRailDepot |
CommandCallback | CcStation |
CommandCallback | CcBuildRailTunnel |
CommandCallback | CcPlaySound1D |
CommandCallback | CcBuildRoadTunnel |
CommandCallback | CcRoadDepot |
CommandCallback | CcBuildWagon |
CommandCallback | CcFoundTown |
CommandCallback | CcFoundRandomTown |
CommandCallback | CcBuildPrimaryVehicle |
Definition in file command_func.h.
#define return_cmd_error | ( | errcode | ) | return CommandCost(errcode); |
Returns from a function with a specific StringID as error.
This macro is used to return from a function. The parameter contains the StringID which will be returned.
errcode | The StringID to return |
Definition at line 35 of file command_func.h.
Referenced by CheckFlatLandBelow(), CheckNewTrain(), CheckRailSlope(), CheckTrainAttachment(), CmdBuildAircraft(), CmdBuildAirport(), CmdBuildBridge(), CmdBuildBuoy(), CmdBuildCanal(), CmdBuildDock(), CmdBuildLock(), CmdBuildRailStation(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRailWaypoint(), CmdBuildRoad(), CmdBuildRoadDepot(), CmdBuildRoadStop(), CmdBuildRoadVeh(), CmdBuildShip(), CmdBuildShipDepot(), CmdBuildSingleRail(), CmdBuildSingleSignal(), CmdBuildTrainDepot(), CmdBuildTunnel(), CmdBuyShareInCompany(), CmdChangeTimetable(), CmdCloneOrder(), CmdCloneVehicle(), CmdDecreaseLoan(), CmdFoundTown(), CmdIncreaseLoan(), CmdInsertOrder(), CmdLevelLand(), CmdMoveRailVehicle(), CmdPlaceSign(), CmdPlantTree(), CmdPurchaseLandArea(), CmdRefitAircraft(), CmdRefitRailVehicle(), CmdRefitRoadVeh(), CmdRefitShip(), CmdRenameCompany(), CmdRenameEngine(), CmdRenameGroup(), CmdRenamePresident(), CmdRenameStation(), CmdRenameTown(), CmdRenameVehicle(), CmdRenameWaypoint(), CmdReverseTrainDirection(), CmdSellAircraft(), CmdSellRailWagon(), CmdSellRoadVeh(), CmdSellShip(), CmdStartStopVehicle(), CmdTerraformLand(), DoBuildShiplift(), FindJoiningBaseStation(), IsValidTileForWaypoint(), RemoveBuoy(), RemoveFromRailBaseStation(), RemoveRoad(), TerraformTileHeight(), and TownCanBePlacedHere().
static DoCommandFlag CommandFlagsToDCFlags | ( | uint | cmd_flags | ) | [inline, static] |
Extracts the DC flags needed for DoCommand from the flags returned by GetCommandFlags.
cmd_flags | Flags from GetCommandFlags |
Definition at line 80 of file command_func.h.
References CMD_ALL_TILES, CMD_AUTO, CMD_NO_WATER, DC_ALL_TILES, DC_AUTO, DC_NO_WATER, and DC_NONE.
Referenced by DoCommandPInternal(), and StationJoinerNeeded().
CommandCost DoCommand | ( | const CommandContainer * | container, | |
DoCommandFlag | flags | |||
) |
Shorthand for calling the long DoCommand with a container.
container | Container with (almost) all information | |
flags | Flags for the command and how to execute the command |
Definition at line 377 of file command.cpp.
References CommandContainer::cmd, CMD_ID_MASK, DoCommand(), CommandContainer::p1, CommandContainer::p2, CommandContainer::text, and CommandContainer::tile.
Referenced by BuildReplacementVehicle(), CanBuildHouseHere(), CanBuildTramTrackOnTile(), CheckFlatLandBelow(), CheckIfCanLevelIndustryPlatform(), ClearMakeHouseTile(), CmdBuildBridge(), CmdBuildCanal(), CmdBuildDock(), CmdBuildLongRoad(), CmdBuildRailWagon(), CmdBuildRoad(), CmdBuildRoadDepot(), CmdBuildShipDepot(), CmdBuildSingleRail(), CmdBuildTrainDepot(), CmdBuildTunnel(), CmdClearArea(), CmdCloneVehicle(), CmdDepotMassAutoReplace(), CmdDepotSellAllVehicles(), CmdLevelLand(), CmdMassStartStopVehicle(), CmdPlantTree(), CmdPurchaseLandArea(), CmdRailTrackHelper(), CmdRemoveLongRoad(), CmdRemoveSingleRail(), CmdRenamePresident(), CmdSignalTrackHelper(), CopyHeadSpecificThings(), DoBuildShiplift(), DoCommand(), DoDryUp(), DoFloodTile(), RefitWindow::DrawWidget(), FloodHalftile(), GrowTown(), GrowTownWithBridge(), GrowTownWithRoad(), IsRoadAllowedHere(), MoveVehicle(), NormalizeTrainVehInDepot(), BuildRailToolbarWindow::OnPlacePresize(), RemoveRailStation(), RemoveRailWaypoint(), RemoveRoad(), ReplaceChain(), ReplaceFreeUnit(), ResetLandscapeConfirmationCallback(), SearchLumberMillTrees(), SendAllVehiclesToDepot(), ShowBuildBridgeWindow(), ShowNewGrfVehicleError(), StartStopVehicle(), StationJoinerNeeded(), and UpdateOrderDest().
CommandCost DoCommand | ( | TileIndex | tile, | |
uint32 | p1, | |||
uint32 | p2, | |||
DoCommandFlag | flags, | |||
uint32 | cmd, | |||
const char * | text | |||
) |
Execute a command.
This function executes a given command with the parameters from the CommandProc parameter list. Depending on the flags parameter it execute or test a command.
tile | The tile to apply the command on (for the CommandProc) | |
p1 | Additional data for the command (for the CommandProc) | |
p2 | Additional data for the command (for the CommandProc) | |
flags | Flags for the command and how to execute the command | |
cmd | The command-id to execute (a value of the CMD_* enums) | |
text | The text to pass |
Definition at line 395 of file command.cpp.
References CMD_ERROR, CMD_ID_MASK, DC_ALL_TILES, DC_BANKRUPT, DC_EXEC, DC_QUERY_COST, error(), CommandCost::Failed(), INVALID_STRING_ID, IsValidTile(), MapSize(), Command::proc, and CommandCost::SetGlobalErrorMessage().
bool DoCommandP | ( | const CommandContainer * | container, | |
bool | my_cmd | |||
) |
Shortcut for the long DoCommandP when having a container with the data.
container | the container with information. | |
my_cmd | indicator if the command is from a company or server (to display error messages for a user) |
Definition at line 469 of file command.cpp.
References CommandContainer::callback, CommandContainer::cmd, DoCommandP(), CommandContainer::p1, CommandContainer::p2, CommandContainer::text, and CommandContainer::tile.
Referenced by _GenerateWorld(), AskUnsafeUnpauseCallback(), ChangeTimetableStartCallback(), CheckTrainsLengths(), CommonRaiseLowerBigLand(), DoCommandP(), GenerateDesertArea(), GenericPlaceSignals(), GUIPlaceProcDragXY(), HandleAutoSignalPlacement(), VehicleViewWindow::OnClick(), VehicleDetailsWindow::OnClick(), VehicleListWindow::OnClick(), RefitWindow::OnClick(), SelectStationWindow< T >::OnClick(), OrdersWindow::OnClick(), BuildIndustryWindow::OnClick(), CompanyWindow::OnClick(), SelectCompanyManagerFaceWindow::OnClick(), SelectCompanyLiveryWindow::OnClick(), CompanyFinancesWindow::OnClick(), ReplaceVehicleWindow::OnClick(), AIDebugWindow::OnClick(), OrdersWindow::OnDragDrop(), VehicleListWindow::OnDropdownSelect(), OrdersWindow::OnDropdownSelect(), SelectCompanyLiveryWindow::OnDropdownSelect(), BuildTreesWindow::OnPlaceMouseUp(), BuildRailToolbarWindow::OnPlaceMouseUp(), OrdersWindow::OnPlaceObject(), BuildIndustryWindow::OnPlaceObject(), CompanyWindow::OnPlaceObject(), OrdersWindow::OnPlaceObjectAbort(), VehicleDetailsWindow::OnQueryTextFinished(), StationViewWindow::OnQueryTextFinished(), OrdersWindow::OnQueryTextFinished(), CompanyWindow::OnQueryTextFinished(), OrdersWindow::OrderClick_Delete(), OrdersWindow::OrderClick_FullLoad(), OrdersWindow::OrderClick_NearestDepot(), OrdersWindow::OrderClick_Nonstop(), OrdersWindow::OrderClick_Refit(), OrdersWindow::OrderClick_Service(), OrdersWindow::OrderClick_Skip(), OrdersWindow::OrderClick_Unload(), PlaceExtraDepotRail(), PlaceProc_Sign(), RenameSign(), RestoreVehicleOrders(), SetCompanySetting(), SetSettingValue(), ShowBuildBridgeWindow(), and ShowSelectBaseStationIfNeeded().
bool DoCommandP | ( | TileIndex | tile, | |
uint32 | p1, | |||
uint32 | p2, | |||
uint32 | cmd, | |||
CommandCallback * | callback, | |||
const char * | text, | |||
bool | my_cmd | |||
) |
Execute a network safe DoCommand function.
Toplevel network safe docommand function for the current company. Must not be called recursively. The callback is called when the command succeeded or failed. The parameters tile, p1 and p2 are from the CommandProc function. The paramater cmd is the command to execute. The parameter my_cmd is used to indicate if the command is from a company or the server.
tile | The tile to perform a command on (see CommandProc) | |
p1 | Additional data for the command (see CommandProc) | |
p2 | Additional data for the command (see CommandProc) | |
cmd | The command to execute (a CMD_* value) | |
callback | A callback function to call after the command is finished | |
text | The text to pass | |
my_cmd | indicator if the command is from a company or server (to display error messages for a user) |
Definition at line 489 of file command.cpp.
References _shift_pressed, CMD_ID_MASK, CMD_NETWORK_COMMAND, CMD_PAUSE, DoCommandPInternal(), CommandCost::Failed(), GB(), CommandCost::GetCost(), IsGeneratingWorld(), CommandCost::SetGlobalErrorMessage(), ShowErrorMessage(), CommandCost::Succeeded(), TILE_SIZE, TileX(), and TileY().
CommandCost DoCommandPInternal | ( | TileIndex | tile, | |
uint32 | p1, | |||
uint32 | p2, | |||
uint32 | cmd, | |||
CommandCallback * | callback, | |||
const char * | text, | |||
bool | my_cmd, | |||
bool | estimate_only | |||
) |
Internal helper function for DoCommandP.
Do not use.
Helper function for the toplevel network safe docommand function for the current company.
tile | The tile to perform a command on (see CommandProc) | |
p1 | Additional data for the command (see CommandProc) | |
p2 | Additional data for the command (see CommandProc) | |
cmd | The command to execute (a CMD_* value) | |
callback | A callback function to call after the command is finished | |
text | The text to pass | |
my_cmd | indicator if the command is from a company or server (to display error messages for a user) | |
estimate_only | whether to give only the estimate or also execute the command |
Definition at line 557 of file command.cpp.
References _date, CMD_ALL_TILES, CMD_COMPANY_CTRL, CMD_ERROR, CMD_FLAGS_MASK, CMD_ID_MASK, CMD_NETWORK_COMMAND, CMD_NO_TEST, CMD_NO_TEST_IF_IN_NETWORK, CMD_SERVER, CMD_SPECTATOR, CommandFlagsToDCFlags(), COMPANY_SPECTATOR, DC_EXEC, CommandCost::Failed(), GetCommandFlags(), CommandCost::GetCost(), INVALID_STRING_ID, IsValidTile(), lengthof, MapSize(), Command::proc, return_dcpi, SetDParam(), and UpdateSignalsInBuffer().
Referenced by AIObject::DoCommand(), and DoCommandP().
Money GetAvailableMoneyForCommand | ( | ) |
Returns the current money available which can be used for a command.
This functions returns the money which can be used to execute a command. This is either the money of the current company or INT64_MAX if there is no such a company "at the moment" like the server itself.
Definition at line 456 of file command.cpp.
Referenced by CmdClearArea(), CmdFoundTown(), CmdLevelLand(), and CmdRemoveLongRoad().
byte GetCommandFlags | ( | uint32 | cmd | ) |
Returns the flags from a given command.
This function mask the parameter with CMD_ID_MASK and returns the flags which belongs to the given command.
cmd | The integer value of the command |
Definition at line 360 of file command.cpp.
References CMD_ID_MASK, Command::flags, and IsValidCommand().
Referenced by DoCommandPInternal(), and StationJoinerNeeded().
bool IsValidCommand | ( | uint32 | cmd | ) |
Checks if a integer value belongs to a command.
This function range-checks a cmd, and checks if the cmd is not NULL
cmd | The integervalue of a command |
Definition at line 344 of file command.cpp.
References CMD_ID_MASK, lengthof, and Command::proc.
Referenced by GetCommandFlags().
const CommandCost CMD_ERROR = CommandCost(INVALID_STRING_ID) [static] |
Define a default return value for a failed command.
This variable contains a CommandCost object with is declared as "failed". Other functions just need to return this error if there is an error, which doesn't need to specific by a StringID.
Definition at line 25 of file command_func.h.
Referenced by AddEngineReplacement(), CheckBridgeSlopeNorth(), CheckBridgeSlopeSouth(), CheckFlatLandBelow(), CheckRoadSlope(), CmdAddSharedVehicleGroup(), CmdAddVehicleGroup(), CmdAutofillTimetable(), CmdAutoreplaceVehicle(), CmdBuildAircraft(), CmdBuildAirport(), CmdBuildBridge(), CmdBuildCanal(), CmdBuildDock(), CmdBuildIndustry(), CmdBuildLongRoad(), CmdBuildRailStation(), CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRailWaypoint(), CmdBuildRoad(), CmdBuildRoadDepot(), CmdBuildRoadStop(), CmdBuildRoadVeh(), CmdBuildShip(), CmdBuildShipDepot(), CmdBuildSingleRail(), CmdBuildSingleSignal(), CmdBuildTrainDepot(), CmdBuildTunnel(), CmdBuyCompany(), CmdBuyShareInCompany(), CmdChangeCompanySetting(), CmdChangeServiceInt(), CmdChangeSetting(), CmdChangeTimetable(), CmdClearArea(), CmdCloneOrder(), CmdCloneVehicle(), CmdCompanyCtrl(), CmdConvertRail(), CmdCreateGroup(), CmdDecreaseLoan(), CmdDeleteGroup(), CmdDeleteOrder(), CmdDepotMassAutoReplace(), CmdDepotSellAllVehicles(), CmdDoTownAction(), CmdForceTrainProceed(), CmdFoundTown(), CmdGiveMoney(), CmdIncreaseLoan(), CmdInsertOrder(), CmdLevelLand(), CmdMassStartStopVehicle(), CmdModifyOrder(), CmdMoneyCheat(), CmdMoveOrder(), CmdMoveRailVehicle(), CmdOrderRefit(), CmdPause(), CmdPlaceSign(), CmdPlantTree(), CmdPurchaseLandArea(), CmdRailTrackHelper(), CmdRefitAircraft(), CmdRefitRailVehicle(), CmdRefitRoadVeh(), CmdRefitShip(), CmdRemoveAllVehiclesGroup(), CmdRemoveFromRailStation(), CmdRemoveFromRailWaypoint(), CmdRemoveLongRoad(), CmdRemoveRoad(), CmdRemoveRoadStop(), CmdRemoveSingleRail(), CmdRemoveSingleSignal(), CmdRenameCompany(), CmdRenameEngine(), CmdRenameGroup(), CmdRenamePresident(), CmdRenameSign(), CmdRenameStation(), CmdRenameTown(), CmdRenameVehicle(), CmdRenameWaypoint(), CmdRestoreOrderIndex(), CmdReverseTrainDirection(), CmdSellAircraft(), CmdSellLandArea(), CmdSellRailWagon(), CmdSellRoadVeh(), CmdSellShareInCompany(), CmdSellShip(), CmdSendAircraftToHangar(), CmdSendRoadVehToDepot(), CmdSendShipToDepot(), CmdSendTrainToDepot(), CmdSetAutoReplace(), CmdSetCompanyColour(), CmdSetCompanyManagerFace(), CmdSetGroupReplaceProtection(), CmdSetTimetableStart(), CmdSetVehicleOnTime(), CmdSignalTrackHelper(), CmdSkipToOrder(), CmdStartStopVehicle(), CmdTurnRoadVeh(), CmdWantEnginePreview(), DoBuildShiplift(), DoCommand(), DoCommandPInternal(), FindJoiningBaseStation(), IsRoadAllowedHere(), IsValidTileForWaypoint(), RemoveAirport(), RemoveBuoy(), RemoveDock(), RemoveEngineReplacement(), RemoveFromRailBaseStation(), RemoveRailStation(), RemoveRoad(), RemoveRoadStop(), SendAllVehiclesToDepot(), TerraformTileHeight(), and TestAutoslopeOnRailTile().