From 7d322541460d80e7f9e9b88be6a03e909baa5662 Mon Sep 17 00:00:00 2001 From: Robin Jones Date: Mon, 30 Sep 2024 20:17:57 +0100 Subject: [PATCH] Fix build --- src/menu/menu.c | 2 ++ src/menu/rom_info.c | 31 +++++++++++++++++++++---------- src/menu/rom_info.h | 2 ++ src/menu/views/settings_editor.c | 1 + 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/menu/menu.c b/src/menu/menu.c index 5e2b2168..f5048ef2 100644 --- a/src/menu/menu.c +++ b/src/menu/menu.c @@ -93,6 +93,8 @@ static void menu_init (boot_params_t *boot_params) { sound_use_sfx(menu->settings.sound_enabled); + rom_info_use_config_folder(menu->settings.use_gamepak_custom_config_folder); + menu->browser.directory = path_init(menu->storage_prefix, menu->settings.default_directory); if (!directory_exists(path_get(menu->browser.directory))) { path_free(menu->browser.directory); diff --git a/src/menu/rom_info.c b/src/menu/rom_info.c index 4b54c14d..c9c629af 100644 --- a/src/menu/rom_info.c +++ b/src/menu/rom_info.c @@ -4,8 +4,6 @@ #include -#include "views/views.h" - #include "boot/cic.h" #include "rom_info.h" #include "utils/fs.h" @@ -612,6 +610,19 @@ static const match_t database[] = { // clang-format on +static bool gamepak_config_folder_enabled = false; + + +void rom_info_use_config_folder(bool state) { + if (state) { + gamepak_config_folder_enabled = true; + } + else { + gamepak_config_folder_enabled = false; + } +} + + static void fix_rom_header_endianness (rom_header_t *rom_header, rom_info_t *rom_info) { uint8_t *raw = (uint8_t *) (rom_header); @@ -809,9 +820,9 @@ static bool create_gamepak_config_subdirectory (path_t *path) { return error; } -static void load_overrides (path_t *path, rom_info_t *rom_info) { +static void load_rom_config_overrides (path_t *path, rom_info_t *rom_info) { - if ( menu->settings.use_gamepak_config_folder) { + if ( gamepak_config_folder_enabled ) { path_push_subdir(path, GAMEPAK_CONFIG_SUBDIRECTORY); } @@ -847,9 +858,9 @@ static void load_overrides (path_t *path, rom_info_t *rom_info) { path_free(overrides_path); } -static rom_err_t save_override (path_t *path, const char *id, int value, int default_value) { +static rom_err_t save_rom_config_overrides (path_t *path, const char *id, int value, int default_value) { - if ( menu->settings.use_gamepak_config_folder) { + if ( gamepak_config_folder_enabled ) { // if the sub dir does not exist, create it // TODO: would it be quicker to check it exists first? create_gamepak_config_subdirectory(path); @@ -943,7 +954,7 @@ rom_err_t rom_info_override_cic_type (path_t *path, rom_info_t *rom_info, rom_ci rom_info->override.cic = (cic_type != ROM_CIC_TYPE_AUTOMATIC); rom_info->override.cic_type = cic_type; - return save_override(path, "cic_type", rom_info->override.cic_type, ROM_CIC_TYPE_AUTOMATIC); + return save_rom_config_overrides(path, "cic_type", rom_info->override.cic_type, ROM_CIC_TYPE_AUTOMATIC); } rom_save_type_t rom_info_get_save_type (rom_info_t *rom_info) { @@ -958,7 +969,7 @@ rom_err_t rom_info_override_save_type (path_t *path, rom_info_t *rom_info, rom_s rom_info->override.save = (save_type != SAVE_TYPE_AUTOMATIC); rom_info->override.save_type = save_type; - return save_override(path, "save_type", rom_info->override.save_type, SAVE_TYPE_AUTOMATIC); + return save_rom_config_overrides(path, "save_type", rom_info->override.save_type, SAVE_TYPE_AUTOMATIC); } rom_tv_type_t rom_info_get_tv_type (rom_info_t *rom_info) { @@ -973,7 +984,7 @@ rom_err_t rom_info_override_tv_type (path_t *path, rom_info_t *rom_info, rom_tv_ rom_info->override.tv = (tv_type != ROM_TV_TYPE_AUTOMATIC); rom_info->override.tv_type = tv_type; - return save_override(path, "tv_type", rom_info->override.tv_type, ROM_TV_TYPE_AUTOMATIC); + return save_rom_config_overrides(path, "tv_type", rom_info->override.tv_type, ROM_TV_TYPE_AUTOMATIC); } rom_err_t rom_info_load (path_t *path, rom_info_t *rom_info) { @@ -998,7 +1009,7 @@ rom_err_t rom_info_load (path_t *path, rom_info_t *rom_info) { extract_rom_info(&match, &rom_header, rom_info); - load_overrides(path, rom_info); + load_rom_config_overrides(path, rom_info); return ROM_OK; } diff --git a/src/menu/rom_info.h b/src/menu/rom_info.h index 731c6553..fe26405a 100644 --- a/src/menu/rom_info.h +++ b/src/menu/rom_info.h @@ -237,5 +237,7 @@ rom_err_t rom_info_override_tv_type (path_t *path, rom_info_t *rom_info, rom_tv_ rom_err_t rom_info_load (path_t *path, rom_info_t *rom_info); +void rom_info_use_config_folder(bool state); + #endif diff --git a/src/menu/views/settings_editor.c b/src/menu/views/settings_editor.c index 28cb3608..8fc41622 100644 --- a/src/menu/views/settings_editor.c +++ b/src/menu/views/settings_editor.c @@ -30,6 +30,7 @@ static void set_use_saves_folder_type (menu_t *menu, void *arg) { static void set_use_gamepak_custom_config_folder_type (menu_t *menu, void *arg) { menu->settings.use_gamepak_custom_config_folder = (bool) (arg); + rom_info_use_config_folder(menu->settings.use_gamepak_custom_config_folder); settings_save(&menu->settings); }