mirror of
https://github.com/libretro/RetroArch
synced 2025-03-06 04:13:52 +00:00
(Managers) Get rid of settings_t dependencies
This commit is contained in:
parent
dad077adf3
commit
369348ebaf
@ -48,7 +48,6 @@
|
||||
#include "../dynamic.h"
|
||||
#include "../core.h"
|
||||
#include "../verbosity.h"
|
||||
#include "../configuration.h"
|
||||
|
||||
cheat_manager_t cheat_manager_state;
|
||||
|
||||
@ -579,19 +578,16 @@ void cheat_manager_update(cheat_manager_t *handle, unsigned handle_idx)
|
||||
RARCH_LOG("%s\n", msg);
|
||||
}
|
||||
|
||||
void cheat_manager_toggle_index(unsigned i)
|
||||
void cheat_manager_toggle_index(bool apply_cheats_after_toggle,
|
||||
unsigned i)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
if (!cheat_manager_state.cheats || cheat_manager_state.size == 0)
|
||||
return;
|
||||
|
||||
cheat_manager_state.cheats[i].state = !cheat_manager_state.cheats[i].state;
|
||||
cheat_manager_update(&cheat_manager_state, i);
|
||||
|
||||
if (!settings)
|
||||
return;
|
||||
|
||||
if (settings->bools.apply_cheats_after_toggle)
|
||||
if (apply_cheats_after_toggle)
|
||||
cheat_manager_apply_cheats();
|
||||
}
|
||||
|
||||
@ -650,27 +646,24 @@ bool cheat_manager_get_code_state(unsigned i)
|
||||
|
||||
static bool cheat_manager_get_game_specific_filename(
|
||||
char *s, size_t len,
|
||||
const char *path_cheat_database,
|
||||
bool saving)
|
||||
{
|
||||
char s1[PATH_MAX_LENGTH];
|
||||
struct retro_system_info system_info;
|
||||
settings_t *settings = config_get_ptr();
|
||||
global_t *global = global_get_ptr();
|
||||
const char *core_name = NULL;
|
||||
const char *game_name = NULL;
|
||||
|
||||
s1[0] = '\0';
|
||||
|
||||
if (!settings || !global)
|
||||
return false;
|
||||
|
||||
if (!core_get_system_info(&system_info))
|
||||
if (!global || !core_get_system_info(&system_info))
|
||||
return false;
|
||||
|
||||
core_name = system_info.library_name;
|
||||
game_name = path_basename(global->name.cheatfile);
|
||||
|
||||
if (string_is_empty(settings->paths.path_cheat_database) ||
|
||||
if (string_is_empty(path_cheat_database) ||
|
||||
string_is_empty(core_name) ||
|
||||
string_is_empty(game_name))
|
||||
return false;
|
||||
@ -678,7 +671,7 @@ static bool cheat_manager_get_game_specific_filename(
|
||||
s[0] = '\0';
|
||||
|
||||
fill_pathname_join(s1,
|
||||
settings->paths.path_cheat_database, core_name,
|
||||
path_cheat_database, core_name,
|
||||
sizeof(s1));
|
||||
|
||||
if (saving)
|
||||
@ -693,24 +686,28 @@ static bool cheat_manager_get_game_specific_filename(
|
||||
return true;
|
||||
}
|
||||
|
||||
void cheat_manager_load_game_specific_cheats(void)
|
||||
void cheat_manager_load_game_specific_cheats(const char *path_cheat_database)
|
||||
{
|
||||
char cheat_file[PATH_MAX_LENGTH];
|
||||
|
||||
if (cheat_manager_get_game_specific_filename(
|
||||
cheat_file, sizeof(cheat_file), false))
|
||||
cheat_file, sizeof(cheat_file),
|
||||
path_cheat_database,
|
||||
false))
|
||||
{
|
||||
RARCH_LOG("[Cheats]: Load game-specific cheatfile: %s\n", cheat_file);
|
||||
cheat_manager_load(cheat_file, true);
|
||||
}
|
||||
}
|
||||
|
||||
void cheat_manager_save_game_specific_cheats(void)
|
||||
void cheat_manager_save_game_specific_cheats(const char *path_cheat_database)
|
||||
{
|
||||
char cheat_file[PATH_MAX_LENGTH];
|
||||
|
||||
if (cheat_manager_get_game_specific_filename(
|
||||
cheat_file, sizeof(cheat_file), true))
|
||||
cheat_file, sizeof(cheat_file),
|
||||
path_cheat_database,
|
||||
true))
|
||||
{
|
||||
RARCH_LOG("[Cheats]: Save game-specific cheatfile: %s\n", cheat_file);
|
||||
cheat_manager_save(cheat_file, NULL, true);
|
||||
|
@ -217,7 +217,8 @@ void cheat_manager_apply_cheats(void);
|
||||
|
||||
void cheat_manager_update(cheat_manager_t *handle, unsigned handle_idx);
|
||||
|
||||
void cheat_manager_toggle_index(unsigned i);
|
||||
void cheat_manager_toggle_index(bool apply_cheats_after_toggle,
|
||||
unsigned i);
|
||||
|
||||
unsigned cheat_manager_get_buf_size(void);
|
||||
|
||||
@ -235,9 +236,9 @@ bool cheat_manager_copy_idx_to_working(unsigned idx);
|
||||
|
||||
bool cheat_manager_copy_working_to_idx(unsigned idx);
|
||||
|
||||
void cheat_manager_load_game_specific_cheats(void);
|
||||
void cheat_manager_load_game_specific_cheats(const char *path_cheat_database);
|
||||
|
||||
void cheat_manager_save_game_specific_cheats(void);
|
||||
void cheat_manager_save_game_specific_cheats(const char *path_cheat_database);
|
||||
|
||||
int cheat_manager_initialize_memory(rarch_setting_t *setting, bool wraparound);
|
||||
|
||||
|
@ -3470,8 +3470,13 @@ static int action_ok_cheat_reload_cheats(const char *path,
|
||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
{
|
||||
bool refresh = false;
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
cheat_manager_realloc(0, CHEAT_HANDLER_TYPE_EMU);
|
||||
cheat_manager_load_game_specific_cheats();
|
||||
|
||||
cheat_manager_load_game_specific_cheats(
|
||||
settings->paths.path_cheat_database);
|
||||
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh);
|
||||
menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL);
|
||||
return 0 ;
|
||||
|
@ -104,7 +104,10 @@ int shader_action_preset_parameter_right(unsigned type, const char *label, bool
|
||||
int generic_action_cheat_toggle(size_t idx, unsigned type, const char *label,
|
||||
bool wraparound)
|
||||
{
|
||||
cheat_manager_toggle_index((unsigned)idx);
|
||||
settings_t *settings = config_get_ptr();
|
||||
cheat_manager_toggle_index(
|
||||
settings->bools.apply_cheats_after_toggle,
|
||||
(unsigned)idx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -5584,6 +5584,7 @@ static void command_event_deinit_core(bool reinit)
|
||||
|
||||
static void command_event_init_cheats(void)
|
||||
{
|
||||
settings_t *settings = configuration_settings;
|
||||
bool allow_cheats = true;
|
||||
|
||||
#ifdef HAVE_NETWORKING
|
||||
@ -5596,14 +5597,12 @@ static void command_event_init_cheats(void)
|
||||
return;
|
||||
|
||||
cheat_manager_alloc_if_empty();
|
||||
cheat_manager_load_game_specific_cheats();
|
||||
cheat_manager_load_game_specific_cheats(
|
||||
settings->paths.path_cheat_database);
|
||||
|
||||
{
|
||||
settings_t *settings = configuration_settings;
|
||||
if (settings && settings->bools.apply_cheats_after_load)
|
||||
if (settings->bools.apply_cheats_after_load)
|
||||
cheat_manager_apply_cheats();
|
||||
}
|
||||
}
|
||||
|
||||
static void command_event_load_auto_state(void)
|
||||
{
|
||||
|
@ -1556,8 +1556,10 @@ bool content_save_ram_file(unsigned slot)
|
||||
bool event_save_files(bool is_sram_used)
|
||||
{
|
||||
unsigned i;
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
cheat_manager_save_game_specific_cheats();
|
||||
cheat_manager_save_game_specific_cheats(
|
||||
settings->paths.path_cheat_database);
|
||||
if (!task_save_files || !is_sram_used)
|
||||
return false;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user