(svn r1725) - Fix: now trains can only be built in depots and you have to own the depot too (hacked client protection)
authorbjarni
Sat, 29 Jan 2005 23:58:07 +0000
changeset 1221 ce638de43f3a
parent 1220 8b951444b021
child 1222 6d21e92b33c3
(svn r1725) - Fix: now trains can only be built in depots and you have to own the depot too (hacked client protection)
train_cmd.c
--- a/train_cmd.c	Sat Jan 29 20:18:01 2005 +0000
+++ b/train_cmd.c	Sat Jan 29 23:58:07 2005 +0000
@@ -524,15 +524,20 @@
 	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) {