command_func.h File Reference

Functions related to commands. More...

#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.
void NetworkSend_Command (TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallback *callback, const char *text, CompanyID company)
 Send a command over the network.
bool IsValidCommand (uint32 cmd)
 Checks if a integer value belongs to a command.
byte GetCommandFlags (uint32 cmd)
 Returns the flags from a given command.
const char * GetCommandName (uint32 cmd)
 Returns the name of 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

Detailed Description

Functions related to commands.

Definition in file command_func.h.


Define Documentation

#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.

Parameters:
errcode The StringID to return

Definition at line 35 of file command_func.h.

Referenced by CheckBridgeAvailability(), CheckFlatLandBelow(), CheckNewTrain(), CheckRailSlope(), CheckTrackCombination(), 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(), Vehicle::SendToDepot(), TerraformTileHeight(), and TownCanBePlacedHere().


Function Documentation

static DoCommandFlag CommandFlagsToDCFlags ( uint  cmd_flags  )  [inline, static]

Extracts the DC flags needed for DoCommand from the flags returned by GetCommandFlags.

Parameters:
cmd_flags Flags from GetCommandFlags
Returns:
flags for DoCommand

Definition at line 84 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.

Parameters:
container Container with (almost) all information
flags Flags for the command and how to execute the command
See also:
CommandProc
Returns:
the cost

Definition at line 391 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(), TownViewWindow::CanDeleteTown(), 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(), BuildRoadToolbarWindow::OnPlacePresize(), BuildRailToolbarWindow::OnPlacePresize(), RemoveRailStation(), RemoveRailWaypoint(), RemoveRoad(), ReplaceChain(), ReplaceFreeUnit(), ResetLandscapeConfirmationCallback(), SearchLumberMillTrees(), SendAllVehiclesToDepot(), Vehicle::SendToDepot(), ShowBuildBridgeWindow(), ShowNewGrfVehicleError(), StartStopVehicle(), StationJoinerNeeded(), UpdateOrderDest(), and Town::~Town().

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.

Parameters:
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
See also:
CommandProc
Returns:
the cost

Definition at line 409 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.

Parameters:
container the container with information.
my_cmd indicator if the command is from a company or server (to display error messages for a user)
Returns:
true if the command succeeded, else false

Definition at line 483 of file command.cpp.

References CommandContainer::callback, CommandContainer::cmd, DoCommandP(), CommandContainer::p1, CommandContainer::p2, CommandContainer::text, and CommandContainer::tile.

Referenced by _GenerateWorld(), AskUnsafeUnpauseCallback(), ChangeTimetableStartCallback(), CheckPauseHelper(), CheckTrainsLengths(), CommonRaiseLowerBigLand(), DepotWindow::DepotClick(), DoCommandP(), GenerateDesertArea(), GenericPlaceSignals(), GUIPlaceProcDragXY(), HandleAutoSignalPlacement(), DepotWindow::HandleCloneVehClick(), NetworkExecuteLocalCommandQueue(), VehicleViewWindow::OnClick(), VehicleDetailsWindow::OnClick(), VehicleListWindow::OnClick(), RefitWindow::OnClick(), TownAuthorityWindow::OnClick(), TimetableWindow::OnClick(), SelectStationWindow< T >::OnClick(), GameDifficultyWindow::OnClick(), OrdersWindow::OnClick(), BuildIndustryWindow::OnClick(), VehicleGroupWindow::OnClick(), EnginePreviewWindow::OnClick(), DepotWindow::OnClick(), BuyCompanyWindow::OnClick(), CompanyWindow::OnClick(), SelectCompanyManagerFaceWindow::OnClick(), SelectCompanyLiveryWindow::OnClick(), CompanyFinancesWindow::OnClick(), BuildVehicleWindow::OnClick(), ReplaceVehicleWindow::OnClick(), AIDebugWindow::OnClick(), OrdersWindow::OnDragDrop(), VehicleGroupWindow::OnDragDrop(), DepotWindow::OnDragDrop(), VehicleListWindow::OnDropdownSelect(), OrdersWindow::OnDropdownSelect(), VehicleGroupWindow::OnDropdownSelect(), SelectCompanyLiveryWindow::OnDropdownSelect(), MainWindow::OnKeyPress(), BuildTreesWindow::OnPlaceMouseUp(), BuildRoadToolbarWindow::OnPlaceMouseUp(), BuildRailToolbarWindow::OnPlaceMouseUp(), BuildDocksToolbarWindow::OnPlaceMouseUp(), OrdersWindow::OnPlaceObject(), BuildIndustryWindow::OnPlaceObject(), CompanyWindow::OnPlaceObject(), OrdersWindow::OnPlaceObjectAbort(), WaypointWindow::OnQueryTextFinished(), VehicleDetailsWindow::OnQueryTextFinished(), TownViewWindow::OnQueryTextFinished(), TimetableWindow::OnQueryTextFinished(), StationViewWindow::OnQueryTextFinished(), OrdersWindow::OnQueryTextFinished(), VehicleGroupWindow::OnQueryTextFinished(), CompanyWindow::OnQueryTextFinished(), BuildVehicleWindow::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.

