Code:
allPistolArray = [];
allSMGArray = [];
allRifleArray = [];
allDmrArray = [];
allMachineGunArray = [];
_getWeps =
{
_getPistols = "getText (_x >> 'cursor') isEqualTo 'hgun' && getNumber (_x >> 'scope') == 2" configClasses (configFile >> "cfgWeapons");
_getSmgs = "getText (_x >> 'cursor') isEqualTo 'smg' && getNumber (_x >> 'scope') == 2" configClasses (configFile >> "cfgWeapons");
_getRifles = "getText (_x >> 'baseWeapon') != 'hgun_PDW2000_F' && getText (_x >> 'cursor') isEqualTo 'arifle' && getNumber (_x >> 'scope') == 2" configClasses (configFile >> "cfgWeapons");
_getMachineGuns = "getText (_x >> 'cursor') isEqualTo 'mg' && getNumber (_x >> 'scope') == 2" configClasses (configFile >> "cfgWeapons");
_getDmrs = "getText (_x >> 'cursor') isEqualTo 'srifle' && getNumber (_x >> 'scope') == 2" configClasses (configFile >> "cfgWeapons");
_pistolTempListArray = [_getPistols] call _getBaseClass;
_smgTempListArray = [_getSmgs] call _getBaseClass;
_rifleTempListArray = [_getRifles] call _getBaseClass;
_machineGunTempListArray = [_getMachineGuns] call _getBaseClass;
_dmrTempListArray = [_getDmrs] call _getBaseClass;
[_pistolTempListArray, "pistol"] call _removeDuplicates;
[_smgTempListArray, "smg"] call _removeDuplicates;
[_rifleTempListArray, "rifle"] call _removeDuplicates;
[_machineGunTempListArray, "machineGun"] call _removeDuplicates;
[_dmrTempListArray, "dmr"] call _removeDuplicates;
};
_getBaseClass =
{
_weaponArray = (_this select 0);
_returnedArray = [];
{
_weaponName = configName (_x);
_devName = getText (configFile >> "cfgWeapons" >> _weaponName >> "author");
if (_devName == "Bohemia Interactive") then
{
_wepClass = getText (configFile >> "cfgWeapons" >> _weaponName >> "baseWeapon");
if (_wepClass != "") then
{
_returnedArray pushBackUnique _wepClass;
};
}
else
{
_returnedArray pushBackUnique _weaponName;
};
} forEach _weaponArray;
_returnedArray
};
_removeDuplicates =
{
params ["_passedArray", "_weaponType"];
private ["_cost", "_type"];
switch (_weaponType) do
{
case "pistol":
{
{
_wepName = getText (configFile >> "cfgWeapons" >> _x >> "displayname");
_data = [_x, _wepName];
allPistolArray pushBack _data;
} forEach _passedArray;
};
case "smg":
{
{
_wepName = getText (configFile >> "cfgWeapons" >> _x >> "displayname");
_data = [_x, _wepName];
allSMGArray pushBack _data;
} forEach _passedArray;
};
case "rifle":
{
{
_wepName = getText (configFile >> "cfgWeapons" >> _x >> "displayname");
_data = [_x, _wepName];
allRifleArray pushBack _data;
} forEach _passedArray;
};
case "machineGun":
{
{
_wepName = getText (configFile >> "cfgWeapons" >> _x >> "displayname");
_data = [_x, _wepName];
allMachineGunArray pushBack _data;
} forEach _passedArray;
};
case "dmr":
{
{
_wepName = getText (configFile >> "cfgWeapons" >> _x >> "displayname");
_data = [_x, _wepName];
allDmrArray pushBack _data;
} forEach _passedArray;
};
};
};
call _getWeps;
addPistolActions =
{
removeAllActions player;
player addAction ["Close", "removeAllActions player;; call openInitMen"];
{
_className = _x select 0;
_weaponName = _x select 1;
player addAction [_weaponName,
{
_weaponClass = (_this select 3) select 0;
[player, _weaponClass, 3, 0] call BIS_fnc_addWeapon;
}, [_className]];
} forEach allPistolArray;
};
addSMGActions =
{
removeAllActions player;
player addAction ["Close", "removeAllActions player;; call openInitMen"];
{
_className = _x select 0;
_weaponName = _x select 1;
player addAction [_weaponName,
{
_weaponClass = (_this select 3) select 0;
[player, _weaponClass, 3, 0] call BIS_fnc_addWeapon;
}, [_className]];
} forEach allSMGArray;
};
addRifleActions =
{
removeAllActions player;
player addAction ["Close", "removeAllActions player;; call openInitMen"];
{
_className = _x select 0;
_weaponName = _x select 1;
player addAction [_weaponName,
{
_weaponClass = (_this select 3) select 0;
[player, _weaponClass, 3, 0] call BIS_fnc_addWeapon;
}, [_className]];
} forEach allRifleArray;
};
addMGActions =
{
removeAllActions player;
player addAction ["Close", "removeAllActions player;; call openInitMen"];
{
_className = _x select 0;
_weaponName = _x select 1;
player addAction [_weaponName,
{
_weaponClass = (_this select 3) select 0;
[player, _weaponClass, 3, 0] call BIS_fnc_addWeapon;
}, [_className]];
} forEach allMachineGunArray;
};
addDMRActions =
{
removeAllActions player;
player addAction ["Close", "removeAllActions player;; call openInitMen"];
{
_className = _x select 0;
_weaponName = _x select 1;
player addAction [_weaponName,
{
_weaponClass = (_this select 3) select 0;
[player, _weaponClass, 3, 0] call BIS_fnc_addWeapon;
}, [_className]];
} forEach allDMRArray;
};
openWepAct =
{
player addAction ["Weapons",
{
removeAllActions player;
player addAction ["Pistols", "call addPistolActions"];
player addAction ["SMGs", "call addSMGActions"];
player addAction ["Rifles", "call addRifleActions"];
player addAction ["Machine Guns", "call addMGActions"];
player addAction ["DMRs", "call addDMRActions"];
}];
};
openInitMen =
{
player addAction ["Open",
{
removeAllActions player;
call openWepAct
}];
};
call openInitMen;