Improve missing items logging, cache verifyLoadout check

This commit is contained in:
Josuan Albin
2017-11-03 14:01:19 +01:00
parent ba3f43204f
commit 0b3c28d407
8 changed files with 43 additions and 22 deletions

View File

@ -14,7 +14,7 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
private _data = profileNamespace getVariable [QGVAR(saved_loadouts), []];
_data deleteAt (_data find ((_data select {_x select 0 == _loadoutName}) select 0));
_contentPanelCtrl setVariable [_loadoutName, nil];
_contentPanelCtrl setVariable [_loadoutName + QGVAR(currentLoadoutsTab), nil];
_contentPanelCtrl lnbDeleteRow _contentPanelCursSel;
_contentPanelCtrl lnbSetCurSelRow (_contentPanelCursSel);

View File

@ -10,7 +10,7 @@ private _curSel = lnbCurSelRow _contentPanelCtrl;
private _loadoutName = _contentPanelCtrl lnbText [_curSel, 1];
private _loadout = (GVAR(sharedLoadoutsNamespace) getVariable ((_contentPanelCtrl lnbText [_curSel, 0]) + (_contentPanelCtrl lnbText [_curSel, 1]))) select 2;
GVAR(center) setUnitLoadout [[_contentPanelCtrl getVariable _loadoutName, _loadout] select (GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts), true];
GVAR(center) setUnitLoadout [[_contentPanelCtrl getVariable _loadoutName + QGVAR(currentLoadoutsTab), _loadout] select (GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts), true];
GVAR(currentItems) = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", [], [], [], [], [], []];
for "_index" from 0 to 15 do {

View File

@ -23,8 +23,8 @@ if (count _similarLoadouts > 0) exitWith {
// Update loadout info in profile and list namespaces
_data set [_data find ((_data select {_x select 0 == _loadoutName}) select 0), [_editBoxContent, _loadout]];
_contentPanelCtrl setVariable [_loadoutName, nil];
_contentPanelCtrl setVariable [_editBoxContent, _loadout];
_contentPanelCtrl setVariable [_loadoutName + QGVAR(currentLoadoutsTab), nil];
_contentPanelCtrl setVariable [_editBoxContent + QGVAR(currentLoadoutsTab), _loadout];
_contentPanelCtrl lnbDeleteRow _curSelRow;

View File

@ -113,7 +113,7 @@ switch (GVAR(currentLoadoutsTab)) do {
_contentPanelCtrl lnbSetPicture [[_newRow, 8], getText (configFile >> "cfgWeapons" >> (_loadout select 6) >> "picture")];
_contentPanelCtrl lnbSetPicture [[_newRow, 9], getText (configFile >> "cfgGlasses" >> (_loadout select 7) >> "picture")];
_contentPanelCtrl setVariable [_editBoxContent, _loadout];
_contentPanelCtrl setVariable [_editBoxContent + QGVAR(currentLoadoutsTab), _loadout];
_contentPanelCtrl lnbSort [1, false];

View File

@ -17,9 +17,21 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
{
_x params ["_loadoutName", "_loadoutData"];
([_loadoutData] call FUNC(verifyLoadout)) params ["_loadout", "_nullItemsAmount", "_unavailableItemsAmount"];
if (isNil {_contentListCtrl getVariable _loadoutName}) then {
private _newRow = _contentListCtrl lnbAddRow ["",_loadoutName];
[_loadoutData] call FUNC(verifyLoadout)
} else {
_contentListCtrl getVariable (_loadoutName + "missingOrNilItemsCount")
} params ["_loadout", "_nullItemsAmount", "_unavailableItemsAmount", "_nullItemsList", "_unavailableItemsList"];
if (!(isNil "_nullItemsList") && {_nullItemsAmount > 0} || {_unavailableItemsAmount > 0}) then {
private _printComponent = "ACE_Arsenal - Loadout:";
private _printNullItemsList = ["Missing items:", str _nullItemsList] joinString " ";
private _printUnavailableItemsList = ["Unavailable items:", str _unavailableItemsList] joinString " ";
diag_log text (format ["%1%5 %2%5 %3%5 %4", _printComponent, "Name: " + _loadoutName, _printNullItemsList, _printUnavailableItemsList, endl]);
};
if (GVAR(currentLoadoutsTab) == IDC_buttonDefaultLoadouts) then {
@ -28,6 +40,8 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
_contentListCtrl lnbSetColumnsPos [0, 0.05, 0.40, 0.50, 0.60, 0.70, 0.75, 0.80, 0.85, 0.90];
};
private _newRow = _contentListCtrl lnbAddRow ["",_loadoutName];
_contentListCtrl lnbSetPicture [[_newRow, 2], getText (configFile >> "cfgWeapons" >> ((_loadout select 0) select 0) >> "picture")];
_contentListCtrl lnbSetPicture [[_newRow, 3], getText (configFile >> "cfgWeapons" >> ((_loadout select 1) select 0) >> "picture")];
_contentListCtrl lnbSetPicture [[_newRow, 4], getText (configFile >> "cfgWeapons" >> ((_loadout select 2) select 0) >> "picture")];
@ -47,7 +61,8 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
};
};
_contentListCtrl setVariable [_loadoutName, _loadout];
_contentListCtrl setVariable [_loadoutName + QGVAR(currentLoadoutsTab), _loadout];
_contentListCtrl setVariable [_loadoutName + "missingOrNilItemsCount" + QGVAR(currentLoadoutsTab) , [_nullItemsAmount, _unavailableItemsAmount]];
if ((profileName + _loadoutName) in GVAR(sharedLoadoutsVars)) then {
_contentListCtrl lnbSetText [[_newRow, 0], "X"];
@ -97,4 +112,5 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
publicVariable QGVAR(sharedLoadoutsVars);
};
GVAR(firstRun) = nil;
_contentListCtrl lnbSort [1, false];

View File

@ -46,6 +46,7 @@ GVAR(shiftState) = nil;
GVAR(leftTabFocus) = nil;
GVAR(rightTabFocus) = nil;
GVAR(rightTabLnBFocus) = nil;
GVAR(firstRun) = nil;
GVAR(selectedWeaponType) = nil;
GVAR(virtualItems) = nil;

View File

@ -10,6 +10,7 @@ if (isNil QGVAR(center)) then {
};
GVAR(mouseButtonState) = [[],[]];
GVAR(firstRun) = true;
if (isNil QGVAR(sharedLoadoutsNamespace)) then {
GVAR(sharedLoadoutsNamespace) = true call CBA_fnc_createNamespace;

View File

@ -12,6 +12,8 @@ private _accsArray = GVAR(virtualItems) select 1;
private _nullItemsAmount = 0;
private _unavailableItemsAmount = 0;
private _nullItemsList = [];
private _unavailableItemsList = [];
private _fnc_weaponCheck = {
params ["_dataPath"];
@ -26,13 +28,13 @@ private _fnc_weaponCheck = {
if (isClass (_weaponCfg >> _item)) then {
if !(CHECK_WEAPON_OR_ACC) then {
TRACE_1("item unavailable", _item);
_unavailableItemsList pushBackUnique _item;
_dataPath set [_forEachIndex, ""];
_unavailableItemsAmount = _unavailableItemsAmount + 1;
};
} else {
TRACE_1("item null", _item);
_nullItemsList pushBackUnique _item;
_dataPath set [_forEachIndex, ""];
_nullItemsAmount = _nullItemsAmount + 1;
};
@ -46,13 +48,13 @@ private _fnc_weaponCheck = {
if (isClass (_magCfg >> _mag)) then {
if !(_mag in (GVAR(virtualItems) select 2)) then {
TRACE_1("item unavailable", _item);
_unavailableItemsList pushBackUnique _item;
_dataPath set [_forEachIndex, []];
_unavailableItemsAmount = _unavailableItemsAmount + 1;
};
} else {
TRACE_1("item null", _item);
_nullItemsList pushBackUnique _item;
_dataPath set [_forEachIndex, []];
_nullItemsAmount = _nullItemsAmount + 1;
};
@ -83,7 +85,7 @@ for "_dataIndex" from 0 to 9 do {
if (isClass (_vehcCfg >> _item) || {isClass (_weaponCfg >> _item)}) then {
if !(CHECK_CONTAINER) then {
TRACE_1("item unavailable", _item);
_unavailableItemsList pushBackUnique _item;
_loadout set [_dataIndex, []];
_unavailableItemsAmount = _unavailableItemsAmount + 1;
} else {
@ -108,7 +110,7 @@ for "_dataIndex" from 0 to 9 do {
};
} else {
TRACE_1("item null", _item);
_nullItemsList pushBackUnique _item;
((_loadout select _dataIndex) select 1) set [_currentIndex, []];
_nullItemsAmount = _nullItemsAmount + 1;
};
@ -130,7 +132,7 @@ for "_dataIndex" from 0 to 9 do {
};
} else {
TRACE_1("item null", _item);
_nullItemsList pushBackUnique _item;
((_loadout select _dataIndex) select 1) set [_currentIndex, []];
_nullItemsAmount = _nullItemsAmount + 1;
};
@ -141,6 +143,7 @@ for "_dataIndex" from 0 to 9 do {
};
} else {
_nullItemsList pushBackUnique _item;
_loadout set [_dataIndex, []];
_nullItemsAmount = _nullItemsAmount + 1;
};
@ -156,13 +159,13 @@ for "_dataIndex" from 0 to 9 do {
if !(_item in (GVAR(virtualItems) select 3)) then {
TRACE_1("item unavailable", _item);
_unavailableItemsList pushBackUnique _item;
_loadout set [_dataIndex, ""];
_unavailableItemsAmount = _unavailableItemsAmount + 1;
};
} else {
TRACE_1("item null", _item);
_nullItemsList pushBackUnique _item;
_loadout set [_dataIndex, ""];
_nullItemsAmount = _nullItemsAmount + 1;
};
@ -178,13 +181,13 @@ for "_dataIndex" from 0 to 9 do {
if !(_item in (GVAR(virtualItems) select 7)) then {
TRACE_1("item unavailable", _item);
_unavailableItemsList pushBackUnique _item;
_loadout set [_dataIndex, ""];
_unavailableItemsAmount = _unavailableItemsAmount + 1;
};
} else {
TRACE_1("item null", _item);
_nullItemsList pushBackUnique _item;
_loadout set [_dataIndex, ""];
_nullItemsAmount = _nullItemsAmount + 1;
};
@ -201,13 +204,13 @@ for "_dataIndex" from 0 to 9 do {
if !(CHECK_ASSIGNED_ITEMS) then {
TRACE_1("item unavailable", _item);
_unavailableItemsList pushBackUnique _item;
(_loadout select _dataIndex) set [_subIndex, ""];
_unavailableItemsAmount = _unavailableItemsAmount + 1;
};
} else {
TRACE_1("item null", _item);
_nullItemsList pushBackUnique _item;
(_loadout select _dataIndex) set [_subIndex, ""];
_nullItemsAmount = _nullItemsAmount + 1;
};
@ -217,4 +220,4 @@ for "_dataIndex" from 0 to 9 do {
};
};
[_loadout, _nullItemsAmount, _unavailableItemsAmount]
[_loadout, _nullItemsAmount, _unavailableItemsAmount, _nullItemsList, _unavailableItemsList]