diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp index 2bb29628f9..ae74e5e5cf 100644 --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -769,11 +769,14 @@ static bool TryBuildLightHouse() } /* Only build lighthouses at tiles where the border is sea. */ - if (!IsTileType(tile, MP_WATER)) return false; + if (!IsTileType(tile, MP_WATER) || GetWaterClass(tile) != WATER_CLASS_SEA) return false; for (int j = 0; j < 19; j++) { int h; if (IsTileType(tile, MP_CLEAR) && IsTileFlat(tile, &h) && h <= 2 && !IsBridgeAbove(tile)) { + for (auto t : SpiralTileSequence(tile, 9)) { + if (IsObjectTypeTile(t, OBJECT_LIGHTHOUSE)) return false; + } BuildObject(OBJECT_LIGHTHOUSE, tile); assert(tile < Map::Size()); return true;