public static Condition CreateFromBinary( MutagenFrame frame, RecordTypeConverter?recordTypeConverter) { if (!frame.Reader.TryGetSubrecord(Mutagen.Bethesda.Fallout4.Internals.RecordTypes.CTDA, out var subRecMeta)) { throw new ArgumentException(); } var flagByte = frame.GetUInt8(subRecMeta.HeaderLength); Condition.Flag flag = ConditionBinaryCreateTranslation.GetFlag(flagByte); if (flag.HasFlag(Condition.Flag.UseGlobal)) { return(ConditionGlobal.CreateFromBinary(frame.SpawnWithLength(subRecMeta.ContentLength, checkFraming: false))); } else { return(ConditionFloat.CreateFromBinary(frame.SpawnWithLength(subRecMeta.ContentLength, checkFraming: false))); } }