Exemple #1
0
        public Extractor()
        {
            InitializeComponent();

            Instance = this;
            Data     = datagrid;
            Box      = l_files;

            Time.Enabled  = true;
            Time.Interval = 20;
            Time.Tick    += new EventHandler(Update);
            Time.Start();

            l_files.SelectedValueChanged += new EventHandler(l_files_SelectedValueChanged);

            ExtractorMgr.LoadHeaders();
            ExtractorMgr.StartExtractorThread();

            b_allpak.Enabled  = false;
            b_extract.Enabled = false;
            l_files.Enabled   = false;

            b_bik.CheckedChanged += new EventHandler(Filtre);
            b_wav.CheckedChanged += new EventHandler(Filtre);
            b_unk.CheckedChanged += new EventHandler(Filtre);
            b_nif.CheckedChanged += new EventHandler(Filtre);
            b_dds.CheckedChanged += new EventHandler(Filtre);

            this.FormClosing += new FormClosingEventHandler(OnExit);
        }
Exemple #2
0
    public void DeList()
    {
        if (_Elements.Count > 0)
        {
            return;
        }

        Decoded = false;
        Extractor.Instance.Progress(0);

        if (Headers == null)
        {
            Headers          = new PakHeaders();
            Headers.FileName = FileName;
            Headers.One      = Stream.GetInt();
            Headers.FileSize = Stream.GetInt();
            Headers.Padding  = Stream.GetInt();

            Headers.Hsize = Stream.GetInt();

            Headers.HeaderSize = Headers.Hsize / 60;

            for (int i = 0; i < Headers.HeaderSize; i++)
            {
                FileHeader Header = new FileHeader();

                string Unk1 = Stream.GetString(20);

                Header.ZSize = Stream.GetInt();
                Header.Size  = Stream.GetInt();
                Header.Unk2  = Stream.GetInt();
                Header.Start = Stream.GetInt();

                string Unk3 = Stream.GetString(24);

                Headers.Files.Add(Header);

                Extractor.Instance.Tool("Reading header :" + i + "/" + Headers.HeaderSize + ": " + Headers.FileName);
                Extractor.Instance.Progress((i * 100) / Headers.HeaderSize);
            }
        }

        int Total = Headers.Files.Count;

        for (int i = 0; i < Total; ++i)
        {
            Extractor.Instance.Progress((i * 100) / Total);
            FileHeader Header = Headers.Files[i];
            PakElement Ep     = new PakElement(this, Header, Stream);
            Ep.GetExtention();
            _Elements.Add(Ep);
        }

        ExtractorMgr.SaveHeader(Headers);

        Extractor.Instance.Progress(100);
        Decoded = true;
    }
Exemple #3
0
 public PakFile(FileInfo Info)
 {
     FileName = Info.Name;
     Headers  = ExtractorMgr.GetHeader(FileName);
     try
     {
         Stream = new ExtendedFileStream(Info.FullName);
     }
     catch (Exception e)
     {
         Extractor.Instance.Tool(e.ToString());
     }
 }
Exemple #4
0
        private void l_files_SelectedValueChanged(object sender, EventArgs e)
        {
            if (l_files.SelectedItem == null)
            {
                return;
            }

            if (Decoding != null && Decoding.Decoded == false)
            {
                return;
            }

            l_files.Enabled = false;
            ClearData();
            Decoding = ExtractorMgr.DecodePak((l_files.SelectedItem as FileInfo));
        }
Exemple #5
0
        public void Update(object sender, EventArgs a)
        {
            tool_progress.Value = ProgressValue;
            tip_status.Text     = ToolText;

            if (datagrid.Rows.Count <= 0 && Decoding != null && Decoding.Decoded)
            {
                Decoding.PrintHeaders();
                l_files.Enabled = true;
            }

            if (AllId >= 0 && (Decoding == null || Decoding.Decoded) && ExtractorMgr._ToExtract.Count <= 0)
            {
                if (Decoding != null)
                {
                    foreach (PakElement Element in Decoding._Elements)
                    {
                        if (Extractor.Instance.IsChecked(Element.Header.Ext))
                        {
                            ExtractorMgr.AddToExtract(Element);
                        }
                    }
                }

                if (AllId < l_files.Items.Count)
                {
                    FileInfo Info = l_files.Items[AllId] as FileInfo;

                    if (Info != null)
                    {
                        l_files.SelectedIndex = AllId;
                        Decoding        = ExtractorMgr.DecodePak(Info);
                        l_files.Enabled = false;
                    }

                    ++AllId;
                }
                else
                {
                    AllId = -1;
                }
            }
        }
Exemple #6
0
 private void b_extract_Click(object sender, EventArgs e)
 {
     ExtractorMgr.ExtractPack();
 }