Changeset - r28820:ac82714dfd1e
[Not reviewed]
master
0 1 0
Kuhnovic - 3 months ago 2024-02-27 11:55:42
68320206+Kuhnovic@users.noreply.github.com
Fix e38c3c5: Added missing return statement (#12185)
1 file changed with 1 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/pathfinder/yapf/yapf_ship.cpp
Show inline comments
 
@@ -243,25 +243,25 @@ public:
 
			pf.SetDestination(v);
 
			const bool is_intermediate_destination = static_cast<int>(high_level_path.size()) >= NUMBER_OR_WATER_REGIONS_LOOKAHEAD + 1;
 
			if (is_intermediate_destination) pf.SetIntermediateDestination(high_level_path.back());
 

	
 
			/* Restrict the search area to prevent the low level pathfinder from expanding too many nodes. This can happen
 
			 * when the terrain is very "maze-like" or when the high level path "teleports" via a very long aqueduct. */
 
			if (attempt > 0) pf.RestrictSearch(high_level_path);
 

	
 
			/* Find best path. */
 
			path_found = pf.FindPath(v);
 
			Node *node = pf.GetBestNode();
 
			if (attempt == 0 && !path_found) continue; // Try again with restricted search area.
 
			if (!path_found || node == nullptr) GetRandomFollowUpTrackdir(v, src_tile, trackdir, true);
 
			if (!path_found || node == nullptr) return GetRandomFollowUpTrackdir(v, src_tile, trackdir, true);
 

	
 
			/* Return only the path within the current water region if an intermediate destination was returned. If not, cache the entire path
 
			 * to the final destination tile. The low-level pathfinder might actually prefer a different docking tile in a nearby region. Without
 
			 * caching the full path the ship can get stuck in a loop. */
 
			const WaterRegionPatchDesc end_water_patch = GetWaterRegionPatchInfo(node->GetTile());
 
			const WaterRegionPatchDesc start_water_patch = GetWaterRegionPatchInfo(tile);
 
			while (node->m_parent) {
 
				const WaterRegionPatchDesc node_water_patch = GetWaterRegionPatchInfo(node->GetTile());
 
				if (node_water_patch == start_water_patch || (!is_intermediate_destination && node_water_patch != end_water_patch)) {
 
					path_cache.push_front(node->GetTrackdir());
 
				}
 
				node = node->m_parent;
0 comments (0 inline, 0 general)