private["_countMagazines","_countWeapons","_countBackpacks","_countFreeSlots","_getControlText","_setControlText","_object","_objectName","_controlText","_magazinesMax","_weaponsMax","_backpacksMax","_distance","_isVehicle","_isMan","_isStorage","_isOK","_magazines","_weapons","_backpacks","_freeSlots","_timeout"]; disableSerialization; _countWeapons = { private["_weapons","_return"]; _weapons = []; _return = 0; _weapons = (getWeaponCargo _object) select 1; { _return = _return + _x } count _weapons; _return; }; _countMagazines = { private["_magazines","_return"]; _magazines = []; _return = 0; _magazines = (getMagazineCargo _object) select 1; { _return = _return + _x } count _magazines; _return; }; _countBackpacks = { private["_backpacks","_return"]; _backpacks = []; _return = 0; _backpacks = (getBackpackCargo _object) select 1; { _return = _return + _x } count _backpacks; _return; }; _countFreeSlots = { private["_return"]; _return = [(_weaponsMax - _weapons), (_magazinesMax - _magazines), (_backpacksMax - _backpacks)]; _return; }; _getControlText = { private["_control","_return"]; _control = (findDisplay 106) displayCtrl 156; _return = ctrlText _control; _return; }; _setControlText = { private["_control"]; /*for [{_i = 0}, {_i < (count _valueIDCs)}, {_i = _i + 1}] do { _control = _display displayCtrl (_valueIDCs select _i); _control ctrlSetText format ["%1", (_freeSlots select _i)]; }; */ _control = (findDisplay 106) displayCtrl 156; _control ctrlSetText format["%1 (%2/%3/%4)", _objectName, _freeSlots select 0, _freeSlots select 1, _freeSlots select 2]; }; _titleIDC = 1001; _imageIDCs = [9001,9003,9005]; _valueIDCs = [9002,9004,9006]; if (vehicle player != player) then { _object = vehicle player; } else { _object = cursorTarget; }; _isVehicle = _object isKindOf "AllVehicles"; _isMan = _object isKindOf "Man"; _isStorage = _object isKindOf "Land_A_tent"; _isnewstorage = (typeOf _object) in DZE_isNewStorage; _timeout = time + 2; waitUntil { !(isNull (findDisplay 106)) || (_timeout < time) }; //diag_log format["object_monitorGear.sqf: _object: %1 _isStorage: %4 _isVehicle: %2 _isMan: %3 _display: %5", _object, _isVehicle, _isMan, _isStorage, findDisplay 106]; if (!(isNull (findDisplay 106))) then { _display = findDisplay 106; if ((_isVehicle or _isStorage || _isnewstorage) and (!_isMan)) then { _objectName = getText (configFile >> "CfgVehicles" >> (typeof _object) >> "displayName"); _controlText = [] call _getControlText; if (_objectName == _controlText) then { _weaponsMax = getNumber (configFile >> "CfgVehicles" >> (typeof _object) >> "transportMaxWeapons"); _magazinesMax = getNumber (configFile >> "CfgVehicles" >> (typeof _object) >> "transportMaxMagazines"); _backpacksMax = getNumber (configFile >> "CfgVehicles" >> (typeof _object) >> "transportMaxBackpacks"); while {!(isNull (findDisplay 106))} do { _weapons = [] call _countWeapons; _magazines = [] call _countMagazines; _backpacks = [] call _countBackpacks; _freeSlots = [] call _countFreeSlots; [] call _setControlText; uiSleep 0.01; }; } else { (_display displayCtrl _titleIDC) ctrlShow false; for [{_i = 0}, {_i < (count _valueIDCs)}, {_i = _i + 1}] do { (_display displayCtrl (_imageIDCs select _i)) ctrlShow false; (_display displayCtrl (_valueIDCs select _i)) ctrlShow false; }; }; } else { (_display displayCtrl _titleIDC) ctrlShow false; for [{_i = 0}, {_i < (count _valueIDCs)}, {_i = _i + 1}] do { (_display displayCtrl (_imageIDCs select _i)) ctrlShow false; (_display displayCtrl (_valueIDCs select _i)) ctrlShow false; }; }; };