From 5e7b8ccd430d736e8556d7c2e4063017305b2219 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 17 Jun 2021 17:18:53 +0100 Subject: [PATCH] Only calculate input points once in IsBlockedByPreviousBridgeOrTunnel --- src/road.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/road.cpp b/src/road.cpp index 7d0a0e545c..d4ea3a6c36 100644 --- a/src/road.cpp +++ b/src/road.cpp @@ -638,6 +638,13 @@ static bool IsBlockedByPreviousBridgeOrTunnel(OpenListNode *current, TileIndex s PathNode* start = ¤t->path; PathNode* end = current->path.parent; + Point start_b {}; + start_b.x = TileX(start_tile); + start_b.y = TileY(start_tile); + Point end_b {}; + end_b.x = TileX(end_tile); + end_b.y = TileY(end_tile); + while (end != nullptr) { Point start_a {}; start_a.x = TileX(start->node.tile); @@ -646,13 +653,6 @@ static bool IsBlockedByPreviousBridgeOrTunnel(OpenListNode *current, TileIndex s end_a.x = TileX(end->node.tile); end_a.y = TileY(end->node.tile); - Point start_b {}; - start_b.x = TileX(start_tile); - start_b.y = TileY(start_tile); - Point end_b {}; - end_b.x = TileX(end_tile); - end_b.y = TileY(end_tile); - if (!AreTilesAdjacent(start->node.tile, end->node.tile) && (AreIntersecting(start_a, end_a, start_b, end_b) || AreParallelOverlapping(start_a, end_a, start_b, end_b))) { return true;