コード例 #1
0
        public EncapsulatedPacket(CustomPacket packet)
        {
            byte flags = packet.ReadByte();

            Reliability = (Reliability)((flags & FLAG_RELIABILITY) >> FLAG_RELIABILITY_INDEX);
            Split       = (flags & FLAG_SPLIT) > 0;

            int length = packet.ReadUShort() / 8;

            if (Reliability.IsReliable())
            {
                MessageIndex = packet.ReadTriad(ByteOrder.Little);
            }

            if (Reliability.IsOrdered() || Reliability.IsSequenced())
            {
                OrderIndex   = packet.ReadTriad(ByteOrder.Little);
                OrderChannel = packet.ReadByte();
            }

            if (Split)
            {
                SplitCount = packet.ReadInt();
                SplitId    = packet.ReadUShort();
                SplitIndex = packet.ReadInt();
            }

            Payload = packet.ReadBytes(length);
        }