Change params order and improve clientInit

This commit is contained in:
jonpas 2016-03-08 18:40:23 +01:00
parent 64fe944b0f
commit 23e2617db8
5 changed files with 51 additions and 63 deletions

View File

@ -12,17 +12,13 @@ if (!hasInterface) exitWith {};
["infoDisplayChanged", { ["infoDisplayChanged", {
// Selective UI Advanced // Selective UI Advanced
// Defaults must be set in this EH to make sure controls are activated and advanced settings can be modified // Defaults must be set in this EH to make sure controls are activated and advanced settings can be modified
if (!GVAR(allowSelectiveUI)) then { private _force = [true, false] select (GVAR(allowSelectiveUI));
{ {
[_x, true] call FUNC(setAdvancedElement); [_x select 0, _x select 1, _x select 2, _force] call FUNC(setAdvancedElement);
} forEach ELEMENTS_ADVANCED; } forEach ELEMENTS_ADVANCED;
} else {
{
[_x] call FUNC(setAdvancedElement);
} forEach ELEMENTS_ADVANCED;
};
}] call EFUNC(common,addEventHandler); }] call EFUNC(common,addEventHandler);
// On changing settings
["SettingChanged", { ["SettingChanged", {
params ["_name"]; params ["_name"];
@ -33,11 +29,11 @@ if (!hasInterface) exitWith {};
// Selective UI Advanced // Selective UI Advanced
{ {
_x params ["_element"]; params ["_idd", "_elements", "_name"];
if (_name == _element) then { if (_name == _name) then {
[_x] call FUNC(setAdvancedElement); [_idd, _elements, _name] call FUNC(setAdvancedElement);
TRACE_2("Setting Changed",_name,_element); TRACE_2("Setting Changed",_name,_name);
}; };
} forEach ELEMENTS_ADVANCED; } forEach ELEMENTS_ADVANCED;
}] call EFUNC(common,addEventHandler); }] call EFUNC(common,addEventHandler);

View File

