ACE3/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf
PabstMirror 28620d86d1
fix to weaponMuzzleVelocity (#6850)
* Fix incorrect muzzle velocity displayed on magazine

* Apply suggestions from code review

Co-Authored-By: dedmen <dedmen@users.noreply.github.com>

* Remove garbage file

* Script header updates

* Update addons/ballistics/functions/fnc_statTextStatement_magazineMuzzleVelocity.sqf

Co-Authored-By: dedmen <dedmen@users.noreply.github.com>

* Add Pabst' fix to weaponMuzzleVelocity
2019-03-08 09:12:07 -06:00

48 lines
1.7 KiB
Plaintext

#include "script_component.hpp"
/*
* Author: Alganthe
* Text statement for the weapon muzzle velocity stat.
*
* Arguments:
* 0: Type what it is here <TYPE> (unused)
* 1: Item config path <CONFIG>
*
* Return Value:
* Display text <STRING>
*
* Public: No
*/
params ["", "_config"];
if (EGVAR(arsenal,currentLeftPanel) == 2002) then {
private _primaryMag = primaryWeaponMagazine EGVAR(arsenal,center);
[primaryWeapon EGVAR(arsenal,center), _primaryMag param [0, ""]]
} else {
private _primaryMag = handgunMagazine EGVAR(arsenal,center);
[handgunWeapon EGVAR(arsenal,center), _primaryMag param [0, ""]]
} params ["_weapon", "_magazine"];
if (_magazine isEqualTo "") then {
localize "str_empty";
} else {
private _ammoCfg = (configFile >> "CfgAmmo" >> (getText (configFile >> "CfgMagazines" >> _magazine >> "ammo")));
private _barrelLength = getNumber (_config >> "ACE_barrelLength");
private _muzzleVelocityTable = getArray (_ammoCfg >> "ACE_muzzleVelocities");
private _barrelLengthTable = getArray (_ammoCfg >> "ACE_barrelLengths");
if (_barrelLength != 0 && {count _muzzleVelocityTable > 0} && {count _barrelLengthTable > 0}) then {
private _muzzleVelocity = if (["ace_advanced_ballistics"] call EFUNC(common,isModLoaded)) then {
[_barrelLength, _muzzleVelocityTable, _barrelLengthTable, 0] call EFUNC(advanced_ballistics,calculateBarrelLengthVelocityShift);
} else {
getNumber (configFile >> "CfgMagazines" >> _magazine >> "initSpeed")
};
format ["%1 m/s (%2 ft/s)", _muzzleVelocity toFixed 0, (_muzzleVelocity * 3.28084) toFixed 0]
} else {
localize "str_empty";
};
};