public static byte[] GetPacketDataWithoutType(SourceDemoInfo info, byte[] data, IEnumerable <int> forbiddenFruits) { PacketReader reader = new PacketReader(info, data); BitWriterDeluxe writer = new BitWriterDeluxe(); reader.MessageRead += (s, e) => { if (!forbiddenFruits.Contains(e.Type)) { writer.MoveBitsIn(e.DataBitWriter); } }; reader.Parse(); var newData = writer.Data; if (PacketFormatValid(info, newData)) { return(newData); } else { return(data); } }
public static void WriteDeleterPacket(BinaryWriter writer, int tick) { // Packet stuff writer.Write((byte)ParsedDemo.MessageType.Packet); writer.Write(tick); writer.Write(new byte[0x54]); // svc_packetentities var bw2 = new BitWriterDeluxe(); bw2.WriteUnsignedBits(26, 6); bw2.WriteUnsignedBits(4095, MAX_EDICT_BITS); bw2.WriteBoolean(false); //bw.WriteBits(deltaFrom, 32); bw2.WriteBoolean(true); bw2.WriteUnsignedBits(4095, MAX_EDICT_BITS); var bw3 = GetDeleterPacketEntitiesData(); bw2.WriteUnsignedBits((uint)bw3.BitsWritten, DELTASIZE_BITS); bw2.MoveBitsIn(bw3); bw2.WriteBoolean(false); var bytes = bw2.Data; writer.Write(bytes.Count()); writer.Write(bytes); }