internal void Read(PacketReader p) { m_Content.Clear(); p.Seek(5, System.IO.SeekOrigin.Begin); // seek to packet data p.ReadUInt32(); // serial p.ReadByte(); // 0 p.ReadByte(); // 0 m_Hash = p.ReadInt32(); m_StringNums.Clear(); m_StringNums.AddRange(m_DefaultStringNums); while (p.Position < p.Length) { int num = p.ReadInt32(); if (num == 0) { break; } m_StringNums.Remove(num); short bytes = p.ReadInt16(); string args = string.Empty; if (bytes > 0) { args = p.ReadUnicodeStringBE(bytes >> 1); } if (m_Content.Any(e => e.Number == num)) { continue; } else { m_Content.Add(new OPLEntry(num, args)); } } foreach (OPLEntry ent in m_CustomContent) { if (m_StringNums.Contains(ent.Number)) { m_StringNums.Remove(ent.Number); } else { foreach (int t in m_DefaultStringNums) { if (ent.Number == t) { ent.Number = GetStringNumber(); break; } } } } }
public void Read(PacketReader p) { m_Content.Clear(); p.Seek(5, System.IO.SeekOrigin.Begin); // seek to packet data p.ReadUInt32(); // serial p.ReadByte(); // 0 p.ReadByte(); // 0 m_Hash = p.ReadInt32(); m_StringNums.Clear(); m_StringNums.AddRange(m_DefaultStringNums); while (p.Position < p.Length) { int num = p.ReadInt32(); if (num == 0) { break; } m_StringNums.Remove(num); short bytes = p.ReadInt16(); string args = null; if (bytes > 0) { args = p.ReadUnicodeStringBE(bytes >> 1); } m_Content.Add(new OPLEntry(num, args)); } for (int i = 0; i < m_CustomContent.Count; i++) { OPLEntry ent = (OPLEntry)m_CustomContent[i]; if (m_StringNums.Contains(ent.Number)) { m_StringNums.Remove(ent.Number); } else { for (int s = 0; s < m_DefaultStringNums.Length; s++) { if (ent.Number == m_DefaultStringNums[s]) { ent.Number = GetStringNumber(); break; } } } } }
internal void Read(PacketReader p) { var property_list = new List <OPLEntry>(); p.Seek(5, System.IO.SeekOrigin.Begin); // seek to packet data p.ReadUInt32(); // serial p.ReadByte(); // 0 p.ReadByte(); // 0 m_Hash = p.ReadInt32(); m_StringNums.Clear(); m_StringNums.AddRange(m_DefaultStringNums); while (p.Position < p.Length) { int num = p.ReadInt32(); if (num == 0) { break; } m_StringNums.Remove(num); short bytes = p.ReadInt16(); string args = string.Empty; if (bytes > 0) { args = p.ReadUnicodeStringBE(bytes >> 1); } if (property_list.Any(e => e.Number == num)) { continue; } else { property_list.Add(new OPLEntry(num, args)); } } m_Content = property_list; }