コード例 #1
0
        public void WriteToCustomPacket(CustomPacket packet)
        {
            byte flags = 0;

            flags |= (byte)((byte)Reliability << FLAG_RELIABILITY_INDEX);
            flags |= Split ? FLAG_SPLIT : (byte)0;

            packet.WriteByte(flags);
            packet.WriteUShort((ushort)(Payload.Length * 8));

            if (Reliability.IsReliable())
            {
                packet.WriteTriad(MessageIndex, ByteOrder.Little);
            }

            if (Reliability.IsOrdered() || Reliability.IsSequenced())
            {
                packet.WriteTriad(OrderIndex, ByteOrder.Little);
                packet.WriteByte(OrderChannel);
            }

            if (Split)
            {
                packet.WriteInt(SplitCount);
                packet.WriteUShort(SplitId);
                packet.WriteInt(SplitIndex);
            }

            packet.WriteBytes(Payload);
        }