mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 04:20:27 +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;
|
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)
|
if (!handle)
|
||||||
return NULL;
|
return NULL;
|
||||||
return handle->cheats[i].desc;
|
return handle->cheats[i].desc;
|
||||||
@ -423,3 +425,20 @@ void cheat_manager_state_free(void)
|
|||||||
|
|
||||||
global->cheat = NULL;
|
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);
|
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);
|
const char *cheat_manager_get_code(unsigned i);
|
||||||
|
|
||||||
@ -74,6 +74,8 @@ void cheat_manager_state_checks(
|
|||||||
|
|
||||||
void cheat_manager_state_free(void);
|
void cheat_manager_state_free(void);
|
||||||
|
|
||||||
|
bool cheat_manager_alloc_if_empty(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#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)
|
static int menu_displaylist_parse_options_cheats(menu_displaylist_info_t *info)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
global_t *global = global_get_ptr();
|
|
||||||
cheat_manager_t *cheat = global ? global->cheat : NULL;
|
|
||||||
|
|
||||||
if (!cheat)
|
if (!cheat_manager_alloc_if_empty())
|
||||||
{
|
return -1;
|
||||||
global->cheat = cheat_manager_new(0);
|
|
||||||
|
|
||||||
if (!global->cheat)
|
|
||||||
return -1;
|
|
||||||
cheat = global->cheat;
|
|
||||||
}
|
|
||||||
|
|
||||||
menu_entries_push(info->list,
|
menu_entries_push(info->list,
|
||||||
menu_hash_to_str(MENU_LABEL_VALUE_CHEAT_FILE_LOAD),
|
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};
|
char cheat_label[64] = {0};
|
||||||
|
|
||||||
snprintf(cheat_label, sizeof(cheat_label), "%s #%u: ", menu_hash_to_str(MENU_VALUE_CHEAT), i);
|
snprintf(cheat_label, sizeof(cheat_label), "%s #%u: ", menu_hash_to_str(MENU_VALUE_CHEAT), i);
|
||||||
if (cheat_manager_get_desc(cheat, i))
|
if (cheat_manager_get_desc(i))
|
||||||
strlcat(cheat_label, cheat_manager_get_desc(cheat, i), sizeof(cheat_label));
|
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);
|
menu_entries_push(info->list, cheat_label, "", MENU_SETTINGS_CHEAT_BEGIN + i, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user