(svn r23215) -Codechange: stricter type safety for CommandFlags

pull/155/head
rubidium 13 years ago
parent 5879b4e39f
commit 1cd3dac854

@ -173,7 +173,7 @@ CommandProc CmdSetVehicleOnTime;
CommandProc CmdAutofillTimetable;
CommandProc CmdSetTimetableStart;
#define DEF_CMD(proc, flags, type) {proc, #proc, flags, type}
#define DEF_CMD(proc, flags, type) {proc, #proc, (CommandFlags)flags, type}
/**
* The master command table
@ -327,7 +327,7 @@ bool IsValidCommand(uint32 cmd)
* @param cmd The integer value of the command
* @return The flags for this command
*/
byte GetCommandFlags(uint32 cmd)
CommandFlags GetCommandFlags(uint32 cmd)
{
assert(IsValidCommand(cmd));
@ -590,7 +590,7 @@ CommandCost DoCommandPInternal(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd,
assert(proc != NULL);
/* Command flags are used internally */
uint cmd_flags = GetCommandFlags(cmd);
CommandFlags cmd_flags = GetCommandFlags(cmd);
/* Flags get send to the DoCommand */
DoCommandFlag flags = CommandFlagsToDCFlags(cmd_flags);

@ -49,7 +49,7 @@ void NetworkSendCommand(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, Comman
extern Money _additional_cash_required;
bool IsValidCommand(uint32 cmd);
byte GetCommandFlags(uint32 cmd);
CommandFlags GetCommandFlags(uint32 cmd);
const char *GetCommandName(uint32 cmd);
Money GetAvailableMoneyForCommand();
bool IsCommandAllowedWhilePaused(uint32 cmd);
@ -59,7 +59,7 @@ bool IsCommandAllowedWhilePaused(uint32 cmd);
* @param cmd_flags Flags from GetCommandFlags
* @return flags for DoCommand
*/
static inline DoCommandFlag CommandFlagsToDCFlags(uint cmd_flags)
static inline DoCommandFlag CommandFlagsToDCFlags(CommandFlags cmd_flags)
{
DoCommandFlag flags = DC_NONE;
if (cmd_flags & CMD_NO_WATER) flags |= DC_NO_WATER;

@ -355,6 +355,7 @@ enum CommandFlags {
CMD_NO_WATER = 0x40, ///< set the DC_NO_WATER flag on this command
CMD_CLIENT_ID = 0x80, ///< set p2 with the ClientID of the sending client.
};
DECLARE_ENUM_AS_BIT_SET(CommandFlags)
/** Types of commands we have. */
enum CommandType {
@ -406,10 +407,10 @@ typedef CommandCost CommandProc(TileIndex tile, DoCommandFlag flags, uint32 p1,
* the #CMD_AUTO, #CMD_OFFLINE and #CMD_SERVER values.
*/
struct Command {
CommandProc *proc; ///< The procedure to actually executing
const char *name; ///< A human readable name for the procedure
byte flags; ///< The (command) flags to that apply to this command
CommandType type; ///< The type of command.
CommandProc *proc; ///< The procedure to actually executing
const char *name; ///< A human readable name for the procedure
CommandFlags flags; ///< The (command) flags to that apply to this command
CommandType type; ///< The type of command.
};
/**

Loading…
Cancel
Save