mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Arsenal - Add magazineWell support (#6355)
* ACE Arsenal magazineWell support * Fix case sensitivity problems as
This commit is contained in:
parent
0ae93aa2e7
commit
f5cd682ce3
@ -80,15 +80,17 @@ private _compatibleMagazines = [[[], []], [[], []], [[], []]];
|
|||||||
{
|
{
|
||||||
private _subIndex = _forEachIndex;
|
private _subIndex = _forEachIndex;
|
||||||
{
|
{
|
||||||
// Magazine group
|
|
||||||
if !(isClass (configFile >> "CfgMagazines" >> _x)) then {
|
|
||||||
private _magazineGroups = uiNamespace getVariable [QGVAR(magazineGroups),["#CBA_HASH#",[],[],[]]];
|
|
||||||
private _magArray = [_magazineGroups, _x] call CBA_fnc_hashGet;
|
|
||||||
{((_compatibleMagazines select _index) select _subIndex) pushBackUnique _x} forEach _magArray;
|
|
||||||
} else {
|
|
||||||
((_compatibleMagazines select _index) select _subIndex) pushBackUnique (configName (configFile >> "CfgMagazines" >> _x))
|
((_compatibleMagazines select _index) select _subIndex) pushBackUnique (configName (configFile >> "CfgMagazines" >> _x))
|
||||||
}
|
|
||||||
} foreach ([getArray (_weaponConfig >> _x >> "magazines"), getArray (_weaponConfig >> "magazines")] select (_x == "this"));
|
} foreach ([getArray (_weaponConfig >> _x >> "magazines"), getArray (_weaponConfig >> "magazines")] select (_x == "this"));
|
||||||
|
|
||||||
|
// Magazine groups
|
||||||
|
{
|
||||||
|
private _magazineGroups = uiNamespace getVariable [QGVAR(magazineGroups),["#CBA_HASH#",[],[],[]]];
|
||||||
|
private _magArray = [_magazineGroups, toLower _x] call CBA_fnc_hashGet;
|
||||||
|
{((_compatibleMagazines select _index) select _subIndex) pushBackUnique _x} forEach _magArray;
|
||||||
|
} foreach ([getArray (_weaponConfig >> _x >> "magazineWell"), getArray (_weaponConfig >> "magazineWell")] select (_x == "this"));
|
||||||
|
|
||||||
|
|
||||||
} foreach getArray (_weaponConfig >> "muzzles");
|
} foreach getArray (_weaponConfig >> "muzzles");
|
||||||
};
|
};
|
||||||
} foreach [primaryWeapon GVAR(center), handgunWeapon GVAR(center), secondaryWeapon GVAR(center)];
|
} foreach [primaryWeapon GVAR(center), handgunWeapon GVAR(center), secondaryWeapon GVAR(center)];
|
||||||
|
@ -34,7 +34,6 @@ private _cargo = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
private _configCfgWeapons = configFile >> "CfgWeapons"; //Save this lookup in variable for perf improvement
|
private _configCfgWeapons = configFile >> "CfgWeapons"; //Save this lookup in variable for perf improvement
|
||||||
private _magazineGroups = [[],[]] call CBA_fnc_hashCreate;
|
|
||||||
|
|
||||||
{
|
{
|
||||||
private _configItemInfo = _x >> "ItemInfo";
|
private _configItemInfo = _x >> "ItemInfo";
|
||||||
@ -158,14 +157,6 @@ private _putList = [];
|
|||||||
(_cargo select 16) pushBackUnique _className;
|
(_cargo select 16) pushBackUnique _className;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
if (isArray (_x >> "magazineGroup")) then {
|
|
||||||
{
|
|
||||||
private _entry = [_magazineGroups, _x] call CBA_fnc_hashGet;
|
|
||||||
_entry pushBackUnique _className;
|
|
||||||
[_magazineGroups, _x, _entry] call CBA_fnc_hashSet;
|
|
||||||
} forEach getArray (_x >> "magazineGroup")
|
|
||||||
};
|
|
||||||
} foreach configProperties [(configFile >> "CfgMagazines"), "isClass _x && {(if (isNumber (_x >> 'scopeArsenal')) then {getNumber (_x >> 'scopeArsenal')} else {getNumber (_x >> 'scope')}) == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true];
|
} foreach configProperties [(configFile >> "CfgMagazines"), "isClass _x && {(if (isNumber (_x >> 'scopeArsenal')) then {getNumber (_x >> 'scopeArsenal')} else {getNumber (_x >> 'scope')}) == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true];
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -178,5 +169,20 @@ private _putList = [];
|
|||||||
(_cargo select 7) pushBackUnique (configName _x);
|
(_cargo select 7) pushBackUnique (configName _x);
|
||||||
} foreach configProperties [(configFile >> "CfgGlasses"), "isClass _x && {(if (isNumber (_x >> 'scopeArsenal')) then {getNumber (_x >> 'scopeArsenal')} else {getNumber (_x >> 'scope')}) == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true];
|
} foreach configProperties [(configFile >> "CfgGlasses"), "isClass _x && {(if (isNumber (_x >> 'scopeArsenal')) then {getNumber (_x >> 'scopeArsenal')} else {getNumber (_x >> 'scope')}) == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true];
|
||||||
|
|
||||||
|
private _magazineGroups = [[],[]] call CBA_fnc_hashCreate;
|
||||||
|
|
||||||
|
private _cfgMagazines = configFile >> "CfgMagazines";
|
||||||
|
|
||||||
|
{
|
||||||
|
private _magList = [];
|
||||||
|
{
|
||||||
|
private _magazines = (getArray _x) select {isClass (_cfgMagazines >> _x)}; //filter out non-existent magazines
|
||||||
|
_magazines = _magazines apply {configName (_cfgMagazines >> _x)}; //Make sure classname case is correct
|
||||||
|
_magList append _magazines;
|
||||||
|
} foreach configProperties [_x, "isArray _x", true];
|
||||||
|
|
||||||
|
[_magazineGroups, toLower configName _x, _magList arrayIntersect _magList] call CBA_fnc_hashSet;
|
||||||
|
} foreach configProperties [(configFile >> "CfgMagazineWells"), "isClass _x", true];
|
||||||
|
|
||||||
uiNamespace setVariable [QGVAR(configItems), _cargo];
|
uiNamespace setVariable [QGVAR(configItems), _cargo];
|
||||||
uiNamespace setVariable [QGVAR(magazineGroups), _magazineGroups];
|
uiNamespace setVariable [QGVAR(magazineGroups), _magazineGroups];
|
||||||
|
Loading…
Reference in New Issue
Block a user