Public Member Functions | Private Attributes | Static Private Attributes

CommandCost Class Reference

Common return value for all commands. More...

#include <command_type.h>

Public Member Functions

 CommandCost ()
 Creates a command cost return with no cost and no error.
 CommandCost (StringID msg)
 Creates a command return value the is failed with the given message.
 CommandCost (ExpensesType ex_t)
 Creates a command cost with given expense type and start cost of 0.
 CommandCost (ExpensesType ex_t, const Money &cst)
 Creates a command return value with the given start cost and expense type.
void AddCost (const Money &cost)
 Adds the given cost to the cost of the command.
void AddCost (const CommandCost &cmd_cost)
 Adds the cost of the given command return value to this cost.
void MultiplyCost (int factor)
 Multiplies the cost of the command by the given factor.
Money GetCost () const
 The costs as made up to this moment.
ExpensesType GetExpensesType () const
 The expense type of the cost.
void MakeError (StringID message)
 Makes this CommandCost behave like an error command.
void UseTextRefStack (uint num_registers)
 Activate usage of the NewGRF TextRefStack for the error message.
uint GetTextRefStackSize () const
 Returns the number of uint32 values for the TextRefStack of the error message.
const uint32 * GetTextRefStack () const
 Returns a pointer to the values for the TextRefStack of the error message.
StringID GetErrorMessage () const
 Returns the error message of a command.
bool Succeeded () const
 Did this command succeed?
bool Failed () const
 Did this command fail?

Private Attributes

ExpensesType expense_type
 the type of expence as shown on the finances view
Money cost
 The cost of this action.
StringID message
 Warning message for when success is unset.
bool success
 Whether the comment went fine up to this moment.
uint textref_stack_size
 Number of uint32 values to put on the TextRefStack for the error message.

Static Private Attributes

static uint32 textref_stack [16]
 Values to put on the TextRefStack for the error message.

Detailed Description

Common return value for all commands.

Wraps the cost and a possible error message/state together.

Definition at line 23 of file command_type.h.


Constructor & Destructor Documentation

CommandCost::CommandCost ( ExpensesType  ex_t  )  [inline, explicit]

Creates a command cost with given expense type and start cost of 0.

Parameters:
ex_t the expense type

Definition at line 47 of file command_type.h.

CommandCost::CommandCost ( ExpensesType  ex_t,
const Money cst 
) [inline]

Creates a command return value with the given start cost and expense type.

Parameters:
ex_t the expense type
cst the initial cost of this command

Definition at line 54 of file command_type.h.


Member Function Documentation

void CommandCost::AddCost ( const Money cost  )  [inline]
void CommandCost::AddCost ( const CommandCost ret  ) 

Adds the cost of the given command return value to this cost.

Also takes a possible error message when it is set.

Parameters:
ret The command to add the cost of.

Definition at line 750 of file command.cpp.

References AddCost(), cost, message, and success.

bool CommandCost::Failed (  )  const [inline]

Did this command fail?

Returns:
true if and only if it failed

Definition at line 149 of file command_type.h.

References success.

