mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 04:20:28 +00:00
Don't use global->cheat outside cheats.c
This commit is contained in:
parent
e0ec68a73d
commit
2c2aaec107
21
cheats.c
21
cheats.c
@ -382,8 +382,10 @@ const char *cheat_manager_get_code(unsigned i)
|
||||
return handle->cheats[i].code;
|
||||
}
|
||||
|
||||
const char *cheat_manager_get_desc(cheat_manager_t *handle, unsigned i)
|
||||
const char *cheat_manager_get_desc(unsigned i)
|
||||
{
|
||||
global_t *global = global_get_ptr();
|
||||
cheat_manager_t *handle = global->cheat;
|
||||
if (!handle)
|
||||
return NULL;
|
||||
return handle->cheats[i].desc;
|
||||
@ -423,3 +425,20 @@ void cheat_manager_state_free(void)
|
||||
|
||||
global->cheat = NULL;
|
||||
}
|
||||
|
||||
bool cheat_manager_alloc_if_empty(void)
|
||||
{
|
||||
global_t *global = global_get_ptr();
|
||||
cheat_manager_t *cheat = global->cheat;
|
||||
|
||||
if (!cheat)
|
||||
{
|
||||
global->cheat = cheat_manager_new(0);
|
||||
|
||||
if (!global->cheat)
|
||||
return false;
|
||||
cheat = global->cheat;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
4
cheats.h
4
cheats.h
@ -61,7 +61,7 @@ void cheat_manager_toggle_index(unsigned i);
|
||||
|
||||
unsigned cheat_manager_get_buf_size(void);
|
||||
|
||||
const char *cheat_manager_get_desc(cheat_manager_t *handle, unsigned i);
|
||||
const char *cheat_manager_get_desc(unsigned i);
|
||||
|
||||
const char *cheat_manager_get_code(unsigned i);
|
||||
|
||||
@ -74,6 +74,8 @@ void cheat_manager_state_checks(
|
||||
|
||||
void cheat_manager_state_free(void);
|
||||
|
||||
bool cheat_manager_alloc_if_empty(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -1971,17 +1971,9 @@ static int menu_displaylist_parse_options(menu_displaylist_info_t *info)
|
||||
static int menu_displaylist_parse_options_cheats(menu_displaylist_info_t *info)
|
||||
{
|
||||
unsigned i;
|
||||
global_t *global = global_get_ptr();
|
||||
cheat_manager_t *cheat = global ? global->cheat : NULL;
|
||||
|
||||
if (!cheat)
|
||||
{
|
||||
global->cheat = cheat_manager_new(0);
|
||||
|
||||
if (!global->cheat)
|
||||
return -1;
|
||||
cheat = global->cheat;
|
||||
}
|
||||
if (!cheat_manager_alloc_if_empty())
|
||||
return -1;
|
||||
|
||||
menu_entries_push(info->list,
|
||||
menu_hash_to_str(MENU_LABEL_VALUE_CHEAT_FILE_LOAD),
|
||||
@ -2005,8 +1997,8 @@ static int menu_displaylist_parse_options_cheats(menu_displaylist_info_t *info)
|
||||
char cheat_label[64] = {0};
|
||||
|
||||
snprintf(cheat_label, sizeof(cheat_label), "%s #%u: ", menu_hash_to_str(MENU_VALUE_CHEAT), i);
|
||||
if (cheat_manager_get_desc(cheat, i))
|
||||
strlcat(cheat_label, cheat_manager_get_desc(cheat, i), sizeof(cheat_label));
|
||||
if (cheat_manager_get_desc(i))
|
||||
strlcat(cheat_label, cheat_manager_get_desc(i), sizeof(cheat_label));
|
||||
menu_entries_push(info->list, cheat_label, "", MENU_SETTINGS_CHEAT_BEGIN + i, 0, 0);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user