ACE3/addons/finger/functions/fnc_perFrameEH.sqf

45 lines
1.5 KiB
Plaintext
Raw Normal View History

2015-06-09 01:34:29 +00:00
/*
* Author: TheDrill, PabstMirror
* The perFrameEventHandler to draw the icons
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [fromCBA] call ace_finger_fnc_perFrameEH;
*
* Public: No
*/
#include "script_component.hpp"
2016-07-30 17:28:07 +00:00
if (!alive ACE_player) then {GVAR(fingersHash) = [] call CBA_fnc_hashCreate;};
2015-06-09 01:34:29 +00:00
// Conditions: canInteract
2016-07-30 17:28:07 +00:00
if !([ACE_player, ACE_player, ["isNotInside"]] call EFUNC(common,canInteractWith)) then {GVAR(fingersHash) = [] call CBA_fnc_hashCreate;};
// Make sure player is dismounted or in a static weapon:
2016-07-30 17:28:07 +00:00
if ((ACE_player != vehicle ACE_player) && {!((vehicle ACE_player) isKindOf "StaticWeapon")}) then {GVAR(fingersHash) = [] call CBA_fnc_hashCreate;};
2015-06-09 01:34:29 +00:00
private _iconSize = BASE_SIZE * 0.10713 * (call EFUNC(common,getZoom));
2015-06-09 01:34:29 +00:00
2016-07-30 17:28:07 +00:00
[+GVAR(fingersHash), {
_value params ["_lastTime", "_pos", "_name"];
private _timeLeftToShow = _lastTime + FP_TIMEOUT - diag_tickTime;
2015-06-09 01:34:29 +00:00
if (_timeLeftToShow <= 0) then {
2016-07-30 17:28:07 +00:00
[GVAR(fingersHash), _key] call CBA_fnc_hashRem;
2015-06-09 01:34:29 +00:00
} else {
private _drawColor = + GVAR(indicatorColor);
// Fade out:
_drawColor set [3, ((_drawColor select 3) * ((_timeLeftToShow min 0.5) / 0.5))];
2015-06-09 01:34:29 +00:00
drawIcon3D [QPATHTOF(UI\fp_icon2.paa), _drawColor, ASLtoAGL _pos, _iconSize, _iconSize, 0, _name, 1, 0.03, "RobotoCondensed"];
2015-06-09 01:34:29 +00:00
};
2016-07-30 17:28:07 +00:00
}] call CBA_fnc_hashEachPair;
2015-06-09 01:34:29 +00:00
2016-07-30 17:28:07 +00:00
if ((GVAR(fingersHash) select 1) isEqualTo []) then {
TRACE_1("Ending PFEH", GVAR(pfeh_id));
2015-06-09 01:34:29 +00:00
[GVAR(pfeh_id)] call CBA_fnc_removePerFrameHandler;
GVAR(pfeh_id) = -1;
};