diff --git a/src/visibility.rs b/src/visibility.rs index a53ce19..876e7c2 100644 --- a/src/visibility.rs +++ b/src/visibility.rs @@ -257,6 +257,9 @@ fn update_visible_and_revealed_tiles( } for v in viewshed.visible.iter() { let idx = v.to_index(map.width); + if idx >= revealed_tiles.len() || idx >= visible_tiles.len() { + continue; + } revealed_tiles[idx] = true; visible_tiles[idx] = true; } @@ -285,6 +288,9 @@ fn log_visible( let collider_set = QueryPipelineColliderComponentsSet(&collider_query); let shape = Cuboid::new(Vec2::new(0.49, 0.49).into()); for viewed_coordinates in &viewshed.visible { + if coordinates.distance(viewed_coordinates) >= viewshed.range as f32 - 1.5 { + continue; + } let shape_pos = ( Vec2::new(viewed_coordinates.x() + 0.5, viewed_coordinates.y() + 0.5), 0.0,