/* * Author: TheDrill, PabstMirror * Recieve an finger event, adds to the array (or updates if already present) and starts PFEH if not already running * * Arguments: * 0: Source Unit (can be self) * 1: Position being pointed at (ASL) * * Return Value: * None * * Example: * [bob, [1,2,3]] call ace_finger_fnc_incomingFinger; * * Public: No */ #include "script_component.hpp" params ["_sourceUnit", "_fingerPosPrecise", "_distance"]; // Add some random float to location if it's not our own finger: private _fingerPos = if (_sourceUnit == ACE_player) then { _fingerPosPrecise } else { _fingerPosPrecise vectorAdd ([random (2 * FP_RANDOMIZATION_X) - FP_RANDOMIZATION_X, random (2 * FP_RANDOMIZATION_X) - FP_RANDOMIZATION_X, random (2 * FP_RANDOMIZATION_Y) - FP_RANDOMIZATION_Y] vectorMultiply _distance) }; TRACE_3("incoming finger:", _sourceUnit, _fingerPosPrecise, _fingerPos); private _data = [diag_tickTime, _fingerPos, ([_sourceUnit, false, true] call EFUNC(common,getName))]; [GVAR(fingersHash), _sourceUnit, _data] call CBA_fnc_hashSet; if (GVAR(pfeh_id) == -1) then { GVAR(pfeh_id) = [DFUNC(perFrameEH), 0, []] call CBA_fnc_addPerFrameHandler; TRACE_1("Started PFEH", GVAR(pfeh_id)); };