2023-09-12 18:58:10 +00:00
|
|
|
#include "..\script_component.hpp"
|
2016-08-27 08:19:39 +00:00
|
|
|
/*
|
|
|
|
* Author: commy2, voiper
|
|
|
|
* Fired EH, for handling chemlight ThrowMuzzles.
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* None. Parameters inherited from EFUNC(common,firedEH)
|
|
|
|
*
|
|
|
|
* Return Value:
|
|
|
|
* None
|
|
|
|
*
|
|
|
|
* Example:
|
|
|
|
* [clientFiredBIS-XEH] call ace_chemlights_fnc_throwEH;
|
|
|
|
*
|
|
|
|
* Public: No
|
|
|
|
*/
|
|
|
|
|
2016-08-31 20:12:40 +00:00
|
|
|
params ["_unit", "_weapon", "", "", "_ammo", "", "_projectile"];
|
2016-08-27 08:19:39 +00:00
|
|
|
|
|
|
|
if ((_weapon != "Throw") || {!(_ammo isKindOf ["Chemlight_base", configFile >> "CfgAmmo"])}) exitWith {};
|
|
|
|
|
|
|
|
// http://feedback.arma3.com/view.php?id=12340
|
|
|
|
if (isNull _projectile) then {
|
|
|
|
_projectile = nearestObject [_unit, _ammo];
|
|
|
|
};
|
|
|
|
|
|
|
|
if (local _unit) then {
|
|
|
|
if ([_ammo] call FUNC(isIRClass)) then {
|
2016-09-05 18:23:03 +00:00
|
|
|
// Handle Advanced Throwing
|
|
|
|
if ((ACE_player getVariable [QEGVAR(advanced_throwing,activeThrowable), objNull]) == _projectile) then {
|
2016-08-31 20:12:40 +00:00
|
|
|
[_projectile, _ammo, true] call FUNC(throwIR); // direct call if we are priming with adv throw
|
|
|
|
} else {
|
|
|
|
[{_this call FUNC(throwIR)}, [_projectile, _ammo]] call CBA_fnc_execNextFrame;
|
|
|
|
};
|
2016-08-27 08:19:39 +00:00
|
|
|
};
|
|
|
|
};
|