public static ISerializableField ReadField(ref PacketInStream Stream, int FieldIndex, int FieldType) { if (FieldType == (int)EPacketFieldType.Terminator) { return(null); } if (!Enum.IsDefined(typeof(EPacketFieldType), FieldType)) { Log.Error("Field", "Not Defined : " + FieldType); return(null); } ISerializableField Field = GetFieldType((EPacketFieldType)FieldType); if (Field == null) { Log.Error("PacketProcessor", "Unhandled Field : Type = " + FieldType); return(null); } Log.Success("ReadField", "Index = " + FieldIndex + ",Type=" + FieldType); Field.Index = FieldIndex; Field.PacketType = (EPacketFieldType)FieldType; Field.Deserialize(ref Stream); return(Field); }
public override void Deserialize(ref PacketInStream Data) { long ListData = Data.ReadEncoded7Bit(); int ListType; int ListCount; PacketInStream.Decode2Parameters(ListData, out ListType, out ListCount); List <ISerializableField> Fields = new List <ISerializableField>(); Log.Success("Packet", "------> List : " + ListType + "(" + ListCount + ")"); for (int i = 0; i < ListCount; ++i) { ISerializableField Field = PacketProcessor.GetFieldType((EPacketFieldType)ListType); if (Field != null) { Field.Deserialize(ref Data); Fields.Add(Field); } } val = Fields; }