diff options
-rw-r--r-- | src/dock_gui.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp index d50d14fab..88d3ebcb8 100644 --- a/src/dock_gui.cpp +++ b/src/dock_gui.cpp @@ -58,7 +58,12 @@ static void PlaceDocks_Dock(TileIndex tile) /* tile is always the land tile, so need to evaluate _thd.pos */ CommandContainer cmdcont = { tile, _ctrl_pressed, p2, CMD_BUILD_DOCK | CMD_MSG(STR_ERROR_CAN_T_BUILD_DOCK_HERE), CcBuildDocks, "" }; - ShowSelectStationIfNeeded(cmdcont, TileArea(tile, _thd.size.x / TILE_SIZE, _thd.size.y / TILE_SIZE)); + + /* Determine the watery part of the dock. */ + DiagDirection dir = GetInclinedSlopeDirection(GetTileSlope(tile, NULL)); + TileIndex tile_to = (dir != INVALID_DIAGDIR ? TileAddByDiagDir(tile, ReverseDiagDir(dir)) : tile); + + ShowSelectStationIfNeeded(cmdcont, TileArea(tile, tile_to)); } static void PlaceDocks_Depot(TileIndex tile) |