Referenced by BuildReplacementVehicle(), BuildStationPart(), CcAddVehicleNewGroup(), CcBuildBridge(), CcBuildPrimaryVehicle(), CcBuildWagon(), CcCloneVehicle(), CcCreateGroup(), CcPlaceSign(), CcRoadStop(), CcStartStopVehicle(), CheckAllowRemoveRoad(), CheckBuildableTile(), CheckFlatLand(), CheckFlatLandRailStation(), CheckFlatLandRoadStop(), CheckIfIndustryTilesAreFree(), CmdAddVehicleGroup(), CmdAutofillTimetable(), CmdAutoreplaceVehicle(), CmdBuildAirport(), CmdBuildBridge(), CmdBuildBuoy(), CmdBuildCanal(), CmdBuildDock(), CmdBuildIndustry(), CmdBuildLongRoad(), CmdBuildObject(), CmdBuildRailStation(), CmdBuildRailWaypoint(), CmdBuildRoad(), CmdBuildRoadDepot(), CmdBuildRoadStop(), CmdBuildShipDepot(), CmdBuildSingleRail(), CmdBuildSingleSignal(), CmdBuildTrainDepot(), CmdBuildTunnel(), CmdChangeServiceInt(), CmdChangeTimetable(), CmdClearArea(), CmdCloneOrder(), CmdCloneVehicle(), CmdConvertRail(), CmdDeleteOrder(), CmdDeleteTown(), CmdDoTownAction(), CmdForceTrainProceed(), CmdFoundTown(), CmdInsertOrder(), CmdLevelLand(), CmdModifyOrder(), CmdMoveOrder(), CmdMoveRailVehicle(), CmdOpenCloseAirport(), CmdOrderRefit(), CmdPlantTree(), CmdRailTrackHelper(), CmdRefitVehicle(), CmdRemoveFromRailStation(), CmdRemoveRoadStop(), CmdRemoveSingleRail(), CmdRemoveSingleSignal(), CmdRenameDepot(), CmdRenameStation(), CmdRenameVehicle(), CmdRenameWaypoint(), CmdReverseTrainDirection(), CmdSellRailWagon(), CmdSellVehicle(), CmdSetTimetableStart(), CmdSetVehicleOnTime(), CmdSignalTrackHelper(), CmdSkipToOrder(), CmdStartStopVehicle(), CmdTerraformLand(), CmdTurnRoadVeh(), CreateNewIndustry(), CreateNewIndustryHelper(), DoBuildLock(), DoClearBridge(), DoClearTunnel(), DoCommand(), ScriptInstance::DoCommandCallback(), DoCommandP(), DoCommandPInternal(), ExploreSegment(), FindJoiningBaseStation(), RefitWindow::GetCapacityString(), IsRoadAllowedHere(), IsValidTileForWaypoint(), NormalizeTrainVehInDepot(), RemoveAirport(), RemoveBuoy(), RemoveDock(), RemoveFromRailBaseStation(), RemoveLock(), RemoveRailStation(), RemoveRoad(), RemoveRoadStop(), ReplaceChain(), Vehicle::SendToDepot(), ShowBuildBridgeWindow(), StationJoinerNeeded(), TerraformTileHeight(), ValidateTrains(), and VehicleEnterDepot().

Money CommandCost::GetCost (  )  const [inline]
StringID CommandCost::GetErrorMessage (  )  const [inline]
ExpensesType CommandCost::GetExpensesType (  )  const [inline]

The expense type of the cost.

Returns:
the expense type

Definition at line 90 of file command_type.h.

References expense_type.

Referenced by SubtractMoneyFromAnyCompany(), and SubtractMoneyFromCompanyFract().

const uint32* CommandCost::GetTextRefStack (  )  const [inline]

Returns a pointer to the values for the TextRefStack of the error message.

Returns:
uint32 values for the TextRefStack

Definition at line 121 of file command_type.h.

References textref_stack.

Referenced by DoCommandP().

uint CommandCost::GetTextRefStackSize (  )  const [inline]

Returns the number of uint32 values for the TextRefStack of the error message.

Returns:
number of uint32 values.

Definition at line 112 of file command_type.h.

References textref_stack_size.

Referenced by DoCommandP().

void CommandCost::MakeError ( StringID  message  )  [inline]

Makes this CommandCost behave like an error command.

Parameters:
message The error message.

Definition at line 99 of file command_type.h.

References INVALID_STRING_ID, and success.

Referenced by CheckCompanyHasMoney(), and CmdConvertRail().

void CommandCost::MultiplyCost ( int  factor  )  [inline]

Multiplies the cost of the command by the given factor.

Parameters:
factor factor to multiply the costs with

Definition at line 72 of file command_type.h.

References cost.

Referenced by CmdFoundTown().

bool CommandCost::Succeeded (  )  const [inline]
void CommandCost::UseTextRefStack ( uint  num_registers  ) 

Activate usage of the NewGRF TextRefStack for the error message.

Parameters:
number of entries to copy from the temporary NewGRF registers

Definition at line 770 of file command.cpp.

References TemporaryStorageArray< TYPE, SIZE >::GetValue(), lengthof, textref_stack, and textref_stack_size.

Referenced by GetErrorMessageFromLocationCallbackResult().


Field Documentation

uint32 CommandCost::textref_stack [static, private]

Values to put on the TextRefStack for the error message.

There is only one static instance of the array, just like there is only one instance of normal DParams.

Definition at line 30 of file command_type.h.

Referenced by GetTextRefStack(), and UseTextRefStack().


The documentation for this class was generated from the following files: