@@ -19,46 +19,47 @@ if !(isClass (missionConfigFile >> "CfgLoadouts" >> _classname)) exitWith {
1919 [];
2020};
2121
22+ // Loadout Items
2223private _loadout = parseSimpleArray getText (missionConfigFile >> " CfgLoadouts" >> _classname >> " loadout" );
2324private _unitItems = str _loadout splitString " []," joinString " ," ;
2425_unitItems = parseSimpleArray (" [" + _unitItems + " ]" );
2526_unitItems = _unitItems arrayIntersect _unitItems select {_x isEqualType " " && {_x ! = " " }};
2627
28+ // Global Items
29+ private _anySideCommon = [" Common" ] FUNC(getGetItems);
30+
31+ // Side Items
32+ private _side = [side group player ] call EFUNC(gear,getSideConfig);
33+ private _commonGear = switch (_side ) do {
34+ case " CommonBlufor" : { [" CommonBlufor" ] FUNC(getGetItems); };
35+ case " CommonOpfor" : { [" CommonOpfor" ] FUNC(getGetItems); };
36+ case " CommonIndependant" : { [" CommonIndependant" ] FUNC(getGetItems); };
37+ case " CommonCivilian" : { [" CommonCivilian" ] FUNC(getGetItems); };
38+ default { [" CommonDefault" ] FUNC(getGetItems); };
39+ };
2740
28- private _commonGear = GET_CONTAINER_KEYS(" arsenal_common" );
29-
30-
41+ // Side Company Items
3142private _company = call EFUNC(player ,getCompany);
32- private _companyItems = switch (_company ) do {
33- case " alpha" : {GET_CONTAINER_KEYS(" alpha_company" );};
34- case " bravo" : {GET_CONTAINER_KEYS(" bravo_company" );};
35- case " charlie" : {GET_CONTAINER_KEYS(" charlie_company" );};
36- default {GET_CONTAINER_KEYS(" arsenal_company_fallback" );};
43+ private _titleCompany = [_company ] call CBA_fnc_capitalize ;
44+ private _companyItems = switch (_side ) do {
45+ case " CommonBlufor" : { [" CommonBluforCompany" + _titleCompany ] FUNC(getGetItems); };
46+ case " CommonOpfor" : { [" CommonOpforCompany" + _titleCompany ] FUNC(getGetItems); };
47+ case " CommonIndependant" : { [" CommonIndependantCompany" + _titleCompany ] FUNC(getGetItems); };
48+ case " CommonCivilian" : { [" CommonCivilianCompany" + _titleCompany ] FUNC(getGetItems); };
49+ default { [" CommonDefaultCompany" + _titleCompany ] FUNC(getGetItems); };
3750};
3851
39-
52+ // Equipmnet Tag Items
4053private _tagItems = [];
54+ private _equipmentTags = call EGVAR(gear,getLoadoutTags);
4155{
42- private _tag = switch (_x ) do {
43- case " role_officer" : {GET_CONTAINER_KEYS(" arsenal_role_officer" );};
44- case " role_squadleader" : {GET_CONTAINER_KEYS(" arsenal_role_squadleader" );};
45- case " role_fireteamleader" : {GET_CONTAINER_KEYS(" arsenal_role_fireteamleader" );};
46- case " role_weapons" : {GET_CONTAINER_KEYS(" arsenal_role_weapons" );};
47- case " role_pilot" ;
48- case " role_rotarypilot" : {GET_CONTAINER_KEYS(" arsenal_role_rotarypilot" );};
49- case " role_rotarycrew" : {GET_CONTAINER_KEYS(" arsenal_role_pilotcrew" );};
50- case " role_pilotfighter" : {GET_CONTAINER_KEYS(" arsenal_role_pilotfighter" );};
51- case " role_pilottransport" : {GET_CONTAINER_KEYS(" arsenal_role_pilottransport" );};
52-
53- case " tag_cls" : {GET_CONTAINER_KEYS(" arsenal_tag_cls" );};
54- case " tag_medic" : {GET_CONTAINER_KEYS(" arsenal_tag_medic" );};
55- case " tag_doctor" : {GET_CONTAINER_KEYS(" arsenal_tag_doctor" );};
56- default {[]};
57- };
58- _tagItems append _x ;
59- } forEach [player ] call EFUNC(gear,getLoadoutRole) ;
56+ private _items = [_x ] call EGVAR(gear,getTagItems);
57+ _tagItemsList append _items ;
58+ } forEach _equipmentTags ;
6059
6160
61+ // Weapon System Items
62+ // FIXME: Make the system generalized and auto configured
6263private _primaryWeapon = if (! isNil{_loadout #0 #0 }) then {_loadout #0 #0 } else {" " };
6364private _primarySpecific = switch (true ) do {
6465 case (_primaryWeapon isKindof [' rhs_weap_mk18_m320' , configFile >> ' CfgWeapons' ]
@@ -97,6 +98,6 @@ private _launcherSpecific = switch (true) do {
9798 default {[]};
9899};
99100
100- private _whitelist = _commonGear + _unitItems + _companyItems + _tagItems + _primarySpecific + _handgunSpecific + _launcherSpecific ;
101+ private _whitelist = _unitItems + _anySideCommon + _commonGear + _companyItems + _primarySpecific + _handgunSpecific + _launcherSpecific ;
101102
102103_whitelist
0 commit comments