diff --git a/src/frontend/qt_sdl/CLI.cpp b/src/frontend/qt_sdl/CLI.cpp index 8f2faf5e..4e74015b 100644 --- a/src/frontend/qt_sdl/CLI.cpp +++ b/src/frontend/qt_sdl/CLI.cpp @@ -65,19 +65,19 @@ CommandLineOptions* ManageArgs(QApplication& melon) #ifdef GDBSTUB_ENABLED if (parser.isSet("break-arm9")) { - options->arm9BreakOnStartup = true; + options->arm9BreakOnStart = true; } if (parser.isSet("no-break-arm9")) { - options->arm9BreakOnStartup = false; + options->arm9BreakOnStart = false; } if (parser.isSet("break-arm7")) { - options->arm7BreakOnStartup = true; + options->arm7BreakOnStart = true; } if (parser.isSet("no-break-arm7")) { - options->arm7BreakOnStartup = false; + options->arm7BreakOnStart = false; } #endif diff --git a/src/frontend/qt_sdl/CLI.h b/src/frontend/qt_sdl/CLI.h index a76866e7..ec575f1c 100644 --- a/src/frontend/qt_sdl/CLI.h +++ b/src/frontend/qt_sdl/CLI.h @@ -35,8 +35,8 @@ struct CommandLineOptions bool fullscreen; bool boot; #ifdef GDBSTUB_ENABLED - std::optional arm9BreakOnStartup; - std::optional arm7BreakOnStartup; + std::optional arm9BreakOnStart; + std::optional arm7BreakOnStart; #endif }; diff --git a/src/frontend/qt_sdl/EmuInstance.cpp b/src/frontend/qt_sdl/EmuInstance.cpp index 93423a96..8ac5576c 100644 --- a/src/frontend/qt_sdl/EmuInstance.cpp +++ b/src/frontend/qt_sdl/EmuInstance.cpp @@ -65,10 +65,10 @@ const string kWifiSettingsPath = "wfcsettings.bin"; extern Net net; -EmuInstance::EmuInstance(int inst, std::optional arm9BreakOnStart, std::optional arm7BreakOnStart) : +EmuInstance::EmuInstance(int inst, InstanceStartupOptions options) : #ifdef GDBSTUB_ENABLED - overrideArm9BreakOnStart(arm9BreakOnStart), - overrideArm7BreakOnStart(arm7BreakOnStart), + overrideArm9BreakOnStart(options.arm9BreakOnStart), + overrideArm7BreakOnStart(options.arm7BreakOnStart), #endif deleting(false), instanceID(inst), @@ -155,7 +155,7 @@ EmuInstance::EmuInstance(int inst, std::optional arm9BreakOnStart, std::op } EmuInstance::EmuInstance(int inst) : - EmuInstance(inst, std::nullopt, std::nullopt) + EmuInstance(inst, {}) { } diff --git a/src/frontend/qt_sdl/EmuInstance.h b/src/frontend/qt_sdl/EmuInstance.h index 52851201..71b81836 100644 --- a/src/frontend/qt_sdl/EmuInstance.h +++ b/src/frontend/qt_sdl/EmuInstance.h @@ -21,6 +21,12 @@ #include +struct InstanceStartupOptions +{ + std::optional arm9BreakOnStart; + std::optional arm7BreakOnStart; +}; + #include "main.h" #include "NDS.h" #include "EmuThread.h" @@ -79,7 +85,7 @@ class EmuInstance { public: EmuInstance(int inst); - EmuInstance(int inst, std::optional arm9BreakOnStart, std::optional arm7BreakOnStart); + EmuInstance(int inst, InstanceStartupOptions options); ~EmuInstance(); int getInstanceID() { return instanceID; } diff --git a/src/frontend/qt_sdl/Window.cpp b/src/frontend/qt_sdl/Window.cpp index 5b2aee3f..faaa8645 100644 --- a/src/frontend/qt_sdl/Window.cpp +++ b/src/frontend/qt_sdl/Window.cpp @@ -1688,7 +1688,7 @@ void MainWindow::onOpenTitleManager() void MainWindow::onMPNewInstance() { - createEmuInstance(std::nullopt, std::nullopt); + createEmuInstance({}); } void MainWindow::onLANStartHost() diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp index 12f8696c..0d5b1644 100644 --- a/src/frontend/qt_sdl/main.cpp +++ b/src/frontend/qt_sdl/main.cpp @@ -118,7 +118,7 @@ void NetInit() } -bool createEmuInstance(std::optional arm9BreakOnStartup, std::optional arm7BreakOnStartup) +bool createEmuInstance(InstanceStartupOptions options) { int id = -1; for (int i = 0; i < kMaxEmuInstances; i++) @@ -133,11 +133,7 @@ bool createEmuInstance(std::optional arm9BreakOnStartup, std::optionalarm9BreakOnStartup, options->arm7BreakOnStartup); -#else - createEmuInstance(std::nullopt, std::nullopt); + instanceOptions.arm9BreakOnStart = options->arm9BreakOnStart; + instanceOptions.arm7BreakOnStart = options->arm7BreakOnStart; #endif + createEmuInstance(instanceOptions); + { MainWindow* win = emuInstances[0]->getMainWindow(); bool memberSyntaxUsed = false; diff --git a/src/frontend/qt_sdl/main.h b/src/frontend/qt_sdl/main.h index a0301d73..d5d56c4b 100644 --- a/src/frontend/qt_sdl/main.h +++ b/src/frontend/qt_sdl/main.h @@ -54,7 +54,7 @@ extern QString emuDirectory; extern QElapsedTimer sysTimer; -bool createEmuInstance(std::optional arm9BreakOnStartup, std::optional arm7BreakOnStartup); +bool createEmuInstance(InstanceStartupOptions options); void deleteEmuInstance(int id); void deleteAllEmuInstances(int first = 0); int numEmuInstances();