mirror of
https://github.com/libretro/RetroArch.git
synced 2025-01-24 10:24:55 +00:00
Add xmb menu items
This commit is contained in:
parent
4f9119d42e
commit
2b9636d782
@ -1,7 +1,9 @@
|
||||
#include <file/file_path.h>
|
||||
#include <string/stdstring.h>
|
||||
#include <streams/file_stream.h>
|
||||
|
||||
#include "../file_path_special.h"
|
||||
#include "../configuration.h"
|
||||
#include "../verbosity.h"
|
||||
#include "../network/net_http_special.h"
|
||||
|
||||
@ -44,5 +46,9 @@ void set_badge_info (badges_ctx_t *badge_struct, int id, const char *badge_id, b
|
||||
|
||||
menu_texture_item get_badge_texture (int id)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
if (!settings->bools.cheevos_badges_enable)
|
||||
return (menu_texture_item)NULL;
|
||||
|
||||
return badges_ctx.menu_texture_list[id];
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ extern void set_badge_info (badges_ctx_t *badge_struct, int id, const char *badg
|
||||
extern menu_texture_item get_badge_texture(int id);
|
||||
|
||||
extern badges_ctx_t badges_ctx;
|
||||
static badges_ctx_t new_badges_ctx;
|
||||
|
||||
RETRO_END_DECLS
|
||||
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <ctype.h>
|
||||
|
||||
#include <file/file_path.h>
|
||||
#include <string/stdstring.h>
|
||||
#include <formats/jsonsax.h>
|
||||
#include <streams/file_stream.h>
|
||||
#include <features/features_cpu.h>
|
||||
@ -3169,6 +3170,12 @@ static int cheevos_iterate(coro_t* coro)
|
||||
*************************************************************************/
|
||||
CORO_SUB(GET_BADGES)
|
||||
|
||||
badges_ctx = new_badges_ctx;
|
||||
|
||||
settings_t *settings = config_get_ptr();
|
||||
if (!string_is_equal_fast(settings->arrays.menu_driver, "xmb", 3) || !settings->bools.cheevos_badges_enable)
|
||||
CORO_RET();
|
||||
|
||||
char badge_filename[16];
|
||||
char fullpath[PATH_MAX_LENGTH];
|
||||
FILE* file;
|
||||
@ -3176,7 +3183,7 @@ static int cheevos_iterate(coro_t* coro)
|
||||
const cheevo_t *end = cheevos_locals.core.cheevos +
|
||||
cheevos_locals.core.count;
|
||||
|
||||
for (unsigned i = 0; cheevo < end ; cheevo++)
|
||||
for (; cheevo < end ; cheevo++)
|
||||
{
|
||||
for (unsigned j = 0; j < 2; j++)
|
||||
{
|
||||
|
@ -1255,6 +1255,9 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("cheevos_test_unofficial", &settings->bools.cheevos_test_unofficial, true, false, false);
|
||||
SETTING_BOOL("cheevos_hardcore_mode_enable", &settings->bools.cheevos_hardcore_mode_enable, true, false, false);
|
||||
SETTING_BOOL("cheevos_leaderboards_enable", &settings->bools.cheevos_leaderboards_enable, true, false, false);
|
||||
#ifdef HAVE_XMB
|
||||
SETTING_BOOL("cheevos_badges_enable", &settings->bools.cheevos_badges_enable, true, false, false);
|
||||
#endif
|
||||
SETTING_BOOL("cheevos_verbose_enable", &settings->bools.cheevos_verbose_enable, true, false, false);
|
||||
#endif
|
||||
#ifdef HAVE_OVERLAY
|
||||
@ -1864,7 +1867,7 @@ static void config_set_defaults(void)
|
||||
temp_str[0] = '\0';
|
||||
|
||||
fill_pathname_expand_special(temp_str,
|
||||
g_defaults.path.config,
|
||||
g_defaults.path.config,
|
||||
PATH_MAX_LENGTH * sizeof(char));
|
||||
path_set(RARCH_PATH_CONFIG, temp_str);
|
||||
free(temp_str);
|
||||
|
@ -184,6 +184,7 @@ typedef struct settings
|
||||
bool cheevos_test_unofficial;
|
||||
bool cheevos_hardcore_mode_enable;
|
||||
bool cheevos_leaderboards_enable;
|
||||
bool cheevos_badges_enable;
|
||||
bool cheevos_verbose_enable;
|
||||
|
||||
/* Camera */
|
||||
|
@ -136,6 +136,8 @@ MSG_HASH(MENU_ENUM_LABEL_CHEEVOS_HARDCORE_MODE_ENABLE,
|
||||
"cheevos_hardcore_mode_enable")
|
||||
MSG_HASH(MENU_ENUM_LABEL_CHEEVOS_LEADERBOARDS_ENABLE,
|
||||
"cheevos_leaderboards_enable")
|
||||
MSG_HASH(MENU_ENUM_LABEL_CHEEVOS_BADGES_ENABLE,
|
||||
"cheevos_badges_enable")
|
||||
MSG_HASH(MENU_ENUM_LABEL_CHEEVOS_LOCKED_ACHIEVEMENTS,
|
||||
"cheevos_locked_achievements")
|
||||
MSG_HASH(MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY,
|
||||
|
@ -434,6 +434,10 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_LEADERBOARDS_ENABLE,
|
||||
"Leaderboards"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_BADGES_ENABLE,
|
||||
"Achievement Badges"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ACHIEVEMENTS,
|
||||
"Locked Achievements:"
|
||||
@ -1791,6 +1795,8 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CHEEVOS_HARDCORE_MODE_ENABLE,
|
||||
"Enable or disable savestates, cheats, rewind, fast-forward, pause, and slow-motion for all games.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_CHEEVOS_LEADERBOARDS_ENABLE,
|
||||
"Enable or disable in-game leaderboards. Has no effect if Hardcore Mode is disabled.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_CHEEVOS_BADGES_ENABLE,
|
||||
"Enable or disable badge display in Achievement List.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_CHEEVOS_VERBOSE_ENABLE,
|
||||
"Enable or disable OSD verbosity for achievements.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_DRIVER_SETTINGS,
|
||||
|
@ -63,6 +63,7 @@ default_sublabel_macro(action_bind_sublabel_cheevos_enable, MENU_
|
||||
default_sublabel_macro(action_bind_sublabel_cheevos_test_unofficial, MENU_ENUM_SUBLABEL_CHEEVOS_TEST_UNOFFICIAL)
|
||||
default_sublabel_macro(action_bind_sublabel_cheevos_hardcore_mode_enable, MENU_ENUM_SUBLABEL_CHEEVOS_HARDCORE_MODE_ENABLE)
|
||||
default_sublabel_macro(action_bind_sublabel_cheevos_leaderboards_enable, MENU_ENUM_SUBLABEL_CHEEVOS_LEADERBOARDS_ENABLE)
|
||||
default_sublabel_macro(action_bind_sublabel_cheevos_badges_enable, MENU_ENUM_SUBLABEL_CHEEVOS_BADGES_ENABLE)
|
||||
default_sublabel_macro(action_bind_sublabel_cheevos_verbose_enable, MENU_ENUM_SUBLABEL_CHEEVOS_VERBOSE_ENABLE)
|
||||
default_sublabel_macro(action_bind_sublabel_menu_views_settings_list, MENU_ENUM_SUBLABEL_MENU_VIEWS_SETTINGS)
|
||||
default_sublabel_macro(action_bind_sublabel_quick_menu_views_settings_list, MENU_ENUM_SUBLABEL_QUICK_MENU_VIEWS_SETTINGS)
|
||||
@ -1266,6 +1267,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_CHEEVOS_LEADERBOARDS_ENABLE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cheevos_leaderboards_enable);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_CHEEVOS_BADGES_ENABLE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cheevos_badges_enable);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_CHEEVOS_VERBOSE_ENABLE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cheevos_verbose_enable);
|
||||
break;
|
||||
|
@ -1572,7 +1572,7 @@ static int menu_displaylist_parse_playlist(menu_displaylist_info_t *info,
|
||||
free(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
free(path_short);
|
||||
}
|
||||
|
||||
@ -3495,7 +3495,7 @@ static int menu_displaylist_parse_options_remappings(
|
||||
}
|
||||
#ifdef HAVE_KEYMAPPER
|
||||
if (system)
|
||||
{
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
unsigned device = settings->uints.input_libretro_device[settings->uints.keymapper_port];
|
||||
@ -3514,13 +3514,13 @@ static int menu_displaylist_parse_options_remappings(
|
||||
keybind = &input_config_binds[settings->uints.keymapper_port][retro_id];
|
||||
auto_bind = (const struct retro_keybind*)
|
||||
input_config_get_bind_auto(settings->uints.keymapper_port, retro_id);
|
||||
|
||||
|
||||
input_config_get_bind_string(descriptor,
|
||||
keybind, auto_bind, sizeof(descriptor));
|
||||
|
||||
if(!strstr(descriptor, "Auto"))
|
||||
{
|
||||
const struct retro_keybind *keyptr =
|
||||
const struct retro_keybind *keyptr =
|
||||
&input_config_binds[settings->uints.keymapper_port][retro_id];
|
||||
|
||||
strlcpy(descriptor, msg_hash_to_str(keyptr->enum_idx), sizeof(descriptor));
|
||||
@ -3860,7 +3860,7 @@ static int menu_displaylist_parse_cores(
|
||||
malloc(PATH_MAX_LENGTH * sizeof(char));
|
||||
char *display_name = (char*)
|
||||
malloc(PATH_MAX_LENGTH * sizeof(char));
|
||||
core_path[0] =
|
||||
core_path[0] =
|
||||
display_name[0] = '\0';
|
||||
|
||||
fill_pathname_join(core_path, dir, path,
|
||||
@ -4180,7 +4180,7 @@ static void menu_displaylist_parse_playlist_generic(
|
||||
{
|
||||
playlist_t *playlist = NULL;
|
||||
char *path_playlist = NULL;
|
||||
|
||||
|
||||
menu_displaylist_set_new_playlist(menu, playlist_path);
|
||||
|
||||
menu_driver_ctl(RARCH_MENU_CTL_PLAYLIST_GET, &playlist);
|
||||
@ -5615,6 +5615,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_CHEEVOS_LEADERBOARDS_ENABLE,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
if (string_is_equal_fast(settings->arrays.menu_driver, "xmb", 3))
|
||||
{
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_CHEEVOS_BADGES_ENABLE,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
}
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_CHEEVOS_TEST_UNOFFICIAL,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
|
@ -917,7 +917,7 @@ int menu_setting_set(unsigned type, const char *label,
|
||||
int ret = 0;
|
||||
file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0);
|
||||
size_t selection = menu_navigation_get_selection();
|
||||
menu_file_list_cbs_t *cbs = selection_buf ?
|
||||
menu_file_list_cbs_t *cbs = selection_buf ?
|
||||
(menu_file_list_cbs_t*)file_list_get_actiondata_at_offset(selection_buf, selection) : NULL;
|
||||
|
||||
if (!cbs)
|
||||
@ -1446,7 +1446,7 @@ static int setting_action_ok_bind_defaults(void *data, bool wraparound)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
static void
|
||||
setting_get_string_representation_st_float_video_refresh_rate_auto(
|
||||
void *data, char *s, size_t len)
|
||||
{
|
||||
@ -6461,6 +6461,22 @@ static bool setting_append_list(
|
||||
SD_FLAG_NONE
|
||||
);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.cheevos_badges_enable,
|
||||
MENU_ENUM_LABEL_CHEEVOS_BADGES_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_BADGES_ENABLE,
|
||||
false,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE
|
||||
);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.cheevos_verbose_enable,
|
||||
|
@ -853,6 +853,7 @@ enum msg_hash_enums
|
||||
MENU_LABEL(ACCOUNTS_CHEEVOS_USERNAME),
|
||||
MENU_LABEL(CHEEVOS_HARDCORE_MODE_ENABLE),
|
||||
MENU_LABEL(CHEEVOS_LEADERBOARDS_ENABLE),
|
||||
MENU_LABEL(CHEEVOS_BADGES_ENABLE),
|
||||
MENU_LABEL(CHEEVOS_TEST_UNOFFICIAL),
|
||||
MENU_LABEL(CHEEVOS_VERBOSE_ENABLE),
|
||||
MENU_LABEL(CHEEVOS_ENABLE),
|
||||
|
Loading…
x
Reference in New Issue
Block a user