#include "script_component.hpp" #include "..\defines.hpp" /* * Author: Alganthe * Fill loadouts list. * * Arguments: * 0: Loadouts display * 1: Tab control * * Return Value: * None * * Public: No */ params ["_display", "_control"]; private _contentPanelCtrl = _display displayCtrl IDC_contentPanel; private _textEditBoxCtrl= _display displayCtrl IDC_textEditBox; _textEditBoxCtrl ctrlSetText ""; private _sharingEnabled = (GVAR(allowSharedLoadouts) && {isMultiplayer}); private _sharedLoadoutsVars = GVAR(sharedLoadoutsNamespace) getVariable QGVAR(sharedLoadoutsVars); // Force a "refresh" animation of the panel _contentPanelCtrl ctrlSetFade 1; _contentPanelCtrl ctrlCommit 0; _contentPanelCtrl ctrlSetFade 0; _contentPanelCtrl ctrlCommit FADE_DELAY; _contentPanelCtrl lnbSetCurSelRow -1; lnbClear _contentPanelCtrl; private _data = +(profileNamespace getvariable [QGVAR(saved_loadouts),[]]); if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then { { _x params ["_loadoutName", "_loadoutData"]; private _loadoutCachedInfo = _contentPanelCtrl getVariable (_loadoutName + str GVAR(currentLoadoutsTab)); if (isNil "_loadoutCachedInfo") then { [_loadoutData] call FUNC(verifyLoadout) } else { _loadoutCachedInfo } params ["_extendedLoadout", "_nullItemsAmount", "_unavailableItemsAmount", "_nullItemsList", "_unavailableItemsList"]; // Log missing / nil items to RPT if (GVAR(EnableRPTLog) && {isNil "_loadoutCachedInfo"} && {(_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 || {!_sharingEnabled}) then { _contentPanelCtrl lnbSetColumnsPos [0, 0, 0.40, 0.50, 0.60, 0.70, 0.75, 0.80, 0.85, 0.90]; } else { _contentPanelCtrl lnbSetColumnsPos [0, 0.05, 0.40, 0.50, 0.60, 0.70, 0.75, 0.80, 0.85, 0.90]; }; private _newRow = _contentPanelCtrl lnbAddRow ["",_loadoutName]; _extendedLoadout params ["_loadout"]; ADD_LOADOUTS_LIST_PICTURES if (_nullItemsAmount > 0) then { _contentPanelCtrl lnbSetColor [[_newRow, 1], [1, 0, 0, 0.8]]; } else { if (_unavailableItemsAmount > 0) then { _contentPanelCtrl lnbSetColor [[_newRow, 1], [1, 1, 1, 0.25]]; }; }; _contentPanelCtrl setVariable [_loadoutName + str GVAR(currentLoadoutsTab), [_extendedLoadout, _nullItemsAmount, _unavailableItemsAmount, _nullItemsList, _unavailableItemsList]]; if ((profileName + _loadoutName) in _sharedLoadoutsVars && {GVAR(currentLoadoutsTab) == IDC_buttonMyLoadouts}) then { _contentPanelCtrl lnbSetPicture [[_newRow, 0], QPATHTOF(data\iconPublic.paa)]; _contentPanelCtrl lnbSetValue [[_newRow, 0], 1]; }; } foreach ([_data, +GVAR(defaultLoadoutsList)] select (ctrlIDC _control == IDC_buttonDefaultLoadouts)); } else { { _x params ["_playerName", "_loadoutName", "_loadoutData"]; if ((allPlayers apply {name _x}) find _playerName == -1) then { private _loadoutVar = _playerName + _loadoutName; GVAR(sharedLoadoutsNamespace) setVariable [_loadoutVar, nil, true]; _sharedLoadoutsVars = _sharedLoadoutsVars - [_loadoutVar]; GVAR(sharedLoadoutsNamespace) setVariable [QGVAR(sharedLoadoutsNamespace), _sharedLoadoutsVars, true]; [QGVAR(loadoutUnshared), [_contentPanelCtrl, profileName, _loadoutName]] call CBA_fnc_remoteEvent; } else { ([_loadoutData] call FUNC(verifyLoadout)) params ["_extendedLoadout", "_nullItemsAmount", "_unavailableItemsAmount"]; _contentPanelCtrl lnbSetColumnsPos [0, 0.15, 0.40, 0.50, 0.60, 0.70, 0.75, 0.80, 0.85, 0.90]; private _newRow = _contentPanelCtrl lnbAddRow [_playerName, _loadoutName]; _extendedLoadout params ["_loadout"]; ADD_LOADOUTS_LIST_PICTURES _contentPanelCtrl lnbSetData [[_newRow, 1], _playerName + _loadoutName]; if (_nullItemsAmount > 0) then { _contentPanelCtrl lnbSetColor [[_newRow, 1], [1, 0, 0, 0.8]]; } else { if (_unavailableItemsAmount > 0) then { _contentPanelCtrl lnbSetColor [[_newRow, 1], [1, 1, 1, 0.25]]; }; }; }; } foreach (_sharedLoadoutsVars apply {GVAR(sharedLoadoutsNamespace) getVariable _x}); }; [QGVAR(loadoutsListFilled), [_display, _control]] call CBA_fnc_localEvent; _contentPanelCtrl lnbSort [1, false];