summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/command.cpp6
-rw-r--r--src/command_func.h13
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 */