mirror of
https://github.com/libretro/RetroArch
synced 2025-02-04 03:40:03 +00:00
Preserve sram/state dir on reentrancy.
This commit is contained in:
parent
db183b5d97
commit
fa5e8b646c
@ -61,8 +61,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
args.verbose = g_extern.verbose;
|
args.verbose = g_extern.verbose;
|
||||||
args.config_path = *g_extern.config_path ? g_extern.config_path : NULL;
|
args.config_path = *g_extern.config_path ? g_extern.config_path : NULL;
|
||||||
args.sram_path = NULL;
|
args.sram_path = *g_extern.savefile_dir ? g_extern.savefile_dir : NULL;
|
||||||
args.state_path = NULL;
|
args.state_path = *g_extern.savestate_dir ? g_extern.savestate_dir : NULL;
|
||||||
args.rom_path = g_extern.fullpath;
|
args.rom_path = g_extern.fullpath;
|
||||||
args.libretro_path = g_settings.libretro;
|
args.libretro_path = g_settings.libretro;
|
||||||
|
|
||||||
|
@ -342,6 +342,10 @@ struct global
|
|||||||
char savestate_name[PATH_MAX];
|
char savestate_name[PATH_MAX];
|
||||||
char xml_name[PATH_MAX];
|
char xml_name[PATH_MAX];
|
||||||
|
|
||||||
|
// Used on reentrancy to use a savestate dir.
|
||||||
|
char savefile_dir[PATH_MAX];
|
||||||
|
char savestate_dir[PATH_MAX];
|
||||||
|
|
||||||
bool block_patch;
|
bool block_patch;
|
||||||
bool ups_pref;
|
bool ups_pref;
|
||||||
bool bps_pref;
|
bool bps_pref;
|
||||||
|
@ -1178,6 +1178,12 @@ static void parse_input(int argc, char *argv[])
|
|||||||
set_paths(argv[optind]);
|
set_paths(argv[optind]);
|
||||||
else
|
else
|
||||||
verify_stdin_paths();
|
verify_stdin_paths();
|
||||||
|
|
||||||
|
// Copy SRM/state dirs used, so they can be reused on reentrancy.
|
||||||
|
if (g_extern.has_set_save_path && path_is_directory(g_extern.savefile_name_srm))
|
||||||
|
strlcpy(g_extern.savefile_dir, g_extern.savefile_name_srm, sizeof(g_extern.savefile_dir));
|
||||||
|
if (g_extern.has_set_state_path && path_is_directory(g_extern.savestate_name))
|
||||||
|
strlcpy(g_extern.savestate_dir, g_extern.savestate_name, sizeof(g_extern.savestate_dir));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void init_controllers(void)
|
static void init_controllers(void)
|
||||||
|
@ -668,6 +668,7 @@ bool config_load_file(const char *path)
|
|||||||
{
|
{
|
||||||
if (path_is_directory(tmp_str))
|
if (path_is_directory(tmp_str))
|
||||||
{
|
{
|
||||||
|
strlcpy(g_extern.savefile_dir, tmp_str, sizeof(g_extern.savefile_dir));
|
||||||
strlcpy(g_extern.savefile_name_srm, tmp_str, sizeof(g_extern.savefile_name_srm));
|
strlcpy(g_extern.savefile_name_srm, tmp_str, sizeof(g_extern.savefile_name_srm));
|
||||||
fill_pathname_dir(g_extern.savefile_name_srm, g_extern.basename, ".srm", sizeof(g_extern.savefile_name_srm));
|
fill_pathname_dir(g_extern.savefile_name_srm, g_extern.basename, ".srm", sizeof(g_extern.savefile_name_srm));
|
||||||
}
|
}
|
||||||
@ -679,6 +680,7 @@ bool config_load_file(const char *path)
|
|||||||
{
|
{
|
||||||
if (path_is_directory(tmp_str))
|
if (path_is_directory(tmp_str))
|
||||||
{
|
{
|
||||||
|
strlcpy(g_extern.savestate_dir, tmp_str, sizeof(g_extern.savestate_dir));
|
||||||
strlcpy(g_extern.savestate_name, tmp_str, sizeof(g_extern.savestate_name));
|
strlcpy(g_extern.savestate_name, tmp_str, sizeof(g_extern.savestate_name));
|
||||||
fill_pathname_dir(g_extern.savestate_name, g_extern.basename, ".state", sizeof(g_extern.savestate_name));
|
fill_pathname_dir(g_extern.savestate_name, g_extern.basename, ".state", sizeof(g_extern.savestate_name));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user