From ab68f08886743fd32ac52bdc666cbf2da9b53287 Mon Sep 17 00:00:00 2001 From: yexo Date: Mon, 18 Jan 2010 12:32:50 +0000 Subject: (svn r18857) -Codechange: don't rely on the fact that all airports are rectangular --- src/station_cmd.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/station_cmd.cpp') diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 2ed623ea6..1e24a70fc 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2066,7 +2066,7 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags) int w = as->size_x; int h = as->size_y; - CommandCost cost(EXPENSES_CONSTRUCTION, w * h * _price[PR_CLEAR_STATION_AIRPORT]); + CommandCost cost(EXPENSES_CONSTRUCTION); const Aircraft *a; FOR_ALL_AIRCRAFT(a) { @@ -2077,6 +2077,10 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags) TILE_LOOP(tile_cur, w, h, tile) { if (!EnsureNoVehicleOnGround(tile_cur)) return CMD_ERROR; + if (!st->TileBelongsToAirport(tile_cur)) continue; + + cost.AddCost(_price[PR_CLEAR_STATION_AIRPORT]); + if (flags & DC_EXEC) { DeleteAnimatedTile(tile_cur); DoClearSquare(tile_cur); -- cgit v1.2.3-54-g00ecf