diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index aee5ef4848..6646441ac9 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -148,7 +148,12 @@ void CcRailDepot(Commands, const CommandCost &result, TileIndex tile, RailType, if (IsTileType(tile, MP_RAILWAY)) { PlaceExtraDepotRail(tile, _place_depot_extra_dir[dir], _place_depot_extra_track[dir]); - PlaceExtraDepotRail(tile, _place_depot_extra_dir[dir + 4], _place_depot_extra_track[dir + 4]); + + /* Don't place the rail straight out of the depot of there is another depot across from it. */ + Tile double_depot_tile = tile + TileOffsByDiagDir(dir); + bool is_double_depot = IsValidTile(double_depot_tile) && IsRailDepotTile(double_depot_tile); + if (!is_double_depot) PlaceExtraDepotRail(tile, _place_depot_extra_dir[dir + 4], _place_depot_extra_track[dir + 4]); + PlaceExtraDepotRail(tile, _place_depot_extra_dir[dir + 8], _place_depot_extra_track[dir + 8]); } }