mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-02-21 12:01:53 +00:00
Move global->name.base to paths.c
This commit is contained in:
parent
64b802b47a
commit
5c97d5b46b
@ -2080,7 +2080,7 @@ static bool config_load_file(const char *path, bool set_defaults,
|
||||
strlcpy(global->name.savefile, tmp_str,
|
||||
sizeof(global->name.savefile));
|
||||
fill_pathname_dir(global->name.savefile,
|
||||
global->name.base,
|
||||
path_get_basename(),
|
||||
file_path_str(FILE_PATH_SRM_EXTENSION),
|
||||
sizeof(global->name.savefile));
|
||||
}
|
||||
@ -2100,7 +2100,7 @@ static bool config_load_file(const char *path, bool set_defaults,
|
||||
strlcpy(global->name.savestate, tmp_str,
|
||||
sizeof(global->name.savestate));
|
||||
fill_pathname_dir(global->name.savestate,
|
||||
global->name.base,
|
||||
path_get_basename(),
|
||||
file_path_str(FILE_PATH_STATE_EXTENSION),
|
||||
sizeof(global->name.savestate));
|
||||
}
|
||||
@ -2161,8 +2161,7 @@ bool config_load_override(void)
|
||||
|
||||
if (system)
|
||||
core_name = system->info.library_name;
|
||||
if (global)
|
||||
game_name = path_basename(global->name.base);
|
||||
game_name = path_basename(path_get_basename());
|
||||
|
||||
if (string_is_empty(core_name) || string_is_empty(game_name))
|
||||
return false;
|
||||
@ -2232,7 +2231,7 @@ bool config_load_override(void)
|
||||
|
||||
/* Re-load the configuration with any overrides that might have been found */
|
||||
#ifdef HAVE_NETPLAY
|
||||
if (global->netplay.enable)
|
||||
if (global && global->netplay.enable)
|
||||
{
|
||||
RARCH_WARN("[overrides] can't use overrides in conjunction with netplay, disabling overrides.\n");
|
||||
return false;
|
||||
@ -2315,7 +2314,6 @@ bool config_load_remap(void)
|
||||
config_file_t *new_conf = NULL;
|
||||
const char *core_name = NULL;
|
||||
const char *game_name = NULL;
|
||||
global_t *global = global_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
rarch_system_info_t *system = NULL;
|
||||
|
||||
@ -2323,8 +2321,8 @@ bool config_load_remap(void)
|
||||
|
||||
if (system)
|
||||
core_name = system->info.library_name;
|
||||
if (global)
|
||||
game_name = path_basename(global->name.base);
|
||||
|
||||
game_name = path_basename(path_get_basename());
|
||||
|
||||
if (string_is_empty(core_name) || string_is_empty(game_name))
|
||||
return false;
|
||||
@ -2438,7 +2436,6 @@ bool config_load_shader_preset(void)
|
||||
char game_path[PATH_MAX_LENGTH] = {0}; /* final path for game-specific configuration (prefix+suffix) */
|
||||
const char *core_name = NULL;
|
||||
const char *game_name = NULL;
|
||||
global_t *global = global_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
rarch_system_info_t *system = NULL;
|
||||
|
||||
@ -2446,8 +2443,8 @@ bool config_load_shader_preset(void)
|
||||
|
||||
if (system)
|
||||
core_name = system->info.library_name;
|
||||
if (global)
|
||||
game_name = path_basename(global->name.base);
|
||||
|
||||
game_name = path_basename(path_get_basename());
|
||||
|
||||
if (string_is_empty(core_name) || string_is_empty(game_name))
|
||||
return false;
|
||||
@ -3029,7 +3026,6 @@ bool config_save_overrides(int override_type)
|
||||
const char *game_name = NULL;
|
||||
config_file_t *conf = NULL;
|
||||
settings_t *settings = NULL;
|
||||
global_t *global = global_get_ptr();
|
||||
settings_t *overrides = config_get_ptr();
|
||||
rarch_system_info_t *system = NULL;
|
||||
struct config_bool_setting *bool_settings = NULL;
|
||||
@ -3047,8 +3043,8 @@ bool config_save_overrides(int override_type)
|
||||
|
||||
if (system)
|
||||
core_name = system->info.library_name;
|
||||
if (global)
|
||||
game_name = path_basename(global->name.base);
|
||||
|
||||
game_name = path_basename(path_get_basename());
|
||||
|
||||
if (string_is_empty(core_name) || string_is_empty(game_name))
|
||||
return false;
|
||||
|
@ -1335,8 +1335,8 @@ static void menu_action_setting_disp_set_label_core_option_create(
|
||||
|
||||
strlcpy(s, "", len);
|
||||
|
||||
if (!string_is_empty(global->name.base))
|
||||
strlcpy(s, path_basename(global->name.base), len);
|
||||
if (!string_is_empty(path_get_basename()))
|
||||
strlcpy(s, path_basename(path_get_basename()), len);
|
||||
|
||||
strlcpy(s2, path, len2);
|
||||
}
|
||||
|
@ -1590,8 +1590,7 @@ static int generic_action_ok_shader_preset_save(const char *path,
|
||||
break;
|
||||
case ACTION_OK_SHADER_PRESET_SAVE_GAME:
|
||||
{
|
||||
global_t *global = global_get_ptr();
|
||||
const char *game_name = path_basename(global->name.base);
|
||||
const char *game_name = path_basename(path_get_basename());
|
||||
fill_pathname_join(file, directory, game_name, sizeof(file));
|
||||
}
|
||||
break;
|
||||
@ -1699,8 +1698,7 @@ static int generic_action_ok_remap_file_save(const char *path,
|
||||
break;
|
||||
case ACTION_OK_REMAP_FILE_SAVE_GAME:
|
||||
{
|
||||
global_t *global = global_get_ptr();
|
||||
const char *game_name = path_basename(global->name.base);
|
||||
const char *game_name = path_basename(path_get_basename());
|
||||
fill_pathname_join(file, core_name, game_name, sizeof(file));
|
||||
}
|
||||
break;
|
||||
|
53
paths.c
53
paths.c
@ -43,6 +43,8 @@
|
||||
|
||||
#define MENU_VALUE_NO_CORE 0x7d5472cbU
|
||||
|
||||
static char path_main_basename[PATH_MAX_LENGTH] = {0}
|
||||
;
|
||||
static char current_savefile_dir[PATH_MAX_LENGTH] = {0};
|
||||
static char path_libretro[PATH_MAX_LENGTH] = {0};
|
||||
static char path_config_file[PATH_MAX_LENGTH] = {0};
|
||||
@ -152,7 +154,7 @@ void path_set_redirect(void)
|
||||
/* Set savefile directory if empty based on content directory */
|
||||
if (string_is_empty(current_savefile_dir))
|
||||
{
|
||||
strlcpy(current_savefile_dir, global->name.base,
|
||||
strlcpy(current_savefile_dir, path_main_basename,
|
||||
sizeof(current_savefile_dir));
|
||||
path_basedir(current_savefile_dir);
|
||||
}
|
||||
@ -167,7 +169,7 @@ void path_set_redirect(void)
|
||||
|
||||
if (path_is_directory(global->name.savefile))
|
||||
{
|
||||
fill_pathname_dir(global->name.savefile, global->name.base,
|
||||
fill_pathname_dir(global->name.savefile, path_main_basename,
|
||||
file_path_str(FILE_PATH_SRM_EXTENSION),
|
||||
sizeof(global->name.savefile));
|
||||
RARCH_LOG("%s \"%s\".\n",
|
||||
@ -177,7 +179,7 @@ void path_set_redirect(void)
|
||||
|
||||
if (path_is_directory(global->name.savestate))
|
||||
{
|
||||
fill_pathname_dir(global->name.savestate, global->name.base,
|
||||
fill_pathname_dir(global->name.savestate, path_main_basename,
|
||||
file_path_str(FILE_PATH_STATE_EXTENSION),
|
||||
sizeof(global->name.savestate));
|
||||
RARCH_LOG("%s \"%s\".\n",
|
||||
@ -187,7 +189,7 @@ void path_set_redirect(void)
|
||||
|
||||
if (path_is_directory(global->name.cheatfile))
|
||||
{
|
||||
fill_pathname_dir(global->name.cheatfile, global->name.base,
|
||||
fill_pathname_dir(global->name.cheatfile, path_main_basename,
|
||||
file_path_str(FILE_PATH_STATE_EXTENSION),
|
||||
sizeof(global->name.cheatfile));
|
||||
RARCH_LOG("%s \"%s\".\n",
|
||||
@ -199,10 +201,9 @@ void path_set_redirect(void)
|
||||
void path_set_basename(const char *path)
|
||||
{
|
||||
char *dst = NULL;
|
||||
global_t *global = global_get_ptr();
|
||||
|
||||
runloop_ctl(RUNLOOP_CTL_SET_CONTENT_PATH, (void*)path);
|
||||
strlcpy(global->name.base, path, sizeof(global->name.base));
|
||||
strlcpy(path_main_basename, path, sizeof(path_main_basename));
|
||||
|
||||
#ifdef HAVE_COMPRESSION
|
||||
/* Removing extension is a bit tricky for compressed files.
|
||||
@ -224,11 +225,11 @@ void path_set_basename(const char *path)
|
||||
* directory then and the name of srm and states are meaningful.
|
||||
*
|
||||
*/
|
||||
path_basedir(global->name.base);
|
||||
fill_pathname_dir(global->name.base, path, "", sizeof(global->name.base));
|
||||
path_basedir(path_main_basename);
|
||||
fill_pathname_dir(path_main_basename, path, "", sizeof(path_main_basename));
|
||||
#endif
|
||||
|
||||
if ((dst = strrchr(global->name.base, '.')))
|
||||
if ((dst = strrchr(path_main_basename, '.')))
|
||||
*dst = '\0';
|
||||
}
|
||||
|
||||
@ -265,13 +266,13 @@ void path_set_special(char **argv, unsigned num_content)
|
||||
* It is more complicated for special content types. */
|
||||
|
||||
if (!retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_STATE_PATH))
|
||||
fill_pathname_noext(global->name.savestate, global->name.base,
|
||||
fill_pathname_noext(global->name.savestate, path_main_basename,
|
||||
file_path_str(FILE_PATH_STATE_EXTENSION),
|
||||
sizeof(global->name.savestate));
|
||||
|
||||
if (path_is_directory(global->name.savestate))
|
||||
{
|
||||
fill_pathname_dir(global->name.savestate, global->name.base,
|
||||
fill_pathname_dir(global->name.savestate, path_main_basename,
|
||||
file_path_str(FILE_PATH_STATE_EXTENSION),
|
||||
sizeof(global->name.savestate));
|
||||
RARCH_LOG("%s \"%s\".\n",
|
||||
@ -345,14 +346,14 @@ void path_init_savefile(void)
|
||||
/* Let other relevant paths be inferred from the main SRAM location. */
|
||||
if (!retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_SAVE_PATH))
|
||||
fill_pathname_noext(global->name.savefile,
|
||||
global->name.base,
|
||||
path_main_basename,
|
||||
file_path_str(FILE_PATH_SRM_EXTENSION),
|
||||
sizeof(global->name.savefile));
|
||||
|
||||
if (path_is_directory(global->name.savefile))
|
||||
{
|
||||
fill_pathname_dir(global->name.savefile,
|
||||
global->name.base,
|
||||
path_main_basename,
|
||||
file_path_str(FILE_PATH_SRM_EXTENSION),
|
||||
sizeof(global->name.savefile));
|
||||
RARCH_LOG("%s \"%s\".\n",
|
||||
@ -385,14 +386,14 @@ void path_set_names(const char *path)
|
||||
path_set_basename(path);
|
||||
|
||||
if (!retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_SAVE_PATH))
|
||||
fill_pathname_noext(global->name.savefile, global->name.base,
|
||||
fill_pathname_noext(global->name.savefile, path_main_basename,
|
||||
file_path_str(FILE_PATH_SRM_EXTENSION), sizeof(global->name.savefile));
|
||||
|
||||
if (!retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_STATE_PATH))
|
||||
fill_pathname_noext(global->name.savestate, global->name.base,
|
||||
fill_pathname_noext(global->name.savestate, path_main_basename,
|
||||
file_path_str(FILE_PATH_STATE_EXTENSION), sizeof(global->name.savestate));
|
||||
|
||||
fill_pathname_noext(global->name.cheatfile, global->name.base,
|
||||
fill_pathname_noext(global->name.cheatfile, path_main_basename,
|
||||
file_path_str(FILE_PATH_CHT_EXTENSION), sizeof(global->name.cheatfile));
|
||||
|
||||
path_set_redirect();
|
||||
@ -405,27 +406,32 @@ void path_fill_names(void)
|
||||
path_init_savefile();
|
||||
bsv_movie_set_path(global->name.savefile);
|
||||
|
||||
if (string_is_empty(global->name.base))
|
||||
if (string_is_empty(path_main_basename))
|
||||
return;
|
||||
|
||||
if (string_is_empty(global->name.ups))
|
||||
fill_pathname_noext(global->name.ups, global->name.base,
|
||||
fill_pathname_noext(global->name.ups, path_main_basename,
|
||||
file_path_str(FILE_PATH_UPS_EXTENSION),
|
||||
sizeof(global->name.ups));
|
||||
|
||||
if (string_is_empty(global->name.bps))
|
||||
fill_pathname_noext(global->name.bps, global->name.base,
|
||||
fill_pathname_noext(global->name.bps, path_main_basename,
|
||||
file_path_str(FILE_PATH_BPS_EXTENSION),
|
||||
sizeof(global->name.bps));
|
||||
|
||||
if (string_is_empty(global->name.ips))
|
||||
fill_pathname_noext(global->name.ips, global->name.base,
|
||||
fill_pathname_noext(global->name.ips, path_main_basename,
|
||||
file_path_str(FILE_PATH_IPS_EXTENSION),
|
||||
sizeof(global->name.ips));
|
||||
}
|
||||
|
||||
/* Core file path */
|
||||
|
||||
const char *path_get_basename(void)
|
||||
{
|
||||
return path_main_basename;
|
||||
}
|
||||
|
||||
char *path_get_core_ptr(void)
|
||||
{
|
||||
return path_libretro;
|
||||
@ -484,6 +490,11 @@ void path_clear_config(void)
|
||||
*path_config_file = '\0';
|
||||
}
|
||||
|
||||
void path_clear_basename(void)
|
||||
{
|
||||
*path_main_basename = '\0';
|
||||
}
|
||||
|
||||
/* Core options file path */
|
||||
|
||||
bool path_is_core_options_empty(void)
|
||||
@ -545,6 +556,8 @@ void path_clear_all(void)
|
||||
path_clear_config();
|
||||
path_clear_config_append();
|
||||
path_clear_core_options();
|
||||
|
||||
path_clear_basename();
|
||||
}
|
||||
|
||||
enum rarch_content_type path_is_media_type(const char *path)
|
||||
|
4
paths.h
4
paths.h
@ -67,6 +67,8 @@ char *path_get_core_ptr(void);
|
||||
|
||||
const char *path_get_current_savefile_dir(void);
|
||||
|
||||
const char *path_get_basename(void);
|
||||
|
||||
const char *path_get_core(void);
|
||||
|
||||
const char *path_get_core_options(void);
|
||||
@ -77,6 +79,8 @@ const char *path_get_config_append(void);
|
||||
|
||||
/* clear functions */
|
||||
|
||||
void path_clear_basename(void);
|
||||
|
||||
void path_clear_core(void);
|
||||
|
||||
void path_clear_config(void);
|
||||
|
@ -882,14 +882,13 @@ bool retroarch_validate_game_options(char *s, size_t len, bool mkdir)
|
||||
const char *core_name = NULL;
|
||||
const char *game_name = NULL;
|
||||
rarch_system_info_t *system = NULL;
|
||||
global_t *global = global_get_ptr();
|
||||
|
||||
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
|
||||
|
||||
if (system)
|
||||
core_name = system->info.library_name;
|
||||
if (global)
|
||||
game_name = path_basename(global->name.base);
|
||||
|
||||
game_name = path_basename(path_get_basename());
|
||||
|
||||
if (string_is_empty(core_name) || string_is_empty(game_name))
|
||||
return false;
|
||||
|
@ -157,7 +157,6 @@ typedef struct global
|
||||
|
||||
struct
|
||||
{
|
||||
char base[PATH_MAX_LENGTH];
|
||||
char savefile[PATH_MAX_LENGTH];
|
||||
char savestate[PATH_MAX_LENGTH];
|
||||
char cheatfile[PATH_MAX_LENGTH];
|
||||
|
@ -47,6 +47,7 @@
|
||||
#include "../defaults.h"
|
||||
#include "../configuration.h"
|
||||
#include "../runloop.h"
|
||||
#include "../paths.h"
|
||||
#include "../msg_hash.h"
|
||||
|
||||
#include "../gfx/video_driver.h"
|
||||
@ -281,8 +282,7 @@ static bool take_screenshot_choice(const char *global_name_base)
|
||||
**/
|
||||
bool take_screenshot(void)
|
||||
{
|
||||
global_t *global = global_get_ptr();
|
||||
char *name_base = strdup(global->name.base);
|
||||
char *name_base = strdup(path_get_basename());
|
||||
bool is_paused = runloop_ctl(RUNLOOP_CTL_IS_PAUSED, NULL);
|
||||
bool ret = take_screenshot_choice(name_base);
|
||||
const char *msg_screenshot = ret
|
||||
|
Loading…
x
Reference in New Issue
Block a user