Improve Restart function

Don't erase boot args
Should now work correctly with game launchers
This commit is contained in:
Nekotekina 2018-01-03 00:45:52 +03:00
parent 7050575fdb
commit af3e1fc580
4 changed files with 14 additions and 7 deletions

View file

@ -920,7 +920,7 @@ void Emulator::Resume()
GetCallbacks().on_resume();
}
void Emulator::Stop()
void Emulator::Stop(bool restart)
{
if (m_state.exchange(system_state::stopped) == system_state::stopped)
{
@ -928,7 +928,7 @@ void Emulator::Stop()
return;
}
const bool do_exit = !m_force_boot && g_cfg.misc.autoexit;
const bool do_exit = !restart && !m_force_boot && g_cfg.misc.autoexit;
LOG_NOTICE(GENERAL, "Stopping emulator...");
@ -992,6 +992,12 @@ void Emulator::Stop()
jit_finalize();
#endif
if (restart)
{
return Load();
}
// Boot arg cleanup (preserved in the case restarting)
argv.clear();
envp.clear();
data.clear();