mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-18 12:09:10 +00:00
(svn r3304) -Add: allow AI-events to see the UID of the command
-Fix: improved the logic of the UID code for AIs
This commit is contained in:
10
command.c
10
command.c
@@ -403,6 +403,8 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, CommandCallback *callback,
|
||||
int x = TileX(tile) * 16;
|
||||
int y = TileY(tile) * 16;
|
||||
|
||||
AI_GetCommandUID(cmd, p1, p2, tile);
|
||||
|
||||
/* Do not even think about executing out-of-bounds tile-commands */
|
||||
if (tile > MapSize()) {
|
||||
_cmd_text = NULL;
|
||||
@@ -477,12 +479,12 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, CommandCallback *callback,
|
||||
if (res & 0xFFFF) _error_message = res & 0xFFFF;
|
||||
/* Trigger an event special for the AI, so it knows the build has failed
|
||||
* Because the commands are always delayed, this is the only way. */
|
||||
AI_CommandResult(cmd, p1, p2, tile, false);
|
||||
AI_CommandResult(false);
|
||||
goto show_error;
|
||||
}
|
||||
// no money? Only check if notest is off
|
||||
if (!notest && res != 0 && !CheckPlayerHasMoney(res)) {
|
||||
AI_CommandResult(cmd, p1, p2, tile, false);
|
||||
AI_CommandResult(false);
|
||||
goto show_error;
|
||||
}
|
||||
}
|
||||
@@ -519,12 +521,12 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, CommandCallback *callback,
|
||||
} else {
|
||||
if (CmdFailed(res2)) {
|
||||
if (res2 & 0xFFFF) _error_message = res2 & 0xFFFF;
|
||||
AI_CommandResult(cmd, p1, p2, tile, false);
|
||||
AI_CommandResult(false);
|
||||
goto show_error;
|
||||
}
|
||||
}
|
||||
|
||||
AI_CommandResult(cmd, p1, p2, tile, true);
|
||||
AI_CommandResult(true);
|
||||
|
||||
SubtractMoneyFromPlayer(res2);
|
||||
|
||||
|
Reference in New Issue
Block a user