static Boolean ValidateArgs(CommandLine.ExtractArgs args) { Assert.IsNotNull(args, nameof(args)); if (args.Game != Game.Ao) { return(false); } if (args.Format == GameFormat.None) { return(false); } if (args.Format == GameFormat.PSP && args.SourceIsoPath == "") { return(false); } if (args.Format == GameFormat.PC && args.GamePath == "") { return(false); } return(true); }
public static void Run(CommandLine.ExtractArgs args) { Assert.IsNotNull(args, nameof(args)); if (ValidateArgs(args) == false) { return; } if (args.Format == GameFormat.PSP) { Console.WriteLine("Extracting text"); Console.WriteLine($"Source ISO: {args.SourceIsoPath}"); Console.WriteLine($"Translation Location: {args.TranslationPath}"); Console.WriteLine(); using (var iso = new Iso9660.IsoImage(args.SourceIsoPath)) { var filesystem = new IO.IsoFileSystem(iso, @"PSP_GAME\USRDIR"); Run(filesystem, Encodings.ShiftJIS, args.TranslationPath); } } if (args.Format == GameFormat.PC) { Console.WriteLine("Extracting text"); Console.WriteLine($"Game Directory: {args.GamePath}"); Console.WriteLine($"Translation Location: {args.TranslationPath}"); Console.WriteLine(); var filesystem = new IO.DirectoryFileSystem(args.GamePath); Run(filesystem, Encodings.Chinese, args.TranslationPath); } }