Example #1
0
    public void Deserialize(PacketReader stream)
    {
        int mask = stream.ReadInt32();

        if ((mask & (int)ENSerializeMask.enSerializeDirty) > 0)
        {
            Debug.Log("Sync item bag error, mask & enSerializeDirty > 0 ");
            return;
        }
        byte version = stream.ReadByte();
        int  count   = stream.ReadInt32();

        m_items.Clear();
        //MyEquips.Singleton.myEquips.Clear();
        CSItemSegmentDefine segmentDef = CSItemSegmentDefine.Singleton;

        for (uint i = 0; i < count; i++)
        {
            CSItem item = new CSItem();
            item.m_guid.m_lowPart  = stream.ReadInt32();
            item.m_guid.m_highPart = stream.ReadInt32();
            item.m_id   = stream.ReadInt16();
            item.m_flag = stream.ReadInt16();
            int readDataLength = stream.ReadInt32();
            item.Init();
            for (int seg = 0; seg <= segmentDef.MaxSegmentType; seg++)
            {
                if ((item.m_flag & (0x1 << seg)) > 0)
                {
                    readDataLength -= segmentDef.ReadSegment(item, seg, stream, readDataLength);
                }
            }
            stream.Seek(readDataLength, SeekOrigin.Current);
            //MyEquips.Singleton.myEquips.Add(item.m_guid, item);
            AddItem(item);
            item.Init();
        }
    }