Update object_monitorGear.sqf (#1921)

A few optimizations.

_weapons = []; THEN agen - _weapons = (getWeaponCargo _object) select 1; Same with _magazines, _backpacks
_weapons THEN use only one time: count _weapons, same with _control,_magazines, _backpacks
use many time (typeOf _object), better use one variable for that: _type

FIX in loop:
one more check old this bag: https://www.youtube.com/watch?v=3ecWX21wEe4

Use this, if you think it's right
This commit is contained in:
F507DMT
2017-03-27 00:12:33 +06:00
committed by ebayShopper
parent 04d1622bc9
commit 226dfcce53

View File

@@ -1,31 +1,22 @@
private ["_valueIDCs","_object","_display","_weaponsMax","_magazinesMax","_backpacksMax","_weapons","_magazines","_backpacks","_freeSlots"]; private ["_valueIDCs","_object","_display","_weaponsMax","_magazinesMax","_backpacksMax","_weapons","_magazines","_backpacks","_freeSlots","_type"];
disableSerialization; disableSerialization;
_countWeapons = { _countWeapons = {
_weapons = [];
_return = 0; _return = 0;
{ _return = _return + _x } count ((getWeaponCargo _object) select 1);
_weapons = (getWeaponCargo _object) select 1;
{ _return = _return + _x } count _weapons;
_return _return
}; };
_countMagazines = { _countMagazines = {
_magazines = [];
_return = 0; _return = 0;
{ _return = _return + _x } count ((getMagazineCargo _object) select 1);
_magazines = (getMagazineCargo _object) select 1;
{ _return = _return + _x } count _magazines;
_return _return
}; };
_countBackpacks = { _countBackpacks = {
_backpacks = [];
_return = 0; _return = 0;
{ _return = _return + _x } count ((getBackpackCargo _object) select 1);
_backpacks = (getBackpackCargo _object) select 1;
{ _return = _return + _x } count _backpacks;
_return _return
}; };
@@ -35,8 +26,7 @@ _countFreeSlots = {
}; };
_getControlText = { _getControlText = {
_control = _display displayCtrl 156; _return = ctrlText (_display displayCtrl 156);
_return = ctrlText _control;
_return _return
}; };
@@ -60,7 +50,8 @@ if (vehicle player != player) then {
_isVehicle = _object isKindOf "AllVehicles"; _isVehicle = _object isKindOf "AllVehicles";
_isMan = _object isKindOf "Man"; _isMan = _object isKindOf "Man";
_isStorage = _object isKindOf "Land_A_tent"; _isStorage = _object isKindOf "Land_A_tent";
_isNewStorage = (typeOf _object) in DZE_isNewStorage; _type=typeOf _object;
_isNewStorage = _type in DZE_isNewStorage;
_timeout = time + 2; _timeout = time + 2;
waitUntil { !(isNull (findDisplay 106)) or (_timeout < time) }; waitUntil { !(isNull (findDisplay 106)) or (_timeout < time) };
@@ -71,21 +62,22 @@ if (!(isNull (findDisplay 106))) then {
_display = findDisplay 106; _display = findDisplay 106;
if ((_isVehicle or _isStorage or _isNewStorage) && !_isMan) then { if ((_isVehicle or _isStorage or _isNewStorage) && !_isMan) then {
_objectName = getText (configFile >> "CfgVehicles" >> (typeof _object) >> "displayName"); _objectName = getText (configFile >> "CfgVehicles" >> _type >> "displayName");
_controlText = [] call _getControlText; _controlText = call _getControlText;
if (_objectName == _controlText) then { if (_objectName == _controlText) then {
_weaponsMax = getNumber (configFile >> "CfgVehicles" >> (typeof _object) >> "transportMaxWeapons"); _weaponsMax = getNumber (configFile >> "CfgVehicles" >> _type >> "transportMaxWeapons");
_magazinesMax = getNumber (configFile >> "CfgVehicles" >> (typeof _object) >> "transportMaxMagazines"); _magazinesMax = getNumber (configFile >> "CfgVehicles" >> _type >> "transportMaxMagazines");
_backpacksMax = getNumber (configFile >> "CfgVehicles" >> (typeof _object) >> "transportMaxBackpacks"); _backpacksMax = getNumber (configFile >> "CfgVehicles" >> _type >> "transportMaxBackpacks");
while {!(isNull (findDisplay 106))} do { while {!(isNull (findDisplay 106))} do {
_weapons = [] call _countWeapons; if(_isVehicle&&((locked _object)&&(vehicle player==player)))exitWith{(findDisplay 106)closeDisplay 1;};
_magazines = [] call _countMagazines; _weapons = call _countWeapons;
_backpacks = [] call _countBackpacks; _magazines = call _countMagazines;
_freeSlots = [] call _countFreeSlots; _backpacks = call _countBackpacks;
_freeSlots = call _countFreeSlots;
[] call _setControlText; call _setControlText;
uiSleep 0.01; uiSleep 0.01;
}; };
} else { } else {