mirror of
https://codeberg.org/demostf/parser.git
synced 2026-06-03 10:14:06 +02:00
fix outer map not using baselines
This commit is contained in:
parent
e303969606
commit
2c113f9a18
2 changed files with 12 additions and 12 deletions
|
|
@ -12,7 +12,7 @@ use crate::demo::gameevent_gen::ObjectDestroyedEvent;
|
||||||
use crate::demo::gamevent::GameEvent;
|
use crate::demo::gamevent::GameEvent;
|
||||||
use crate::demo::message::gameevent::GameEventMessage;
|
use crate::demo::message::gameevent::GameEventMessage;
|
||||||
use crate::demo::message::packetentities::{EntityId, PacketEntity};
|
use crate::demo::message::packetentities::{EntityId, PacketEntity};
|
||||||
use crate::demo::message::Message;
|
use crate::demo::message::{Message, UpdateType};
|
||||||
use crate::demo::packet::datatable::{ParseSendTable, ServerClass, ServerClassName};
|
use crate::demo::packet::datatable::{ParseSendTable, ServerClass, ServerClassName};
|
||||||
use crate::demo::packet::message::MessagePacketMeta;
|
use crate::demo::packet::message::MessagePacketMeta;
|
||||||
use crate::demo::packet::stringtable::StringTableEntry;
|
use crate::demo::packet::stringtable::StringTableEntry;
|
||||||
|
|
@ -158,13 +158,17 @@ impl GameStateAnalyser {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
for prop in &entity.props {
|
if entity.update_type == UpdateType::Enter {
|
||||||
if prop.identifier == OUTER || prop.identifier == OUTER2 {
|
if let Some(prop) = entity
|
||||||
let outer = Handle::try_from(&prop.value).unwrap_or_default();
|
.get_prop_by_identifier(&OUTER, parser_state)
|
||||||
|
.or_else(|| entity.get_prop_by_identifier(&OUTER2, parser_state))
|
||||||
|
{
|
||||||
|
if let Ok(outer) = Handle::try_from(&prop.value) {
|
||||||
self.outer_map.insert(outer, entity.entity_index);
|
self.outer_map.insert(outer, entity.entity_index);
|
||||||
self.outer_map_rev.insert(entity.entity_index, outer);
|
self.outer_map_rev.insert(entity.entity_index, outer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
match class_name.as_str() {
|
match class_name.as_str() {
|
||||||
"CTFPlayer" => handle_player_entity(&mut self.state, entity, parser_state),
|
"CTFPlayer" => handle_player_entity(&mut self.state, entity, parser_state),
|
||||||
|
|
|
||||||
|
|
@ -25,12 +25,8 @@ pub fn handle_medigun_entity(
|
||||||
ty = MedigunType::Vaccinator;
|
ty = MedigunType::Vaccinator;
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(handle) = entity.get_own_prop_value_by_identifier(OUTER) {
|
if let Some(handle) = entity.get_own_prop_value_by_identifier::<Handle>(OUTER) {
|
||||||
if let Some(player) = state
|
if let Some(player) = state.get_player_by_weapon_handle(handle) {
|
||||||
.players
|
|
||||||
.iter_mut()
|
|
||||||
.find(|player| player.weapons.contains(&handle))
|
|
||||||
{
|
|
||||||
if let PlayerClassData::Medic { medigun, .. } = &mut player.class_data {
|
if let PlayerClassData::Medic { medigun, .. } = &mut player.class_data {
|
||||||
*medigun = ty;
|
*medigun = ty;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue