wolfrpg_map_parser/command/event_control_command/
erase_event.rs

1#[cfg(feature = "serde")]
2use serde::{Serialize, Deserialize};
3use crate::byte_utils::as_u32_le;
4
5#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
6#[derive(PartialEq, Clone)]
7pub struct EraseEvent {
8    event: u32,
9    fade_frames: u32
10}
11
12impl EraseEvent {
13    pub(crate) fn parse(bytes: &[u8]) -> (usize, Self) {
14        let mut offset: usize = 0;
15
16        let event: u32 = as_u32_le(&bytes[offset..offset + 4]);
17        offset += 4;
18
19        let fade_frames: u32 = as_u32_le(&bytes[offset..offset + 4]);
20        offset += 4;
21
22        offset += 3; // Command end signature
23
24        (offset, EraseEvent {
25            event,
26            fade_frames
27        })
28    }
29
30    pub fn event(&self) -> u32 {
31        self.event
32    }
33    
34    pub fn event_mut(&mut self) -> &mut u32 {
35        &mut self.event
36    }
37
38    pub fn fade_frames(&self) -> u32 {
39        self.fade_frames
40    }
41    
42    pub fn fade_frames_mut(&mut self) -> &mut u32 {
43        &mut self.fade_frames
44    }
45}