diff --git a/src/game.cc b/src/game.cc index abe6613..4462f7d 100644 --- a/src/game.cc +++ b/src/game.cc @@ -1348,8 +1348,16 @@ static int gameDbInit() return -1; } + // SFALL: custom patch file name. + char* patch_filename = nullptr; + if (configGetString(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_PATCH_FILE, &patch_filename)) { + if (patch_filename == nullptr || *patch_file_name == '\0') { + patch_filename = "patch%03d.dat"; + } + } + for (patch_index = 0; patch_index < 1000; patch_index++) { - snprintf(filename, sizeof(filename), "patch%03d.dat", patch_index); + snprintf(filename, sizeof(filename), patch_filename, patch_index); if (compat_access(filename, 0) == 0) { dbOpen(filename, 0, NULL, 1); diff --git a/src/sfall_config.cc b/src/sfall_config.cc index af6a05f..85c2ce7 100644 --- a/src/sfall_config.cc +++ b/src/sfall_config.cc @@ -60,6 +60,7 @@ bool sfallConfigInit(int argc, char** argv) configSetInt(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_AUTO_QUICK_SAVE, 0); configSetString(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_VERSION_STRING, ""); configSetString(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_CONFIG_FILE, ""); + configSetString(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_PATCH_FILE, ""); configSetString(&gSfallConfig, SFALL_CONFIG_SCRIPTS_KEY, SFALL_CONFIG_INI_CONFIG_FOLDER, ""); configSetString(&gSfallConfig, SFALL_CONFIG_SCRIPTS_KEY, SFALL_CONFIG_GLOBAL_SCRIPT_PATHS, ""); diff --git a/src/sfall_config.h b/src/sfall_config.h index 89402ec..7d4b2fb 100644 --- a/src/sfall_config.h +++ b/src/sfall_config.h @@ -74,6 +74,7 @@ namespace fallout { #define SFALL_CONFIG_AUTO_QUICK_SAVE "AutoQuickSave" #define SFALL_CONFIG_VERSION_STRING "VersionString" #define SFALL_CONFIG_CONFIG_FILE "ConfigFile" +#define SFALL_CONFIG_PATCH_FILE "PatchFile" #define SFALL_CONFIG_BURST_MOD_DEFAULT_CENTER_MULTIPLIER 1 #define SFALL_CONFIG_BURST_MOD_DEFAULT_CENTER_DIVISOR 3