From 4de615d1ae2e63dffd36c1be9f5aa0681b34dc28 Mon Sep 17 00:00:00 2001 From: smix8 <52464204+smix8@users.noreply.github.com> Date: Fri, 6 Dec 2024 16:20:59 +0100 Subject: [PATCH] Fix avoidance dirty flag regression The dirty flag can also still be set by some legacy functions triggered by the agents and obstacles. --- modules/navigation/nav_map.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/navigation/nav_map.cpp b/modules/navigation/nav_map.cpp index 1bd703238c9..739b031d061 100644 --- a/modules/navigation/nav_map.cpp +++ b/modules/navigation/nav_map.cpp @@ -948,14 +948,18 @@ void NavMap::_sync_dirty_map_update_requests() { void NavMap::_sync_dirty_avoidance_update_requests() { // Sync NavAgents. - agents_dirty = sync_dirty_requests.agents.first(); + if (!agents_dirty) { + agents_dirty = sync_dirty_requests.agents.first(); + } for (SelfList<NavAgent> *element = sync_dirty_requests.agents.first(); element; element = element->next()) { element->self()->sync(); } sync_dirty_requests.agents.clear(); // Sync NavObstacles. - obstacles_dirty = sync_dirty_requests.obstacles.first(); + if (!obstacles_dirty) { + obstacles_dirty = sync_dirty_requests.obstacles.first(); + } for (SelfList<NavObstacle> *element = sync_dirty_requests.obstacles.first(); element; element = element->next()) { element->self()->sync(); }