114 lines
4.9 KiB
Plaintext
114 lines
4.9 KiB
Plaintext
if (KP_liberation_arsenalUsePreset) then {
|
|
private _crawled = [] call KPLIB_fnc_crawlAllItems;
|
|
private _weapons = [];
|
|
private _magazines = [];
|
|
private _items = [];
|
|
private _backpacks = [];
|
|
KP_liberation_allowed_items = [];
|
|
|
|
if (isNil "GRLIB_arsenal_weapons") then {GRLIB_arsenal_weapons = []};
|
|
if (isNil "GRLIB_arsenal_magazines") then {GRLIB_arsenal_magazines = []};
|
|
if (isNil "GRLIB_arsenal_items") then {GRLIB_arsenal_items = []};
|
|
if (isNil "GRLIB_arsenal_backpacks") then {GRLIB_arsenal_backpacks = []};
|
|
if (isNil "blacklisted_from_arsenal") then {blacklisted_from_arsenal = []};
|
|
|
|
if ((count GRLIB_arsenal_weapons) == 0) then {
|
|
if ((count blacklisted_from_arsenal) == 0) then {
|
|
_weapons = _crawled select 0;
|
|
} else {
|
|
{if (!(_x in blacklisted_from_arsenal)) then {_weapons pushBack _x};} forEach (_crawled select 0);
|
|
};
|
|
[missionNamespace, _weapons] call BIS_fnc_addVirtualWeaponCargo;
|
|
KP_liberation_allowed_items append _weapons;
|
|
} else {
|
|
[missionNamespace, GRLIB_arsenal_weapons] call BIS_fnc_addVirtualWeaponCargo;
|
|
KP_liberation_allowed_items append GRLIB_arsenal_weapons;
|
|
};
|
|
|
|
// Support for CBA disposable launchers, https://github.com/CBATeam/CBA_A3/wiki/Disposable-Launchers
|
|
if !(configProperties [configFile >> "CBA_DisposableLaunchers"] isEqualTo []) then {
|
|
private _disposableLaunchers = ["CBA_FakeLauncherMagazine"];
|
|
{
|
|
private _loadedLauncher = cba_disposable_LoadedLaunchers get _x;
|
|
if (!isNil "_loadedLauncher") then {
|
|
_disposableLaunchers pushBack _loadedLauncher;
|
|
};
|
|
|
|
private _normalLauncher = cba_disposable_NormalLaunchers get _x;
|
|
if (!isNil "_normalLauncher") then {
|
|
_normalLauncher params ["_loadedLauncher"];
|
|
_disposableLaunchers pushBack _loadedLauncher;
|
|
};
|
|
} forEach KP_liberation_allowed_items;
|
|
KP_liberation_allowed_items append _disposableLaunchers;
|
|
};
|
|
|
|
if ((count GRLIB_arsenal_magazines) == 0) then {
|
|
if ((count blacklisted_from_arsenal) == 0) then {
|
|
_magazines = _crawled select 1;
|
|
} else {
|
|
{if (!(_x in blacklisted_from_arsenal)) then {_magazines pushBack _x};} forEach (_crawled select 1);
|
|
};
|
|
[missionNamespace, _magazines] call BIS_fnc_addVirtualMagazineCargo;
|
|
KP_liberation_allowed_items append _magazines;
|
|
} else {
|
|
[missionNamespace, GRLIB_arsenal_magazines] call BIS_fnc_addVirtualMagazineCargo;
|
|
KP_liberation_allowed_items append GRLIB_arsenal_magazines;
|
|
};
|
|
|
|
if ((count GRLIB_arsenal_items) == 0) then {
|
|
if ((count blacklisted_from_arsenal) == 0) then {
|
|
_items = _crawled select 2;
|
|
} else {
|
|
{if (!(_x in blacklisted_from_arsenal)) then {_items pushBack _x};} forEach (_crawled select 2);
|
|
};
|
|
[missionNamespace, _items] call BIS_fnc_addVirtualItemCargo;
|
|
KP_liberation_allowed_items append _items;
|
|
} else {
|
|
[missionNamespace, GRLIB_arsenal_items] call BIS_fnc_addVirtualItemCargo;
|
|
KP_liberation_allowed_items append GRLIB_arsenal_items;
|
|
};
|
|
|
|
if ((count GRLIB_arsenal_backpacks) == 0) then {
|
|
if ((count blacklisted_from_arsenal) == 0) then {
|
|
_backpacks = _crawled select 3;
|
|
} else {
|
|
{if (!(_x in blacklisted_from_arsenal)) then {_backpacks pushBack _x};} forEach (_crawled select 3);
|
|
};
|
|
[missionNamespace, _backpacks] call BIS_fnc_addVirtualBackpackCargo;
|
|
KP_liberation_allowed_items append _backpacks;
|
|
} else {
|
|
[missionNamespace, GRLIB_arsenal_backpacks] call BIS_fnc_addVirtualBackpackCargo;
|
|
KP_liberation_allowed_items append GRLIB_arsenal_backpacks;
|
|
};
|
|
|
|
{
|
|
if ((_x find "rhs_acc") == 0) then {
|
|
KP_liberation_allowed_items_extension append [_x + "_3d", _x + "_pip"];
|
|
};
|
|
if ((_x find "rhsusf_acc") == 0) then {
|
|
KP_liberation_allowed_items_extension append [_x + "_3d", _x + "_pip"];
|
|
};
|
|
} forEach KP_liberation_allowed_items;
|
|
|
|
if ((count KP_liberation_allowed_items_extension) > 0) then {
|
|
KP_liberation_allowed_items append KP_liberation_allowed_items_extension;
|
|
};
|
|
|
|
if (KP_liberation_ace && KP_liberation_arsenal_type) then {
|
|
[player, KP_liberation_allowed_items, false] call ace_arsenal_fnc_addVirtualItems;
|
|
};
|
|
|
|
// Lowercase all classnames
|
|
KP_liberation_allowed_items = KP_liberation_allowed_items apply {toLower _x};
|
|
} else {
|
|
[missionNamespace, true] call BIS_fnc_addVirtualWeaponCargo;
|
|
[missionNamespace, true] call BIS_fnc_addVirtualMagazineCargo;
|
|
[missionNamespace, true] call BIS_fnc_addVirtualItemCargo;
|
|
[missionNamespace, true] call BIS_fnc_addVirtualBackpackCargo;
|
|
|
|
if (KP_liberation_ace && KP_liberation_arsenal_type) then {
|
|
[player, true, false] call ace_arsenal_fnc_addVirtualItems;
|
|
};
|
|
};
|