/* * Author: PabstMirror * Helper function to get all gear of a unit. * * Arguments: * 0: Target * * Return Value: * Array of 2 arrays, classnames and count * * Example: * [["ace_bandage"],[2]] = [bob] call ace_disarming_fnc_getAllGearUnit * * Public: No */ #include "script_component.hpp" PARAMS_1(_target); private ["_allItems", "_classnamesCount", "_index", "_uniqueClassnames"]; _allItems = ((weapons _target) + (magazines _target) + (items _target) + (assignedItems _target)); if ((backpack _target) != "") then { _allItems pushBack (backpack _target); }; if ((vest _target) != "") then { _allItems pushBack (vest _target); }; if ((uniform _target) != "") then { _allItems pushBack (uniform _target); }; if ((headgear _target) != "") then { _allItems pushBack (headgear _target); }; //What kind of asshole takes a man's glasses? if ((goggles _target) != "") then { _allItems pushBack (goggles _target); }; _uniqueClassnames = []; _classnamesCount = []; //Filter unique and count { _index = _uniqueClassnames find _x; if (_index != -1) then { _classnamesCount set [_index, ((_classnamesCount select _index) + 1)]; } else { _uniqueClassnames pushBack _x; _classnamesCount pushBack 1; }; } forEach _allItems; [_uniqueClassnames, _classnamesCount]