OpenTTD Source  20241121-master-g67a0fccfad
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, StringID extra_msg=INVALID_STRING_ID)
 Creates a command return value with one, or optionally two, error message strings.
 
 CommandCost (ExpensesType ex_t)
 Creates a command cost with given expense type and start cost of 0. More...
 
 CommandCost (ExpensesType ex_t, const Money &cst)
 Creates a command return value with the given start cost and expense type. More...
 
void AddCost (const Money &cost)
 Adds the given cost to the cost of the command. More...
 
void AddCost (const CommandCost &cmd_cost)
 Adds the cost of the given command return value to this cost. More...
 
void MultiplyCost (int factor)
 Multiplies the cost of the command by the given factor. More...
 
Money GetCost () const
 The costs as made up to this moment. More...
 
ExpensesType GetExpensesType () const
 The expense type of the cost. More...
 
void MakeError (StringID message, StringID extra_message=INVALID_STRING_ID)
 Makes this CommandCost behave like an error command. More...
 
void UseTextRefStack (const GRFFile *grffile, uint num_registers)
 Activate usage of the NewGRF TextRefStack for the error message. More...
 
const GRFFileGetTextRefStackGRF () const
 Returns the NewGRF providing the TextRefStack of the error message. More...
 
uint GetTextRefStackSize () const
 Returns the number of uint32_t values for the TextRefStack of the error message. More...
 
const uint32_t * GetTextRefStack () const
 Returns a pointer to the values for the TextRefStack of the error message. More...
 
StringID GetErrorMessage () const
 Returns the error message of a command. More...
 
StringID GetExtraErrorMessage () const
 Returns the extra error message of a command. More...
 
bool Succeeded () const
 Did this command succeed? More...
 
bool Failed () const
 Did this command fail? More...
 

Private Attributes

Money cost
 The cost of this action.
 
StringID message
 Warning message for when success is unset.
 
ExpensesType expense_type
 the type of expence as shown on the finances view
 
bool success
 Whether the command went fine up to this moment.
 
const GRFFiletextref_stack_grffile = nullptr
 NewGRF providing the TextRefStack content.
 
uint textref_stack_size = 0
 Number of uint32_t values to put on the TextRefStack for the error message.
 
StringID extra_message = INVALID_STRING_ID
 Additional warning message for when success is unset.
 

Static Private Attributes

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

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() [1/2]

CommandCost::CommandCost ( ExpensesType  ex_t)
inlineexplicit

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

Parameters
ex_tthe expense type

Definition at line 49 of file command_type.h.

◆ CommandCost() [2/2]

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

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

Parameters
ex_tthe expense type
cstthe initial cost of this command

Definition at line 56 of file command_type.h.

Member Function Documentation

◆ AddCost() [1/2]

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
retThe command to add the cost of.

Definition at line 401 of file command.cpp.

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

◆ AddCost() [2/2]

◆ Failed()

◆ GetCost()

Money CommandCost::GetCost ( ) const
inline

◆ GetErrorMessage()

StringID CommandCost::GetErrorMessage ( ) const
inline

Returns the error message of a command.

Returns
the error message, if succeeded INVALID_STRING_ID

Definition at line 142 of file command_type.h.

References INVALID_STRING_ID, and message.

Referenced by CmdBuildLongRoad(), CmdLevelLand(), and ShowBuildBridgeWindow().

◆ GetExpensesType()

ExpensesType CommandCost::GetExpensesType ( ) const
inline

The expense type of the cost.

Returns
the expense type

Definition at line 92 of file command_type.h.

References expense_type.

Referenced by SubtractMoneyFromAnyCompany(), and SubtractMoneyFromCompanyFract().

◆ GetExtraErrorMessage()

StringID CommandCost::GetExtraErrorMessage ( ) const
inline

Returns the extra error message of a command.

Returns
the extra error message, if succeeded INVALID_STRING_ID

Definition at line 152 of file command_type.h.

References extra_message, and INVALID_STRING_ID.

◆ GetTextRefStack()

const uint32_t* CommandCost::GetTextRefStack ( ) const
inline

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

Returns
uint32_t values for the TextRefStack

Definition at line 133 of file command_type.h.

References textref_stack.

◆ GetTextRefStackGRF()

const GRFFile* CommandCost::GetTextRefStackGRF ( ) const
inline

Returns the NewGRF providing the TextRefStack of the error message.

Returns
the NewGRF.

Definition at line 115 of file command_type.h.

References textref_stack_grffile.

◆ GetTextRefStackSize()

uint CommandCost::GetTextRefStackSize ( ) const
inline

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

Returns
number of uint32_t values.

Definition at line 124 of file command_type.h.

References textref_stack_size.

◆ MakeError()

void CommandCost::MakeError ( StringID  message,
StringID  extra_message = INVALID_STRING_ID 
)
inline

Makes this CommandCost behave like an error command.

Parameters
messageThe error message.

Definition at line 101 of file command_type.h.

References extra_message, INVALID_STRING_ID, and message.

Referenced by CheckCompanyHasMoney(), and CmdConvertRail().

◆ MultiplyCost()

void CommandCost::MultiplyCost ( int  factor)
inline

Multiplies the cost of the command by the given factor.

Parameters
factorfactor to multiply the costs with

Definition at line 74 of file command_type.h.

◆ Succeeded()

◆ UseTextRefStack()

void CommandCost::UseTextRefStack ( const GRFFile grffile,
uint  num_registers 
)

Activate usage of the NewGRF TextRefStack for the error message.

Parameters
grffileNewGRF that provides the TextRefStack
num_registersnumber of entries to copy from the temporary NewGRF registers

Definition at line 422 of file command.cpp.

Field Documentation

◆ textref_stack

uint32_t CommandCost::textref_stack
staticprivate

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 32 of file command_type.h.

Referenced by GetTextRefStack().


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