Parameters:
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)
Returns:
true if the command succeeded, else false

Definition at line 503 of file command.cpp.

References _networking, _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.

Parameters:
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
Returns:
the command cost of this function.

Definition at line 571 of file command.cpp.

References _date, _networking, 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(), GetCommandName(), CommandCost::GetCost(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_company_pool >::GetIfValid(), INVALID_STRING_ID, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), IsValidTile(), lengthof, MapSize(), NetworkSend_Command(), 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.

Returns:
The available money of a company or INT64_MAX

Definition at line 470 of file command.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_company_pool >::Get(), and Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID().

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.

Parameters:
cmd The integer value of the command
Returns:
The flags for this command

Definition at line 360 of file command.cpp.

References CMD_ID_MASK, Command::flags, and IsValidCommand().

Referenced by DEF_SERVER_RECEIVE_COMMAND(), DoCommandPInternal(), NetworkClientSocket::Recv_Command(), and StationJoinerNeeded().

const char* GetCommandName ( uint32  cmd  ) 

Returns the name of a given command.

This function mask the parameter with CMD_ID_MASK and returns the name which belongs to the given command.

Parameters:
cmd The integer value of the command
Returns:
The name for this command

Definition at line 374 of file command.cpp.

References CMD_ID_MASK, IsValidCommand(), and Command::name.

Referenced by DoCommandPInternal().

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

Parameters:
cmd The integervalue of a command
Returns:
true if the command is valid (and got a CommandProc function)

Definition at line 344 of file command.cpp.

References CMD_ID_MASK, lengthof, and Command::proc.

Referenced by GetCommandFlags(), GetCommandName(), and NetworkClientSocket::Recv_Command().

void NetworkSend_Command ( TileIndex  tile,
uint32  p1,
uint32  p2,
uint32  cmd,
CommandCallback callback,
const char *  text,
CompanyID  company 
)

Send a command over the network.

Send a command over the network.

Parameters:
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
company The company that wants to send the command

Definition at line 87 of file network_command.cpp.

References _network_server, CommandContainer::callback, CommandContainer::cmd, CMD_FLAGS_MASK, CommandPacket::company, CommandPacket::frame, lastof, CommandPacket::my_cmd, NetworkAddCommandQueue(), CommandPacket::next, CommandContainer::p1, CommandContainer::p2, NetworkClientSocket::status, STATUS_MAP_WAIT, strecpy(), CommandContainer::text, and CommandContainer::tile.

Referenced by CmdCompanyCtrl(), DoCommandPInternal(), and SyncCompanySettings().


Variable Documentation

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(), CheckBridgeAvailability(), 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(), 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(), Vehicle::SendToDepot(), TerraformTileHeight(), and TestAutoslopeOnRailTile().


Generated on Wed Apr 21 20:31:57 2010 for OpenTTD by  doxygen 1.6.1