1
0
Fork 0
mirror of https://codeberg.org/demostf/parser.git synced 2026-06-03 10:14:06 +02:00
This commit is contained in:
Robin Appelman 2025-06-28 00:02:42 +02:00
commit 149c4e2339
4 changed files with 38 additions and 2 deletions

2
Cargo.lock generated
View file

@ -1149,7 +1149,7 @@ dependencies = [
[[package]] [[package]]
name = "tf-demo-parser" name = "tf-demo-parser"
version = "0.6.3" version = "0.6.4"
dependencies = [ dependencies = [
"Inflector", "Inflector",
"better-panic", "better-panic",

View file

@ -1,7 +1,7 @@
[package] [package]
name = "tf-demo-parser" name = "tf-demo-parser"
description = "parser for tf2 demo files" description = "parser for tf2 demo files"
version = "0.6.3" version = "0.6.4"
authors = ["Robin Appelman <robin@icewind.nl>"] authors = ["Robin Appelman <robin@icewind.nl>"]
edition = "2021" edition = "2021"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"

View file

@ -456,15 +456,23 @@ pub struct Cart {
pub position: Vector, pub position: Vector,
} }
#[derive(Default, Debug, Serialize, Deserialize, PartialEq)]
pub struct ControlPoint {
pub owner: Team,
pub cap_percentage: f32,
}
#[derive(Debug, Serialize, Deserialize, PartialEq)] #[derive(Debug, Serialize, Deserialize, PartialEq)]
pub enum Objective { pub enum Objective {
Cart(Cart), Cart(Cart),
ControlPoint(ControlPoint),
} }
impl Objective { impl Objective {
pub fn as_cart(&self) -> Option<&Cart> { pub fn as_cart(&self) -> Option<&Cart> {
match self { match self {
Objective::Cart(cart) => Some(cart), Objective::Cart(cart) => Some(cart),
_ => None,
} }
} }
} }

View file

@ -684,6 +684,34 @@ impl GameStateAnalyser {
} }
} }
#[allow(dead_code, unused_variables)]
pub fn handle_cp_entity(&mut self, entity: &PacketEntity, parser_state: &ParserState) {
const OWNERS: [SendPropIdentifier; 5] = [
SendPropIdentifier::new("m_iOwner", "000"),
SendPropIdentifier::new("m_iOwner", "001"),
SendPropIdentifier::new("m_iOwner", "002"),
SendPropIdentifier::new("m_iOwner", "003"),
SendPropIdentifier::new("m_iOwner", "004"),
];
const CAP_PERCENTAGE: [SendPropIdentifier; 5] = [
SendPropIdentifier::new("m_flLazyCapPerc", "000"),
SendPropIdentifier::new("m_flLazyCapPerc", "001"),
SendPropIdentifier::new("m_flLazyCapPerc", "002"),
SendPropIdentifier::new("m_flLazyCapPerc", "003"),
SendPropIdentifier::new("m_flLazyCapPerc", "004"),
];
let objective = self
.state
.objectives
.entry(entity.entity_index)
.or_insert_with(|| {
Objective::Cart(Cart::default())
});
todo!()
}
fn parse_user_info( fn parse_user_info(
&mut self, &mut self,
index: usize, index: usize,