diff options
author | maedhros <maedhros@openttd.org> | 2007-07-08 18:40:15 +0000 |
---|---|---|
committer | maedhros <maedhros@openttd.org> | 2007-07-08 18:40:15 +0000 |
commit | e17cbca3589472f4b673253f98d9ee7f184930dc (patch) | |
tree | 1ae20f12354e03d3a16c1f8e2efc220488f17e82 | |
parent | 73d2e5840a3cc85be4a00f70538088b7b1951323 (diff) | |
download | openttd-e17cbca3589472f4b673253f98d9ee7f184930dc.tar.xz |
(svn r10480) -Fix: Don't allow building lighthouses and transmitters under bridges in the scenario editor, or during world generation.
-rw-r--r-- | src/main_gui.cpp | 5 | ||||
-rw-r--r-- | src/unmovable_cmd.cpp | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/main_gui.cpp b/src/main_gui.cpp index 1113c66c3..22ecde8b7 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -31,6 +31,7 @@ #include "variables.h" #include "train.h" #include "roadveh.h" +#include "bridge_map.h" #include "unmovable_map.h" #include "string.h" #include "screenshot.h" @@ -1137,7 +1138,7 @@ static void PlaceProc_RockyArea(TileIndex tile) static void PlaceProc_LightHouse(TileIndex tile) { - if (!IsTileType(tile, MP_CLEAR) || IsSteepSlope(GetTileSlope(tile, NULL))) { + if (!IsTileType(tile, MP_CLEAR) || IsSteepSlope(GetTileSlope(tile, NULL)) || IsBridgeAbove(tile)) { return; } @@ -1148,7 +1149,7 @@ static void PlaceProc_LightHouse(TileIndex tile) static void PlaceProc_Transmitter(TileIndex tile) { - if (!IsTileType(tile, MP_CLEAR) || IsSteepSlope(GetTileSlope(tile, NULL))) { + if (!IsTileType(tile, MP_CLEAR) || IsSteepSlope(GetTileSlope(tile, NULL)) || IsBridgeAbove(tile)) { return; } diff --git a/src/unmovable_cmd.cpp b/src/unmovable_cmd.cpp index 747e24979..fcf00805b 100644 --- a/src/unmovable_cmd.cpp +++ b/src/unmovable_cmd.cpp @@ -18,6 +18,7 @@ #include "economy.h" #include "town.h" #include "sprite.h" +#include "bridge_map.h" #include "unmovable_map.h" #include "variables.h" #include "table/unmovable_land.h" @@ -358,7 +359,7 @@ void GenerateUnmovables() do { tile = RandomTile(); - if (IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == SLOPE_FLAT && h >= TILE_HEIGHT * 4) { + if (IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == SLOPE_FLAT && h >= TILE_HEIGHT * 4 && !IsBridgeAbove(tile)) { if (IsRadioTowerNearby(tile)) continue; MakeTransmitter(tile); IncreaseGeneratingWorldProgress(GWP_UNMOVABLE); @@ -401,7 +402,7 @@ restart: do { if (--j == 0) goto restart; tile = TILE_MASK(tile + TileOffsByDiagDir(dir)); - } while (!(IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == SLOPE_FLAT && h <= TILE_HEIGHT * 2)); + } while (!(IsTileType(tile, MP_CLEAR) && GetTileSlope(tile, &h) == SLOPE_FLAT && h <= TILE_HEIGHT * 2 && !IsBridgeAbove(tile))); assert(tile == TILE_MASK(tile)); |