summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--train_cmd.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/train_cmd.c b/train_cmd.c
index 08afbd391..2ab61e49e 100644
--- a/train_cmd.c
+++ b/train_cmd.c
@@ -524,15 +524,20 @@ int32 CmdBuildRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2)
Vehicle *v, *u;
byte unit_num;
Engine *e;
- uint tile;
+ uint tile = TILE_FROM_XY(x,y);
if (!IsEngineBuildable(p1, VEH_Train)) return CMD_ERROR;
+ /* NOTE: The AI sends build engine commands without DC_EXEC to figure out if
+ it can affort an engine before trying to buy it*/
+ if (!IsTrainDepotTile((TileIndex)tile) && flags & DC_EXEC) return CMD_ERROR;
+
+ if (_map_owner[tile] != _current_player && flags & DC_EXEC) return CMD_ERROR;
+
_cmd_build_rail_veh_var1 = 0;
SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES);
- tile = TILE_FROM_XY(x,y);
rvi = RailVehInfo(p1);
if (rvi->flags & RVI_WAGON) {