diff options
Diffstat (limited to 'src/raw')
| -rw-r--r-- | src/raw/parser.rs | 4 | ||||
| -rw-r--r-- | src/raw/types.rs | 10 | 
2 files changed, 12 insertions, 2 deletions
| diff --git a/src/raw/parser.rs b/src/raw/parser.rs index bf61f8c..8401146 100644 --- a/src/raw/parser.rs +++ b/src/raw/parser.rs @@ -350,7 +350,7 @@ pub fn parse_event_rev0<R: Read>(mut input: R) -> ParseResult<CbtEvent> {      let is_fifty = input.read_u8()? != 0;      let is_moving = input.read_u8()? != 0;      let is_statechange = -        CbtStateChange::from_u8(input.read_u8()?).ok_or(ParseError::InvalidData)?; +        CbtStateChange::from_u8(input.read_u8()?).unwrap_or(CbtStateChange::Unknown);      let is_flanking = input.read_u8()? != 0;      let is_shields = input.read_u8()? != 0; @@ -411,7 +411,7 @@ pub fn parse_event_rev1<R: Read>(mut input: R) -> ParseResult<CbtEvent> {      let is_fifty = input.read_u8()? != 0;      let is_moving = input.read_u8()? != 0;      let is_statechange = -        CbtStateChange::from_u8(input.read_u8()?).ok_or(ParseError::InvalidData)?; +        CbtStateChange::from_u8(input.read_u8()?).unwrap_or(CbtStateChange::Unknown);      let is_flanking = input.read_u8()? != 0;      let is_shields = input.read_u8()? != 0;      let is_offcycle = input.read_u8()? != 0; diff --git a/src/raw/types.rs b/src/raw/types.rs index 820d7a5..9931ea9 100644 --- a/src/raw/types.rs +++ b/src/raw/types.rs @@ -201,6 +201,16 @@ pub enum CbtStateChange {      BreakbarPercent,      /// `time` is the start of the error string.      Error, +    /// The given state change is unknown. +    /// +    /// Note that this is not defined by arcdps itself, we just use this value as an easy way out +    /// for when unknown statechanges are introduces. +    /// +    /// This is for future proofing, whenever a new event is added, we'd otherwise have to update +    /// `evtclib` as well. The arcdps evtc README states to *make sure to ignore unknown +    /// statechange types.* +    // Keep this as the highest value, so we don't clash with future statechange additions. +    Unknown = 255,  }  impl Default for CbtStateChange { | 
