# HG changeset patch # User bjarni # Date 2005-01-29 23:58:07 # Node ID d3302ddc7c90ea0c18ead4bf68b09dffdcfcea5d # Parent b34ce821ceeb889cb8b58a384dfdca36a339e595 (svn r1725) - Fix: now trains can only be built in depots and you have to own the depot too (hacked client protection) diff --git a/train_cmd.c b/train_cmd.c --- a/train_cmd.c +++ b/train_cmd.c @@ -524,15 +524,20 @@ int32 CmdBuildRailVehicle(int x, int y, 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) {