mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-23 03:02:04 +00:00
(ovr) add game overrides too
This commit is contained in:
parent
1b91202004
commit
671aa0f59c
@ -1613,7 +1613,7 @@ void command_event_save_current_config(int override_type)
|
||||
bool ret = false;
|
||||
char msg[128] = {0};
|
||||
|
||||
ret = config_save_file_diff(override_type);
|
||||
ret = config_save_overrides(override_type);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -2318,9 +2318,12 @@ bool command_event(enum event_command cmd, void *data)
|
||||
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG:
|
||||
command_event_save_current_config(OVERRIDE_NONE);
|
||||
break;
|
||||
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE:
|
||||
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_CORE:
|
||||
command_event_save_current_config(OVERRIDE_CORE);
|
||||
break;
|
||||
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_GAME:
|
||||
command_event_save_current_config(OVERRIDE_GAME);
|
||||
break;
|
||||
case CMD_EVENT_MENU_SAVE_CONFIG:
|
||||
if (!command_event_save_core_config())
|
||||
return false;
|
||||
|
@ -141,7 +141,8 @@ enum event_command
|
||||
CMD_EVENT_PAUSE,
|
||||
CMD_EVENT_PAUSE_CHECKS,
|
||||
CMD_EVENT_MENU_SAVE_CURRENT_CONFIG,
|
||||
CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE,
|
||||
CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_CORE,
|
||||
CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_GAME,
|
||||
CMD_EVENT_MENU_SAVE_CONFIG,
|
||||
CMD_EVENT_MENU_PAUSE_LIBRETRO,
|
||||
/* Toggles menu on/off. */
|
||||
|
@ -3386,24 +3386,25 @@ bool config_save_file(const char *path)
|
||||
}
|
||||
|
||||
/**
|
||||
* config_save_file:
|
||||
* config_save_overrides:
|
||||
* @path : Path that shall be written to.
|
||||
*
|
||||
* Writes a config file to disk.
|
||||
* Writes a config file override to disk.
|
||||
*
|
||||
* Returns: true (1) on success, otherwise returns false (0).
|
||||
**/
|
||||
bool config_save_file_diff(int override_type)
|
||||
bool config_save_overrides(int override_type)
|
||||
{
|
||||
unsigned i = 0;
|
||||
bool ret = false;
|
||||
char buf[PATH_MAX_LENGTH] = {0};
|
||||
char config_directory[PATH_MAX_LENGTH] = {0};
|
||||
char core_path[PATH_MAX_LENGTH] = {0};
|
||||
char game_path[PATH_MAX_LENGTH] = {0};
|
||||
const char *core_name = NULL;
|
||||
const char *game_name = NULL;
|
||||
config_file_t *conf = NULL;
|
||||
char buf[PATH_MAX_LENGTH] = {0};
|
||||
char config_directory[PATH_MAX_LENGTH] = {0};
|
||||
char override_directory[PATH_MAX_LENGTH] = {0};
|
||||
char core_path[PATH_MAX_LENGTH] = {0};
|
||||
char game_path[PATH_MAX_LENGTH] = {0};
|
||||
const char *core_name = NULL;
|
||||
const char *game_name = NULL;
|
||||
config_file_t *conf = NULL;
|
||||
|
||||
global_t *global = global_get_ptr();
|
||||
settings_t *overrides = config_get_ptr();
|
||||
@ -3454,6 +3455,12 @@ bool config_save_file_diff(int override_type)
|
||||
fill_pathname_application_special(config_directory, sizeof(config_directory),
|
||||
APPLICATION_SPECIAL_DIRECTORY_CONFIG);
|
||||
|
||||
fill_pathname_join(override_directory, config_directory, core_name,
|
||||
sizeof(override_directory));
|
||||
|
||||
if(!path_file_exists(override_directory))
|
||||
path_mkdir(override_directory);
|
||||
|
||||
/* Concatenate strings into full paths for core_path, game_path */
|
||||
fill_pathname_join_special_ext(game_path,
|
||||
config_directory, core_name,
|
||||
@ -3467,36 +3474,20 @@ bool config_save_file_diff(int override_type)
|
||||
file_path_str(FILE_PATH_CONFIG_EXTENSION),
|
||||
sizeof(core_path));
|
||||
|
||||
if (override_type == OVERRIDE_CORE)
|
||||
{
|
||||
RARCH_LOG ("[overrides] path %s\n", core_path);
|
||||
/* Create a new config file from core_path */
|
||||
conf = config_file_new(core_path);
|
||||
}
|
||||
else if(override_type == OVERRIDE_GAME)
|
||||
{
|
||||
RARCH_LOG ("[overrides] path %s\n", game_path);
|
||||
/* Create a new config file from core_path */
|
||||
conf = config_file_new(game_path);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
if (!conf)
|
||||
conf = config_file_new(NULL);
|
||||
|
||||
/* Load the original config file in memory */
|
||||
config_load_file(global->path.config, false, settings);
|
||||
|
||||
bool_settings_size = populate_settings_bool(settings, bool_settings);
|
||||
populate_settings_bool (overrides, bool_overrides);
|
||||
|
||||
int_settings_size = populate_settings_int(settings, int_settings);
|
||||
populate_settings_int (overrides, int_overrides);
|
||||
|
||||
float_settings_size = populate_settings_float(settings, float_settings);
|
||||
populate_settings_float (overrides, float_overrides);
|
||||
|
||||
string_settings_size = populate_settings_string(settings, string_settings);
|
||||
populate_settings_string (overrides, string_overrides);
|
||||
|
||||
path_settings_size = populate_settings_path(settings, path_settings);
|
||||
populate_settings_path (overrides, path_overrides);
|
||||
|
||||
@ -3579,7 +3570,6 @@ bool config_save_file_diff(int override_type)
|
||||
else
|
||||
return false;
|
||||
|
||||
|
||||
free(bool_settings);
|
||||
free(bool_overrides);
|
||||
free(int_settings);
|
||||
|
@ -658,14 +658,14 @@ bool config_save_autoconf_profile(const char *path, unsigned user);
|
||||
bool config_save_file(const char *path);
|
||||
|
||||
/**
|
||||
* config_save_file_diff:
|
||||
* config_save_overrides:
|
||||
* @path : Path that shall be written to.
|
||||
*
|
||||
* Writes a config file override to disk.
|
||||
*
|
||||
* Returns: true (1) on success, otherwise returns false (0).
|
||||
**/
|
||||
bool config_save_file_diff(int override_type);
|
||||
bool config_save_overrides(int override_type);
|
||||
|
||||
/* Replaces currently loaded configuration file with
|
||||
* another one. Will load a dummy core to flush state
|
||||
|
@ -2064,8 +2064,10 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg)
|
||||
return "input_small_keyboard_enable";
|
||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG:
|
||||
return "save_current_config";
|
||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE:
|
||||
return "save_current_config_override";
|
||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE:
|
||||
return "save_current_config_override_core";
|
||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME:
|
||||
return "save_current_config_override_game";
|
||||
case MENU_ENUM_LABEL_STATE_SLOT:
|
||||
return "state_slot";
|
||||
case MENU_ENUM_LABEL_CHEEVOS_USERNAME:
|
||||
@ -3441,8 +3443,10 @@ const char *msg_hash_to_str_us(enum msg_hash_enums msg)
|
||||
return "Keyboard Gamepad Mapping Type";
|
||||
case MENU_ENUM_LABEL_VALUE_INPUT_SMALL_KEYBOARD_ENABLE:
|
||||
return "Small Keyboard Enable";
|
||||
case MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE:
|
||||
case MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE:
|
||||
return "Save Core Overrides";
|
||||
case MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_GAME:
|
||||
return "Save Game Overrides";
|
||||
case MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG:
|
||||
return "Save Current Config";
|
||||
case MENU_ENUM_LABEL_VALUE_STATE_SLOT:
|
||||
|
@ -4374,7 +4374,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
|
||||
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG,
|
||||
PARSE_ACTION, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE,
|
||||
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE,
|
||||
PARSE_ACTION, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME,
|
||||
PARSE_ACTION, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_SAVE_NEW_CONFIG,
|
||||
|
@ -4165,13 +4165,23 @@ static bool setting_append_list(
|
||||
|
||||
CONFIG_ACTION(
|
||||
list, list_info,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE),
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group);
|
||||
menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE);
|
||||
menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_CORE);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE);
|
||||
|
||||
CONFIG_ACTION(
|
||||
list, list_info,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_GAME),
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group);
|
||||
menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_GAME);
|
||||
menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME);
|
||||
|
||||
CONFIG_ACTION(
|
||||
list, list_info,
|
||||
|
@ -1773,9 +1773,11 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC,
|
||||
|
||||
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG,
|
||||
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE,
|
||||
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE,
|
||||
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME,
|
||||
MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG,
|
||||
MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE,
|
||||
MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE,
|
||||
MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_GAME,
|
||||
|
||||
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_SCREENSHOTS,
|
||||
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_TITLE_SCREENS,
|
||||
|
Loading…
x
Reference in New Issue
Block a user