state into

This commit is contained in:
Robin Appelman 2022-08-26 00:27:23 +02:00
commit c9fb39f7b2
3 changed files with 8 additions and 5 deletions

1
Cargo.lock generated
View file

@ -562,6 +562,7 @@ dependencies = [
[[package]] [[package]]
name = "tf-demo-parser" name = "tf-demo-parser"
version = "0.4.0" version = "0.4.0"
source = "git+https://github.com/demostf/parser#307a6cf9535d1a906b0c1c4e2fb88d48a497d509"
dependencies = [ dependencies = [
"bitbuffer", "bitbuffer",
"enumflags2", "enumflags2",

View file

@ -26,8 +26,8 @@ wasm-opt = false
wasm-bindgen = "0.2.45" wasm-bindgen = "0.2.45"
wee_alloc = { version = "0.4.2", optional = true } wee_alloc = { version = "0.4.2", optional = true }
web-sys = { version = "0.3.22", features = ["console"] } web-sys = { version = "0.3.22", features = ["console"] }
#tf-demo-parser = { version = "0.4", git = "https://github.com/demostf/parser" } tf-demo-parser = { version = "0.4", git = "https://github.com/demostf/parser" }
tf-demo-parser = { version = "0.4", path = "../tf-demo-parser" } #tf-demo-parser = { version = "0.4", path = "../tf-demo-parser" }
[dev-dependencies] [dev-dependencies]
wasm-bindgen-test = "0.2.45" wasm-bindgen-test = "0.2.45"

View file

@ -163,6 +163,7 @@ pub fn get_player_steam_id(state: &FlatState, player_id: usize) -> String {
pub fn parse_demo_inner(buffer: &[u8]) -> Result<(ParsedDemo, Option<World>), ParseError> { pub fn parse_demo_inner(buffer: &[u8]) -> Result<(ParsedDemo, Option<World>), ParseError> {
let demo = Demo::new(buffer); let demo = Demo::new(buffer);
let parser = DemoParser::new_with_analyser(demo.get_stream(), GameStateAnalyser::default()); let parser = DemoParser::new_with_analyser(demo.get_stream(), GameStateAnalyser::default());
let (header, mut ticker) = parser.ticker()?; let (header, mut ticker) = parser.ticker()?;
@ -177,9 +178,10 @@ pub fn parse_demo_inner(buffer: &[u8]) -> Result<(ParsedDemo, Option<World>), Pa
skip = !skip; skip = !skip;
} }
let world: Option<&World> = ticker.state().world.as_ref(); let state = ticker.into_state();
parsed_demo.kills = ticker.state().kills.clone();
Ok((parsed_demo, world.map(|w| w.clone()))) parsed_demo.kills = state.kills;
Ok((parsed_demo, state.world))
} }
// This is like the `main` function, except for JavaScript. // This is like the `main` function, except for JavaScript.