wip, fbcb2_assets, init, util
This commit is contained in:
80
framework/fbcb2_assets/functions/fn_getMagsForWeapon.sqf
Normal file
80
framework/fbcb2_assets/functions/fn_getMagsForWeapon.sqf
Normal file
@@ -0,0 +1,80 @@
|
||||
params ["_vic", "_path", "_wep", "_magsHere", "_pylons"];
|
||||
|
||||
if (_path isEqualTo []) then {_path = [-1]};
|
||||
// "debug_console" callExtension (_wep + "#0100");
|
||||
if (_wep in [
|
||||
"rhs_weap_MASTERSAFE",
|
||||
"rhs_weap_fcs_ammo",
|
||||
"rhs_weap_laserDesignator_AI",
|
||||
"rhs_weap_fcs_ah64",
|
||||
"rhs_weap_DummyLauncher",
|
||||
"rhs_weap_fcs_nolrf_ammo",
|
||||
"rhsusf_weap_duke",
|
||||
"TruckHorn",
|
||||
"TruckHorn2",
|
||||
"TruckHorn3"
|
||||
]) exitWith {[[]]};
|
||||
|
||||
private _thisArr = [];
|
||||
_wepConfig = (configFile >> "CfgWeapons" >> _wep);
|
||||
_wepDisp = [(_wepConfig >> "displayName"), "STRING", "Weapon"] call CBA_fnc_getConfigEntry;
|
||||
if (_wep == "rhs_weap_smokegen") then {_wepDisp = "Smoke Generator"};
|
||||
if (_wepDisp isEqualTo "") exitWith {[[]]};
|
||||
|
||||
// "debug_console" callExtension (_wepDisp + "#0100");
|
||||
_magsToCheck = (_vic magazinesTurret _path);
|
||||
|
||||
|
||||
// See if the first default magazine in the config of this weapon is meant to be used on a pylon. If so, process differently
|
||||
// _mag1pylonWeapon = "";
|
||||
// _magsConfigArr = [(_wepConfig >> "magazines"), "ARRAY", []] call CBA_fnc_getConfigEntry;
|
||||
// if (_magsConfigArr isEqualTo []) then {
|
||||
// _mag1pylonWeapon = "";
|
||||
// } else {
|
||||
// _mag1Name = _magsConfigArr # 0;
|
||||
// _mag1pylonWeapon = [(configFile >> "CfgMagazines" >> _mag1Name >> "pylonWeapon"), "STRING", ""] call CBA_fnc_getConfigEntry;
|
||||
// };
|
||||
|
||||
_pylonMagNames = _pylons apply {_x # 3};
|
||||
|
||||
_compatMagsRef = [_wepConfig, true] call CBA_fnc_compatibleMagazines;
|
||||
_magsFound = _compatMagsRef select {_magsToCheck find _x != -1};
|
||||
|
||||
private _magsArr = [];
|
||||
|
||||
if (!((_magsFound # 0) in _pylonMagNames)) then {
|
||||
// Not a pylon weapon, so check mags in turret storage
|
||||
_thisArr pushBack format[" <font color='#87ffbb' face='PuristaSemiBold'>%1</font>", _wepDisp];
|
||||
{
|
||||
_thisMag = _x;
|
||||
_magAmmo = _vic magazineTurretAmmo [_x, _path];
|
||||
_magCount = (_magsHere select {_x # 0 == _thisMag} apply {_x # 1}) # 0;
|
||||
|
||||
private _magConfig = (configFile >> "CfgMagazines" >> _thisMag);
|
||||
private _magName = [(_magConfig >> "displayName"), "STRING", "Magazine"] call CBA_fnc_getConfigEntry;
|
||||
if (_magName isEqualTo "") then {_magName = "Magazine"};
|
||||
|
||||
|
||||
|
||||
_magsArr pushBack format[
|
||||
" + <font color='#4de4ff' size='12' face='PuristaMedium'><font color='#ffffff'>%1</font> <font color='#c2c2c2'>|</font> %2 <font color='#c2c2c2'>rounds</font> <font color='#c2c2c2'>|</font> %3 <font color='#c2c2c2'>mags</font></font>",
|
||||
_magName,
|
||||
_magAmmo,
|
||||
_magCount
|
||||
];
|
||||
} forEach _magsFound;
|
||||
} else {
|
||||
// This is a pylon weapon, so make a unique entry and directly check ammo on pylon
|
||||
_thisArr pushBack format[" <font color='#87ffbb' face='PuristaSemiBold'>%1</font> <font face='PuristaMedium'>[Pylon]</font>", _wepDisp];
|
||||
};
|
||||
|
||||
_thisArr pushBack _magsArr;
|
||||
// "debug_console" callExtension (str _magsArr + "#0100");
|
||||
_thisArr;
|
||||
// _thisArr;
|
||||
// "debug_console" callExtension (format[
|
||||
// " %1 | %2 rounds | %3 mags#0110",
|
||||
// getText(configFile >> "CfgMagazines" >> _thisMag >> "displayName"),
|
||||
// _magAmmo,
|
||||
// _magCount
|
||||
// ]);
|
||||
Reference in New Issue
Block a user