Exemple #1
0
        public override ArcFile TryOpen(ArcView file)
        {
            if (!file.Name.HasExtension(".dat"))
            {
                return(null);
            }
            int count = Binary.BigEndian(file.View.ReadInt32(0)) ^ SignatureKey;

            if (!IsSaneCount(count))
            {
                return(null);
            }

            var scheme = QueryScheme(file.Name);

            if (null == scheme)
            {
                return(null);
            }

            using (var index = new MinatoIndexReader(file, count))
            {
                var file_map = ReadFilenameMap(scheme);
                var dir      = index.Read(file_map);
                if (null == dir)
                {
                    return(null);
                }
                return(new ArcDatArchive(file, this, dir, scheme.Hash));
            }
        }
Exemple #2
0
        public override ArcFile TryOpen(ArcView file)
        {
            if (!file.Name.HasExtension(".dat"))
            {
                return(null);
            }
            int count = Binary.BigEndian(file.View.ReadInt32(0)) ^ SignatureKey;

            if (!IsSaneCount(count))
            {
                return(null);
            }

            var scheme = QueryScheme(file.Name);

            if (null == scheme)
            {
                return(null);
            }

            using (var index = new MinatoIndexReader(file, count))
                return(index.Read(this, scheme));
        }