diff options
-rw-r--r-- | src/command.cpp | 6 | ||||
-rw-r--r-- | src/command_func.h | 13 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/command.cpp b/src/command.cpp index 2cc944676..6c1bc6cde 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -527,12 +527,10 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallbac CommandProc *proc = _command_proc_table[cmd_id].proc; if (proc == NULL) return false; - /* Flags get send to the DoCommand */ - uint32 flags = 0; /* Command flags are used internally */ uint cmd_flags = GetCommandFlags(cmd); - if (cmd_flags & CMD_NO_WATER) flags |= DC_NO_WATER; - if (cmd_flags & CMD_AUTO) flags |= DC_AUTO; + /* Flags get send to the DoCommand */ + uint32 flags = CommandFlagsToDCFlags(cmd_flags); bool notest = (cmd_flags & CMD_NO_TEST) != 0; diff --git a/src/command_func.h b/src/command_func.h index 1b8af25b9..a6b77c6a0 100644 --- a/src/command_func.h +++ b/src/command_func.h @@ -86,4 +86,17 @@ byte GetCommandFlags(uint32 cmd); */ Money GetAvailableMoneyForCommand(); +/** + * Extracts the DC flags needed for DoCommand from the flags returned by GetCommandFlags + * @param cmd_flags Flags from GetCommandFlags + * @return flags for DoCommand + */ +static inline uint32 CommandFlagsToDCFlags(uint cmd_flags) +{ + uint32 flags = 0; + if (cmd_flags & CMD_NO_WATER) flags |= DC_NO_WATER; + if (cmd_flags & CMD_AUTO) flags |= DC_AUTO; + return flags; +} + #endif /* COMMAND_FUNC_H */ |