From 6eabdf52abedde08109eb10a3ad87ad16bb1f397 Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Tue, 1 Jun 2021 12:35:14 -0500 Subject: [PATCH] Bring collision monitoring in line with visibility blocking. --- src/navigation.rs | 20 ++++++++++---------- src/visibility.rs | 16 +++++----------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/navigation.rs b/src/navigation.rs index 2d38c82..959cd75 100644 --- a/src/navigation.rs +++ b/src/navigation.rs @@ -372,17 +372,17 @@ fn remove_monitors_collisions( ) { for entity in removed.iter() { for (map, mut collisions_monitored) in map.iter_mut() { + let prev = prev_index.get(&entity).cloned(); + prev_index.remove(&entity); + if let Some(prev) = prev { + set_monitors_collisions( + &map, + prev, + &monitors_collisions, + &mut collisions_monitored, + ); + } if let Ok(coordinates) = coordinates.get_component::(entity) { - let prev = prev_index.get(&entity).cloned(); - prev_index.remove(&entity); - if let Some(prev) = prev { - set_monitors_collisions( - &map, - prev, - &monitors_collisions, - &mut collisions_monitored, - ); - } let idx = coordinates.to_index(map.width()); set_monitors_collisions(&map, idx, &monitors_collisions, &mut collisions_monitored); } diff --git a/src/visibility.rs b/src/visibility.rs index f4923d7..f44d130 100644 --- a/src/visibility.rs +++ b/src/visibility.rs @@ -143,20 +143,14 @@ fn remove_blocks_visibility( ) { for entity in removed.iter() { for (map, mut visibility_blocked) in map.iter_mut() { + let prev = prev_index.get(&entity).cloned(); + if let Some(prev) = prev { + prev_index.remove(&entity); + set_visibility_blocked(&map, prev, &blocks_visibility, &mut visibility_blocked); + } if let Ok(coordinates) = coordinates.get_component::(entity) { - let prev = prev_index.get(&entity).cloned(); - if let Some(prev) = prev { - prev_index.remove(&entity); - set_visibility_blocked( - &map, - prev, - &blocks_visibility, - &mut visibility_blocked, - ); - }; let idx = coordinates.to_index(map.width()); set_visibility_blocked(&map, idx, &blocks_visibility, &mut visibility_blocked); - prev_index.insert(entity, idx); } } }