public static void Read(PacketReader p) { Serial ser = p.ReadUInt32(); ushort zero = p.ReadUInt16(); int hash = p.ReadInt32(); object old = m_Entries[ser]; if (old is ObjectPropertyList) { if (((ObjectPropertyList)old).ServerHash + 0x40000000 == hash) { return; } } ArrayList props = new ArrayList(); while (true) { int num = p.ReadInt32(); if (num == 0 || num == -1) { break; } short argLen = p.ReadInt16(); string args = String.Empty; if (argLen > 0) { args = p.ReadUnicodeString(argLen >> 1); } props.Add(new ObjectProperty(num, args)); } ObjectPropertyList list; m_Entries[ser] = list = new ObjectPropertyList(ser, hash, props); if (old is ObjectPropertyList) { list.Add(((ObjectPropertyList)old).MyProps); } }