@ -3,23 +3,22 @@
* Sets advanced visible element of the UI using displays and controls. * Sets advanced visible element of the UI using displays and controls.
* *
* Arguments: * Arguments:
* 0: Element info <ARRAY> * 0: Element IDD <NUMBER>
* 0: Show/Hide Element OR Element Variable <BOOL/STRING> * 1: Element IDCs <ARRAY>
* 1: Element IDD <NUMBER> * 2: Show/Hide Element OR Element ACE Settings Variable <BOOL/STRING>
* 2: Element IDCs <ARRAY> * 3: Force change even when disallowed <BOOL> (default: false)
* 1: Force change even when disallowed <BOOL>
* *
* Return Value: * Return Value:
* None * Successfully Set <BOOL>
* *
* Example: * Example:
* [[show, 303, [188]], false] call ace_ui_fnc_setAdvancedElement * [303, [188], true, false] call ace_ui_fnc_setAdvancedElement
* *
* Public: No * Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
params ["_elementInfo", ["_force", false, [true]] ]; params ["_idd", "_elements", "_show", ["_force", false, [true]] ];
if (_elementInfo in GVAR(elementsSet)) exitWith {}; if (_elementInfo in GVAR(elementsSet)) exitWith {};
@ -27,8 +26,6 @@ if (!_force && {!GVAR(allowSelectiveUI)}) exitWith {
[LSTRING(Disallowed), 2] call EFUNC(common,displayTextStructured) [LSTRING(Disallowed), 2] call EFUNC(common,displayTextStructured)
}; };
_elementInfo params ["_show", "_idd", "_elements"];
// Get show/hide boolean from mission namespace if it's a string // Get show/hide boolean from mission namespace if it's a string
if (typeName _show == "STRING") then { if (typeName _show == "STRING") then {
_show = missionNamespace getVariable _show; _show = missionNamespace getVariable _show;

View File

@ -1,19 +1,18 @@
/* /*
* Author: Jonpas * Author: Jonpas
* Wrapper for setting advanced element visibility. * Setter for toggling advanced element visibility.
* *
* Arguments: * Arguments:
* 0: Set/Unset <BOOL> (default: true) * 0: Set/Unset <BOOL> (default: true)
* 1: Element info <ARRAY> * 1: Element IDD <NUMBER> (default: 0)
* 0: Show/Hide Element OR Element Variable <BOOL/STRING> * 2: Element IDCs <ARRAY> (default: [])
* 1: Element IDD <NUMBER> * 3: Show/Hide Element OR Element ACE Settings Variable <BOOL/STRING> (default: false)
* 2: Element IDCs <ARRAY>
* *
* Return Value: * Return Value:
* None * None
* *
* Example: * Example:
* [false] call ace_ui_fnc_setElementVisibility * [true, 300, [188], false] call ace_ui_fnc_setElementVisibility
* *
* Public: Yes * Public: Yes
*/ */
@ -21,32 +20,28 @@
params [ params [
["_set", true, [true]], ["_set", true, [true]],
["_elementInfo", [true, 0, []], [[]], 3]
];
_elementInfo params [
["_show", false, [true, ""]],
["_idd", 0, [0]], ["_idd", 0, [0]],
["_elements", [], [[]]] ["_elements", [], [[]]],
["_show", false, [true, ""]]
]; ];
if (_set) then { if (_set) then {
if ([_idd, _elements] in GVAR(elementsSet)) exitWith { TRACE_2("Element already set",_elementInfo,GVAR(elementsSet)); }; if ([_idd, _elements] in GVAR(elementsSet)) exitWith { TRACE_3("Element already set",_idd,_elements,GVAR(elementsSet)); };
TRACE_2("Setting element",_elementInfo,GVAR(elementsSet)); TRACE_4("Setting element",_idd,_elements,_show,GVAR(elementsSet));
private _success = [_elementInfo] call FUNC(setAdvancedElement); private _success = [_idd, _elements, _show] call FUNC(setAdvancedElement);
if (_success) then { if (_success) then {
GVAR(elementsSet) pushBack [_idd, _elements]; GVAR(elementsSet) pushBack [_idd, _elements];
}; };
} else { } else {
if ([_idd, _elements] in GVAR(elementsSet)) then { if ([_idd, _elements] in GVAR(elementsSet)) then {
TRACE_2("Unsetting element",_elementInfo,GVAR(elementsSet)); TRACE_4("Setting element",_idd,_elements,_show,GVAR(elementsSet));
[_idd, _elements, _show] call FUNC(setAdvancedElement);
TRACE_2("Toggling element",_elementInfo,GVAR(elementsSet));
[_elementInfo] call FUNC(setAdvancedElement);
private _index = GVAR(elementsSet) find [_idd, _elements]; private _index = GVAR(elementsSet) find [_idd, _elements];
GVAR(elementsSet) deleteAt _index; GVAR(elementsSet) deleteAt _index;
}; };
}; };
TRACE_1("Visibility set",GVAR(elementsSet));

View File

@ -3,7 +3,7 @@
* Sets basic visible elements of the UI using showHUD setter. * Sets basic visible elements of the UI using showHUD setter.
* *
* Arguments: * Arguments:
* 0: Force change even when disallowed <BOOL> * 0: Force change even when disallowed <BOOL> (default: false)
* *
* Return Value: * Return Value:
* None * None

View File

@ -20,27 +20,27 @@
// Elements // Elements
#define ELEMENTS_BASIC [QGVAR(soldierVehicleWeaponInfo), QGVAR(vehicleRadar), QGVAR(vehicleCompass), QGVAR(commandMenu), QGVAR(groupBar)] #define ELEMENTS_BASIC [QGVAR(soldierVehicleWeaponInfo), QGVAR(vehicleRadar), QGVAR(vehicleCompass), QGVAR(commandMenu), QGVAR(groupBar)]
// Element, IDD, IDC // IDD, IDC, Element (must be string to compare to changed setting name)
#define ELEMENTS_ADVANCED [ \ #define ELEMENTS_ADVANCED [ \
[QGVAR(weaponName), 300, [118] ], \ [300, [118], QGVAR(weaponName)], \
[QGVAR(weaponNameBackground), 300, [1001, 1008] ], \ [300, [1001, 1008], QGVAR(weaponNameBackground)], \
[QGVAR(firingMode), 300, [187, 1203] ], \ [300, [187, 1203], QGVAR(firingMode)], \
[QGVAR(ammoType), 300, [155] ], \ [300, [155], QGVAR(ammoType)], \
[QGVAR(ammoCount), 300, [184] ], \ [300, [184], QGVAR(ammoCount)], \
[QGVAR(magCount), 300, [185] ], \ [300, [185], QGVAR(magCount)], \
[QGVAR(throwableName), 300, [152] ], \ [300, [152], QGVAR(throwableName)], \
[QGVAR(throwableCount), 300, [151] ], \ [300, [151], QGVAR(throwableCount)], \
[QGVAR(weaponLowerInfoBackground), 300, [1202] ], \ [300, [1202], QGVAR(weaponLowerInfoBackground)], \
[QGVAR(zeroing), 300, [168] ], \ [300, [168], QGVAR(zeroing)], \
[QGVAR(stance), 303, [188, 1201] ], \ [303, [188, 1201], QGVAR(stance)], \
[QGVAR(vehicleName), 300, [120] ], \ [300, [120], QGVAR(vehicleName)], \
[QGVAR(vehicleNameBackground), 300, [1000, 1013] ], \ [300, [1000, 1013], QGVAR(vehicleNameBackground)], \
[QGVAR(vehicleFuelBar), 300, [113, 1202] ], \ [300, [113, 1202], QGVAR(vehicleFuelBar)], \
[QGVAR(vehicleSpeed), 300, [121, 1004, 1006] ], \ [300, [121, 1004, 1006], QGVAR(vehicleSpeed)], \
[QGVAR(vehicleAltitude), 300, [122, 1005, 1014] ], \ [300, [122, 1005, 1014], QGVAR(vehicleAltitude)], \
[QGVAR(vehicleDamage), 300, [111] ], \ [300, [111], QGVAR(vehicleDamage)], \
[QGVAR(vehicleInfoBackground), 300, [1200] ], \ [300, [1200], QGVAR(vehicleInfoBackground)], \
[QGVAR(vehicleGunnerWeapon), 300, [150] ] \ [300, [150], QGVAR(vehicleGunnerWeapon)] \
] ]