ACE3/addons/javelin/functions/fnc_mapHelperDraw.sqf

52 lines
1.6 KiB
Plaintext
Raw Normal View History

#include "..\script_component.hpp"
/*
* Author: PabstMirror
* Handles the map helper's draw event
* Resets arguments if not run recently
* And starts a watchdog to detect when weapon display unloaded
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_javelin_fnc_mapHelperDraw
*
* Public: No
*/
if (isNil QGVAR(arguments)) then {
TRACE_1("Starting optic draw", _this);
// reset shooter var:
private _currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player};
_currentShooter setVariable ["ace_missileguidance_target", nil, false];
GVAR(arguments) = [
diag_frameno, // Last run frame
objNull, // currentTargetObject
0, // Lock Start Time
0, // Next Sound timer
-1, // _fireDisabledEH
0 // _nextTargetScan
];
// Start up a watchdog for when the display is no longer shown (but might not be unloaded or null)
[{
if (isNull (uiNamespace getVariable ["ACE_RscOptics_javelin", displayNull])) exitWith {true};
GVAR(arguments) params ["_lastRunFrame"];
(diag_frameno < _lastRunFrame) || {diag_frameno > (_lastRunFrame + 1)}
}, {
TRACE_1("old/null display - ending optic draw",_this);
private _fireDisabledEH = GVAR(arguments) param [4, -1];
[_fireDisabledEH] call FUNC(enableFire);
GVAR(arguments) = nil;
}, []] call CBA_fnc_waitUntilAndExecute;
};
BEGIN_COUNTER(onOpticDraw);
GVAR(arguments) call FUNC(onOpticDraw);
END_COUNTER(onOpticDraw);