use crate::geometry::Vec2d; pub const MAP_SIZE: usize = 33; pub const MAP_ROW_SIZE: [MapRow; MAP_SIZE] = [ MapRow { start_bit: 0, x_offset: 11 }, MapRow { start_bit: 11, x_offset: 8 }, MapRow { start_bit: 28, x_offset: 7 }, MapRow { start_bit: 47, x_offset: 6 }, MapRow { start_bit: 68, x_offset: 4 }, MapRow { start_bit: 93, x_offset: 4 }, MapRow { start_bit: 118, x_offset: 3 }, MapRow { start_bit: 145, x_offset: 2 }, MapRow { start_bit: 174, x_offset: 1 }, MapRow { start_bit: 205, x_offset: 1 }, MapRow { start_bit: 236, x_offset: 1 }, MapRow { start_bit: 267, x_offset: 0 }, MapRow { start_bit: 300, x_offset: 0 }, MapRow { start_bit: 333, x_offset: 0 }, MapRow { start_bit: 366, x_offset: 0 }, MapRow { start_bit: 399, x_offset: 0 }, MapRow { start_bit: 432, x_offset: 0 }, MapRow { start_bit: 465, x_offset: 0 }, MapRow { start_bit: 498, x_offset: 0 }, MapRow { start_bit: 531, x_offset: 0 }, MapRow { start_bit: 564, x_offset: 0 }, MapRow { start_bit: 597, x_offset: 0 }, MapRow { start_bit: 630, x_offset: 1 }, MapRow { start_bit: 661, x_offset: 1 }, MapRow { start_bit: 692, x_offset: 1 }, MapRow { start_bit: 723, x_offset: 2 }, MapRow { start_bit: 752, x_offset: 3 }, MapRow { start_bit: 779, x_offset: 4 }, MapRow { start_bit: 804, x_offset: 4 }, MapRow { start_bit: 829, x_offset: 6 }, MapRow { start_bit: 850, x_offset: 7 }, MapRow { start_bit: 869, x_offset: 8 }, MapRow { start_bit: 886, x_offset: 11 }, ]; pub const MAP_BITSIZE: usize = 897; pub const MAP_U64S: usize = 15; pub struct MapRow { pub start_bit: usize, pub x_offset: usize } impl MapRow { pub fn len(&self) -> usize { MAP_SIZE - 2 * self.x_offset } pub fn is_empty(&self) -> bool { self.len() == 0 } } pub const BOMB_DAMAGED_SPACES: usize = 13; pub const BOMB_DAMAGES: [(Vec2d, i32); BOMB_DAMAGED_SPACES] = [ (Vec2d::new(0, -2), 7), (Vec2d::new(2, 0), 7), (Vec2d::new(0, 2), 7), (Vec2d::new(-2, 0), 7), (Vec2d::new(1, -1), 11), (Vec2d::new(1, 1), 11), (Vec2d::new(-1, 1), 11), (Vec2d::new(-1, -1), 11), (Vec2d::new(0, -1), 13), (Vec2d::new(0, -1), 13), (Vec2d::new(0, -1), 13), (Vec2d::new(0, -1), 13), (Vec2d::new(0, 0), 20) ];