1
0
Fork 0
mirror of https://codeberg.org/demostf/parser.git synced 2026-06-03 10:14:06 +02:00

fix usermessage

This commit is contained in:
Robin Appelman 2019-03-02 19:53:49 +01:00
commit 42d5defdeb

View file

@ -81,19 +81,20 @@ pub enum UserMessage {
impl BitRead<LittleEndian> for UserMessage { impl BitRead<LittleEndian> for UserMessage {
fn read(stream: &mut Stream) -> ReadResult<Self> { fn read(stream: &mut Stream) -> ReadResult<Self> {
let message_type_opt: Option<UserMessageType> = UserMessageType::from_u8(stream.read()?); let message_type = UserMessageType::from_u8(stream.read()?)
let message_type = message_type_opt.unwrap_or(UserMessageType::Unknown); .unwrap_or(UserMessageType::Unknown);
let length = stream.read_int(11)?; let length = stream.read_int(11)?;
let data = stream.read_bits(length)?; let mut data = stream.read_bits(length)?;
Ok(match message_type { let message = match message_type {
UserMessageType::SayText2 => UserMessage::SayText2(stream.read()?), UserMessageType::SayText2 => UserMessage::SayText2(data.read()?),
UserMessageType::TextMsg => UserMessage::Text(stream.read()?), UserMessageType::TextMsg => UserMessage::Text(data.read()?),
UserMessageType::ResetHUD => UserMessage::ResetHUD(stream.read()?), UserMessageType::ResetHUD => UserMessage::ResetHUD(data.read()?),
UserMessageType::Train => UserMessage::Train(stream.read()?), UserMessageType::Train => UserMessage::Train(data.read()?),
UserMessageType::VoiceSubtitle => UserMessage::VoiceSubtitle(stream.read()?), UserMessageType::VoiceSubtitle => UserMessage::VoiceSubtitle(data.read()?),
UserMessageType::Shake => UserMessage::Shake(stream.read()?), UserMessageType::Shake => UserMessage::Shake(data.read()?),
_ => UserMessage::Unknown(stream.read()?), _ => UserMessage::Unknown(data.read()?),
}) };
Ok(message)
} }
} }