wolfrpg_map_parser/command/party_graphics_command/
special_operation.rs

1#[cfg(feature = "serde")]
2use serde::{Serialize, Deserialize};
3
4#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
5#[derive(PartialEq, Clone)]
6pub enum SpecialOperation {
7    PushCharactersToFront   = 0x00,
8    EraseAllCharacters      = 0x01,
9    WarpPartyToHero         = 0x02,
10    StartHeroPartySynchro   = 0x03,
11    CancelHeroPartySynchro  = 0x04,
12    MakePartyTransparent    = 0x05,
13    CancelPartyTransparency = 0x06,
14    SavePartyMembers        = 0x07,
15    LoadPartyMembers        = 0x08,
16    TurnOnPartyFollowing    = 0x09,
17    TurnOffPartyFollowing   = 0x0a,
18    Unknown
19}
20
21impl SpecialOperation {
22    pub const fn new(operation: u8) -> Self {
23        match operation {
24            0x00 => SpecialOperation::PushCharactersToFront,
25            0x01 => SpecialOperation::EraseAllCharacters,
26            0x02 => SpecialOperation::WarpPartyToHero,
27            0x03 => SpecialOperation::StartHeroPartySynchro,
28            0x04 => SpecialOperation::CancelHeroPartySynchro,
29            0x05 => SpecialOperation::MakePartyTransparent,
30            0x06 => SpecialOperation::CancelPartyTransparency,
31            0x07 => SpecialOperation::SavePartyMembers,
32            0x08 => SpecialOperation::LoadPartyMembers,
33            0x09 => SpecialOperation::TurnOnPartyFollowing,
34            0x0a => SpecialOperation::TurnOffPartyFollowing,
35            _ => SpecialOperation::Unknown
36        }
37    }
38}