1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-08 12:40:44 +00:00

Fix avoidance dirty flag regression

The dirty flag can also still be set by some legacy functions triggered by the agents and obstacles.
This commit is contained in:
smix8
2024-12-06 16:20:59 +01:00
parent eb5103093c
commit 4de615d1ae

View File

@@ -948,14 +948,18 @@ void NavMap::_sync_dirty_map_update_requests() {
void NavMap::_sync_dirty_avoidance_update_requests() { void NavMap::_sync_dirty_avoidance_update_requests() {
// Sync NavAgents. // 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()) { for (SelfList<NavAgent> *element = sync_dirty_requests.agents.first(); element; element = element->next()) {
element->self()->sync(); element->self()->sync();
} }
sync_dirty_requests.agents.clear(); sync_dirty_requests.agents.clear();
// Sync NavObstacles. // 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()) { for (SelfList<NavObstacle> *element = sync_dirty_requests.obstacles.first(); element; element = element->next()) {
element->self()->sync(); element->self()->sync();
} }