ACE3/addons/arsenal/functions/fnc_onSelChangedLoadouts.sqf
jonpas 742626ff1a
General - Relative script_component.hpp includes (#9378)
Co-authored-by: PabstMirror <pabstmirror@gmail.com>
2023-09-12 20:58:10 +02:00

107 lines
3.4 KiB
Plaintext

#include "..\script_component.hpp"
#include "..\defines.hpp"
/*
* Author: Alganthe
* Handles selection changes on loadouts panel.
*
* Arguments:
* 0: Arsenal display <DISPLAY>
* 1: Loadouts panel control <CONTROL>
* 2: Currently selected loadout's index <NUMBER>
*
* Return Value:
* None
*
* Public: No
*/
params ["_display", "_control", "_curSel"];
private _shareButtonCtrl = _display displayCtrl IDC_buttonShare;
private _saveButtonCtrl = _display displayCtrl IDC_buttonSave;
private _loadButtonCtrl = _display displayCtrl IDC_buttonLoad;
private _deleteButtonCtrl = _display displayCtrl IDC_buttonDelete;
private _renameButtonCtrl = _display displayCtrl IDC_buttonRename;
private _textEditBoxCtrl= _display displayCtrl IDC_textEditBox;
// If nothing selected, disable all buttons
if (_curSel == -1) exitWith {
if (GVAR(currentLoadoutsTab) == IDC_buttonSharedLoadouts) then {
_saveButtonCtrl ctrlEnable false;
_saveButtonCtrl ctrlCommit 0;
};
_shareButtonCtrl ctrlSetText LLSTRING(buttonSharePrivateText);
{
_x ctrlEnable false;
_x ctrlCommit 0;
} forEach [_shareButtonCtrl, _loadButtonCtrl, _renameButtonCtrl, _deleteButtonCtrl];
};
switch (GVAR(currentLoadoutsTab)) do {
// Local loadouts
case IDC_buttonMyLoadouts: {
// Enable shared loadouts if option is enabled and MP
_shareButtonCtrl ctrlEnable (GVAR(allowSharedLoadouts) && {isMultiplayer});
_shareButtonCtrl ctrlCommit 0;
// Rename share button, depending if it's already shared or not
_shareButtonCtrl ctrlSetText ([
LLSTRING(buttonSharePrivateText),
LLSTRING(buttonSharePublicText)
] select ((_control lnbValue [_curSel, 0]) == 1));
// Enable all other buttons
{
_x ctrlEnable true;
_x ctrlCommit 0;
} forEach [_loadButtonCtrl, _renameButtonCtrl, _deleteButtonCtrl];
_textEditBoxCtrl ctrlSetText (_control lnbText [_curSel, 1]);
};
// Default loadouts
case IDC_buttonDefaultLoadouts: {
// Enable saving and loading for everyone
{
_x ctrlEnable true;
_x ctrlCommit 0;
} forEach [_saveButtonCtrl, _loadButtonCtrl];
// Disable sharing button
_shareButtonCtrl ctrlEnable false;
_shareButtonCtrl ctrlCommit 0;
// Enable delete and renaming button if in 3DEN
{
_x ctrlEnable (call FUNC(canEditDefaultLoadout));
_x ctrlCommit 0;
} forEach [_renameButtonCtrl, _deleteButtonCtrl];
_textEditBoxCtrl ctrlSetText (_control lnbText [_curSel, 1]);
};
// Shared loadouts
case IDC_buttonSharedLoadouts: {
// Enable saving and loading for everyone
{
_x ctrlEnable true;
_x ctrlCommit 0;
} forEach [_saveButtonCtrl, _loadButtonCtrl];
// Disable sharing button
_shareButtonCtrl ctrlEnable false;
_shareButtonCtrl ctrlCommit 0;
// If admin or loadout author, enable button for shared loadout
if ((serverCommandAvailable "#logout") || {(_control lnbText [_curSel, 0]) == profileName}) then {
_deleteButtonCtrl ctrlEnable true;
_deleteButtonCtrl ctrlCommit 0;
} else {
_deleteButtonCtrl ctrlEnable false;
_deleteButtonCtrl ctrlCommit 0;
};
_textEditBoxCtrl ctrlSetText (_control lnbText [_curSel, 1]);
};
};