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)); } }
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)); }