minor cleanup

This commit is contained in:
Robin Appelman 2022-04-21 20:29:17 +02:00
commit d8e8cd2a98

View file

@ -109,58 +109,17 @@ pub fn cut(input: &[u8], start_tick: u32, end_tick: u32) -> Vec<u8> {
let baseline_updates = baseline_updates.into_iter().map(Message::PacketEntities); let baseline_updates = baseline_updates.into_iter().map(Message::PacketEntities);
let start_packets = string_table_updates let start_packets = string_table_updates
.chain(baseline_updates) .chain(baseline_updates)
.map(|msg| { .map(|msg| msg_packet(vec![net_tick(delta_tick - 2), msg]))
Packet::Message(MessagePacket { .chain(once(msg_packet(vec![
tick: 0, net_tick(delta_tick - 1),
messages: vec![
Message::NetTick(NetTickMessage {
tick: delta_tick - 2,
frame_time: 1881,
std_dev: 263,
}),
msg,
],
meta: MessagePacketMeta {
flags: 0,
view_angles: Default::default(),
sequence_in: 0,
sequence_out: 0,
},
})
})
.chain(once(Packet::Message(MessagePacket {
tick: 0,
messages: vec![
Message::NetTick(NetTickMessage {
tick: delta_tick - 1,
frame_time: 1881,
std_dev: 263,
}),
Message::PacketEntities(entity_update), Message::PacketEntities(entity_update),
], ])))
meta: MessagePacketMeta {
flags: 0,
view_angles: Default::default(),
sequence_in: 0,
sequence_out: 0,
},
})))
.chain(once(Packet::Message(MessagePacket { .chain(once(Packet::Message(MessagePacket {
tick: 0,
messages: vec![ messages: vec![
Message::NetTick(NetTickMessage { net_tick(delta_tick),
tick: delta_tick,
frame_time: 1881,
std_dev: 263,
}),
Message::PacketEntities(removed_update), Message::PacketEntities(removed_update),
], ],
meta: MessagePacketMeta { ..MessagePacket::default()
flags: 0,
view_angles: Default::default(),
sequence_in: 0,
sequence_out: 0,
},
}))); })));
for packet in start_packets { for packet in start_packets {
packet packet
@ -172,33 +131,19 @@ pub fn cut(input: &[u8], start_tick: u32, end_tick: u32) -> Vec<u8> {
// create the net ticks needed for later deltas // create the net ticks needed for later deltas
let fill_ticks = ((delta_tick + 1)..=last_server_tick) let fill_ticks = ((delta_tick + 1)..=last_server_tick)
.into_iter() .into_iter()
.map(|tick| { .map(|tick| net_tick(tick));
Message::NetTick(NetTickMessage {
tick,
frame_time: 1881,
std_dev: 263,
})
});
let fill_packets = fill_ticks.map(|msg| { let fill_packets = fill_ticks.map(|msg| {
Packet::Message(MessagePacket { Packet::Message(MessagePacket {
tick: 0,
messages: vec![ messages: vec![
msg, msg,
Message::PacketEntities(PacketEntitiesMessage { Message::PacketEntities(PacketEntitiesMessage {
entities: vec![],
removed_entities: vec![],
max_entries: max, max_entries: max,
delta: Some((delta_tick - 1).try_into().unwrap()), delta: Some((delta_tick - 1).try_into().unwrap()),
base_line: baseline, base_line: baseline,
updated_base_line: false, ..PacketEntitiesMessage::default()
}), }),
], ],
meta: MessagePacketMeta { ..MessagePacket::default()
flags: 0,
view_angles: Default::default(),
sequence_in: 0,
sequence_out: 0,
},
}) })
}); });
for packet in fill_packets { for packet in fill_packets {
@ -226,12 +171,11 @@ pub fn cut(input: &[u8], start_tick: u32, end_tick: u32) -> Vec<u8> {
handler.handle_packet(next).unwrap(); handler.handle_packet(next).unwrap();
while let Some(mut packet) = packets.next(&handler.state_handler).unwrap() { while let Some(mut packet) = packets.next(&handler.state_handler).unwrap() {
let ty = packet.packet_type();
let original_tick = packet.tick(); let original_tick = packet.tick();
mutators.mutate_packet(&mut packet); mutators.mutate_packet(&mut packet);
if ty != PacketType::ConsoleCmd { if packet.packet_type() != PacketType::ConsoleCmd {
packet packet
.encode(&mut out_stream, &handler.state_handler) .encode(&mut out_stream, &handler.state_handler)
.unwrap(); .unwrap();
@ -327,3 +271,18 @@ impl MessageMutator for DeleteFilter {
} }
} }
} }
fn msg_packet(messages: Vec<Message>) -> Packet {
Packet::Message(MessagePacket {
messages,
..MessagePacket::default()
})
}
fn net_tick(tick: u32) -> Message<'static> {
Message::NetTick(NetTickMessage {
tick,
frame_time: 1881,
std_dev: 263,
})
}