Beispiel #1
0
        private static void Pack2014(string sourcePath, string saveFileName, Platform platform, bool updateSng, bool updateManifest, bool fixShowlights = true)
        {
            using (var psarc = new PSARC.PSARC())
                using (var psarcStream = new MemoryStreamExtension())
                {
                    if (updateSng)
                    {
                        UpdateSng2014(sourcePath, platform, fixShowlights: fixShowlights);
                    }
                    if (updateManifest)
                    {
                        UpdateManifest2014(sourcePath, platform);
                    }

                    WalkThroughDirectory("", sourcePath, (a, b) =>
                    {
                        var fileStream = File.OpenRead(b);
                        psarc.AddEntry(a, fileStream);
                    });

                    psarc.Write(psarcStream, !platform.IsConsole);
                    psarcStream.Flush();
                    psarcStream.Seek(0, SeekOrigin.Begin);

                    if (Path.GetExtension(saveFileName) != ".psarc")
                    {
                        saveFileName += ".psarc";
                    }

                    using (var outputFileStream = File.Create(saveFileName))
                        psarcStream.CopyTo(outputFileStream);
                }
        }