mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
/*
|
|
* Author: Ruthberg
|
|
*
|
|
* Calculates the ammo temperature induced muzzle velocity shift
|
|
*
|
|
* Arguments:
|
|
* 0: muzzle velocity shift lookup table - m/s <ARRAY>
|
|
* 1: temperature - degrees celcius <NUMBER>
|
|
*
|
|
* Return Value:
|
|
* 0: muzzle velocity shift - m/s <NUMBER>
|
|
*
|
|
* Return value:
|
|
* None
|
|
*/
|
|
#include "script_component.hpp"
|
|
|
|
private ["_muzzleVelocityShiftTable", "_temperature", "_muzzleVelocityShift", "_temperatureIndexA", "_temperatureIndexB", "_temperatureRatio"];
|
|
_muzzleVelocityShiftTable = _this select 0;
|
|
_temperature = _this select 1;
|
|
|
|
if (count _muzzleVelocityShiftTable != 11) exitWith { 0 };
|
|
|
|
_temperatureIndexA = floor((_temperature + 15) / 5);
|
|
_temperatureIndexA = 0 max _temperatureIndexA;
|
|
_temperatureIndexA = _temperatureIndexA min 10;
|
|
|
|
_temperatureIndexB = ceil((_temperature + 15) / 5);
|
|
_temperatureIndexB = 0 max _temperatureIndexB;
|
|
_temperatureIndexB = _temperatureIndexB min 10;
|
|
|
|
_temperatureRatio = ((_temperature + 15) / 5) - floor((_temperature + 15) / 5);
|
|
|
|
_muzzleVelocityShift = (_muzzleVelocityShiftTable select _temperatureIndexA) * (1 - _temperatureRatio) + (_muzzleVelocityShiftTable select _temperatureIndexB) * _temperatureRatio;
|
|
|
|
_muzzleVelocityShift
|