mirror of
https://codeberg.org/demostf/parser.git
synced 2026-06-03 10:14:06 +02:00
update tests
This commit is contained in:
parent
4d97759eca
commit
43c9021ba2
5 changed files with 5300 additions and 31 deletions
|
|
@ -1,5 +1,6 @@
|
|||
use crate::demo::data::DemoTick;
|
||||
use crate::demo::gameevent_gen::PlayerDeathEvent;
|
||||
use crate::demo::gamevent::GameEvent;
|
||||
use crate::demo::message::packetentities::EntityId;
|
||||
use crate::demo::packet::datatable::{ClassId, ServerClass, ServerClassName};
|
||||
use crate::demo::parser::analyser::{Class, Team, UserId, UserInfo};
|
||||
|
|
@ -420,6 +421,7 @@ pub struct GameState {
|
|||
pub server_classes: Vec<ServerClass>,
|
||||
pub interval_per_tick: f32,
|
||||
pub outer_map: HashMap<Handle, EntityId>,
|
||||
pub events: Vec<(DemoTick, GameEvent)>,
|
||||
}
|
||||
|
||||
impl GameState {
|
||||
|
|
|
|||
|
|
@ -53,21 +53,26 @@ impl MessageHandler for GameStateAnalyser {
|
|||
Message::ServerInfo(message) => {
|
||||
self.state.interval_per_tick = message.interval_per_tick
|
||||
}
|
||||
Message::GameEvent(GameEventMessage { event, .. }) => match event {
|
||||
Message::GameEvent(GameEventMessage { event, .. }) => {
|
||||
self.state.events.push((self.tick, event.clone()));
|
||||
match event {
|
||||
GameEvent::PlayerDeath(death) => {
|
||||
self.state.kills.push(Kill::new(self.tick, death.as_ref()))
|
||||
}
|
||||
GameEvent::RoundStart(_) => {
|
||||
self.state.buildings.clear();
|
||||
self.state.projectiles.clear();
|
||||
}
|
||||
GameEvent::TeamPlayRoundStart(_) => {
|
||||
self.state.buildings.clear();
|
||||
self.state.projectiles.clear();
|
||||
}
|
||||
GameEvent::ObjectDestroyed(ObjectDestroyedEvent { index, .. }) => {
|
||||
self.state.remove_building((*index as u32).into());
|
||||
}
|
||||
_ => {}
|
||||
},
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -30,9 +30,12 @@ fn snapshot_test(input_file: &str) {
|
|||
fn game_state_test(input_file: &str) {
|
||||
let file = fs::read(format!("test_data/{}", input_file)).expect("Unable to read file");
|
||||
let demo = Demo::new(&file);
|
||||
let (_, state) = DemoParser::new_with_analyser(demo.get_stream(), GameStateAnalyser::new())
|
||||
let (_, mut state) = DemoParser::new_with_analyser(demo.get_stream(), GameStateAnalyser::new())
|
||||
.parse()
|
||||
.unwrap();
|
||||
state.events.clear();
|
||||
|
||||
insta::with_settings!({sort_maps => true}, {
|
||||
insta::assert_json_snapshot!(input_file, state);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue