diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 6109913189..27da6ab964 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -279,9 +279,33 @@ {_item in (GVAR(virtualItems) select 12)} ||\ {_item in (GVAR(virtualItems) select 13)} ||\ {_item in (GVAR(virtualItems) select 14)} ||\ - {_item in (GVAR(virtualItems) select 8)} + {_item in (GVAR(virtualItems) select 8)} ||\ + {_item in (GVAR(virtualItems) select 18)} #define CHECK_CONTAINER\ _item in (GVAR(virtualItems) select 4) ||\ {_item in (GVAR(virtualItems) select 5)} ||\ {_item in (GVAR(virtualItems) select 6)} + +#define CLASS_CHECK_ITEM\ + isClass (_weaponCfg >> _item) ||\ + {isClass (_vehcCfg >> _item)} ||\ + {isClass (_glassesCfg >> _item)} ||\ + {isClass (_magCfg >> _item)} + +#define CHECK_CONTAINER_ITEMS\ + _item in (GVAR(virtualItems) select 3) ||\ + {_item in (GVAR(virtualItems) select 4)} ||\ + {_item in (GVAR(virtualItems) select 5)} ||\ + {_item in (GVAR(virtualItems) select 6)} ||\ + {_item in (GVAR(virtualItems) select 7)} ||\ + {_item in (GVAR(virtualItems) select 8)} ||\ + {_item in (GVAR(virtualItems) select 10)} ||\ + {_item in (GVAR(virtualItems) select 11)} ||\ + {_item in (GVAR(virtualItems) select 12)} ||\ + {_item in (GVAR(virtualItems) select 13)} ||\ + {_item in (GVAR(virtualItems) select 14)} ||\ + {_item in (GVAR(virtualItems) select 15)} ||\ + {_item in (GVAR(virtualItems) select 16)} ||\ + {_item in (GVAR(virtualItems) select 17)} ||\ + {_item in (GVAR(virtualItems) select 18)} diff --git a/addons/arsenal/functions/fnc_fillLoadoutsList.sqf b/addons/arsenal/functions/fnc_fillLoadoutsList.sqf index fc8cc4b42b..72691c770a 100644 --- a/addons/arsenal/functions/fnc_fillLoadoutsList.sqf +++ b/addons/arsenal/functions/fnc_fillLoadoutsList.sqf @@ -102,7 +102,21 @@ private _fnc_handleLoadoutArray = { if ((_x select 0) isEqualType "") then { + private _item = _x select 0; + + if (CLASS_CHECK_ITEM) then { + if !(CHECK_CONTAINER_ITEMS) then { + + ((_loadoutData select _dataIndex) select 1) set [_currentIndex, []]; + _unavailableItemsAmount = _unavailableItemsAmount + 1; + }; + } else { + + ((_loadoutData select _dataIndex) select 1) set [_currentIndex, []]; + _nullItemsAmount = _nullItemsAmount + 1; + }; } else { + [(((_loadoutData select _dataIndex) select 1) select _currentIndex) select 0] call _weaponCheck; }; };