diff --git a/menu/menu_common.c b/menu/menu_common.c index fd57af6ecd..1cf43f3058 100644 --- a/menu/menu_common.c +++ b/menu/menu_common.c @@ -166,7 +166,6 @@ void *menu_init(const void *data) #ifdef HAVE_SHADER_MANAGER menu->shader = (struct gfx_shader*)calloc(1, sizeof(struct gfx_shader)); #endif - menu->cheats = cheat_manager_new(0); menu->push_start_screen = g_settings.menu_show_start_screen; g_settings.menu_show_start_screen = false; @@ -219,10 +218,6 @@ void menu_free(void *data) menu->shader = NULL; #endif - if (menu->cheats) - cheat_manager_free(menu->cheats); - menu->cheats = NULL; - if (driver.menu_ctx && driver.menu_ctx->free) driver.menu_ctx->free(menu); diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 490d54e392..06a1c0b6cc 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -21,7 +21,6 @@ #include #include #include "menu_list.h" -#include "../cheats.h" #include "../settings_list.h" #ifdef __cplusplus @@ -109,7 +108,6 @@ typedef struct bool load_no_content; struct gfx_shader *shader; - cheat_manager_t *cheats; struct menu_bind_state binds; diff --git a/menu/menu_entries_cbs.c b/menu/menu_entries_cbs.c index 4e7f83ac0d..d62241884f 100644 --- a/menu/menu_entries_cbs.c +++ b/menu/menu_entries_cbs.c @@ -273,7 +273,7 @@ static int action_ok_shader_apply_changes(const char *path, static int action_ok_cheat_apply_changes(const char *path, const char *label, unsigned type, size_t idx) { - cheat_manager_t *cheat = driver.menu->cheats; + cheat_manager_t *cheat = g_extern.cheat; if (!cheat) return -1; @@ -1198,7 +1198,7 @@ static int action_start_shader_num_passes(unsigned type, const char *label, static int action_start_cheat_num_passes(unsigned type, const char *label, unsigned action) { - cheat_manager_t *cheat = driver.menu->cheats; + cheat_manager_t *cheat = g_extern.cheat; if (!cheat) return -1; @@ -1216,7 +1216,7 @@ static int action_toggle_cheat_num_passes(unsigned type, const char *label, unsigned action) { unsigned new_size = 0; - cheat_manager_t *cheat = driver.menu->cheats; + cheat_manager_t *cheat = g_extern.cheat; if (!cheat) return -1; @@ -1896,14 +1896,23 @@ static int deferred_push_core_cheat_options(void *data, void *userdata, { unsigned i; file_list_t *list = (file_list_t*)data; - cheat_manager_t *cheat = driver.menu->cheats; + cheat_manager_t *cheat = g_extern.cheat; (void)userdata; (void)type; - if (!list || !cheat) + if (!list) return -1; + if (!cheat) + { + g_extern.cheat = cheat_manager_new(0); + + if (!g_extern.cheat) + return -1; + cheat = g_extern.cheat; + } + menu_list_clear(list); menu_list_push(list, "Cheat File Load", "cheat_file_load", MENU_SETTING_ACTION, 0); diff --git a/menu/menu_input_line_cb.c b/menu/menu_input_line_cb.c index 8195714a5e..3325f64c97 100644 --- a/menu/menu_input_line_cb.c +++ b/menu/menu_input_line_cb.c @@ -113,7 +113,7 @@ void st_string_callback(void *userdata, const char *str) void st_cheat_callback(void *userdata, const char *str) { menu_handle_t *menu = (menu_handle_t*)userdata; - cheat_manager_t *cheat = (cheat_manager_t*)menu->cheats; + cheat_manager_t *cheat = g_extern.cheat; if (cheat && str && *str) { diff --git a/settings_data.c b/settings_data.c index bf6b961c72..f50458fe50 100644 --- a/settings_data.c +++ b/settings_data.c @@ -2399,16 +2399,16 @@ void setting_data_get_label(char *type_str, else #endif if (!strcmp(label, "cheat_num_passes")) - snprintf(type_str, type_str_size, "%u", driver.menu->cheats->buf_size); + snprintf(type_str, type_str_size, "%u", g_extern.cheat->buf_size); else if (type >= MENU_SETTINGS_CHEAT_BEGIN && type <= MENU_SETTINGS_CHEAT_END) { unsigned cheat_index = type - MENU_SETTINGS_CHEAT_BEGIN; - if (cheat_index < driver.menu->cheats->buf_size) + if (cheat_index < g_extern.cheat->buf_size) snprintf(type_str, type_str_size, "%s", ( - (driver.menu->cheats->cheats[cheat_index].code != NULL) - ) ? driver.menu->cheats->cheats[cheat_index].code : "N/A"); + (g_extern.cheat->cheats[cheat_index].code != NULL) + ) ? g_extern.cheat->cheats[cheat_index].code : "N/A"); } else if (type >= MENU_SETTINGS_PERF_COUNTERS_BEGIN && type <= MENU_SETTINGS_PERF_COUNTERS_END)