From c8242162d169bde07ae0c6aa3f9669a92dde5a2d Mon Sep 17 00:00:00 2001 From: smix8 <52464204+smix8@users.noreply.github.com> Date: Thu, 19 Dec 2024 01:21:38 +0100 Subject: [PATCH] Fix early navigtion path return Fixes early navigtion path return. --- modules/navigation/3d/nav_mesh_queries_3d.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/navigation/3d/nav_mesh_queries_3d.cpp b/modules/navigation/3d/nav_mesh_queries_3d.cpp index 619288305cb..85424e100ae 100644 --- a/modules/navigation/3d/nav_mesh_queries_3d.cpp +++ b/modules/navigation/3d/nav_mesh_queries_3d.cpp @@ -295,6 +295,10 @@ void NavMeshQueries3D::query_task_polygons_get_path(NavMeshPathQueryTask3D &p_qu _query_task_build_path_corridor(p_query_task, p_polygons, p_map_up, p_link_polygons_size, begin_poly, begin_point, end_poly, end_point); + if (p_query_task.status == NavMeshPathQueryTask3D::TaskStatus::QUERY_FINISHED || p_query_task.status == NavMeshPathQueryTask3D::TaskStatus::QUERY_FAILED) { + return; + } + // Post-Process path. switch (p_query_task.path_postprocessing) { case PathPostProcessing::PATH_POSTPROCESSING_CORRIDORFUNNEL: { @@ -473,6 +477,7 @@ void NavMeshQueries3D::_query_task_build_path_corridor(NavMeshPathQueryTask3D &p if (closest_point_on_start_poly) { _query_task_create_same_polygon_two_point_path(p_query_task, begin_poly, begin_point, end_poly, end_point); + p_query_task.status = NavMeshPathQueryTask3D::TaskStatus::QUERY_FINISHED; return; } @@ -523,6 +528,7 @@ void NavMeshQueries3D::_query_task_build_path_corridor(NavMeshPathQueryTask3D &p } } _query_task_create_same_polygon_two_point_path(p_query_task, begin_poly, begin_point, begin_poly, end_point); + p_query_task.status = NavMeshPathQueryTask3D::TaskStatus::QUERY_FINISHED; return; } }