ACE3/addons/chemlights/functions/fnc_throwEH.sqf
jonpas 2474da36b3 Fix pick up delay and IR chemlights, prevent picking up GL and mortar smoke shells (#4336)
* Fix pick up interaction not rendering right after throw, Prevent GL rounds from being picked up

* Prevent picking up GL and mortar smoke shells

* Fix pick up delay properly, Add separate define for quick throwing (for use when debugging)

* Fix forgotten rename in IR chemlight handling
2016-09-05 20:23:03 +02:00

38 lines
1.0 KiB
Plaintext

/*
* 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
*/
#include "script_component.hpp"
params ["_unit", "_weapon", "", "", "_ammo", "", "_projectile"];
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 {
// Handle Advanced Throwing
if ((ACE_player getVariable [QEGVAR(advanced_throwing,activeThrowable), objNull]) == _projectile) then {
[_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;
};
};
};