コード例 #1
0
            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));
            }
コード例 #2
0
            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));
            }