mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
72 lines
2.1 KiB
Plaintext
72 lines
2.1 KiB
Plaintext
/*
|
|
* Author: Glowbal
|
|
* Called from the onLoad of ACE_settingsMenu dialog.
|
|
*
|
|
* Arguments:
|
|
* None
|
|
*
|
|
* Return Value:
|
|
* None
|
|
*
|
|
* Example:
|
|
* [onLoadEvent] call ACE_optionsmenu_fnc_onSettingsMenuOpen
|
|
*
|
|
* Public: No
|
|
*/
|
|
|
|
#include "script_component.hpp"
|
|
|
|
private ["_setting", "_menu"];
|
|
|
|
// Filter only user setable setting
|
|
GVAR(clientSideOptions) = [];
|
|
GVAR(clientSideColors) = [];
|
|
private _clientSettableCategories = [""];
|
|
|
|
{
|
|
// If the setting is user setable and not forced
|
|
if ((_x select 2) && !(_x select 6)) then {
|
|
// Append the current value to the setting metadata
|
|
_setting = + _x;
|
|
_setting pushBack (missionNamespace getVariable (_x select 0));
|
|
|
|
// Categorize the setting according to types
|
|
// @todo: allow the user to modify other types of parameters?
|
|
if ((_x select 1) == "SCALAR" || (_x select 1) == "BOOL") then {
|
|
GVAR(clientSideOptions) pushBack _setting;
|
|
};
|
|
if ((_x select 1) == "COLOR") then {
|
|
GVAR(clientSideColors) pushBack _setting;
|
|
};
|
|
_clientSettableCategories pushBackUnique (_x select 8); //Add to list of user-settable categories
|
|
};
|
|
} forEach EGVAR(common,settings);
|
|
|
|
//Delay a frame
|
|
[{ [MENU_TAB_OPTIONS] call FUNC(onListBoxShowSelectionChanged) }, []] call EFUNC(common,execNextFrame);
|
|
|
|
disableSerialization;
|
|
_menu = uiNamespace getVariable "ACE_settingsMenu";
|
|
(_menu displayCtrl 1002) ctrlEnable false;
|
|
(_menu displayCtrl 1003) ctrlEnable false;
|
|
|
|
if (GVAR(serverConfigGeneration) == 0) then {
|
|
(_menu displayCtrl 1102) ctrlEnable false;
|
|
(_menu displayCtrl 1102) ctrlShow false;
|
|
};
|
|
|
|
lbClear (_menu displayCtrl 14);
|
|
{
|
|
if (_x in _clientSettableCategories) then { //only show category if it has user-settable options
|
|
if (_x == "") then {
|
|
_x = localize LSTRING(category_all);
|
|
};
|
|
private _Index = (_menu displayCtrl 14) lbAdd _x;
|
|
(_menu displayCtrl 14) lbSetValue [_Index, _forEachIndex];
|
|
};
|
|
} forEach GVAR(categories);
|
|
|
|
(_menu displayCtrl 14) lbSetCurSel GVAR(currentCategorySelection); //All Catagoies
|
|
|
|
|