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

list pauses in parser json output

This commit is contained in:
Robin Appelman 2023-12-21 22:41:17 +01:00
commit d20fbb8e37

View file

@ -352,6 +352,7 @@ pub struct World {
#[derive(Default, Debug, Serialize, Deserialize, PartialEq)] #[derive(Default, Debug, Serialize, Deserialize, PartialEq)]
pub struct Analyser { pub struct Analyser {
state: MatchState, state: MatchState,
pause_start: Option<DemoTick>,
user_id_map: HashMap<EntityId, UserId>, user_id_map: HashMap<EntityId, UserId>,
} }
@ -365,6 +366,7 @@ impl MessageHandler for Analyser {
| MessageType::UserMessage | MessageType::UserMessage
| MessageType::ServerInfo | MessageType::ServerInfo
| MessageType::NetTick | MessageType::NetTick
| MessageType::SetPause
) )
} }
@ -380,6 +382,14 @@ impl MessageHandler for Analyser {
} }
Message::GameEvent(message) => self.handle_event(&message.event, tick), Message::GameEvent(message) => self.handle_event(&message.event, tick),
Message::UserMessage(message) => self.handle_user_message(message, tick), Message::UserMessage(message) => self.handle_user_message(message, tick),
Message::SetPause(message) => {
if message.pause {
self.pause_start = Some(tick);
} else {
let start = self.pause_start.unwrap_or_default();
self.state.pauses.push((start, tick))
}
}
_ => {} _ => {}
} }
} }
@ -488,4 +498,5 @@ pub struct MatchState {
pub rounds: Vec<Round>, pub rounds: Vec<Round>,
pub start_tick: ServerTick, pub start_tick: ServerTick,
pub interval_per_tick: f32, pub interval_per_tick: f32,
pub pauses: Vec<(DemoTick, DemoTick)>,
} }