예제 #1
0
파일: ArcFPK.cs 프로젝트: Casidi/GARbro
 public override Stream OpenEntry(ArcFile arc, Entry entry)
 {
     var input = arc.File.CreateStream (entry.Offset, entry.Size);
     if (entry.Size <= 8)
         return input;
     var sign = FormatCatalog.ReadSignature (input);
     if (0x32434c5a != sign) // 'ZLC2'
     {
         input.Position = 0;
         return input;
     }
     using (input)
     using (var reader = new Zlc2Reader (input, (int)entry.Size))
     {
         reader.Unpack();
         return new MemoryStream (reader.Data);
     }
 }
예제 #2
0
파일: ArcFPK.cs 프로젝트: zxc120/GARbro
        public override Stream OpenEntry(ArcFile arc, Entry entry)
        {
            var input = arc.File.CreateStream(entry.Offset, entry.Size);

            if (entry.Size <= 8)
            {
                return(input);
            }
            var sign = input.Signature;

            if (0x32434c5a != sign) // 'ZLC2'
            {
                return(input);
            }

            using (input)
                using (var reader = new Zlc2Reader(input, (int)entry.Size))
                {
                    reader.Unpack();
                    return(new BinMemoryStream(reader.Data, entry.Name));
                }
        }
예제 #3
0
파일: ArcFPK.cs 프로젝트: tenyuhuang/GARbro
        public override Stream OpenEntry(ArcFile arc, Entry entry)
        {
            var input = arc.File.CreateStream(entry.Offset, entry.Size);

            if (entry.Size <= 8)
            {
                return(input);
            }
            var sign = FormatCatalog.ReadSignature(input);

            if (0x32434c5a != sign) // 'ZLC2'
            {
                input.Position = 0;
                return(input);
            }
            using (input)
                using (var reader = new Zlc2Reader(input, (int)entry.Size))
                {
                    reader.Unpack();
                    return(new MemoryStream(reader.Data));
                }
        }