コード例 #1
0
ファイル: Program.cs プロジェクト: maritlage/FEBuilderGBA
        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);
        }
コード例 #2
0
        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);
        }