ACE3/addons/zeus/functions/fnc_ui_globalSetSkill.sqf
SilentSpike 600b71817f Update zeus module logic deletion behaviour
The teleport players module is reusable, while the global AI skill and group side modules should be deleted appropriately once the display is closed.
2016-05-18 16:30:14 +01:00

82 lines
2.5 KiB
Plaintext

/*
* Author: PabstMirror
* Initalises the `global skill` zeus module display
*
* Arguments:
* 0: globalSetSkill controls group <CONTROL>
*
* Return Value:
* None <NIL>
*
* Example:
* onSetFocus = "_this call ace_zeus_fnc_ui_globalSetSkill"
*
* Public: No
*/
#include "script_component.hpp"
disableSerialization;
params ["_control"];
TRACE_1("params",_control);
//Generic Init:
private _display = ctrlparent _control;
private _ctrlButtonOK = _display displayctrl 1; //IDC_OK
private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull);
TRACE_1("logicObject",_logic);
_control ctrlRemoveAllEventHandlers "setFocus";
//Specific on-load stuff:
private _fnc_sliderMove = {
params ["_slider"];
private _idc = ctrlIDC _slider; // IDCs ∈ [16184,16187]
private _curVal = GVAR(GlobalSkillAI) select (_idc - 16184); // [0,3]
_slider ctrlSetTooltip format ["%1%3 (was %2%3)", round(sliderPosition _slider * 100), round(_curVal * 100), "%"];
};
{
private _slider = _display displayCtrl _x;
_slider sliderSetRange [0, 1];
_slider sliderSetSpeed [0.01,0.1];
_slider sliderSetPosition (GVAR(GlobalSkillAI) select _forEachIndex);
_slider ctrlAddEventHandler ["SliderPosChanged", _fnc_sliderMove];
_slider call _fnc_sliderMove;
} forEach [16184,16185,16186,16187];
(_display displayCtrl 16188) cbSetChecked (GVAR(GlobalSkillAI) select 4);
(_display displayCtrl 16189) cbSetChecked (GVAR(GlobalSkillAI) select 5);
private _fnc_onUnload = {
private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull);
if (isNull _logic) exitWith {};
deleteVehicle _logic;
};
private _fnc_onConfirm = {
params [["_ctrlButtonOK", controlNull, [controlNull]]];
TRACE_1("_fnc_onConfirm params",_this);
private _display = ctrlparent _ctrlButtonOK;
if (isNull _display) exitWith {};
GVAR(GlobalSkillAI) = [
sliderPosition (_display displayCtrl 16184), // General
sliderPosition (_display displayCtrl 16185), // Accuracy
sliderPosition (_display displayCtrl 16186), // Handling
sliderPosition (_display displayCtrl 16187), // Spotting
cbChecked (_display displayCtrl 16188), // Seek cover
cbChecked (_display displayCtrl 16189) // Autocombat
];
publicVariable QGVAR(GlobalSkillAI); // Values should persist for future use
// PV EH won't run on local machine
[QGVAR(GlobalSkillAI),GVAR(GlobalSkillAI)] call FUNC(moduleGlobalSetSkill);
};
_display displayAddEventHandler ["unload", _fnc_onUnload];
_ctrlButtonOK ctrlAddEventHandler ["buttonclick", _fnc_onConfirm];