static bool ProcCommandLine() { if (ArgsDic.ContainsKey("--lint")) {//コマンドラインLint Program.IsCommandLine = true; Environment.Exit(ToolFELintForm.CommandLineLint()); return(true); } if (ArgsDic.ContainsKey("--rebuild")) {//コマンドラインrebuild Program.IsCommandLine = true; Environment.Exit(ToolROMRebuildForm.ComandLineRebuild()); return(true); } if (ArgsDic.ContainsKey("--pointercalc")) {//ポインタ変換 Program.IsCommandLine = true; Environment.Exit(PointerToolForm.ComandLineSearch()); return(true); } if (ArgsDic.ContainsKey("--translate")) {//ROM翻訳の実行 Program.IsCommandLine = true; Environment.Exit(ToolTranslateROMForm.CommandLineTranslate()); return(true); } if (ArgsDic.ContainsKey("--makeups")) {//UPSの作成 Program.IsCommandLine = true; Environment.Exit(ToolUPSPatchSimpleForm.CommandLineMakeUPS()); return(true); } if (ArgsDic.ContainsKey("--songexchange")) {//曲交換 Program.IsCommandLine = true; Environment.Exit(SongExchangeForm.CommandLineImport()); return(true); } #if DEBUG //デバッグの場合はテストを実行 DebugTESTRunner(); if (ArgsDic.ContainsKey("--translate_batch")) {//翻訳を自動実行 DevTranslateForm.CommandLineTranslateOnly(); } if (ArgsDic.ContainsKey("--testonly")) { //フルテストの場合、終了する. Environment.Exit(0); return(true); } #endif return(false); }
public static int ComandLineSearch() { string target = U.at(Program.ArgsDic, "--target"); if (!File.Exists(target)) { U.echo(R.Error("--targetで、相手のROMを指定してください。")); return(-2); } PointerToolForm f = (PointerToolForm)InputFormRef.JumpFormLow <PointerToolForm>(); f.LoadTargetROM(target); string tracelevel = U.at(Program.ArgsDic, "--tracelevel"); if (tracelevel != "") { U.SelectedIndexSafety(f.AutomaticTrackingComboBox, U.atoi0x(tracelevel)); } string address = U.at(Program.ArgsDic, "--address"); if (File.Exists(address)) { address = File.ReadAllText(address); } string[] lines = address.Split(new string[] { "\r\n", ",", "\t" }, StringSplitOptions.RemoveEmptyEntries); foreach (string a in lines) { if (!U.isHexString(a)) { continue; } f.Address.Text = a; f.AutoSearch(); bool isNearMatch; if (!f.IsDataFound(out isNearMatch)) {//見つからなかった U.echo( f.Address.Text + "\t" + U.ToHexString(U.NOT_FOUND) + "\t" + U.ToHexString(U.NOT_FOUND) + "\t" + U.ToHexString(U.NOT_FOUND) + "\t" + U.ToHexString(U.NOT_FOUND)); } else { U.echo( f.Address.Text + "\t" + f.OtherROMAddressWithLDRRef.Text + "\t" + f.OtherROMAddressWithLDR.Text + "\t" + f.OtherROMRefPointer2.Text + "\t" + f.OtherROMAddress2.Text); } } f.Close(); return(0); }