Changeset - r16685:e529cb769028
[Not reviewed]
master
0 2 0
rubidium - 13 years ago 2010-12-07 21:08:35
rubidium@openttd.org
(svn r21427) -Add: helper function to determine whether a command may be executed
2 files changed with 27 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/command.cpp
Show inline comments
 
@@ -349,6 +349,31 @@ const char *GetCommandName(uint32 cmd)
 
	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;
 

	
 
/**
src/command_func.h
Show inline comments
 
@@ -75,6 +75,8 @@ const char *GetCommandName(uint32 cmd);
 
 */
 
Money GetAvailableMoneyForCommand();
 

	
 
bool IsCommandAllowedWhilePaused(uint32 cmd);
 

	
 
/**
 
 * Extracts the DC flags needed for DoCommand from the flags returned by GetCommandFlags
 
 * @param cmd_flags Flags from GetCommandFlags
0 comments (0 inline, 0 general)