From 91f2710783b10ac049d62df1346da4038f8d5963 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 31 Aug 2021 09:57:44 +0200 Subject: [PATCH] Fix: pathfinders always tried to avoid docking tiles (even if nothing was on them) (#9522) When coming across any docking tile (for example, all tiles around an oilrig are docking tiles), it always at least added a penalty of 3 times a normal tile, even when there are no ships on them. In result, the pathfinder got suggested to always go around docking tiles. This was most likely not the intention of the change made in 31db4f8d5e. (cherry picked from commit f87fe395a7d197a9feb080cccaa2889c870935f6) --- src/pathfinder/npf/npf.cpp | 2 +- src/pathfinder/yapf/yapf_ship.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp index 6a937c11ee..dcd6469c6b 100644 --- a/src/pathfinder/npf/npf.cpp +++ b/src/pathfinder/npf/npf.cpp @@ -311,7 +311,7 @@ static int32 NPFWaterPathCost(AyStar *as, AyStarNode *current, OpenListNode *par if (IsDockingTile(current->tile)) { /* Check docking tile for occupancy */ - uint count = 1; + uint count = 0; HasVehicleOnPos(current->tile, VEH_SHIP, &count, &CountShipProc); cost += count * 3 * _trackdir_length[trackdir]; } diff --git a/src/pathfinder/yapf/yapf_ship.cpp b/src/pathfinder/yapf/yapf_ship.cpp index c41e633b63..15757c3327 100644 --- a/src/pathfinder/yapf/yapf_ship.cpp +++ b/src/pathfinder/yapf/yapf_ship.cpp @@ -287,7 +287,7 @@ public: if (IsDockingTile(n.GetTile())) { /* Check docking tile for occupancy */ - uint count = 1; + uint count = 0; HasVehicleOnPos(n.GetTile(), VEH_SHIP, &count, &CountShipProc); c += count * 3 * YAPF_TILE_LENGTH; }