Beispiel #1
0
 /// <summary>
 /// Adds a pair of actions associated with the given processing function
 /// One that processes from a rom file (prefixed with rom-), and one that processes from an extracted file
 /// </summary>
 public void AddSingleFileProcessingAction(string name, string inputName, SingleFileProcessingAction action)
 {
     actions.Add(name, (args) =>
     {
         var options = new List <string>();
         while (args.Length > 0 && args[0].StartsWith("--"))
         {
             options.Add(args[0]);
             args = args[1..];
         }
Beispiel #2
0
            /// <summary>
            /// Adds a pair of actions associated with the given processing function
            /// One that processes from a rom file (prefixed with rom-), and one that processes from an extracted file
            /// </summary>
            public void AddSingleFileProcessingAction(string name, string inputName, SingleFileProcessingAction action)
            {
                actions.Add(name, (args) =>
                {
                    if (args.Length != 2)
                    {
                        Console.Error.WriteLine($"Usage: ShinDataUtil {name} [{inputName}file] [outname]");
                        return(1);
                    }

                    var inname  = args[0];
                    var outname = args[1];

                    var indata = File.ReadAllBytes(inname);

                    return(action(indata, inname, outname));
                });

                actions.Add($"rom-{name}", (args) =>
                {
                    if (args.Length != 3)
                    {
                        Console.Error.WriteLine($"Usage: ShinDataUtil rom-{name} [romname] [{inputName}name] [outname]");
                        return(1);
                    }

                    var romname = args[0];
                    var inname  = args[1];
                    var outname = args[2];

                    using var archive = (ReadableGameArchive) new FileReadableGameArchive(romname);
                    using var infile  = archive.OpenFile(inname);

                    return(action(infile.Data, inname, outname));
                });
            }