/* * Author: esteldunedain * Create one action per passenger. * * Arguments: * 0: Vehicle * 1: Player * 3: Parameters * * Return Value: * Children actions * * Example: * [target, player, [params]] call ace_interaction_fnc_addPassengersActions * * Public: No */ #include "script_component.hpp" params ["_vehicle", "_player"]; private "_actions"; _actions = []; { private _unit = _x; if (_unit != _player && {getText (configFile >> "CfgVehicles" >> typeOf _unit >> "simulation") != "UAVPilot"}) then { private _icon = [ "", "A3\ui_f\data\IGUI\RscIngameUI\RscUnitInfo\role_driver_ca.paa", "A3\ui_f\data\IGUI\RscIngameUI\RscUnitInfo\role_gunner_ca.paa", "A3\ui_f\data\IGUI\RscIngameUI\RscUnitInfo\role_commander_ca.paa" ] select (([driver _vehicle, gunner _vehicle, commander _vehicle] find _unit) + 1); if (_unit getVariable [QEGVAR(captives,isHandcuffed), false]) then { _icon = QUOTE(PATHTOEF(captives,UI\handcuff_ca.paa)); }; _actions pushBack [ [ format ["%1", _unit], [_unit, true] call EFUNC(common,getName), _icon, { //statement (Run on hover) - reset the cache so we will insert actions immedietly when hovering over new unit TRACE_2("Cleaning Cache",_target,vehicle _target); [vehicle _target, QEGVAR(interact_menu,ATCache_ACE_SelfActions)] call EFUNC(common,eraseCache); }, {true}, { if (EGVAR(interact_menu,selectedTarget) isEqualTo _target) then { _this call FUNC(addPassengerActions) } else { [] //not selected, don't waste time on actions }; }, [_unit], {[0, 0, 0]}, 2, [false,false,false,true,false] //add run on hover (4th bit true) ] call EFUNC(interact_menu,createAction), [], _unit ]; }; false } count crew _vehicle; _actions