ACE3/addons/common/functions/fnc_setSetting.sqf
PabstMirror cd30b09b4f Convert ACE_settings to CBA_settings (#4895)
* Convert ACE_settings to CBA_settings

* Run Modules Globaly, BWC for SetSetting

* Add support for string settings

* ACE_ServerSettings warning

* Add handler for global setting being changed

* Add deprecated and replaced not to Settings Framework doc

* Remove options menu UI, Move Debug and HeadBug Fix to Options in Pause Menu

* Change modules scope to 1

* Disable debug
2017-11-11 20:21:55 +01:00

37 lines
1.2 KiB
Plaintext

/*
* Author: esteldunedain
* Change the value of an existing setting if it was not previously forced. Force if neccesary.
* If executed on clients it has local effect.
* If executed on server it can have global effect if the last parameter is set to true.
*
* Arguments:
* 0: Setting name <STRING>
* 1: Value <ANY>
* 2: Force it? (default: false) <BOOL>
* 3: Broadcast the change to all clients (default: false) <BOOL>
*
* Return Value:
* None
*
* Example:
* ["ace_map_gestures_enabled", true, false, true] call ace_common_fnc_setSetting
*
* Public: No
*/
#define DEBUG_MODE_FULL
#include "script_component.hpp"
params ["_name", "_value", ["_force", false], ["_broadcastChanges", false]];
TRACE_4("setSetting",_name,_value,_force,_broadcastChanges);
if (!isServer) exitWith {};
if (!_broadcastChanges) exitWith {
ERROR_1("Setting [%1] - SetSetting no longer supports non-global settings",_name);
};
if ([_settingName, "mission"] call CBA_settings_fnc_isForced) then {
WARNING_1("Setting [%1] - Already mission forced - Ignoring",_settingName);
};
[QGVAR(setSetting), [_name, _value], (format [QGVAR(setSetting_%1), _name])] call CBA_fnc_globalEventJIP;