From 1d6a0c7b5287984d55f8827acab7e895ab12e7ee Mon Sep 17 00:00:00 2001 From: Charles Pigott Date: Sun, 21 Feb 2021 00:07:29 +0000 Subject: [PATCH] Fix: [YAPF] Road pathfinder did not account for length of tunnel/bridge in path cost Copy calculations from the rail pathfinder --- src/pathfinder/yapf/yapf_road.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pathfinder/yapf/yapf_road.cpp b/src/pathfinder/yapf/yapf_road.cpp index 9d42f622dc..98cd889c91 100644 --- a/src/pathfinder/yapf/yapf_road.cpp +++ b/src/pathfinder/yapf/yapf_road.cpp @@ -161,8 +161,8 @@ public: int min_speed = 0; int max_veh_speed = v->GetDisplayMaxSpeed(); int max_speed = F.GetSpeedLimit(&min_speed); - if (max_speed < max_veh_speed) segment_cost += 1 * (max_veh_speed - max_speed); - if (min_speed > max_veh_speed) segment_cost += 10 * (min_speed - max_veh_speed); + if (max_speed < max_veh_speed) segment_cost += YAPF_TILE_LENGTH * (max_veh_speed - max_speed) * (4 + F.m_tiles_skipped) / max_veh_speed; + if (min_speed > max_veh_speed) segment_cost += YAPF_TILE_LENGTH * (min_speed - max_veh_speed); /* move to the next tile */ tile = F.m_new_tile;