/* * Author: SilentSpike * Initalises the `defend area` zeus module display * * Arguments: * 0: dummy controls group * * Return Value: * None * * Public: No */ #include "script_component.hpp" disableSerialization; //Generic Init: params ["_control"]; private _display = ctrlParent _control; private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); _control ctrlRemoveAllEventHandlers "setFocus"; //Validate the module target: private _unit = effectiveCommander (attachedTo _logic); scopeName "Main"; private _fnc_errorAndClose = { params ["_msg"]; _display closeDisplay 0; deleteVehicle _logic; [_msg] call EFUNC(common,displayTextStructured); breakOut "Main"; }; switch (false) do { case !(isNull _unit): { [LSTRING(NothingSelected)] call _fnc_errorAndClose; }; case (_unit isKindOf "CAManBase"): { [LSTRING(OnlyInfantry)] call _fnc_errorAndClose; }; case (alive _unit): { [LSTRING(OnlyAlive)] call _fnc_errorAndClose; }; }; private _fnc_onUnload = { private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); if (isNull _logic) exitWith {}; if (_this select 1 == 2) then { deleteVehicle _logic; }; }; private _fnc_onConfirm = { params [["_ctrlButtonOK", controlNull, [controlNull]]]; private _display = ctrlparent _ctrlButtonOK; if (isNull _display) exitWith {}; private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); if (isNull _logic) exitWith {}; private _unit = effectiveCommander (attachedTo _logic); private _radius = GETVAR(_display,GVAR(radius),50); private _position = GETVAR(_display,GVAR(position),getPos _logic); [QGVAR(moduleDefendArea), [_unit,_position,_radius], _unit] call CBA_fnc_targetEvent; deleteVehicle _logic; }; _display displayAddEventHandler ["unload", _fnc_onUnload]; _control ctrlAddEventHandler ["buttonClick", _fnc_onConfirm];