wolfrpg_map_parser/command/set_variable_command/
range.rs1use crate::byte_utils::{as_u16_le, as_u32_le};
2#[cfg(feature = "serde")]
3use serde::{Serialize, Deserialize};
4
5#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
6#[derive(PartialEq, Clone)]
7#[allow(unused)]
8pub struct Range {
9 range_start: u16,
10 range_end: u16,
11 unknown1: u32,
12}
13
14impl Range {
15 pub(crate) fn parse(bytes: &[u8]) -> (usize, Self) {
16 let mut offset = 0;
17
18 let range_start: u16 = as_u16_le(&bytes[offset..offset + 2]);
19 offset += 2;
20
21 let range_end: u16 = as_u16_le(&bytes[offset..offset + 2]);
22 offset += 2;
23
24 let unknown1: u32 = as_u32_le(&bytes[offset..offset + 4]);
25 offset += 4;
26
27 offset += 1; (offset, Self {
30 range_start,
31 range_end,
32 unknown1,
33 })
34 }
35
36 pub fn range_start(&self) -> u16 {
37 self.range_start
38 }
39
40 pub fn range_start_mut(&mut self) -> &mut u16 {
41 &mut self.range_start
42 }
43
44 pub fn range_end(&self) -> u16 {
45 self.range_end
46 }
47
48 pub fn range_end_mut(&mut self) -> &mut u16 {
49 &mut self.range_end
50 }
51}