chore: Resolve clippy warnings and add a bounds check.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Nolan Darilek 2023-01-31 17:24:11 -06:00
parent 92047cd102
commit d4f8c99c19
5 changed files with 15 additions and 11 deletions

View File

@ -63,7 +63,7 @@ impl<D: Clone + Default> DijkstraMap<D> {
/// WARNING: Will give incorrect results when used with non-uniform exit costs. Much slower
/// algorithm required to support that.
fn build(&mut self, map: &Map<D>) {
let mapsize: usize = (self.size_x * self.size_y) as usize;
let mapsize = self.size_x * self.size_y;
let mut open_list: VecDeque<((usize, usize), f32)> = VecDeque::with_capacity(mapsize);
if let Some(pos) = map.starting_point {

View File

@ -110,8 +110,8 @@ impl<D: Clone + Default> BspRooms<D> {
let rect_width = rect.width();
let rect_height = rect.height();
let w = usize::max(3, rng.random_range(1, usize::min(rect_width as usize, 20))) + 1;
let h = usize::max(3, rng.random_range(1, usize::min(rect_height as usize, 20))) + 1;
let w = usize::max(3, rng.random_range(1, usize::min(rect_width, 20))) + 1;
let h = usize::max(3, rng.random_range(1, usize::min(rect_height, 20))) + 1;
result.x1 += rng.random_range(0, 6);
result.y1 += rng.random_range(0, 6);
@ -151,7 +151,7 @@ impl<D: Clone + Default> BspRooms<D> {
can_build = false;
}
if can_build {
if let Some(tile) = map.at(x as usize, y as usize) {
if let Some(tile) = map.at(x, y) {
if tile.is_walkable() {
can_build = false;
}

View File

@ -160,7 +160,7 @@ impl<'a, D: Clone + Default> Grid<'a, D> {
if neighbors.len() == 1 {
return Some(neighbors[0]);
} else {
return Some(neighbors[(self.rng.roll_dice(1, neighbors.len()) - 1) as usize]);
return Some(neighbors[(self.rng.roll_dice(1, neighbors.len()) - 1)]);
}
}
None

View File

@ -47,7 +47,7 @@ impl<D: Clone + Default> VoronoiHive<D> {
let seeds = self.generate_seeds(rng, map.width, map.height);
let mut voronoi_distance = vec![(0, 0.0f32); self.n_seeds];
let mut voronoi_membership: Vec<i32> = vec![0; map.width as usize * map.height as usize];
let mut voronoi_membership: Vec<i32> = vec![0; map.width * map.height];
for (i, vid) in voronoi_membership.iter_mut().enumerate() {
let x = i % map.width;
let y = i / map.width;

View File

@ -113,8 +113,12 @@ impl<D: Clone + Default> Map<D> {
/// Get TileType at the given location
pub fn at(&self, x: usize, y: usize) -> Option<&Tile> {
let idx = (y as usize) * self.width + (x as usize);
self.tiles.get(idx)
if x < self.width && y < self.height {
let idx = y * self.width + x;
self.tiles.get(idx)
} else {
None
}
}
/// Get available exists from the given tile
@ -164,7 +168,7 @@ impl<D: Clone + Default> Map<D> {
/// Modify tile at the given location
pub fn set_tile(&mut self, x: usize, y: usize, tile: Tile) {
if x < self.width && y < self.height {
let idx = self.xy_idx(x as usize, y as usize);
let idx = self.xy_idx(x, y);
self.tiles[idx] = tile;
}
}
@ -178,7 +182,7 @@ impl<D: Clone + Default> Map<D> {
pub fn add_room(&mut self, rect: Rect) {
for x in rect.x1..rect.x2 {
for y in rect.y1..rect.y2 {
self.set_tile(x as usize, y as usize, Tile::floor());
self.set_tile(x, y, Tile::floor());
}
}
self.rooms.push(rect);
@ -279,7 +283,7 @@ impl<D: Clone + Default> fmt::Display for Map<D> {
.map(|x| if self.at(x, y).unwrap().is_blocked { '#' } else { ' ' } as u8)
.collect();
let line = String::from_utf8(bytes).expect("Can't convert map to string");
let _ = writeln!(f, "{}", line);
let _ = writeln!(f, "{line}");
}
Ok(())
}