Tool dedicated to isohacking for Xenosaga on Playstation 2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
3.2 KiB

8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
  1. using System.Diagnostics;
  2. using System.IO;
  3. using System.Text;
  4. namespace Hack.Xenosaga.Common
  5. {
  6. public class Functions
  7. {
  8. public static void usage()
  9. {
  10. Trace.WriteLine("");
  11. Trace.WriteLine("xenosaga <option> <file> [regroup]");
  12. Trace.WriteLine(" option : -l = List files from index");
  13. Trace.WriteLine(" -u = Unpack files from index");
  14. Trace.WriteLine(" -p = Pack files from index");
  15. Trace.WriteLine(" file : Index file (the first one of each decade : xenosaga.00, xenosaga.10, xenosaga.20...)");
  16. Trace.WriteLine(" regroup : true to regroup all files in only one (ex: 11, 12, 13 in 11) ; false or empty (default) to keep the same system of increment files");
  17. }
  18. public static bool CheckArgs(string[] args, out Variables.stArgs listArgs)
  19. {
  20. listArgs = new Variables.stArgs();
  21. Trace.Write("Checking arguments : ");
  22. if (args.Length != 2 && args.Length != 3)
  23. {
  24. Trace.WriteLine("Incorrect number of parameter!");
  25. return false;
  26. }
  27. if (args[0] != "-l" && args[0] != "-p" && args[0] != "-u" && args[0] != "-e")
  28. {
  29. Trace.WriteLine("Incorrect parameter - unknown <option>");
  30. return false;
  31. }
  32. if (!File.Exists(args[1]))
  33. {
  34. Trace.WriteLine("Incorrect parameter - unknown <file>");
  35. return false;
  36. }
  37. if ((args.Length == 3 && args[0] == "-p") && (args[2] != "true" && args[2] != "false"))
  38. {
  39. Trace.WriteLine("Incorrect parameter - unknown <regroup>");
  40. return false;
  41. }
  42. listArgs.option = args[0];
  43. listArgs.filename = args[1];
  44. if (args.Length == 3 && listArgs.option == "-p")
  45. listArgs.regroup = args[2] == "true" ? true : false;
  46. Trace.WriteLine("OK");
  47. return true;
  48. }
  49. public static void ManageListener(bool consoleTrace, bool fileTrace = false, StreamWriter sw = null)
  50. {
  51. string traceFileName = "TraceFile";
  52. string traceConsoleName = "TraceConsole";
  53. for (int i = 0; i < Trace.Listeners.Count; i++)
  54. {
  55. TraceListener trace = Trace.Listeners[i];
  56. if (trace.Name == "Default" || (trace.Name == traceConsoleName && !consoleTrace) || (trace.Name == traceFileName && !fileTrace))
  57. {
  58. Trace.Listeners.Remove(trace);
  59. trace.Dispose();
  60. }
  61. }
  62. if (consoleTrace)
  63. {
  64. ConsoleTraceListener traceConsole = new ConsoleTraceListener();
  65. traceConsole.Name = traceConsoleName;
  66. Trace.Listeners.Add(traceConsole);
  67. }
  68. if (fileTrace)
  69. {
  70. TextWriterTraceListener traceFile = new TextWriterTraceListener(sw);
  71. traceFile.Name = traceFileName;
  72. Trace.Listeners.Add(traceFile);
  73. }
  74. }
  75. }
  76. }