Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add param for settings that require mission restart #6512

Merged
merged 2 commits into from
Nov 2, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion addons/advanced_fatigue/initSettings.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
[LSTRING(Enabled), LSTRING(Enabled_Description)],
LSTRING(DisplayName),
true,
true
true,
{[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this comment looks quite weird in each file because other params are not commented

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TBH I would prefer the other true's to be commented too. But on the other end we cannot comment the same things over and over again everywhere.
Or better we probably shouldn't.

] call CBA_Settings_fnc_init;

[
Expand Down
6 changes: 4 additions & 2 deletions addons/common/functions/fnc_cbaSettings_convertHelper.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ private _settings = configProperties [configFile >> "ACE_Settings", "(isClass _x
private _category = getText (_config >> "category");

private _cbaIsGlobal = (!_isClientSettable) || _isForced;
private _warnIfChangedMidMission = _cbaIsGlobal && {(getNumber (_config >> "canBeChanged")) == 0};
if (_isForced) then {GVAR(cbaSettings_forcedSettings) pushBack (toLower _varName);};

// Basic handling of setting types CBA doesn't support:
Expand Down Expand Up @@ -117,10 +118,11 @@ private _settings = configProperties [configFile >> "ACE_Settings", "(isClass _x
_output pushBack format [" %1, // %2", _cbaValueInfo, _cbaValueInfoHint];
_output pushBack format [" %1, // isGlobal", _cbaIsGlobal];
if ((_varName select [0, 4]) == "ACE_") then {
_output pushBack format [" {[QGVAR(%1), _this] call EFUNC(common,cbaSettings_settingChanged)}", _gvarName];
_output pushBack format [" {[QGVAR(%1), _this] call EFUNC(common,cbaSettings_settingChanged)},", _gvarName];
} else {
_output pushBack format [" {[""%1"", _this] call ace_common_fnc_cbaSettings_settingChanged}", _varName];
_output pushBack format [" {[""%1"", _this] call ace_common_fnc_cbaSettings_settingChanged},", _varName];
};
_output pushBack format [" %1 // Needs mission restart", _warnIfChangedMidMission];
_output pushBack "] call CBA_settings_fnc_init;";
} forEach _settings;

Expand Down
3 changes: 2 additions & 1 deletion addons/common/functions/fnc_cbaSettings_loadFromConfig.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ private _isForced = (getNumber (_config >> "force")) > 0;
private _category = getText (_config >> "category");

private _cbaIsGlobal = (!_isClientSettable) || _isForced;
private _warnIfChangedMidMission = _cbaIsGlobal && {(getNumber (_config >> "canBeChanged")) == 0};
if (_isForced) then {GVAR(cbaSettings_forcedSettings) pushBack (toLower _varName);};

// Basic handling of setting types CBA doesn't support:
Expand Down Expand Up @@ -98,7 +99,7 @@ private _code = compile format ['["%1", _this] call FUNC(cbaSettings_settingChan

TRACE_2("setting",_cbaSettingType,_cbaValueInfo);
TRACE_4("",_isForced,_cbaIsGlobal,_category,_cbaValueInfo);
private _return = [_varName, _cbaSettingType, [_localizedName, _localizedDescription], _category, _cbaValueInfo, _cbaIsGlobal, _code] call CBA_settings_fnc_init;
private _return = [_varName, _cbaSettingType, [_localizedName, _localizedDescription], _category, _cbaValueInfo, _cbaIsGlobal, _code, _warnIfChangedMidMission] call CBA_settings_fnc_init;
TRACE_1("returned",_return);
if ((isNil "_return") || {_return != 0}) then {ERROR_1("Setting [%1] - CBA Error",_varName);};
_return
Expand Down
9 changes: 4 additions & 5 deletions addons/common/functions/fnc_cbaSettings_settingChanged.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,9 @@ TRACE_2("",_settingName,_newValue);

["ace_settingChanged", [_settingName, _newValue]] call CBA_fnc_localEvent;

if (_canBeChanged) exitWith {};
if (!((toLower _settingName) in CBA_settings_needRestart)) exitWith {};
if (_canBeChanged) exitWith {WARNING_1("update cba setting [%1] to use correct Need Restart param",_settingName);};
if (!GVAR(settingsInitFinished)) exitWith {}; // Ignore changed event before CBA_settingsInitialized
if (CBA_settings_default getVariable [_settingName, []] param [7, 0] == 0) exitWith {}; // Ignore if not a global setting
if ((getNumber (configFile >> "ACE_settings" >> _settingName >> "canBeChanged")) == 1) exitWith {}; // Ignore if flagged as ok to change

WARNING_1("Global setting [%1] changed mid-mission",_settingName);
[QGVAR(displayTextStructured), [format ["Global setting %1 changed mid-mission. Mission restart may be required to prevent issues", _settingName], 4]] call CBA_fnc_localEvent;
WARNING_1("Setting [%1] changed mid-mission",_settingName);
[QGVAR(displayTextStructured), [format ["Setting %1 changed mid-mission. Mission restart may be required to prevent issues", _settingName], 4]] call CBA_fnc_localEvent;
28 changes: 21 additions & 7 deletions addons/map/initSettings.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
[localize LSTRING(MapIllumination_DisplayName), localize LSTRING(MapIllumination_Description)],
format["ACE %1", localize LSTRING(Module_DisplayName)],
true,
true
true,
{[QGVAR(mapIllumination), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

[
Expand All @@ -13,7 +15,9 @@
[localize LSTRING(MapGlow_DisplayName), localize LSTRING(MapGlow_Description)],
format["ACE %1", localize LSTRING(Module_DisplayName)],
true,
true
true,
{[QGVAR(mapGlow), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

[
Expand Down Expand Up @@ -49,7 +53,9 @@
[localize LSTRING(DefaultChannel_DisplayName), localize LSTRING(DefaultChannel_Description)],
format["ACE %1", localize LSTRING(Module_DisplayName)],
[[-1, 0, 1, 2, 3, 4, 5], [ELSTRING(common,Disabled), "STR_channel_global", "STR_channel_side", "STR_channel_command", "STR_channel_group", "STR_channel_vehicle", "STR_channel_direct"], 0],
true
true,
{[QGVAR(DefaultChannel), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

// Blue Force Tracking
Expand All @@ -59,7 +65,9 @@
[localize LSTRING(BFT_Enabled_DisplayName), localize LSTRING(BFT_Enabled_Description)],
[format ["ACE %1", localize LSTRING(Module_DisplayName)], localize LSTRING(BFT_Module_DisplayName)],
false,
true
true,
{[QGVAR(BFT_Enabled), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

[
Expand All @@ -68,7 +76,9 @@
[localize LSTRING(BFT_Interval_DisplayName), localize LSTRING(BFT_Interval_Description)],
[format ["ACE %1", localize LSTRING(Module_DisplayName)], localize LSTRING(BFT_Module_DisplayName)],
[0, 30, 1, 1],
true
true,
{[QGVAR(BFT_Interval), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

[
Expand All @@ -77,7 +87,9 @@
[localize LSTRING(BFT_ShowPlayerNames_DisplayName), localize LSTRING(BFT_ShowPlayerNames_Description)],
[format ["ACE %1", localize LSTRING(Module_DisplayName)], localize LSTRING(BFT_Module_DisplayName)],
false,
true
true,
{[QGVAR(BFT_ShowPlayerNames), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

[
Expand All @@ -86,5 +98,7 @@
[localize LSTRING(BFT_HideAiGroups_DisplayName), localize LSTRING(BFT_HideAiGroups_Description)],
[format ["ACE %1", localize LSTRING(Module_DisplayName)], localize LSTRING(BFT_Module_DisplayName)],
false,
true
true,
{[QGVAR(BFT_HideAiGroups), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
6 changes: 4 additions & 2 deletions addons/nightvision/initSettings.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,17 @@
localize LSTRING(Category),
[0,2,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QGVAR(effectScaling), _this] call EFUNC(common,cbaSettings_settingChanged)}
{[QGVAR(effectScaling), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(fogScaling), "SLIDER",
[LSTRING(fogScaling_DisplayName), LSTRING(fogScaling_Description)],
localize LSTRING(Category),
[0,2,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
true, // isGlobal
{[QGVAR(fogScaling), _this] call EFUNC(common,cbaSettings_settingChanged)}
{[QGVAR(fogScaling), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

[
Expand Down
3 changes: 2 additions & 1 deletion addons/noradio/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,5 @@ if (hasInterface) then {
} else {
[ACE_player, "isPlayer"] call EFUNC(common,unmuteUnit);
};
}] call CBA_settings_fnc_init;
}, true // Needs mission restart
] call CBA_settings_fnc_init;
3 changes: 2 additions & 1 deletion addons/repair/initSettings.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@
[localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"],
true, // default value
true, // isGlobal
{[QGVAR(addSpareParts), _this] call EFUNC(common,cbaSettings_settingChanged)}
{[QGVAR(addSpareParts), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

[
Expand Down
6 changes: 4 additions & 2 deletions addons/vehiclelock/initSettings.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
LSTRING(DisplayName),
false, // default value
true, // isGlobal
{[QGVAR(lockVehicleInventory), _this] call EFUNC(common,cbaSettings_settingChanged)}
{[QGVAR(lockVehicleInventory), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;

[
Expand All @@ -24,5 +25,6 @@
LSTRING(DisplayName),
[[-1,0,1,2],["str_cfg_envsounds_default", LSTRING(VehicleStartingLockState_AsIs), LSTRING(VehicleStartingLockState_Locked), LSTRING(VehicleStartingLockState_Unlocked)], 0], // [values, titles, defaultIndex]
true, // isGlobal
{[QGVAR(vehicleStartingLockState), _this] call EFUNC(common,cbaSettings_settingChanged)}
{[QGVAR(vehicleStartingLockState), _this] call EFUNC(common,cbaSettings_settingChanged)},
true // Needs mission restart
] call CBA_settings_fnc_init;