use super::*;

impl ScreenDevice {
    pub fn draw_sprite_1bit(&mut self, params: u8, layer: ScreenLayer) {
        let sprite = self.sprite_buffer.get_1bit_sprite(params);
        self.draw_sprite(sprite, layer);
    }

    pub fn draw_sprite_2bit(&mut self, params: u8, layer: ScreenLayer) {
        let sprite = self.sprite_buffer.get_2bit_sprite(params);
        self.draw_sprite(sprite, layer);
    }

    fn draw_sprite(&mut self, sprite: Sprite, layer: ScreenLayer) {
        let mut pos = self.cursor;
        for row in sprite {
            for colour in row {
                self.draw_pixel(colour, layer, pos);
                pos.x = pos.x.wrapping_add(1);
            }
            pos.x = pos.x.wrapping_sub(8);
            pos.y = pos.x.wrapping_add(1);
        }
    }
}