diff --git a/command.c b/command.c index 7989a0c466..e859ff59f2 100644 --- a/command.c +++ b/command.c @@ -1567,8 +1567,11 @@ static bool command_event_save_core_config(void) * Saves current configuration file to disk, and (optionally) * autosave state. **/ -void command_event_save_current_config(void) +void command_event_save_current_config(bool overrides) { + if (overrides) + return; + settings_t *settings = config_get_ptr(); global_t *global = global_get_ptr(); @@ -2304,7 +2307,10 @@ bool command_event(enum event_command cmd, void *data) return false; break; case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG: - command_event_save_current_config(); + command_event_save_current_config(false); + break; + case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE: + command_event_save_current_config(true); break; case CMD_EVENT_MENU_SAVE_CONFIG: if (!command_event_save_core_config()) diff --git a/command.h b/command.h index 5e64daa059..5e90d7f5fb 100644 --- a/command.h +++ b/command.h @@ -141,6 +141,7 @@ 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_CONFIG, CMD_EVENT_MENU_PAUSE_LIBRETRO, /* Toggles menu on/off. */ diff --git a/intl/msg_hash_us.c b/intl/msg_hash_us.c index b033b77eea..9727242ee8 100644 --- a/intl/msg_hash_us.c +++ b/intl/msg_hash_us.c @@ -2064,6 +2064,8 @@ 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_STATE_SLOT: return "state_slot"; case MENU_ENUM_LABEL_CHEEVOS_USERNAME: @@ -3439,6 +3441,8 @@ 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: + return "Save Core Overrides"; case MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG: return "Save Current Config"; case MENU_ENUM_LABEL_VALUE_STATE_SLOT: diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 44694a3f77..8334080ae4 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4373,6 +4373,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG, PARSE_ACTION, false); + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE, + PARSE_ACTION, false); menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_SAVE_NEW_CONFIG, PARSE_ACTION, false); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 8a00217868..d20c54608f 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -4163,6 +4163,16 @@ static bool setting_append_list( menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_MENU_SAVE_CONFIG); menu_settings_list_current_add_enum_idx(list, list_info, MENU_ENUM_LABEL_SAVE_NEW_CONFIG); + 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), + &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); + CONFIG_ACTION( list, list_info, msg_hash_to_str(MENU_ENUM_LABEL_HELP_LIST), diff --git a/msg_hash.h b/msg_hash.h index 68d3a669e9..4c0dbf3e7d 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1773,7 +1773,9 @@ 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_VALUE_SAVE_CURRENT_CONFIG, + MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE, MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_SCREENSHOTS, MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_TITLE_SCREENS,