/// <summary> /// Decodes the bytes in the packet-entites message. /// </summary> /// <param name="packetEntities">Packet entities.</param> /// <param name="reader">Reader.</param> /// <param name="parser">Parser.</param> public static void Apply(PacketEntities packetEntities, IBitStream reader, DemoParser parser) { int currentEntity = -1; for (int i = 0; i < packetEntities.UpdatedEntries; i++) { //First read which entity is updated currentEntity += 1 + (int)reader.ReadUBitInt(); //Find out whether we should create, destroy or update it. // Leave flag if (!reader.ReadBit()) { // enter flag if (reader.ReadBit()) { //create it var e = ReadEnterPVS(reader, currentEntity, parser); parser.Entities[currentEntity] = e; e.ApplyUpdate(reader); } else { if (currentEntity < 0 || currentEntity >= parser.Entities.Length) { return; } // preserve / update Entity e = parser.Entities[currentEntity]; if (e == null) { return; } e.ApplyUpdate(reader); } } else { Entity e = parser.Entities[currentEntity]; if (e == null) { return; } e.ServerClass.AnnounceDestroyedEntity(e); // leave / destroy e.Leave(); parser.Entities[currentEntity] = null; //dunno, but you gotta read this. if (reader.ReadBit()) { } } } }
/// <summary> /// Decodes the bytes in the packet-entites message. /// </summary> /// <param name="packetEntities">Packet entities.</param> /// <param name="reader">Reader.</param> /// <param name="parser">Parser.</param> public static void Apply(PacketEntities packetEntities, IBitStream reader, DemoParser parser) { var currentEntity = -1; for (var i = 0; i < packetEntities.UpdatedEntries; i++) { //First read which entity is updated currentEntity += 1 + (int)reader.ReadUBitInt(); //Find out whether we should create, destroy or update it. // Leave flag if (!reader.ReadBit()) { // enter flag if (reader.ReadBit()) { //create it var e = ReadEnterPVS(reader, currentEntity, parser); parser.Entities[currentEntity] = e; e.ApplyUpdate(reader); } else { // preserve / update var e = parser.Entities[currentEntity]; e.ApplyUpdate(reader); } } else { // leave / destroy parser.Entities[currentEntity].Leave(); parser.Entities[currentEntity] = null; //dunno, but you gotta read this. if (reader.ReadBit()) { } } } }
public static void Apply(PacketEntities packetEntities, IBitStream reader, DemoParser parser) { int currentEntity = -1; for (int i = 0; i < packetEntities.UpdatedEntries; i++) { currentEntity += 1 + (int)reader.ReadUBitInt(); // Leave flag if (!reader.ReadBit()) { // enter flag if (reader.ReadBit()) { var e = ReadEnterPVS(reader, currentEntity, parser); parser.Entities[currentEntity] = e; e.ApplyUpdate(reader); } else { // preserve Entity e = parser.Entities[currentEntity]; e.ApplyUpdate(reader); } } else { // leave parser.Entities [currentEntity].Leave(); parser.Entities[currentEntity] = null; if (reader.ReadBit()) { } } } }
/// <summary> /// Decodes the bytes in the packet-entites message. /// </summary> /// <param name="packetEntities">Packet entities.</param> /// <param name="reader">Reader.</param> /// <param name="parser">Parser.</param> public static void Apply(PacketEntities packetEntities, IBitStream reader, DemoParser parser) { int currentEntity = -1; for (int i = 0; i < packetEntities.UpdatedEntries; i++) { //First read which entity is updated currentEntity += 1 + (int)reader.ReadUBitInt(); //Find out whether we should create, destroy or update it. // Leave flag if (!reader.ReadBit()) { // enter flag if (reader.ReadBit()) { //create it var e = ReadEnterPVS(reader, currentEntity, parser); parser.Entities[currentEntity] = e; e.ApplyUpdate(reader); } else { // preserve / update Entity e = parser.Entities[currentEntity]; e.ApplyUpdate(reader); } } else { // leave / destroy parser.Entities [currentEntity].Leave (); parser.Entities[currentEntity] = null; //dunno, but you gotta read this. if (reader.ReadBit()) { } } } }