mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 04:08:55 +00:00
Core: Add support for specifying a command line option to boot the game into a save-state
This commit is contained in:
parent
74b2410d7e
commit
cdf5490d56
3 changed files with 39 additions and 6 deletions
|
@ -156,13 +156,21 @@ int main(int argc, char* argv[])
|
|||
optparse::Values& options = CommandLineParse::ParseArguments(parser.get(), argc, argv);
|
||||
std::vector<std::string> args = parser->args();
|
||||
|
||||
std::optional<std::string> save_state_path;
|
||||
if (options.is_set("save_state"))
|
||||
{
|
||||
save_state_path = static_cast<const char*>(options.get("save_state"));
|
||||
}
|
||||
|
||||
std::unique_ptr<BootParameters> boot;
|
||||
bool game_specified = false;
|
||||
if (options.is_set("exec"))
|
||||
{
|
||||
const std::list<std::string> paths_list = options.all("exec");
|
||||
const std::vector<std::string> paths{std::make_move_iterator(std::begin(paths_list)),
|
||||
std::make_move_iterator(std::end(paths_list))};
|
||||
boot = BootParameters::GenerateFromFile(paths);
|
||||
boot = BootParameters::GenerateFromFile(paths, save_state_path);
|
||||
game_specified = true;
|
||||
}
|
||||
else if (options.is_set("nand_title"))
|
||||
{
|
||||
|
@ -178,8 +186,9 @@ int main(int argc, char* argv[])
|
|||
}
|
||||
else if (args.size())
|
||||
{
|
||||
boot = BootParameters::GenerateFromFile(args.front());
|
||||
boot = BootParameters::GenerateFromFile(args.front(), save_state_path);
|
||||
args.erase(args.begin());
|
||||
game_specified = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -201,6 +210,12 @@ int main(int argc, char* argv[])
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (save_state_path && !game_specified)
|
||||
{
|
||||
fprintf(stderr, "A save state cannot be loaded without specifying a game to launch.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
Core::SetOnStateChangedCallback([](Core::State state) {
|
||||
if (state == Core::State::Uninitialized)
|
||||
s_platform->Stop();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue