static ConditionBinaryOverlay CustomRecordTypeTrigger( OverlayStream stream, RecordType recordType, BinaryOverlayFactoryPackage package, RecordTypeConverter?recordTypeConverter) { var rawBytes = stream.ReadSpan(0x1A); byte[] newBytes = new byte[rawBytes.Length + 4]; rawBytes.CopyTo(newBytes.AsSpan()); newBytes[4] = 0x18; newBytes[3] = (byte)'A'; return(ConditionBinaryOverlay.ConditionFactory( stream: new OverlayStream(newBytes, package), package: package, recordTypeConverter: recordTypeConverter)); }
public static IReadOnlyList <ConditionBinaryOverlay> ConstructBinayOverlayList(OverlayStream stream, BinaryOverlayFactoryPackage package) { var span = stream.RemainingMemory; var pos = stream.Position; var recordLocs = ParseRecordLocations( stream: stream, finalPos: long.MaxValue, constants: package.MetaData.Constants.SubConstants, trigger: RecordTypes.CTDA, includeTriggers: IncludeTriggers, skipHeader: false); span = span.Slice(0, stream.Position - pos); return(BinaryOverlayList.FactoryByArray <ConditionBinaryOverlay>( mem: span, package: package, getter: (s, p) => ConditionBinaryOverlay.ConditionFactory(new OverlayStream(s, p), p), locs: recordLocs)); }