diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index dc78ebedce..9d3ae59e40 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -1289,6 +1289,40 @@ MSG_HASH( "Change default directories where files are located." ) +/* Core option category placeholders for icons */ +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MAPPING_SETTINGS, + "Mapping" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MEDIA_SETTINGS, + "Media" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_PERFORMANCE_SETTINGS, + "Performance" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_SOUND_SETTINGS, + "Sound" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_SPECS_SETTINGS, + "Specs" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STORAGE_SETTINGS, + "Storage" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_SYSTEM_SETTINGS, + "System" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_TIMING_SETTINGS, + "Timing" + ) + #ifdef HAVE_MIST MSG_HASH( MENU_ENUM_LABEL_VALUE_STEAM_SETTINGS, diff --git a/menu/drivers/ozone.c b/menu/drivers/ozone.c index 5a3f5ee756..7683c84712 100644 --- a/menu/drivers/ozone.c +++ b/menu/drivers/ozone.c @@ -2103,20 +2103,29 @@ static uintptr_t ozone_entries_icon_get_texture(ozone_handle_t *ozone, case MENU_SETTING_ACTION_LOADSTATE: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LOADSTATE]; case MENU_SETTING_ACTION_CORE_OPTIONS: - if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS))) + if (string_starts_with(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS))) return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_VIDEO]; - else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_AUDIO_SETTINGS))) + else if (string_starts_with(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_AUDIO_SETTINGS)) || + string_starts_with(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SOUND_SETTINGS))) return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_AUDIO]; else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_SETTINGS))) return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SETTINGS]; else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS))) return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_OSD]; - else if (string_is_equal(enum_path, "Media")) + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LATENCY_SETTINGS)) || + string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_TIMING_SETTINGS))) + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LATENCY]; + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PERFORMANCE_SETTINGS))) + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FRAMESKIP]; + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MEDIA_SETTINGS)) || + string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STORAGE_SETTINGS))) return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RDB]; - else if (string_is_equal(enum_path, "System")) + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_SETTINGS)) || + string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SPECS_SETTINGS))) return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DRIVERS]; - else - return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE_OPTIONS]; + else if (strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MAPPING_SETTINGS))) + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_OVERRIDE]; + return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE_OPTIONS]; case MENU_SETTING_ACTION_CORE_OPTION_OVERRIDE_LIST: case MENU_SETTING_ACTION_REMAP_FILE_MANAGER_LIST: return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SETTING]; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 692d634eac..8c99c0d8e9 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -3116,18 +3116,28 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, case MENU_SETTING_ACTION_LOADSTATE: return xmb->textures.list[XMB_TEXTURE_LOADSTATE]; case MENU_SETTING_ACTION_CORE_OPTIONS: - if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS))) + if (string_starts_with(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS))) return xmb->textures.list[XMB_TEXTURE_VIDEO]; - else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_AUDIO_SETTINGS))) + else if (string_starts_with(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_AUDIO_SETTINGS)) || + string_starts_with(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SOUND_SETTINGS))) return xmb->textures.list[XMB_TEXTURE_AUDIO]; else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_SETTINGS))) return xmb->textures.list[XMB_TEXTURE_INPUT_SETTINGS]; else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS))) return xmb->textures.list[XMB_TEXTURE_OSD]; - else if (string_is_equal(enum_path, "Media")) + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LATENCY_SETTINGS)) || + string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_TIMING_SETTINGS))) + return xmb->textures.list[XMB_TEXTURE_LATENCY]; + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PERFORMANCE_SETTINGS))) + return xmb->textures.list[XMB_TEXTURE_FRAMESKIP]; + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MEDIA_SETTINGS)) || + string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_STORAGE_SETTINGS))) return xmb->textures.list[XMB_TEXTURE_RDB]; - else if (string_is_equal(enum_path, "System")) + else if (string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SYSTEM_SETTINGS)) || + string_is_equal(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SPECS_SETTINGS))) return xmb->textures.list[XMB_TEXTURE_DRIVERS]; + else if (strstr(enum_path, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_MAPPING_SETTINGS))) + return xmb->textures.list[XMB_TEXTURE_OVERRIDE]; return xmb->textures.list[XMB_TEXTURE_CORE_OPTIONS]; case MENU_SETTING_ACTION_CORE_INPUT_REMAPPING_OPTIONS: return xmb->textures.list[XMB_TEXTURE_INPUT_REMAPPING_OPTIONS]; diff --git a/msg_hash.h b/msg_hash.h index ed22267b9d..30b2f31c0c 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -2594,6 +2594,16 @@ enum msg_hash_enums MENU_LABEL(CHEAT_DETAILS_SETTINGS), MENU_LABEL(CHEAT_SEARCH_SETTINGS), + /* Core option category placeholders for icons */ + MENU_LABEL(MAPPING_SETTINGS), + MENU_LABEL(MEDIA_SETTINGS), + MENU_LABEL(PERFORMANCE_SETTINGS), + MENU_LABEL(SOUND_SETTINGS), + MENU_LABEL(SPECS_SETTINGS), + MENU_LABEL(STORAGE_SETTINGS), + MENU_LABEL(SYSTEM_SETTINGS), + MENU_LABEL(TIMING_SETTINGS), + MENU_ENUM_LABEL_ONSCREEN_KEYBOARD_OVERLAY_SETTINGS, MENU_LABEL(MULTIMEDIA_SETTINGS),