diff options
author | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 21:27:56 +0200 |
---|---|---|
committer | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 21:27:56 +0200 |
commit | 3f5492b2bb67326be43cd7c5ba02ccf0ba1ae0e3 (patch) | |
tree | 96963ba885a9393106b4a88ffc4266203e87582e /src/game/map.rs | |
parent | 4ceec65b088f05d4ad03f9ac70b1d63452fd8197 (diff) |
Refile for merging repos
Diffstat (limited to 'src/game/map.rs')
-rw-r--r-- | src/game/map.rs | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/src/game/map.rs b/src/game/map.rs deleted file mode 100644 index 84ec99a..0000000 --- a/src/game/map.rs +++ /dev/null @@ -1,49 +0,0 @@ -use crate::constants::*; -use crate::geometry::*; - -#[derive(Default, Debug, PartialEq, Eq, Clone, Copy)] -pub struct Map { - pub cells: [u64; MAP_U64S], -} - -impl Map { - fn internal_index(p: Point2d) -> Option<(usize, usize)> { - if p.y < 0 || p.y as usize >= MAP_SIZE { - None - } else { - let row_data = &MAP_ROW_SIZE[p.y as usize]; - if p.x < row_data.x_offset as i8 || p.x as usize >= row_data.x_offset + row_data.len() { - None - } else { - let global_bit = row_data.start_bit + p.x as usize - row_data.x_offset; - let integer = global_bit / 64; - let bit = global_bit % 64; - Some((integer, bit)) - } - } - } - - pub fn at(&self, p: Point2d) -> Option<bool> { - Map::internal_index(p).map(|(integer, bit)| { - let mask = 1 << bit; - self.cells[integer] & mask != 0 - }) - } - - pub fn set(&mut self, p: Point2d) { - if let Some((integer, bit)) = Map::internal_index(p) { - let mask = 1 << bit; - self.cells[integer] |= mask; - } else { - panic!("Tried to set an out of bounds bit, {:?}", p); - } - } - pub fn clear(&mut self, p: Point2d) { - if let Some((integer, bit)) = Map::internal_index(p) { - let mask = !(1 << bit); - self.cells[integer] &= mask; - } else { - panic!("Tried to set an out of bounds bit, {:?}", p); - } - } -} |