#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(i32)]
pub enum EBaseGameEvents {
    VDebugGameSessionIDEvent = 200,
    PlaceDecalEvent = 201,
    ClearWorldDecalsEvent = 202,
    ClearEntityDecalsEvent = 203,
    ClearDecalsForEntityEvent = 204,
    Source1LegacyGameEventList = 205,
    Source1LegacyListenEvents = 206,
    Source1LegacyGameEvent = 207,
    SosStartSoundEvent = 208,
    SosStopSoundEvent = 209,
    SosSetSoundEventParams = 210,
    SosSetLibraryStackFields = 211,
    SosStopSoundEventHash = 212,
}

impl EBaseGameEvents {
    pub fn from_i32(val: i32) -> Option<Self> {
        match val {
            x if x == Self::VDebugGameSessionIDEvent as i32 => Some(Self::VDebugGameSessionIDEvent),
            x if x == Self::PlaceDecalEvent as i32 => Some(Self::PlaceDecalEvent),
            x if x == Self::ClearWorldDecalsEvent as i32 => Some(Self::ClearWorldDecalsEvent),
            x if x == Self::ClearEntityDecalsEvent as i32 => Some(Self::ClearEntityDecalsEvent),
            x if x == Self::ClearDecalsForEntityEvent as i32 => Some(Self::ClearDecalsForEntityEvent),
            x if x == Self::Source1LegacyGameEventList as i32 => Some(Self::Source1LegacyGameEventList),
            x if x == Self::Source1LegacyListenEvents as i32 => Some(Self::Source1LegacyListenEvents),
            x if x == Self::Source1LegacyGameEvent as i32 => Some(Self::Source1LegacyGameEvent),
            x if x == Self::SosStartSoundEvent as i32 => Some(Self::SosStartSoundEvent),
            x if x == Self::SosStopSoundEvent as i32 => Some(Self::SosStopSoundEvent),
            x if x == Self::SosSetSoundEventParams as i32 => Some(Self::SosSetSoundEventParams),
            x if x == Self::SosSetLibraryStackFields as i32 => Some(Self::SosSetLibraryStackFields),
            x if x == Self::SosStopSoundEventHash as i32 => Some(Self::SosStopSoundEventHash),
            _ => None,
        }
    }
}
