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); }
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; }
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()); } }
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)); }
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; } } }
private void b_extract_Click(object sender, EventArgs e) { ExtractorMgr.ExtractPack(); }