Exemple #1
0
        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);
            }
        }