public override void GenerateAsTextField(StringBuilder b, int pad, FieldDescriptor f, string fieldname) { b.Append(' ', pad); b.AppendLine("for(int loop" + pad + " = 0;loop" + pad + " < _" + fieldname + ".Length;loop" + pad + "++)"); b.Append(' ', pad); b.AppendLine("{"); f.SubType.GenerateAsTextField(b, pad, f, "_" + fieldname + "[loop" + pad + "]"); b.Append(' ', pad); b.AppendLine("}"); }
public override void GenerateFieldFileRead(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname, FieldDescriptor[] fields) { b.Append(' ', pad); b.AppendLine("//still checking variablearrays"); b.Append(' ', pad); b.AppendLine(fieldname + " = new List<" + f.SubType.Name + ">();"); var ser = fields.First((w) => w.Offset == f.Offset + f.VariableOffset); var tfield = "temp" + pad + "_" + fieldname; int subfieldsize = 1; if (f.SubType is StructureTypeDescriptor) { subfieldsize = (f.SubType as StructureTypeDescriptor).Fields.Last().Offset; } else { subfieldsize = (f.SubType as BasicTypeDescriptor).TypeSize; } b.Append(' ', pad); b.AppendLine("for(int i = 0; i < (int)(" + ser.Name + ".Field1 / "+subfieldsize.ToString()+"); i++)"); b.Append(' ', pad); b.AppendLine("{"); b.Append(' ', pad); b.AppendLine(bitBufferName + ".Position = " + ser.Name + ".Field0 + 16 + (" + subfieldsize.ToString()+ "*i) ;"); b.Append(' ', pad + 4); b.AppendLine(f.SubType.Name + " " + tfield + ";"); f.SubType.GenerateFieldFileRead(b, pad + 4, f, bitBufferName, tfield, fields); b.Append(' ', pad + 4); b.AppendLine("_" + fieldname + ".Add(" + tfield + ");"); b.Append(' ', pad); b.AppendLine("}"); }
public override void GenerateEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { if (f.HasMinMax) throw new NotImplementedException(); b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteInt64(" + f.EncodedBits + ", " + f.GetFieldName() + ");"); }
public override void GenerateParseBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname) { if (f.HasMinMax) throw new NotImplementedException(); b.Append(' ', pad); b.AppendLine(fieldname + " = (ushort)" + bitBufferName + ".ReadInt(" + f.EncodedBits + ");"); }
public override void GenerateFieldFileRead(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname, FieldDescriptor[] fields) { b.Append(' ', pad); b.Append(fieldname + " = "); b.Append(bitBufferName + ".ReadValueS32()"); b.AppendLine(";"); }
public override void GenerateAsTextField(StringBuilder b, int pad, FieldDescriptor f, string fieldname) { b.Append(' ', pad); b.AppendLine("for(int loop" + pad + " = 0; loop" + pad + " < _" + fieldname + ".Count; loop" + pad + "++)"); b.Append(' ', pad); b.AppendLine("{"); b.Append(' ', pad + 4); var fname = "_" + fieldname + "[loop" + pad + "]"; b.AppendLine("b.Append(' ', pad); b.AppendLine(\"" + "_" + fieldname + "[loop" + pad + "]" + ":\" + " + fname + ".ToString() );"); b.Append(' ', pad); b.AppendLine("}"); }
public override void GenerateEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname) { b.Append(' ', pad); b.AppendLine("//still checking variablearrays"); b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteInt(0, _"+ fieldname+".Count);"); b.Append(' ', pad); b.AppendLine("for(int loop" + pad + " = 0; loop" + pad + " < _" + fieldname + ".Count; loop" + pad + "++)"); b.Append(' ', pad); b.AppendLine("{"); f.SubType.GenerateEncodeBitBuffer(b, pad + 4, f, bitBufferName, "_" + fieldname + "[loop" + pad + "]"); b.Append(' ', pad); b.AppendLine("}"); }
public override void GenerateParseBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { if (f.HasMinMax) throw new NotImplementedException(); if (f.Float16Encoding) throw new NotImplementedException(); if (f.EncodedBits != 32) throw new NotImplementedException(); b.Append(' ', pad); b.AppendLine(f.GetFieldName() + " = " + bitBufferName + ".ReadFloat32();"); }
public override void LoadFields(FieldDescriptor[] fields) { if (fields.Length != 3 || fields[0].Type.Name != "DT_OPTIONAL" || fields[0].SubType.Name != "DT_INT" || fields[1].Type.Name != "DT_INT" || fields[2].Type != null) throw new Exception("Unexpected fields in NetAttributeKeyValue structure."); fields[1].Type = AttributeFieldType.Instance; base.LoadFields(fields); }
public override void LoadFields(FieldDescriptor[] fields) { if(fields[0].Type.Name != "RequiredMessageHeader") throw new Exception("Expected RequiredMessageHeader."); fields = fields.Skip(1).ToArray(); for (int i = 0; i < fields.Length; i++) fields[i].Index = i; base.LoadFields(fields); }
public override void GenerateOptionalEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { if (f.HasMinMax) throw new NotImplementedException(); if (f.Float16Encoding) throw new NotImplementedException(); if (f.EncodedBits != 32) throw new NotImplementedException(); var fieldName = f.GetFieldName(); b.Append(' ', pad); b.AppendLine("if(" + fieldName + ".HasValue)"); b.Append(' ', pad+4); b.AppendLine(bitBufferName + ".WriteFloat32(" + f.GetFieldName() + ".Value);"); }
public override void GenerateFieldFileRead(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname, FieldDescriptor[] fields) { b.Append(' ', pad); b.AppendLine(fieldname + " = new " + f.SubType.Name + "["+f.ArrayLength+"];"); var tfield = "temp" + pad + "_" + fieldname; var lname = "loop"+pad.ToString(); b.Append(' ', pad); b.AppendLine("for(int " + lname + "=0; " + lname + " < " + f.ArrayLength + "; " + lname + "++ )"); b.Append(' ', pad); b.AppendLine("{"); b.Append(' ', pad + 4); b.AppendLine(f.SubType.Name + " " + tfield + ";"); f.SubType.GenerateFieldFileRead(b, pad + 4, f, bitBufferName, tfield, fields); b.Append(' ', pad + 4); b.AppendLine("_" + fieldname + "[" + lname + "] = " + tfield + ";"); b.Append(' ', pad); b.AppendLine("}"); }
public override void GenerateFixedArrayEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname) { b.Append(' ', pad); b.AppendLine("//still checking fixedarrays on basictypes"); if (f.HasArrayLengthOffset) { b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits2 + ", " + fieldname + ".Length);"); } b.Append(' ', pad); b.AppendLine("for(int loop" + pad + " = 0;loop" + pad + " < _" + fieldname + ".Length;loop" + pad + "++)"); b.Append(' ', pad); b.AppendLine("{"); f.SubType.GenerateEncodeBitBuffer(b, pad, f, bitBufferName, "_" + fieldname + "[loop" + pad + "]"); b.Append(' ', pad); b.AppendLine("}"); }
public override void GenerateFieldFileRead(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname, FieldDescriptor[] fields) { b.Append(' ', pad); b.AppendLine("//still checking variablearrays"); b.Append(' ', pad); b.AppendLine(fieldname + " = new List<byte>();"); var ser = fields.First((w) => w.Offset == f.Offset + f.VariableOffset); var tfield = "temp" + pad + "_" + fieldname; int subfieldsize = 1; b.Append(' ', pad); b.AppendLine("for(int i = 0; i < (int)(" + ser.GetFieldName() + ".Field1 / " + subfieldsize.ToString() + "); i++)"); b.Append(' ', pad); b.AppendLine("{"); b.Append(' ', pad + 4); b.AppendLine(bitBufferName + ".Position = " + ser.GetFieldName() + ".Field0 + 16 + (" + subfieldsize.ToString() + "*i) ;"); b.Append(' ', pad + 4); b.AppendLine("byte " + tfield + ";"); b.Append(' ', pad + 4); b.AppendLine(tfield + " = (byte)stream.ReadByte();"); b.Append(' ', pad + 4); b.AppendLine("_" + fieldname + ".Add(" + tfield + ");"); b.Append(' ', pad); b.AppendLine("}"); }
public override void GenerateEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname) { if (f.HasMinMax) { b.Append(' ', pad); b.AppendLine("minmax is still unsupported on floats."); } if ( (f.Float16Encoding) || (f.EncodedBits != 32) ) { b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteFloat(" + fieldname + "," + f.EncodedBits.ToString() + ");"); } if (f.EncodedBits == 32) { b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteFloat32(" + fieldname + ");"); } }
public override void GenerateFieldFileRead(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname, FieldDescriptor[] fields) { b.Append(' ', pad); b.AppendLine("//still checking cstrings"); var ser = fields.First((w) => w.Offset == f.Offset + f.VariableOffset); var tfield = "temp" + pad + "_" + fieldname; int subfieldsize = 1; if (f.SubType is StructureTypeDescriptor) { subfieldsize = (f.SubType as StructureTypeDescriptor).Fields.Last().Offset; } else { subfieldsize = (f.SubType as BasicTypeDescriptor).TypeSize; } b.Append(' ', pad); b.AppendLine("stream.Position = "+ser.Name + ".Field0 + 16;"); b.Append(' ', pad); b.AppendLine(fieldname + " = stream.ReadString((uint)" + ser.Name + ".Field1);"); }
public override void GenerateField(StringBuilder b, int pad, FieldDescriptor f) { if (f.HasMinMax) { if (f.Min == 0 && f.Max == 1) { b.Append(' ', pad); b.AppendLine("public bool " + f.GetFieldName() + ";"); } else { var name = f.GetFieldName(); b.Append(' ', pad); b.AppendLine("int _" + name + ";"); b.Append(' ', pad); b.AppendLine("public int " + name + " { get { return _" + name + "; } set { if(value < " + f.Min.ToMaybeHexString(1024) + " || value > " + f.Max.ToMaybeHexString(1024) + ") throw new ArgumentOutOfRangeException(); _" + name + " = value; } }"); } } else { b.Append(' ', pad); b.AppendLine("public int " + f.GetFieldName() + ";"); } }
public override void GenerateEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname) { if (f.HasMinMax) { if (f.Min == 0 && f.Max == 1) { b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteBool(" + fieldname + ");"); } else { b.Append(' ', pad); if(f.Min != 0) b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits + ", " + fieldname + " - (" + f.Min + "));"); else b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits + ", " + fieldname + ");"); } } else { b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits + ", " + fieldname + ");"); } }
public override void GenerateParseBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { var fieldName = f.GetFieldName(); b.Append(' ', pad); b.Append(fieldName + " = "); if (f.HasMinMax) { if (f.Min == 0 && f.Max == 1) { b.AppendLine(bitBufferName + ".ReadBool();"); } else { if(f.Min != 0) b.AppendLine(bitBufferName + ".ReadInt(" + f.EncodedBits + ") + (" + f.Min + ");"); else b.AppendLine(bitBufferName + ".ReadInt(" + f.EncodedBits + ");"); } } else { b.AppendLine(bitBufferName + ".ReadInt(" + f.EncodedBits + ");"); } }
public override void GenerateFixedArrayField(StringBuilder b, int pad, FieldDescriptor f) { b.Append(' ', pad); b.AppendLine("int[] _" + f.GetFieldName() + ";"); b.Append(' ', pad); b.AppendLine("public int[] " + f.GetFieldName() + " { get { return _" + f.GetFieldName() + "; } set { if(value != null && value.Length " + (f.HasArrayLengthOffset ? "> " : "!= ") + f.ArrayLength + ") throw new ArgumentOutOfRangeException(); _" + f.GetFieldName() + " = value; } }"); }
public virtual void GenerateOptionalEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { throw new NotImplementedException(); }
public override void GenerateOptionalField(StringBuilder b, int pad, FieldDescriptor f) { b.Append(' ', pad); b.AppendLine("public float? " + f.GetFieldName() + ";"); }
public virtual void LoadFields(FieldDescriptor[] fields) { throw new Exception("This type doesnt handle fields."); }
public override void GenerateOptionalParseBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { b.Append(' ', pad); b.AppendLine("if(" + bitBufferName + ".ReadBool())"); GenerateParseBitBuffer(b, pad + 4, f, bitBufferName); }
public override void GenerateOptionalField(StringBuilder b, int pad, FieldDescriptor f) { b.Append(' ', pad); b.AppendLine("public float? " + f.GetFieldName() + ";"); }
public override void GenerateFixedArrayEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { var fieldName = f.GetFieldName(); if (f.HasArrayLengthOffset) { b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits2 + ", _" + f.GetFieldName() + ".Length);"); } b.Append(' ', pad); b.AppendLine("for(int i = 0;i < _" + fieldName + ".Length;i++) _" + fieldName + "[i].Encode(" + bitBufferName + ");"); }
public override void GenerateOptionalEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { b.Append(' ', pad); b.AppendLine("if(" + f.GetFieldName() + " != null)"); b.Append(' ', pad + 4); b.AppendLine(bitBufferName + ".WriteCharArray(" + f.ArrayLength + ", " + f.GetFieldName() + ");"); }
public override void GenerateEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { f.SubType.GenerateFixedArrayEncodeBitBuffer(b, pad, f, bitBufferName); }
public override void GenerateField(StringBuilder b, int pad, FieldDescriptor f) { f.SubType.GenerateFixedArrayField(b, pad, f); }
public override void GenerateOptionalEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { if (f.HasMinMax) { throw new NotImplementedException(); } if (f.Float16Encoding) { throw new NotImplementedException(); } if (f.EncodedBits != 32) { throw new NotImplementedException(); } var fieldName = f.GetFieldName(); b.Append(' ', pad); b.AppendLine("if(" + fieldName + ".HasValue)"); b.Append(' ', pad + 4); b.AppendLine(bitBufferName + ".WriteFloat32(" + f.GetFieldName() + ".Value);"); }
public override void GenerateOptionalParseBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { b.Append(' ', pad); b.AppendLine("if(" + bitBufferName + ".ReadBool())"); GenerateParseBitBuffer(b, pad + 4, f, bitBufferName); }
public override void GenerateFixedArrayEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { if (f.HasMinMax) { throw new NotImplementedException(); } var fieldName = f.GetFieldName(); if (f.HasArrayLengthOffset) { b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits2 + ", " + f.GetFieldName() + ".Length);"); } b.Append(' ', pad); b.AppendLine("for(int i = 0;i < _" + fieldName + ".Length;i++) " + bitBufferName + ".WriteInt(" + f.EncodedBits + ", _" + fieldName + "[i]);"); }
public override void GenerateParseBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { b.Append(' ', pad); b.AppendLine(f.GetFieldName() + " = " + bitBufferName + ".ReadCharArray(" + f.ArrayLength + ");"); }
public override void GenerateOptionalEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { b.Append(' ', pad); b.AppendLine("if(" + f.GetFieldName() + ".HasValue)"); b.Append(' ', pad + 4); if (f.HasMinMax) { if (f.Min == 0 && f.Max == 1) { b.AppendLine(bitBufferName + ".WriteBool(" + f.GetFieldName() + ".Value);"); } else { if (f.Min != 0) { b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits + ", " + f.GetFieldName() + ".Value - (" + f.Min + "));"); } else { b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits + ", " + f.GetFieldName() + ".Value);"); } } } else { b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits + ", " + f.GetFieldName() + ".Value);"); } }
public override void GenerateOptionalField(StringBuilder b, int pad, FieldDescriptor f) { GenerateField(b, pad, f); }
public override void LoadFields(FieldDescriptor[] fields) { Fields = fields; }
public override void GenerateField(StringBuilder b, int pad, FieldDescriptor f) { b.Append(' ', pad); b.AppendLine("public string _" + f.GetFieldName() + ";"); b.Append(' ', pad); b.AppendLine("public string " + f.GetFieldName() + " { get { return _" + f.GetFieldName() + "; } set { if(value != null && value.Length > " + f.ArrayLength + ") throw new ArgumentOutOfRangeException(); _" + f.GetFieldName() + " = value; } }"); }
public override void GenerateFixedArrayParseBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { if (f.HasMinMax) { throw new NotImplementedException(); } var fieldName = f.GetFieldName(); b.Append(' ', pad); if (f.HasArrayLengthOffset) { b.AppendLine(fieldName + " = new int[" + bitBufferName + ".ReadInt(" + f.EncodedBits2 + ")];"); } else { b.AppendLine(fieldName + " = new int[" + f.ArrayLength + "];"); } b.Append(' ', pad); b.AppendLine("for(int i = 0;i < _" + fieldName + ".Length;i++) _" + fieldName + "[i] = " + bitBufferName + ".ReadInt(" + f.EncodedBits + ");"); }
public virtual void GenerateOptionalEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { throw new NotImplementedException(); }
public override void GenerateEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { b.Append(' ', pad); b.AppendLine(bitBufferName + ".WriteInt(" + f.EncodedBits + ", " + f.GetFieldName() + ".Id);"); }
public override void GenerateField(StringBuilder b, int pad, FieldDescriptor f) { b.Append(' ', pad); b.AppendLine("public GameAttribute " + f.GetFieldName() + ";"); }
public virtual void GenerateOptionalField(StringBuilder b, int pad, FieldDescriptor f) { throw new NotImplementedException(); }
public virtual void GenerateFixedArrayEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { b.Append(' ', pad); b.AppendLine("public byte[" + f.ArrayLength + "] _" + f.GetFieldName() + ";"); b.Append(' ', pad); b.AppendLine("public byte[" + f.ArrayLength + "] " + f.GetFieldName() + " { get { return _" + f.GetFieldName() + "; } set { _" + f.GetFieldName() + " = value; } }"); //throw new NotImplementedException(); }
public virtual void GenerateFixedArrayEncodeBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { b.Append(' ', pad); b.AppendLine("public byte[" + f.ArrayLength + "] _" + f.GetFieldName() + ";"); b.Append(' ', pad); b.AppendLine("public byte[" + f.ArrayLength + "] " + f.GetFieldName() + " { get { return _" + f.GetFieldName() + "; } set { _" + f.GetFieldName() + " = value; } }"); //throw new NotImplementedException(); }
public override void GenerateParseBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { f.SubType.GenerateOptionalParseBitBuffer(b, pad, f, bitBufferName); }
static TypeDescriptor DiscoverMessageDescriptors(Mem32 mem, Dictionary<int, TypeDescriptor> table, int offset) { if (offset == 0) return null; string name = mem[offset + 4].CStringPtr; int unkValue = mem[offset + 8].Int32; var fields = mem[offset + 12].Ptr; if (fields.Offset == 0) { var basicType = TypeDescriptor.AllocateBasicType(name); basicType.Name = name; basicType.UnkValue = unkValue; table.Add(offset, basicType); return basicType; } StructureTypeDescriptor typeDesc; GameMessageInfo gmi; if (_gameMessageLookUp.TryGetValue(offset, out gmi)) { var gm = TypeDescriptor.AllocateGameMessage(name); gm.Size = gmi.Size; gm.NetworkIds = gmi.Opcodes.ToArray(); typeDesc = gm; } else typeDesc = TypeDescriptor.AllocateStructure(name); typeDesc.Name = name; typeDesc.UnkValue = unkValue; table.Add(offset, typeDesc); List<FieldDescriptor> list = new List<FieldDescriptor>(); for (; ; ) { FieldDescriptor f = new FieldDescriptor(); f.Name = fields.CStringPtr; int type = fields[4].Int32; if (mem[type + 4].CStringPtr != "DT_NULL" && !table.TryGetValue(type, out f.Type)) f.Type = DiscoverMessageDescriptors(mem, table, type); f.Offset = fields[8].Int32; var defaultValuePtr = fields[12].Ptr; f.Min = fields[0x10].Int32; f.Max = fields[0x14].Int32; f.Flags = fields[0x18].Int32; type = fields[0x1C].Int32; if (mem[type + 4].CStringPtr != "DT_NULL" && !table.TryGetValue(type, out f.SubType)) f.SubType = DiscoverMessageDescriptors(mem, table, type); f.VariableOffset = fields[0x20].Int32; f.ArrayLength = fields[0x24].Int32; f.ArrayLengthOffset = fields[0x28].Int32; f.EncodedBits = fields[0x2C].UInt16; f.EncodedBits2 = fields[0x2E].UInt16; f.SnoType = fields[0x30].Int32; f.TagMapRelated = fields[0x34].Int32; var enumFields = fields[0x38].Ptr; if (enumFields.Offset != 0) { List<Tuple<string, int>> enums = new List<Tuple<string, int>>(); for (; ; ) { if (enumFields[4].Int32 == 0) break; enums.Add(new Tuple<string, int>(enumFields[4].CStringPtr, enumFields.Int32)); enumFields = enumFields[8]; } f.EnumFields = enums.ToArray(); } f.FlagIndex = fields[0x3C].Int32; int funcA = fields[0x40].Int32; // TODO int funcB = fields[0x44].Int32; // TODO f.DspIndex = fields[0x48].Int32; var str = fields[0x4C].CString; // 0x4C 64 bytes, unused string //if (str != string.Empty) Console.WriteLine(str); list.Add(f); if (fields.Int32 == 0) break; fields = fields[140]; } typeDesc.Fields = list.ToArray(); return typeDesc; }
public virtual void GenerateOptionalField(StringBuilder b, int pad, FieldDescriptor f) { throw new NotImplementedException(); }
public override void GenerateParseBitBuffer(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName) { f.SubType.GenerateFixedArrayParseBitBuffer(b, pad, f, bitBufferName); }
public override void GenerateField(StringBuilder b, int pad, FieldDescriptor f) { f.SubType.GenerateFixedArrayField(b, pad, f); }