(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;
|
bool ret = false;
|
||||||
char msg[128] = {0};
|
char msg[128] = {0};
|
||||||
|
|
||||||
ret = config_save_file_diff(override_type);
|
ret = config_save_overrides(override_type);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2318,9 +2318,12 @@ bool command_event(enum event_command cmd, void *data)
|
||||||
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG:
|
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG:
|
||||||
command_event_save_current_config(OVERRIDE_NONE);
|
command_event_save_current_config(OVERRIDE_NONE);
|
||||||
break;
|
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);
|
command_event_save_current_config(OVERRIDE_CORE);
|
||||||
break;
|
break;
|
||||||
|
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_GAME:
|
||||||
|
command_event_save_current_config(OVERRIDE_GAME);
|
||||||
|
break;
|
||||||
case CMD_EVENT_MENU_SAVE_CONFIG:
|
case CMD_EVENT_MENU_SAVE_CONFIG:
|
||||||
if (!command_event_save_core_config())
|
if (!command_event_save_core_config())
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -141,7 +141,8 @@ enum event_command
|
||||||
CMD_EVENT_PAUSE,
|
CMD_EVENT_PAUSE,
|
||||||
CMD_EVENT_PAUSE_CHECKS,
|
CMD_EVENT_PAUSE_CHECKS,
|
||||||
CMD_EVENT_MENU_SAVE_CURRENT_CONFIG,
|
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_SAVE_CONFIG,
|
||||||
CMD_EVENT_MENU_PAUSE_LIBRETRO,
|
CMD_EVENT_MENU_PAUSE_LIBRETRO,
|
||||||
/* Toggles menu on/off. */
|
/* Toggles menu on/off. */
|
||||||
|
|
|
@ -3386,19 +3386,20 @@ bool config_save_file(const char *path)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* config_save_file:
|
* config_save_overrides:
|
||||||
* @path : Path that shall be written to.
|
* @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).
|
* 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;
|
unsigned i = 0;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
char buf[PATH_MAX_LENGTH] = {0};
|
char buf[PATH_MAX_LENGTH] = {0};
|
||||||
char config_directory[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 core_path[PATH_MAX_LENGTH] = {0};
|
||||||
char game_path[PATH_MAX_LENGTH] = {0};
|
char game_path[PATH_MAX_LENGTH] = {0};
|
||||||
const char *core_name = NULL;
|
const char *core_name = NULL;
|
||||||
|
@ -3454,6 +3455,12 @@ bool config_save_file_diff(int override_type)
|
||||||
fill_pathname_application_special(config_directory, sizeof(config_directory),
|
fill_pathname_application_special(config_directory, sizeof(config_directory),
|
||||||
APPLICATION_SPECIAL_DIRECTORY_CONFIG);
|
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 */
|
/* Concatenate strings into full paths for core_path, game_path */
|
||||||
fill_pathname_join_special_ext(game_path,
|
fill_pathname_join_special_ext(game_path,
|
||||||
config_directory, core_name,
|
config_directory, core_name,
|
||||||
|
@ -3467,36 +3474,20 @@ bool config_save_file_diff(int override_type)
|
||||||
file_path_str(FILE_PATH_CONFIG_EXTENSION),
|
file_path_str(FILE_PATH_CONFIG_EXTENSION),
|
||||||
sizeof(core_path));
|
sizeof(core_path));
|
||||||
|
|
||||||
if (override_type == OVERRIDE_CORE)
|
if (!conf)
|
||||||
{
|
conf = config_file_new(NULL);
|
||||||
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;
|
|
||||||
|
|
||||||
/* Load the original config file in memory */
|
/* Load the original config file in memory */
|
||||||
config_load_file(global->path.config, false, settings);
|
config_load_file(global->path.config, false, settings);
|
||||||
|
|
||||||
bool_settings_size = populate_settings_bool(settings, bool_settings);
|
bool_settings_size = populate_settings_bool(settings, bool_settings);
|
||||||
populate_settings_bool (overrides, bool_overrides);
|
populate_settings_bool (overrides, bool_overrides);
|
||||||
|
|
||||||
int_settings_size = populate_settings_int(settings, int_settings);
|
int_settings_size = populate_settings_int(settings, int_settings);
|
||||||
populate_settings_int (overrides, int_overrides);
|
populate_settings_int (overrides, int_overrides);
|
||||||
|
|
||||||
float_settings_size = populate_settings_float(settings, float_settings);
|
float_settings_size = populate_settings_float(settings, float_settings);
|
||||||
populate_settings_float (overrides, float_overrides);
|
populate_settings_float (overrides, float_overrides);
|
||||||
|
|
||||||
string_settings_size = populate_settings_string(settings, string_settings);
|
string_settings_size = populate_settings_string(settings, string_settings);
|
||||||
populate_settings_string (overrides, string_overrides);
|
populate_settings_string (overrides, string_overrides);
|
||||||
|
|
||||||
path_settings_size = populate_settings_path(settings, path_settings);
|
path_settings_size = populate_settings_path(settings, path_settings);
|
||||||
populate_settings_path (overrides, path_overrides);
|
populate_settings_path (overrides, path_overrides);
|
||||||
|
|
||||||
|
@ -3579,7 +3570,6 @@ bool config_save_file_diff(int override_type)
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
||||||
free(bool_settings);
|
free(bool_settings);
|
||||||
free(bool_overrides);
|
free(bool_overrides);
|
||||||
free(int_settings);
|
free(int_settings);
|
||||||
|
|
|
@ -658,14 +658,14 @@ bool config_save_autoconf_profile(const char *path, unsigned user);
|
||||||
bool config_save_file(const char *path);
|
bool config_save_file(const char *path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* config_save_file_diff:
|
* config_save_overrides:
|
||||||
* @path : Path that shall be written to.
|
* @path : Path that shall be written to.
|
||||||
*
|
*
|
||||||
* Writes a config file override to disk.
|
* Writes a config file override to disk.
|
||||||
*
|
*
|
||||||
* Returns: true (1) on success, otherwise returns false (0).
|
* 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
|
/* Replaces currently loaded configuration file with
|
||||||
* another one. Will load a dummy core to flush state
|
* 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";
|
return "input_small_keyboard_enable";
|
||||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG:
|
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG:
|
||||||
return "save_current_config";
|
return "save_current_config";
|
||||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE:
|
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE:
|
||||||
return "save_current_config_override";
|
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:
|
case MENU_ENUM_LABEL_STATE_SLOT:
|
||||||
return "state_slot";
|
return "state_slot";
|
||||||
case MENU_ENUM_LABEL_CHEEVOS_USERNAME:
|
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";
|
return "Keyboard Gamepad Mapping Type";
|
||||||
case MENU_ENUM_LABEL_VALUE_INPUT_SMALL_KEYBOARD_ENABLE:
|
case MENU_ENUM_LABEL_VALUE_INPUT_SMALL_KEYBOARD_ENABLE:
|
||||||
return "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";
|
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:
|
case MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG:
|
||||||
return "Save Current Config";
|
return "Save Current Config";
|
||||||
case MENU_ENUM_LABEL_VALUE_STATE_SLOT:
|
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,
|
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG,
|
||||||
PARSE_ACTION, false);
|
PARSE_ACTION, false);
|
||||||
menu_displaylist_parse_settings_enum(menu, info,
|
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);
|
PARSE_ACTION, false);
|
||||||
menu_displaylist_parse_settings_enum(menu, info,
|
menu_displaylist_parse_settings_enum(menu, info,
|
||||||
MENU_ENUM_LABEL_SAVE_NEW_CONFIG,
|
MENU_ENUM_LABEL_SAVE_NEW_CONFIG,
|
||||||
|
|
|
@ -4165,13 +4165,23 @@ static bool setting_append_list(
|
||||||
|
|
||||||
CONFIG_ACTION(
|
CONFIG_ACTION(
|
||||||
list, list_info,
|
list, list_info,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_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),
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE),
|
||||||
&group_info,
|
&group_info,
|
||||||
&subgroup_info,
|
&subgroup_info,
|
||||||
parent_group);
|
parent_group);
|
||||||
menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_MENU_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);
|
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(
|
CONFIG_ACTION(
|
||||||
list, list_info,
|
list, list_info,
|
||||||
|
|
|
@ -1773,9 +1773,11 @@ enum msg_hash_enums
|
||||||
MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC,
|
MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC,
|
||||||
|
|
||||||
MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG,
|
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,
|
||||||
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_SCREENSHOTS,
|
||||||
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_TITLE_SCREENS,
|
MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_TITLE_SCREENS,
|
||||||
|
|
Loading…
Reference in New Issue