add spec entity with baseline 0

This commit is contained in:
Robin Appelman 2022-06-19 16:51:16 +02:00
commit a318b497cf

View file

@ -103,7 +103,7 @@ impl AddStvEntity {
pub fn new(entity_index: EntityId) -> AddStvEntity { pub fn new(entity_index: EntityId) -> AddStvEntity {
AddStvEntity { AddStvEntity {
added: Cell::new(false), added: Cell::new(false),
entity_index entity_index,
} }
} }
} }
@ -114,6 +114,7 @@ impl MessageMutator for AddStvEntity {
fn mutate_message(&self, message: &mut Message) { fn mutate_message(&self, message: &mut Message) {
if !self.added.get() { if !self.added.get() {
if let Message::PacketEntities(ent_message) = message { if let Message::PacketEntities(ent_message) = message {
if ent_message.base_line == 0 {
let player_entity = ent_message.entities.iter().find(|ent| ent.entity_index >= 1 && ent.entity_index < 255).expect("Failed to find a player entity"); let player_entity = ent_message.entities.iter().find(|ent| ent.entity_index >= 1 && ent.entity_index < 255).expect("Failed to find a player entity");
if player_entity.entity_index == self.entity_index { if player_entity.entity_index == self.entity_index {
panic!("already an stv entity?"); panic!("already an stv entity?");
@ -131,7 +132,7 @@ impl MessageMutator for AddStvEntity {
in_pvs: false, in_pvs: false,
update_type: UpdateType::Enter, update_type: UpdateType::Enter,
serial_number: 1234567, serial_number: 1234567,
delay: None delay: None,
}); });
ent_message.entities.sort_by(|a, b| a.entity_index.cmp(&b.entity_index)); ent_message.entities.sort_by(|a, b| a.entity_index.cmp(&b.entity_index));
self.added.set(true); self.added.set(true);
@ -139,6 +140,7 @@ impl MessageMutator for AddStvEntity {
} }
} }
} }
}
fn find_stv(demo: &Demo) -> Option<EntityId> { fn find_stv(demo: &Demo) -> Option<EntityId> {
let parser = DemoParser::new(demo.get_stream()); let parser = DemoParser::new(demo.get_stream());