public override Stream OpenEntry(ArcFile arc, Entry entry) { var input = arc.File.CreateStream(entry.Offset, entry.Size); var packed_entry = entry as SPackEntry; if (null == packed_entry || !packed_entry.IsPacked) { return(input); } if (1 == packed_entry.Method) { return(new CryptoStream(input, new NotTransform(), CryptoStreamMode.Read)); } if (2 == packed_entry.Method) { using (var reader = new PackedReader(packed_entry, input)) { reader.Unpack(); return(new MemoryStream(reader.Data)); } } return(input); }
public override Stream OpenEntry(ArcFile arc, Entry entry) { var input = arc.File.CreateStream (entry.Offset, entry.Size); var packed_entry = entry as SPackEntry; if (null == packed_entry || !packed_entry.IsPacked) return input; if (1 == packed_entry.Method) return new CryptoStream (input, new NotTransform(), CryptoStreamMode.Read); if (2 == packed_entry.Method) { using (var reader = new PackedReader (packed_entry, input)) { reader.Unpack(); return new MemoryStream (reader.Data); } } return input; }