Skip to content

Commit

Permalink
Merge pull request #902 from dedmen/getAllItems
Browse files Browse the repository at this point in the history
Add CBA_fnc_uniqueUnitItems
  • Loading branch information
Killswitch00 authored Apr 15, 2018
2 parents f200efb + e0bdb1a commit 074c052
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
1 change: 1 addition & 0 deletions addons/common/CfgFunctions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ class CfgFunctions {
PATHTO_FNC(removeWeapon);
PATHTO_FNC(removeMagazine);
PATHTO_FNC(removeItem);
PATHTO_FNC(uniqueUnitItems);
PATHTO_FNC(weaponComponents);
PATHTO_FNC(dropWeapon);
PATHTO_FNC(dropMagazine);
Expand Down
48 changes: 48 additions & 0 deletions addons/common/fnc_uniqueUnitItems.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/* ----------------------------------------------------------------------------
Function: CBA_fnc_uniqueUnitItems
Description:
Retrievs a unique list of items in the units inventory.
Parameters:
_unit - Unit to retrieve the items from
_weaponItems - Include weapons, attachments, loaded magazines (Default: false)
_backpack - Include items in backpack (Default: true)
_vest - Include items in vest (Default: true)
_uniform - Include items in uniform (Default: true)
Example:
(begin example)
_allItems = [player, true, false] call CBA_fnc_uniqueUnitItems
(end)
Returns:
Array of item classnames <ARRAY>
Author:
Dedmen
---------------------------------------------------------------------------- */
#include "script_component.hpp"
SCRIPT(uniqueUnitItems);

params [["_unit", objNull, [objNull]], ["_weaponItems", true, [true]], ["_backpack", true, [true]], ["_vest", true, [true]], ["_uniform", true, [true]]];

private _allItems = (assignedItems _unit);
if (_uniform) then {_allItems append ((getItemCargo (uniformContainer _unit)) select 0);};
if (_vest) then {_allItems append ((getItemCargo (vestContainer _unit)) select 0);};
if (_backpack) then {_allItems append ((getItemCargo (backpackContainer _unit)) select 0);};

if (_weaponItems) then {
_allItems append (primaryWeaponItems _unit);
_allItems append (secondaryWeaponItems _unit);
_allItems append (handgunItems _unit);
_allItems append (primaryWeaponMagazine _unit);
_allItems append (secondaryWeaponMagazine _unit);
_allItems append (handgunMagazine _unit);
_allItems append [
primaryWeapon _unit, secondaryWeapon _unit, handgunWeapon _unit
];
_allItems pushBack (_unit call CBA_fnc_binocularMagazine);
};

_allItems arrayIntersect _allItems //Remove duplicates

0 comments on commit 074c052

Please sign in to comment.