Exemplo n.º 1
0
 public static ListArchiveFile Create(PAKToolArchiveFile pak)
 {
     ListArchiveFile arc = new ListArchiveFile();
     foreach (PAKToolArchiveEntry entry in pak.Entries)
     {
         arc.Entries.Add(new ListArchiveFileEntry(entry.Name, entry.Data));
     }
     return arc;
 }
Exemplo n.º 2
0
        static void ConvertEntry(ref ListArchiveFileEntry entry)
        {
            using (MemoryStream mStream = new MemoryStream(entry.Data))
            {
                if (ListArchiveFile.VerifyFileType(mStream))
                {
                    ListArchiveFile subArc = new ListArchiveFile(mStream);
                    for (int i = 0; i < subArc.EntryCount; i++)
                    {
                        ListArchiveFileEntry subEntry = subArc.Entries[i];
                        ConvertEntry(ref subEntry);
                        subArc.Entries[i] = subEntry;
                    }

                    entry = new ListArchiveFileEntry(entry.Name, PAKToolArchiveFile.Create(subArc).GetBytes());
                }
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("No input specified.");
                Console.WriteLine("Usage:");
                Console.WriteLine(" Enter path to an ARC file to convert it to a PAK file OR");
                Console.WriteLine(" Enter path to a PAK file to convert it to an ARC file.");
                Console.WriteLine("Press any key to continue.");
                Console.ReadKey();
                return;
            }

            if (ListArchiveFile.VerifyFileType(args[0]))
            {
                ListArchiveFile arc = new ListArchiveFile(args[0]);
                for (int i = 0; i < arc.EntryCount; i++)
                {
                    ListArchiveFileEntry entry = arc.Entries[i];
                    ConvertEntry(ref entry);
                    arc.Entries[i] = entry;
                }

                PAKToolArchiveFile pak = PAKToolArchiveFile.Create(arc);
                pak.Save(args[0] + ".pak");
            }
            else if (PAKToolArchiveFile.VerifyFileType(args[0]))
            {
                PAKToolArchiveFile pak = new PAKToolArchiveFile(args[0]);
                for (int i = 0; i < pak.EntryCount; i++)
                {
                    PAKToolArchiveEntry entry = pak.Entries[i];
                    ConvertEntry(ref entry);
                    pak.Entries[i] = entry;
                }

                ListArchiveFile arc = ListArchiveFile.Create(pak);
                arc.Save(args[0] + ".arc");
            }
            else
            {
                Console.WriteLine("File supplied is not an ARC or PAK file!");
            }
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("No input specified.");
                Console.WriteLine("Usage:");
                Console.WriteLine(" Enter path to ARC file to extract it to a folder of the same name.");
                Console.WriteLine(" Enter path to directory to pack into an ARC.");
                Console.WriteLine("Press any key to continue.");
                Console.ReadKey();
                return;
            }

            if (Path.HasExtension(args[0]))
            {
                if (!ListArchiveFile.VerifyFileType(args[0]))
                {
                    Console.WriteLine("This is not a proper arc file!");
                    if (PAKToolArchiveFile.VerifyFileType(args[0]))
                    {
                        Console.WriteLine("Detected format: regular .bin/.pac/.pak archive.");
                    }
                    return;
                }

                ListArchiveFile arc = new ListArchiveFile(args[0]);
                string path = Path.GetFileNameWithoutExtension(args[0]);
                Directory.CreateDirectory(path);
                for (int i = 0; i < arc.EntryCount; i++)
                {
                    File.WriteAllBytes(path + "//" + arc.Entries[i].Name, arc.Entries[i].Data);
                }
            }
            else if (!Path.HasExtension(args[0]))
            {
                ListArchiveFile arc = ListArchiveFile.Create(args[0]);
                arc.Save(Path.GetFileName(args[0]) + ".arc");
            }
        }
Exemplo n.º 5
0
        /*********************************/
        /* Base wrapper method overrides */
        /*********************************/
        internal override void RebuildWrappedObject()
        {
            var archive = new ListArchiveFile();
            foreach (ResourceWrapper node in Nodes)
            {
                archive.Entries.Add(new ListArchiveFileEntry(node.Text, node.GetMemoryStream()));
            }

            m_wrappedObject = archive;
            m_isDirty = false;
        }
Exemplo n.º 6
0
 /***************/
 /* Constructor */
 /***************/
 public ListArchiveFileWrapper(string text, ListArchiveFile arc) 
     : base(text, arc, SupportedFileType.ListArchiveFile, false)
 {
 }