mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 22:28:56 +00:00
(svn r21427) -Add: helper function to determine whether a command may be executed
This commit is contained in:
parent
df410fd7ed
commit
e170b1d83e
@ -349,6 +349,31 @@ const char *GetCommandName(uint32 cmd)
|
|||||||
return _command_proc_table[cmd & CMD_ID_MASK].name;
|
return _command_proc_table[cmd & CMD_ID_MASK].name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the command is allowed while the game is paused.
|
||||||
|
* @param cmd The command to check.
|
||||||
|
* @return True if the command is allowed while paused, false otherwise.
|
||||||
|
*/
|
||||||
|
bool IsCommandAllowedWhilePaused(uint32 cmd)
|
||||||
|
{
|
||||||
|
/* Lookup table for the command types that are allowed for a given pause level setting. */
|
||||||
|
static const int command_type_lookup[] = {
|
||||||
|
CMDPL_ALL_ACTIONS, ///< CMDT_LANDSCAPE_CONSTRUCTION
|
||||||
|
CMDPL_NO_LANDSCAPING, ///< CMDT_VEHICLE_CONSTRUCTION
|
||||||
|
CMDPL_NO_LANDSCAPING, ///< CMDT_MONEY_MANAGEMENT
|
||||||
|
CMDPL_NO_CONSTRUCTION, ///< CMDT_VEHICLE_MANAGEMENT
|
||||||
|
CMDPL_NO_CONSTRUCTION, ///< CMDT_ROUTE_MANAGEMENT
|
||||||
|
CMDPL_NO_CONSTRUCTION, ///< CMDT_OTHER_MANAGEMENT
|
||||||
|
CMDPL_NO_CONSTRUCTION, ///< CMDT_COMPANY_SETTING
|
||||||
|
CMDPL_NO_ACTIONS, ///< CMDT_SERVER_SETTING
|
||||||
|
};
|
||||||
|
assert_compile(lengthof(command_type_lookup) == CMDT_END);
|
||||||
|
|
||||||
|
assert(IsValidCommand(cmd));
|
||||||
|
return command_type_lookup[_command_proc_table[cmd & CMD_ID_MASK].type] <= _settings_game.construction.command_pause_level;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int _docommand_recursive = 0;
|
static int _docommand_recursive = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,6 +75,8 @@ const char *GetCommandName(uint32 cmd);
|
|||||||
*/
|
*/
|
||||||
Money GetAvailableMoneyForCommand();
|
Money GetAvailableMoneyForCommand();
|
||||||
|
|
||||||
|
bool IsCommandAllowedWhilePaused(uint32 cmd);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extracts the DC flags needed for DoCommand from the flags returned by GetCommandFlags
|
* Extracts the DC flags needed for DoCommand from the flags returned by GetCommandFlags
|
||||||
* @param cmd_flags Flags from GetCommandFlags
|
* @param cmd_flags Flags from GetCommandFlags
|
||||||
|
Loading…
Reference in New Issue
Block a user