Example #1
0
        public Packet CreatePacket(byte[] dataBytes, bool fromServer)
        {
            Packet       pack = null;
            Type         packetType;
            PacketReader packetReader = new PacketReader(dataBytes, fromServer);

            if (fromServer)
            {
                H5PacketIds.ServerPrimary opcode = (H5PacketIds.ServerPrimary)packetReader.Id;
                if (opcode == H5PacketIds.ServerPrimary.Extended)
                {
                    H5PacketIds.ServerSecondary opcodeEx = (H5PacketIds.ServerSecondary)packetReader.SubId;
                    if (incomingPacketDefinitionsEx.ContainsKey((int)opcodeEx))
                    {
                        return((Packet)Activator.CreateInstance(incomingPacketDefinitionsEx[(int)opcodeEx], packetReader, fromServer));
                    }
                }

                if (incomingPacketDefinitions.ContainsKey((int)opcode))
                {
                    return((Packet)Activator.CreateInstance(incomingPacketDefinitions[(int)opcode], packetReader, fromServer));
                }
            }
            else
            {
                H5PacketIds.ClientPrimary opcode = (H5PacketIds.ClientPrimary)packetReader.Id;
                if (opcode == H5PacketIds.ClientPrimary.Extended)
                {
                    H5PacketIds.ClientSecondary opcodeEx = (H5PacketIds.ClientSecondary)packetReader.SubId;
                    if (outgoingPacketDefinitionsEx.ContainsKey((int)opcodeEx))
                    {
                        return((Packet)Activator.CreateInstance(outgoingPacketDefinitionsEx[(int)opcodeEx], packetReader, fromServer));
                    }
                }

                if (outgoingPacketDefinitions.ContainsKey((int)opcode))
                {
                    return((Packet)Activator.CreateInstance(outgoingPacketDefinitions[(int)opcode], packetReader, fromServer));
                }
            }


            return(pack);
        }
Example #2
0
 public void SetId(H5PacketIds.ClientPrimary id)
 {
     this.id    = (byte)id;
     this.idSet = true;
 }