internal static void Trim(bool stripEdids, bool stripRefs, string In, string Out, ReportProgressDelegate del) { Plugin p=new Plugin(In, false); del("Editing plugin"); Queue<Rec> queue=new Queue<Rec>(p.Records); while(queue.Count>0) { if(queue.Peek() is Record) { Record r=(Record)queue.Dequeue(); if(stripEdids) { //if(r.SubRecords.Count>0&&r.SubRecords[0].Name=="EDID") r.SubRecords.RemoveAt(0); for(int i=0;i<r.SubRecords.Count;i++) { //if(r.SubRecords[i].Name=="SCTX") r.SubRecords.RemoveAt(i--); } } } else { GroupRecord gr=(GroupRecord)queue.Dequeue(); if(gr.ContentsType!="GMST") { foreach(Rec r in gr.Records) queue.Enqueue(r); } } } del("Generating new esm"); //deflater=new ICSharpCode.SharpZipLib.Zip.Compression.Deflater(9); BinaryWriter bw=new BinaryWriter(File.Create(Out)); p.SaveData(bw); /*foreach(Rec r in p.Records) { if(r is GroupRecord) WriteGroup(bw, (GroupRecord)r); else WriteRecord(bw, (Record)r); }*/ bw.Close(); }
internal static void Trim(bool stripEdids, bool stripRefs, string In, string Out, ReportProgressDelegate del) { var p = new Plugin(In, false); del("Editing plugin"); var queue = new Queue<Rec>(p.Records); while (queue.Count > 0) { if (queue.Peek() is Record) { queue.Dequeue(); } else { var gr = (GroupRecord) queue.Dequeue(); if (gr.ContentsType != "GMST") { foreach (var r in gr.Records) { queue.Enqueue(r); } } } } del("Generating new esm"); //deflater=new ICSharpCode.SharpZipLib.Zip.Compression.Deflater(9); var bw = new BinaryWriter(File.Create(Out)); p.SaveData(bw); /*foreach(Rec r in p.Records) { if(r is GroupRecord) WriteGroup(bw, (GroupRecord)r); else WriteRecord(bw, (Record)r); }*/ bw.Close(); }