diff --git a/src/config.cpp b/src/config.cpp index d6b272a9..1bb509d9 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -99,8 +99,6 @@ static void enumerate_config_files(std::vector& paths) { } void parseConfigFile(overlay_params& params) { - HUDElements.options.clear(); - params.options.clear(); std::vector paths; const char *cfg_file = getenv("MANGOHUD_CONFIGFILE"); diff --git a/src/overlay_params.cpp b/src/overlay_params.cpp index 8dcc24d7..4bd7e88d 100644 --- a/src/overlay_params.cpp +++ b/src/overlay_params.cpp @@ -775,7 +775,7 @@ parse_overlay_config(struct overlay_params *params, bool read_cfg = params->enabled[OVERLAY_PARAM_ENABLED_read_cfg]; if (!env || read_cfg) { - // Get config options + // this pass is just to get preset option parseConfigFile(*params); if (!use_existing_preset) { @@ -787,7 +787,13 @@ parse_overlay_config(struct overlay_params *params, current_preset = params->preset[0]; } + // clear options since we don't want config options to appear first + params->options.clear(); + HUDElements.options.clear(); + // add preset options presets(current_preset, params); + // potentially override preset options with config options + parseConfigFile(*params); if (params->options.find("full") != params->options.end() && params->options.find("full")->second != "0") { #define OVERLAY_PARAM_BOOL(name) \