diff --git a/command_event.c b/command_event.c index c1e433596f..b1cb20cd35 100644 --- a/command_event.c +++ b/command_event.c @@ -218,7 +218,7 @@ static bool event_disk_control_append_image(const char *path) * If we actually use append_image, we assume that we * started out in a single disk case, and that this way * of doing it makes the most sense. */ - rarch_set_paths(path); + rarch_ctl(RARCH_CTL_SET_PATHS, (void*)path); rarch_ctl(RARCH_CTL_FILL_PATHNAMES, NULL); } diff --git a/retroarch.c b/retroarch.c index 476b56178c..fd09a95e06 100644 --- a/retroarch.c +++ b/retroarch.c @@ -524,23 +524,6 @@ static void set_paths_redirect(const char *path) } } -void rarch_set_paths(const char *path) -{ - global_t *global = global_get_ptr(); - - set_basename(path); - - if (!global->has_set.save_path) - fill_pathname_noext(global->name.savefile, global->name.base, - ".srm", sizeof(global->name.savefile)); - if (!global->has_set.state_path) - fill_pathname_noext(global->name.savestate, global->name.base, - ".state", sizeof(global->name.savestate)); - fill_pathname_noext(global->name.cheatfile, global->name.base, - ".cht", sizeof(global->name.cheatfile)); - - set_paths_redirect(path); -} enum rarch_content_type rarch_path_is_media_type(const char *path) @@ -1013,7 +996,7 @@ static void parse_input(int argc, char *argv[]) } } else if (!*global->subsystem && optind < argc) - rarch_set_paths(argv[optind]); + rarch_ctl(RARCH_CTL_SET_PATHS, (void*)argv[optind]); else if (*global->subsystem && optind < argc) set_special_paths(argv + optind, argc - optind); else @@ -1306,6 +1289,20 @@ bool rarch_ctl(enum rarch_ctl_state state, void *data) switch(state) { + case RARCH_CTL_SET_PATHS: + set_basename((const char*)data); + + if (!global->has_set.save_path) + fill_pathname_noext(global->name.savefile, global->name.base, + ".srm", sizeof(global->name.savefile)); + if (!global->has_set.state_path) + fill_pathname_noext(global->name.savestate, global->name.base, + ".state", sizeof(global->name.savestate)); + fill_pathname_noext(global->name.cheatfile, global->name.base, + ".cht", sizeof(global->name.cheatfile)); + + set_paths_redirect((const char*)data); + break; case RARCH_CTL_IS_PLAIN_CORE: return (current_core_type == CORE_TYPE_PLAIN); case RARCH_CTL_IS_DUMMY_CORE: diff --git a/retroarch.h b/retroarch.h index ff5824fba1..74e1c46e00 100644 --- a/retroarch.h +++ b/retroarch.h @@ -106,6 +106,8 @@ enum rarch_ctl_state RARCH_CTL_SET_SRAM_ENABLE, + RARCH_CTL_SET_PATHS, + RARCH_CTL_SET_FORCE_FULLSCREEN, RARCH_CTL_UNSET_FORCE_FULLSCREEN, @@ -173,8 +175,6 @@ int rarch_main_init(int argc, char *argv[]); **/ void rarch_main_deinit(void); -void rarch_set_paths(const char *path); - int rarch_info_get_capabilities(enum rarch_capabilities type, char *s, size_t len);