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 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()); } }
static public void SaveHeader(PakHeaders Headers) { if (_Headers.ContainsKey(Headers.FileName)) { return; } Extractor.Instance.Tool("Saving Header : " + Headers.FileName); Directory.CreateDirectory(Directory.GetCurrentDirectory() + "/Headers/"); FileStream Stream = new FileStream(Directory.GetCurrentDirectory() + "/Headers/" + Headers.FileName + ".conf", FileMode.Create); XmlSerializer X = new XmlSerializer(typeof(PakHeaders)); X.Serialize(Stream, Headers); }
static public void LoadHeaders() { Extractor.Data.CellClick += new DataGridViewCellEventHandler(CellClick); try { XmlSerializer X = new XmlSerializer(typeof(PakHeaders)); string[] Urls = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.conf", SearchOption.AllDirectories); foreach (string Url in Urls) { PakHeaders Hrs = X.Deserialize(new FileStream(Url, FileMode.Open)) as PakHeaders; FileInfo Info = new FileInfo(Url); _Headers.Add(Hrs.FileName, Hrs); } Extractor.Instance.Tool("Loaded " + _Headers.Count + " Headers"); } catch (Exception e) { Extractor.Instance.Tool(e.ToString()); } }
public static void SaveHeader(PakHeaders Headers) { if (_Headers.ContainsKey(Headers.FileName)) return; Extractor.Instance.Tool("Saving Header : " + Headers.FileName); Directory.CreateDirectory(Directory.GetCurrentDirectory() + "/Headers/"); FileStream Stream = new FileStream(Directory.GetCurrentDirectory() + "/Headers/" + Headers.FileName + ".conf", FileMode.Create); XmlSerializer X = new XmlSerializer(typeof(PakHeaders)); X.Serialize(Stream, Headers); }