wolfrpg_map_parser/command/picture_command/erase/
range.rs1#[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}