From 147a39e778eea5a939df7ef1894abd2345660e23 Mon Sep 17 00:00:00 2001 From: glx22 Date: Sun, 26 Sep 2021 17:11:36 +0200 Subject: [PATCH] Change: Allow all tiles around docks to be docking tiles --- src/saveload/afterload.cpp | 8 ++++---- src/station_cmd.cpp | 12 ++---------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index df1b4e44f17a..4baee74edc4f 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -3106,14 +3106,14 @@ bool AfterLoadGame() } } - if (IsSavegameVersionBeforeOrAt(SLV_ENDING_YEAR)) { - /* Update station docking tiles. Was only needed for pre-SLV_MULTITLE_DOCKS - * savegames, but a bug in docking tiles touched all savegames between - * SLV_MULTITILE_DOCKS and SLV_ENDING_YEAR. */ + if (IsSavegameVersionBeforeOrAt(SLV_LINKGRAPH_TRAVEL_TIME)) { + /* All tiles around docks may be docking tiles. */ for (Station *st : Station::Iterate()) { if (st->ship_station.tile != INVALID_TILE) UpdateStationDockingTiles(st); } + } + if (IsSavegameVersionBeforeOrAt(SLV_ENDING_YEAR)) { /* Reset roadtype/streetcartype info for non-road bridges. */ for (TileIndex t = 0; t < map_size; t++) { if (IsTileType(t, MP_TUNNELBRIDGE) && GetTunnelBridgeTransportType(t) != TRANSPORT_ROAD) { diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index ab21d4424558..1a188252ce97 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2635,23 +2635,15 @@ void ClearDockingTilesCheckingNeighbours(TileIndex tile) /** * Check if a dock tile can be docked from the given direction. * @param t Tile index of dock. - * @param d DiagDirection adjacent to dock being tested. + * @param d DiagDirection adjacent to dock being tested. (unused) * @return True iff the dock can be docked from the given direction. */ bool IsValidDockingDirectionForDock(TileIndex t, DiagDirection d) { assert(IsDockTile(t)); - /** Bitmap of valid directions for each dock tile part. */ - static const uint8 _valid_docking_tile[] = { - 0, 0, 0, 0, // No docking against the slope part. - 1 << DIAGDIR_NE | 1 << DIAGDIR_SW, // Docking permitted at the end - 1 << DIAGDIR_NW | 1 << DIAGDIR_SE, // of the flat piers. - }; - StationGfx gfx = GetStationGfx(t); - assert(gfx < lengthof(_valid_docking_tile)); - return HasBit(_valid_docking_tile[gfx], d); + return gfx >= GFX_DOCK_BASE_WATER_PART; } /**