diff options
-rw-r--r-- | src/command.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/command.cpp b/src/command.cpp index 4ed4b3d6e..3c5f434c9 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -349,7 +349,7 @@ static const Command _command_proc_table[] = { * @param cmd The integervalue of a command * @return true if the command is valid (and got a CommandProc function) */ -bool IsValidCommand(uint cmd) +bool IsValidCommand(uint32 cmd) { cmd &= 0xFF; @@ -364,12 +364,11 @@ bool IsValidCommand(uint cmd) * * @param cmd The integer value of the command * @return The flags for this command - * @bug integervalues which are less equals 0xFF and greater than the - * size of _command_proc_table can result in an index out of bounce - * error (which doesn't happend anyway). Check function #IsValidCommand(). (Progman) */ -byte GetCommandFlags(uint cmd) +byte GetCommandFlags(uint32 cmd) { + assert(IsValidCommand(cmd)); + return _command_proc_table[cmd & 0xFF].flags; } @@ -389,7 +388,6 @@ static int _docommand_recursive = 0; CommandCost DoCommand(TileIndex tile, uint32 p1, uint32 p2, uint32 flags, uint32 procc) { CommandCost res; - CommandProc *proc; /* Do not even think about executing out-of-bounds tile-commands */ if (!IsValidTile(tile)) { @@ -397,7 +395,7 @@ CommandCost DoCommand(TileIndex tile, uint32 p1, uint32 p2, uint32 flags, uint32 return CMD_ERROR; } - proc = _command_proc_table[procc].proc; + CommandProc *proc = _command_proc_table[procc].proc; if (_docommand_recursive == 0) _error_message = INVALID_STRING_ID; |