#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum ELauncherType {
    Default = 0,
    PerfectWorld = 1,
    Nexon = 2,
    CmdLine = 3,
    CSGO = 4,
    ClientUI = 5,
    Headless = 6,
    SteamChina = 7,
    SingleApp = 8,
    GameServer = 9,
}

impl ELauncherType {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::Default as i32 => Some(Self::Default),
            x if x == Self::PerfectWorld as i32 => Some(Self::PerfectWorld),
            x if x == Self::Nexon as i32 => Some(Self::Nexon),
            x if x == Self::CmdLine as i32 => Some(Self::CmdLine),
            x if x == Self::CSGO as i32 => Some(Self::CSGO),
            x if x == Self::ClientUI as i32 => Some(Self::ClientUI),
            x if x == Self::Headless as i32 => Some(Self::Headless),
            x if x == Self::SteamChina as i32 => Some(Self::SteamChina),
            x if x == Self::SingleApp as i32 => Some(Self::SingleApp),
            x if x == Self::GameServer as i32 => Some(Self::GameServer),
            _ => None,
        }
    }
}
