wolfrpg_map_parser/command/picture_command/erase/
range.rs

1#[cfg(feature = "serde")]
2use serde::{Serialize, Deserialize};
3use crate::byte_utils::as_u32_le;
4use crate::command::picture_command::erase::delay::Delay;
5
6#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
7#[derive(PartialEq, Clone)]
8#[allow(unused)]
9pub struct Range {
10    delay_fields: Delay,
11    unknown1: u32,
12    range_count: u32
13}
14
15impl Range {
16    pub(crate) fn parse(bytes: &[u8]) -> (usize, Self) {
17        let mut offset: usize = 0;
18
19        let (bytes_read, delay_fields): (usize, Delay)
20            = Delay::parse(&bytes[offset..]);
21        offset += bytes_read;
22
23        let unknown1: u32 = as_u32_le(&bytes[offset..offset+4]);
24        offset += 4;
25
26        let range_count: u32 = as_u32_le(&bytes[offset..offset+4]);
27        offset += 4;
28
29        (offset, Self {
30            delay_fields,
31            unknown1,
32            range_count
33        })
34    }
35
36    pub fn process_time(&self) -> u32 {
37        self.delay_fields.process_time()
38    }
39
40    pub fn process_time_mut(&mut self) -> &mut u32 {
41        self.delay_fields.process_time_mut()
42    }
43
44    pub fn delay(&self) -> u32 {
45        self.delay_fields.delay()
46    }
47
48    pub fn delay_mut(&mut self) -> &mut u32 {
49        self.delay_fields.delay_mut()
50    }
51
52    pub fn range_count(&self) -> u32 {
53        self.range_count
54    }
55
56    pub fn range_count_mut(&mut self) -> &mut u32 {
57        &mut self.range_count
58    }
59}