|
|
|
@ -17,7 +17,6 @@
|
|
|
|
|
#include "strings_func.h"
|
|
|
|
|
#include "gfx_func.h"
|
|
|
|
|
#include "functions.h"
|
|
|
|
|
#include "town.h"
|
|
|
|
|
|
|
|
|
|
const char *_cmd_text = NULL;
|
|
|
|
|
|
|
|
|
@ -389,7 +388,7 @@ byte GetCommandFlags(uint cmd)
|
|
|
|
|
return _command_proc_table[cmd & 0xFF].flags;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int _docommand_recursive = 0;
|
|
|
|
|
static int _docommand_recursive;
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* This function executes a given command with the parameters from the #CommandProc parameter list.
|
|
|
|
@ -421,9 +420,7 @@ CommandCost DoCommand(TileIndex tile, uint32 p1, uint32 p2, uint32 flags, uint32
|
|
|
|
|
|
|
|
|
|
/* only execute the test call if it's toplevel, or we're not execing. */
|
|
|
|
|
if (_docommand_recursive == 1 || !(flags & DC_EXEC) || (flags & DC_FORCETEST) ) {
|
|
|
|
|
SetTownRatingTestMode(true);
|
|
|
|
|
res = proc(tile, flags & ~DC_EXEC, p1, p2);
|
|
|
|
|
SetTownRatingTestMode(false);
|
|
|
|
|
if (CmdFailed(res)) {
|
|
|
|
|
res.SetGlobalErrorMessage();
|
|
|
|
|
goto error;
|
|
|
|
@ -557,7 +554,7 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, CommandCallback *callback,
|
|
|
|
|
(cmd & 0xFF) == CMD_REMOVE_ROAD ||
|
|
|
|
|
(cmd & 0xFF) == CMD_REMOVE_LONG_ROAD ||
|
|
|
|
|
(cmd & 0xFF) == CMD_CLONE_VEHICLE;
|
|
|
|
|
notest = false;
|
|
|
|
|
|
|
|
|
|
_docommand_recursive = 1;
|
|
|
|
|
|
|
|
|
|
/* cost estimation only? */
|
|
|
|
@ -584,9 +581,7 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, CommandCallback *callback,
|
|
|
|
|
|
|
|
|
|
if (!((cmd & CMD_NO_TEST_IF_IN_NETWORK) && _networking)) {
|
|
|
|
|
/* first test if the command can be executed. */
|
|
|
|
|
SetTownRatingTestMode(true);
|
|
|
|
|
res = proc(tile, flags, p1, p2);
|
|
|
|
|
SetTownRatingTestMode(false);
|
|
|
|
|
if (CmdFailed(res)) {
|
|
|
|
|
res.SetGlobalErrorMessage();
|
|
|
|
|
goto show_error;
|
|
|
|
|