diff --git a/addons/disposable/initSettings.sqf b/addons/disposable/initSettings.sqf index 501cfcea0..40ea2cc5d 100644 --- a/addons/disposable/initSettings.sqf +++ b/addons/disposable/initSettings.sqf @@ -5,7 +5,7 @@ ELSTRING(common,WeaponsCategory), true, // default value 1 // isGlobal -] call EFUNC(settings,init); +] call CBA_fnc_addSetting; [ QGVAR(dropUsedLauncher), @@ -22,4 +22,4 @@ 2 ], 0 // isGlobal -] call EFUNC(settings,init); +] call CBA_fnc_addSetting; diff --git a/addons/optics/initSettings.sqf b/addons/optics/initSettings.sqf index bcd39081e..b3e0f1cc4 100644 --- a/addons/optics/initSettings.sqf +++ b/addons/optics/initSettings.sqf @@ -9,4 +9,4 @@ private _unit = call CBA_fnc_currentUnit; [_unit, true] call FUNC(restartCamera); } -] call EFUNC(settings,init); +] call CBA_fnc_addSetting; diff --git a/addons/settings/XEH_preInit.sqf b/addons/settings/XEH_preInit.sqf index 5beddab34..bd87803ec 100644 --- a/addons/settings/XEH_preInit.sqf +++ b/addons/settings/XEH_preInit.sqf @@ -2,7 +2,10 @@ ADDON = false; -#include "XEH_PREP.sqf" +// Don't prep functions if already prepped by CBA_fnc_addSetting to avoid log spam. +if (isNil QFUNC(init)) then { + #include "XEH_PREP.sqf" +}; //#define DEBUG_MODE_FULL #ifdef DEBUG_MODE_FULL @@ -14,27 +17,27 @@ ADDON = false; toString _value }; - ["Test_Setting_0", "CHECKBOX", ["-test checkbox-", "-tooltip-"], "My Category", true] call cba_settings_fnc_init; - ["Test_Setting_1", "EDITBOX", ["-test editbox-", "-tooltip-"], "My Category", ["null", false, _fnc_sanitizeValue]] call cba_settings_fnc_init; - ["Test_Setting_2", "LIST", ["-test list-", "-tooltip-"], "My Category", [[1, 0], [["enabled", "tooltip 1"], ["disabled", "tooltip 2"]], 1]] call cba_settings_fnc_init; - ["Test_Setting_3", "SLIDER", ["-test slider-", "-tooltip-"], "My Category", [0, 10, 5, 0]] call cba_settings_fnc_init; - ["Test_Setting_4", "COLOR", ["-test color-", "-tooltip-"], "My Category", [1, 1 ,0], false, {diag_log text format ["Color Setting Changed: %1", _this];}] call cba_settings_fnc_init; - ["Test_Setting_5", "COLOR", ["-test alpha-", "-tooltip-"], "My Category", [1, 0, 0, 0.5], false] call cba_settings_fnc_init; - ["Test_Setting_6", "TIME", ["-test time-", "-tooltip-"], "My Category", [0, 3600, 60], false] call cba_settings_fnc_init; - ["Test_Padding", "LIST", "Padding test", "My Category", [[0,1,2,3,4,5,6,7,8,9,10], []]] call cba_settings_fnc_init; - - ["Test_1", "EDITBOX", "setting 1", "Test Category", "null", nil, {systemChat str [1, _this]}] call cba_settings_fnc_init; - ["Test_2", "EDITBOX", "setting 2", ["Test Category", "Evens"], "null", nil, {systemChat str [2, _this]}] call cba_settings_fnc_init; - ["Test_3", "EDITBOX", "setting 3", "Test Category", "null", nil, {systemChat str [3, _this]}] call cba_settings_fnc_init; - ["Test_4", "EDITBOX", "setting 4", ["Test Category", "Evens"], "null", nil, {systemChat str [4, _this]}] call cba_settings_fnc_init; - ["Test_5", "EDITBOX", "setting 5", "Test Category", "null", 1, {systemChat str [5, _this]}] call cba_settings_fnc_init; - ["Test_6", "EDITBOX", "setting 6", ["Test Category", "Evens"], "null", 2, {systemChat str [6, _this]}] call cba_settings_fnc_init; - ["Test_7", "EDITBOX", "setting 7", ["Test Category", "Seven"], "null", 2, {systemChat str [7, _this]}] call cba_settings_fnc_init; - - ["Test_A", "EDITBOX", "setting 1", "Test Category 1", "a", nil, {systemChat str [1, _this]}] call cba_settings_fnc_init; - ["Test_B", "EDITBOX", "setting 2", "Test Category 1", "b", nil, {systemChat str [2, _this]}] call cba_settings_fnc_init; - ["Test_C", "EDITBOX", "setting 3", "Test Category 3", "c", nil, {systemChat str [3, _this]}] call cba_settings_fnc_init; - ["Test_D", "EDITBOX", "setting 4", "Test Category 3", "d", nil, {systemChat str [4, _this]}] call cba_settings_fnc_init; + ["Test_Setting_0", "CHECKBOX", ["-test checkbox-", "-tooltip-"], "My Category", true] call CBA_fnc_addSetting; + ["Test_Setting_1", "EDITBOX", ["-test editbox-", "-tooltip-"], "My Category", ["null", false, _fnc_sanitizeValue]] call CBA_fnc_addSetting; + ["Test_Setting_2", "LIST", ["-test list-", "-tooltip-"], "My Category", [[1, 0], [["enabled", "tooltip 1"], ["disabled", "tooltip 2"]], 1]] call CBA_fnc_addSetting; + ["Test_Setting_3", "SLIDER", ["-test slider-", "-tooltip-"], "My Category", [0, 10, 5, 0]] call CBA_fnc_addSetting; + ["Test_Setting_4", "COLOR", ["-test color-", "-tooltip-"], "My Category", [1, 1 ,0], false, {diag_log text format ["Color Setting Changed: %1", _this];}] call CBA_fnc_addSetting; + ["Test_Setting_5", "COLOR", ["-test alpha-", "-tooltip-"], "My Category", [1, 0, 0, 0.5], false] call CBA_fnc_addSetting; + ["Test_Setting_6", "TIME", ["-test time-", "-tooltip-"], "My Category", [0, 3600, 60], false] call CBA_fnc_addSetting; + ["Test_Padding", "LIST", "Padding test", "My Category", [[0,1,2,3,4,5,6,7,8,9,10], []]] call CBA_fnc_addSetting; + + ["Test_1", "EDITBOX", "setting 1", "Test Category", "null", nil, {systemChat str [1, _this]}] call CBA_fnc_addSetting; + ["Test_2", "EDITBOX", "setting 2", ["Test Category", "Evens"], "null", nil, {systemChat str [2, _this]}] call CBA_fnc_addSetting; + ["Test_3", "EDITBOX", "setting 3", "Test Category", "null", nil, {systemChat str [3, _this]}] call CBA_fnc_addSetting; + ["Test_4", "EDITBOX", "setting 4", ["Test Category", "Evens"], "null", nil, {systemChat str [4, _this]}] call CBA_fnc_addSetting; + ["Test_5", "EDITBOX", "setting 5", "Test Category", "null", 1, {systemChat str [5, _this]}] call CBA_fnc_addSetting; + ["Test_6", "EDITBOX", "setting 6", ["Test Category", "Evens"], "null", 2, {systemChat str [6, _this]}] call CBA_fnc_addSetting; + ["Test_7", "EDITBOX", "setting 7", ["Test Category", "Seven"], "null", 2, {systemChat str [7, _this]}] call CBA_fnc_addSetting; + + ["Test_A", "EDITBOX", "setting 1", "Test Category 1", "a", nil, {systemChat str [1, _this]}] call CBA_fnc_addSetting; + ["Test_B", "EDITBOX", "setting 2", "Test Category 1", "b", nil, {systemChat str [2, _this]}] call CBA_fnc_addSetting; + ["Test_C", "EDITBOX", "setting 3", "Test Category 3", "c", nil, {systemChat str [3, _this]}] call CBA_fnc_addSetting; + ["Test_D", "EDITBOX", "setting 4", "Test Category 3", "d", nil, {systemChat str [4, _this]}] call CBA_fnc_addSetting; #endif // --- init settings namespaces diff --git a/addons/settings/fnc_addSetting.sqf b/addons/settings/fnc_addSetting.sqf index f252dddcf..8d650634b 100644 --- a/addons/settings/fnc_addSetting.sqf +++ b/addons/settings/fnc_addSetting.sqf @@ -45,4 +45,9 @@ Author: commy2 ---------------------------------------------------------------------------- */ -call (uiNamespace getVariable QFUNC(init)) == 0 +// Prep functions if not yet prepped to avoid race condition. +if (isNil QFUNC(init)) then { + #include "XEH_PREP.sqf" +}; + +call FUNC(init) == 0 diff --git a/addons/settings/initSettings.sqf b/addons/settings/initSettings.sqf index 1aac6b60c..71d75f867 100644 --- a/addons/settings/initSettings.sqf +++ b/addons/settings/initSettings.sqf @@ -29,9 +29,15 @@ if (isNil QGVAR(default)) then { private _userconfig = preprocessFile call (uiNamespace getVariable QGVAR(userconfig)); + INFO("Reading settings from settings file."); + { _x params ["_setting", "_value", "_priority"]; + #ifdef DEBUG_MODE_FULL + INFO_3("Setting %1 with value %2 and priority %3 set in userconfig.",_setting,_value,_priority); + #endif + GVAR(userconfig) setVariable [_setting, [_value, _priority]]; if (isServer) then { @@ -39,6 +45,8 @@ if (isNil QGVAR(default)) then { }; } forEach ([_userconfig, false] call FUNC(parse)); + INFO("Finished reading settings from settings file."); + // --- read mission settings file GVAR(missionConfig) = [] call CBA_fnc_createNamespace;