#include "..\script_component.hpp" /* * Author: Garth 'L-H' de Wet * Opens the UI for explosive trigger selection * * Arguments: * 0: Explosive Magazine * 1: Explosive * * Return Value: * None * * Example: * [lbData [8866, lbCurSel 8866], _explosive] call ACE_Explosives_fnc_addTriggerActions; * * Public: No */ params ["_magazine", "_explosive"]; TRACE_2("params",_magazine,_explosive); private _isAttached = !isNull (attachedTo _explosive); private _detonators = [ACE_player] call FUNC(getDetonators); private _triggerTypes = [_magazine] call FUNC(triggerType); private _magTriggers = ConfigFile >> "CfgMagazines" >> _magazine >> "ACE_Triggers"; private _children = []; { private _required = getArray (_x >> "requires"); private _hasRequiredItems = true; { if !(_x in _detonators) exitWith { _hasRequiredItems = false; }; } forEach _required; if (_hasRequiredItems && {(!_isAttached) || {(getNumber (_x >> "isAttachable")) == 1}}) then { _children pushBack [ [ format ["Trigger_%1", _forEachIndex], if(isText(_magTriggers >> configName _x >> "displayName"))then {getText(_magTriggers >> configName _x >> "displayName")} else{getText(_x >> "displayName")}, if(isText(_magTriggers >> configName _x >> "picture"))then {getText(_magTriggers >> configName _x >> "picture")} else{getText(_x >> "picture")}, {(_this select 2) call FUNC(selectTrigger);}, {true}, {}, [_explosive, _magazine, configName _x] ] call EFUNC(interact_menu,createAction), [], ACE_Player ]; }; } forEach _triggerTypes; _children