params [ ["_player", objNull, [objNull]] ]; if (!isPlayer _player) exitWith { diag_log("exitWith logPlayerInventory")}; _items = []; _items append uniformItems _player; _items append vestItems _player; _items append backpackItems _player; _items pushback hmd _player; _items pushback binocular _player; _items append primaryWeaponItems _player; _noncompliant = []; _unlisted = []; { _item = _x; _modes = getArray(configfile >> "CfgWeapons" >> _item >> "visionMode"); _subModes = [configfile >> "CfgWeapons" >> _item >> "ItemInfo" >> "OpticsModes", 1] call BIS_fnc_returnChildren; { _modes append getArray( _x >> "visionMode" ); } forEach _subModes; _restrictedItemList = ["A3_GPNVG18b_REC_TI","A3_GPNVG18_REC_TI","A3_GPNVG18b_TI","A3_GPNVG18_TI","A3_GPNVG18b_REC_BLK_TI","A3_GPNVG18_REC_BLK_TI","A3_GPNVG18b_BLK_TI","A3_GPNVG18_BLK_TI","NVGogglesB_gry_F","NVGogglesB_grn_F","NVGogglesB_blk_F","optic_Nightstalker","rhsusf_acc_anpas13gv1","Tier1_ANPVS10_Tan","rhsusf_acc_anpvs27","optic_tws_mg","optic_tws"]; if ( _x in _restrictedItemList ) then { _noncompliant pushBackUnique _item; }; if ((count _modes) isNotEqualTo 0) then { _modes = _modes apply { toLower _x }; if ( "ti" in _modes ) then { _unlisted pushBackUnique _item; }; }; } forEach _items; { diag_log text format["[MILSIM] (logPlayerInventory): %1 has a restricted inventory item: %2", name _player, getText( configfile >> "CfgWeapons" >> _x >> "displayName" )]; } forEach _noncompliant; { diag_log text format["[MILSIM] (logPlayerInventory): %1 has an unlisted thermal item: %2", name _player, getText( configfile >> "CfgWeapons" >> _x >> "displayName" )]; } forEach _unlisted; if (((count _noncompliant) isEqualTo 0) && ((count _unlisted) isEqualTo 0)) then { diag_log text format["[MILSIM] (logPlayerInventory): %1 inventory in compliance", name _player]; }; nil