public MainRecordDef(DefinitionManager manager, JObject src) : base(manager, src) { ErrorHelpers.CheckDefProperty(src, "signature"); _signature = src.Value <string>("signature"); headerDef = BuildHeaderDef(src.Value <JObject>("flags")); containedInDef = (FormIdDef)JsonHelpers.Def(manager, src, "containedInElement"); }
public StructDef(StructDef other) : base(other) { elementDefs = new ReadOnlyCollection <ElementDef>(other.elementDefs); sortKeyIndices = other.sortKeyIndices == null ? null : new List <int>(other.sortKeyIndices); elementMap = other.elementMap == null ? null : new List <int>(other.elementMap); _canContainFormIds = other._canContainFormIds; }
private StructDef BuildHeaderDef(JObject flagsSrc) { var baseHeaderDef = manager.recordHeaderDef; if (flagsSrc == null) { return(baseHeaderDef); } var headerDef = new StructDef(baseHeaderDef); var elementDefs = headerDef.elementDefs.ToList(); elementDefs[2] = new UInt32Def((UInt32Def)elementDefs[2]) { formatDef = (FormatDef)manager.BuildDef(flagsSrc) }; headerDef.elementDefs = elementDefs.AsReadOnly(); return(headerDef); }