public IEnumerable <FileProxy> Load()
        {
            using (Log.Instance.EnterStage("Loading IMG archive: " + archiveFile.FilePath))
            {
                switch (gtaVersion)
                {
                case GtaVersion.III:
                case GtaVersion.ViceCity:
                    string dirFilePath = Path.ChangeExtension(archiveFile.FilePath, "dir");
                    using (BinaryReader inputDir = new BinaryReader(new FileStream(dirFilePath, FileMode.Open)))
                    {
                        int entries = (int)inputDir.BaseStream.Length / 32;
                        LoadArchiveContents(inputDir, entries);
                    }
                    break;

                case GtaVersion.SanAndreas:
                    using (BinaryReader inputImg = new BinaryReader(new MemoryStream(archiveFile.GetData())))
                    {
                        byte[] header = new byte[4];
                        inputImg.Read(header, 0, header.Length);
                        if (Encoding.ASCII.GetString(header) != "VER2")
                        {
                            Utils.TerminateWithError("Incorrect IMG archive for GTA San Andreas. Expected IMG archive ver2.");
                        }
                        int entries = inputImg.ReadInt32();
                        LoadArchiveContents(inputImg, entries);
                    }
                    break;

                default:
                    Utils.TerminateWithError("IMGArchive lodaer does not suppport this GTA version.");
                    break;
                }

                Log.Instance.Print(String.Format("Loaded {0} entries", files.Count));
                return(files);
            }
        }
 public TXDArchive(FileProxy archiveFile)
 {
     txdName = Path.GetFileNameWithoutExtension(archiveFile.Name);
      this.archiveFile = archiveFile;
      fin = new BinaryReader(new MemoryStream(archiveFile.GetData()));
 }
 public TXDArchive(FileProxy archiveFile)
 {
     txdName          = Path.GetFileNameWithoutExtension(archiveFile.Name);
     this.archiveFile = archiveFile;
     fin = new BinaryReader(new MemoryStream(archiveFile.GetData()));
 }