ACE3/addons/map/functions/fnc_isFlashlight.sqf
BaerMitUmlaut d6faac5881
Add IR Flashlights (#6563)
* Initial IR flashlight tests

* More experiments

* Rewrite using engine IR lights

* Rework ranges, fix bugs, add docs

* Fix uncommented DISABLE_COMPILE_CACHE

Co-authored-by: jonpas <jonpas33@gmail.com>

* Markdown fixes

Co-authored-by: jonpas <jonpas33@gmail.com>

* Markdown fixes

Co-authored-by: jonpas <jonpas33@gmail.com>

* Markdown fixes

Co-authored-by: jonpas <jonpas33@gmail.com>

* Markdown fixes

Co-authored-by: jonpas <jonpas33@gmail.com>

* Markdown fixes

Co-authored-by: jonpas <jonpas33@gmail.com>

* Use baseWeapon instead of custom property

* Add baseWeapon to SPIR

---------

Co-authored-by: jonpas <jonpas33@gmail.com>
2023-09-17 09:32:39 +02:00

44 lines
1.1 KiB
Plaintext

#include "..\script_component.hpp"
/*
* Author: veteran29
* Checks if the given item is a flashlight.
*
* Arguments:
* 0: Item Classname <STRING>
*
* Return Value:
* Is flashlight <BOOL>
*
* Example:
* ["acc_flashlight"] call ace_map_fnc_isFlashlight
*
* Public: No
*/
params [["_class", "", [""]]];
private _isFlashlight = GVAR(flashlights) getVariable _class;
if (isNil "_isFlashlight") then {
private _items = ([_class] + (_class call CBA_fnc_switchableAttachments));
private _cfgWeapons = configFile >> "CfgWeapons";
// if this item or any of the switchable items is a flashlight
_isFlashlight = _items findIf {
private _weaponConfig = _cfgWeapons >> _x;
[
_weaponConfig >> "ItemInfo" >> "FlashLight",
_weaponConfig >> "FlashLight"
] findIf {
isText (_x >> "ACE_Flashlight_Colour")
|| {!(getArray (_x >> "ambient") in [[], [0,0,0]]) && {getNumber (_x >> "irLight") == 0}}
} != -1 // return
} != -1;
// cache value
GVAR(flashlights) setVariable [_class, _isFlashlight];
};
_isFlashlight // return