mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r2280) - Fix: Check if the passed tile to DoCommand is within the current mapsize
This commit is contained in:
parent
3ad11e0ad4
commit
f2bc27718a
@ -177,6 +177,7 @@ static CommandProc * const _command_proc_table[] = {
|
||||
CmdBuildSingleSignal, /* 8 */
|
||||
CmdRemoveSingleSignal, /* 9 */
|
||||
CmdTerraformLand, /* 10 */
|
||||
/***************************************************/
|
||||
CmdPurchaseLandArea, /* 11 */
|
||||
CmdSellLandArea, /* 12 */
|
||||
CmdBuildTunnel, /* 13 */
|
||||
@ -331,6 +332,9 @@ int32 DoCommand(int x, int y, uint32 p1, uint32 p2, uint32 flags, uint procc)
|
||||
int32 res;
|
||||
CommandProc *proc;
|
||||
|
||||
/* Do not even think about executing out-of-bounds tile-commands */
|
||||
if (TILE_FROM_XY(x,y) > MapSize()) return CMD_ERROR;
|
||||
|
||||
proc = _command_proc_table[procc];
|
||||
|
||||
if (_docommand_recursive == 0) {
|
||||
@ -399,6 +403,9 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, CommandCallback *callback,
|
||||
int x = TileX(tile) * 16;
|
||||
int y = TileY(tile) * 16;
|
||||
|
||||
/* Do not even think about executing out-of-bounds tile-commands */
|
||||
if (tile > MapSize()) return false;
|
||||
|
||||
assert(_docommand_recursive == 0);
|
||||
|
||||
_error_message = INVALID_STRING_ID;
|
||||
|
Loading…
Reference in New Issue
Block a user