From ec0685ea19dd636e38d81fd8695290b3b4b5cc22 Mon Sep 17 00:00:00 2001 From: Alexander Batalov Date: Sat, 6 Apr 2024 16:41:49 +0300 Subject: [PATCH] Normalize and resolve asset bundle paths --- src/game_config.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/game_config.cc b/src/game_config.cc index 5772982e..f57e2932 100644 --- a/src/game_config.cc +++ b/src/game_config.cc @@ -10,6 +10,8 @@ namespace fallout { +static void gameConfigResolvePath(const char* section, const char* key); + // A flag indicating if [gGameConfig] was initialized. // // 0x5186D0 @@ -181,6 +183,15 @@ bool gameConfigInit(bool isMapper, int argc, char** argv) // whatever was loaded from `fallout2.cfg`. configParseCommandLineArguments(&gGameConfig, argc, argv); + // CE: Normalize and resolve asset bundle paths. + gameConfigResolvePath(GAME_CONFIG_SYSTEM_KEY, GAME_CONFIG_MASTER_DAT_KEY); + gameConfigResolvePath(GAME_CONFIG_SYSTEM_KEY, GAME_CONFIG_MASTER_PATCHES_KEY); + gameConfigResolvePath(GAME_CONFIG_SYSTEM_KEY, GAME_CONFIG_CRITTER_DAT_KEY); + gameConfigResolvePath(GAME_CONFIG_SYSTEM_KEY, GAME_CONFIG_CRITTER_PATCHES_KEY); + gameConfigResolvePath(GAME_CONFIG_SYSTEM_KEY, GAME_CONFIG_CRITTER_PATCHES_KEY); + gameConfigResolvePath(GAME_CONFIG_SOUND_KEY, GAME_CONFIG_MUSIC_PATH1_KEY); + gameConfigResolvePath(GAME_CONFIG_SOUND_KEY, GAME_CONFIG_MUSIC_PATH2_KEY); + gGameConfigInitialized = true; return true; @@ -226,4 +237,12 @@ bool gameConfigExit(bool shouldSave) return result; } +static void gameConfigResolvePath(const char* section, const char* key) +{ + char* path; + configGetString(&gGameConfig, section, key, &path); + compat_windows_path_to_native(path); + compat_resolve_path(path); +} + } // namespace fallout