blob: aade2c6b0a4c8b1ce5820e2bca106e985a9af181 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
pub struct SpriteData {
data: [u8; 16],
pointer: usize,
}
impl SpriteData {
pub fn new() -> Self {
Self { data: [0; 16], pointer: 0 }
}
pub fn push(&mut self, val: u8) {
self.data[self.pointer] = val;
self.pointer = (self.pointer + 1) % 16;
}
pub fn get_1bit_sprite(&self) -> [u8; 8] {
let mut sprite = [0u8; 8];
for (i, r) in sprite.iter_mut().enumerate() {
*r = self.data[(self.pointer + i + 8) % 16]
}
return sprite;
}
pub fn get_2bit_sprite(&self) -> [u8; 16] {
let mut sprite = [0u8; 16];
for (i, r) in sprite.iter_mut().enumerate() {
*r = self.data[(self.pointer + i) % 16]
}
return sprite;
}
}
|