ACE3/addons/atragmx/functions/fnc_true_muzzle_velocity.sqf
ulteq 3f4564605b ATragMX - Implemented missing features
* Muzzle Velocity vs. Temperature Interpolation
* C1 Ballistic Coefficient vs. Distance Interpolation
* Coriolis and Spin drift output
* Options menu
* Truing Drop
---------------------------------
* Overworked default gun profiles
---------------------------------
* Fixed the Cancel buttons on the gun-, atmosphere- and target columns.
* Fixed some muzzle velocity entries in the default gun list.
* Fixed divide by zero error in the target range estimator
2016-11-07 16:40:34 +01:00

43 lines
1.0 KiB
Plaintext

/*
* Author: Ruthberg
* Trues the muzzle velocity
*
* Arguments:
* Nothing
*
* Return Value:
* Nothing
*
* Example:
* call ace_atragmx_fnc_true_muzzle_velocity
*
* Public: No
*/
#include "script_component.hpp"
private _referenceDrop = GVAR(truingDropDropData) select 0;
private _actualDrop = GVAR(truingDropDropData) select 1;
if (Round(_actualDrop * 10) / 10 == Round(_referenceDrop * 10) / 10) exitWith {};
private _step = 10;
if (_actualDrop > _referenceDrop) then {
_step = -10;
};
private _solutionInput = +GVAR(targetSolutionInput);
_solutionInput set [13, GVAR(truingDropRangeData) select 0];
private _muzzleVelocity = _solutionInput select 4;
{
_step = _step * _x;
while { _actualDrop * _step < _referenceDrop * _step } do {
_muzzleVelocity = _muzzleVelocity + _step;
_solutionInput set [4, _muzzleVelocity];
private _result = _solutionInput call FUNC(calculate_solution);
_referenceDrop = (_result select 0);
};
} forEach [1, -0.1];
GVAR(truingDropMuzzleVelocity) = _muzzleVelocity;