diff options
Diffstat (limited to 'src/engine/geometry.rs')
-rw-r--r-- | src/engine/geometry.rs | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/engine/geometry.rs b/src/engine/geometry.rs index af91b19..293ffce 100644 --- a/src/engine/geometry.rs +++ b/src/engine/geometry.rs @@ -1,3 +1,5 @@ +use engine::constants::*; + #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub struct Point { pub x: u8, @@ -32,40 +34,40 @@ impl Point { self.x = self.x.wrapping_add(1); } - pub fn to_bitfield(&self, width: u8) -> (u64, u64) { - if self.x >= width { - let index = self.y * width + self.x - width; + pub fn to_bitfield(&self) -> (u64, u64) { + if self.x >= SINGLE_MAP_WIDTH { + let index = self.y * SINGLE_MAP_WIDTH + self.x - SINGLE_MAP_WIDTH; (0, 1 << index) } else { - let index = self.y * width + self.x; + let index = self.y * SINGLE_MAP_WIDTH + self.x; (1 << index, 0) } } - pub fn to_left_bitfield(&self, width: u8) -> u64 { - if self.x >= width { + pub fn to_left_bitfield(&self) -> u64 { + if self.x >= SINGLE_MAP_WIDTH { 0 } else { - let index = self.y * width + self.x; + let index = self.y * SINGLE_MAP_WIDTH + self.x; 1 << index } } - pub fn to_right_bitfield(&self, width: u8) -> u64 { - if self.x < width { + pub fn to_right_bitfield(&self) -> u64 { + if self.x < SINGLE_MAP_WIDTH { 0 } else { - let index = self.y * width + self.x - width; + let index = self.y * SINGLE_MAP_WIDTH + self.x - SINGLE_MAP_WIDTH; 1 << index } } - pub fn to_either_bitfield(&self, width: u8) -> u64 { - if self.x >= width { - let index = self.y * width + self.x - width; + pub fn to_either_bitfield(&self) -> u64 { + if self.x >= SINGLE_MAP_WIDTH { + let index = self.y * SINGLE_MAP_WIDTH + self.x - SINGLE_MAP_WIDTH; 1 << index } else { - let index = self.y * width + self.x; + let index = self.y * SINGLE_MAP_WIDTH + self.x; 1 << index } } |