Exemple #1
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 #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
 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 #5
0
    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);
    }
Exemple #6
0
    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);
    }