mirror of
https://codeberg.org/demostf/tf-demos-viewer.git
synced 2026-06-03 18:14:11 +02:00
heal target
This commit is contained in:
parent
cf1dcca7fd
commit
0aa4402b22
1 changed files with 19 additions and 5 deletions
24
src/state.rs
24
src/state.rs
|
|
@ -5,6 +5,7 @@ use tf_demo_parser::demo::data::game_state::{
|
|||
use tf_demo_parser::demo::data::DemoTick;
|
||||
use tf_demo_parser::demo::gamevent::GameEvent;
|
||||
use tf_demo_parser::demo::header::Header;
|
||||
use tf_demo_parser::demo::message::EntityId;
|
||||
use tf_demo_parser::demo::parser::analyser::UserInfo;
|
||||
use tf_demo_parser::demo::parser::gamestateanalyser::{
|
||||
Building, Class, Dispenser, GameState, Kill, PlayerState as PlayerAliveState, Sentry, Team,
|
||||
|
|
@ -203,7 +204,15 @@ impl PlayerState {
|
|||
let combined_bytes = team_class_health.to_le_bytes();
|
||||
|
||||
let class_bits = match self.class_data {
|
||||
PlayerClassData::Medic { charge, medigun } => [charge, medigun as u8],
|
||||
PlayerClassData::Medic {
|
||||
charge,
|
||||
medigun,
|
||||
target,
|
||||
} => {
|
||||
let medigun_bits =
|
||||
((medigun as u8) << 6) + target.map(u32::from).unwrap_or_default() as u8;
|
||||
[charge, medigun_bits]
|
||||
}
|
||||
PlayerClassData::Spy {
|
||||
disguise_class,
|
||||
disguise_team,
|
||||
|
|
@ -258,10 +267,14 @@ impl PlayerState {
|
|||
let mut cloaked = false;
|
||||
|
||||
let class_data = match class {
|
||||
Class::Medic => PlayerClassData::Medic {
|
||||
charge: class_bits[0],
|
||||
medigun: MedigunType::try_from(class_bits[1]).unwrap_or_default(),
|
||||
},
|
||||
Class::Medic => {
|
||||
let target_bits = class_bits[1] & 31;
|
||||
PlayerClassData::Medic {
|
||||
charge: class_bits[0],
|
||||
medigun: MedigunType::try_from(class_bits[1] >> 6).unwrap_or_default(),
|
||||
target: (target_bits > 0).then(|| EntityId::from(target_bits as u32)),
|
||||
}
|
||||
}
|
||||
Class::Spy => {
|
||||
let disguise_team = Team::new(class_bits[0] >> 6);
|
||||
let disguise_class = Class::new((class_bits[0] >> 2) & 15);
|
||||
|
|
@ -353,6 +366,7 @@ fn test_player_packing_medic() {
|
|||
class_data: PlayerClassData::Medic {
|
||||
charge: 52,
|
||||
medigun: MedigunType::Quickfix,
|
||||
target: Some(EntityId::from(8u32)),
|
||||
},
|
||||
ubered: true,
|
||||
cloaked: false,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue