Files
KPLibSumava/kp_liberation.brf_sumava/scripts/client/misc/init_arsenal.sqf

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;
};
};