mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
09c3187c21
* Client side setting to choose the preferred zeroing method * Replicates the behaviour of the vanilla zeroing system
45 lines
1.2 KiB
Plaintext
45 lines
1.2 KiB
Plaintext
/*
|
|
* Author: Ruthberg
|
|
* Gets the zero range of the currently used optic
|
|
*
|
|
* Arguments:
|
|
* 0: Unit <OBJECT>
|
|
*
|
|
* Return Value:
|
|
* current zero range <NUMBER>
|
|
*
|
|
* Example:
|
|
* [player] call ace_scopes_fnc_getCurrentZeroRange
|
|
*
|
|
* Public: No
|
|
*/
|
|
#include "script_component.hpp"
|
|
|
|
params ["_unit"];
|
|
|
|
if (!GVAR(enabled)) exitWith { currentZeroing _unit };
|
|
|
|
private _weaponIndex = [_unit, currentWeapon _unit] call EFUNC(common,getWeaponIndex);
|
|
if (_weaponIndex < 0) exitWith { currentZeroing _unit };
|
|
if (GVAR(simplifiedZeroing)) exitWith {
|
|
private _adjustment = _unit getVariable [QGVAR(Adjustment), [[0, 0, 0], [0, 0, 0], [0, 0, 0]]];
|
|
((_adjustment select _weaponIndex) select 0)
|
|
};
|
|
|
|
private _optic = GVAR(Optics) select _weaponIndex;
|
|
private _opticConfig = if (_optic != "") then {
|
|
(configFile >> "CfgWeapons" >> _optic)
|
|
} else {
|
|
(configFile >> "CfgWeapons" >> (GVAR(Guns) select _weaponIndex))
|
|
};
|
|
|
|
private _zeroRange = currentZeroing _unit;
|
|
if (GVAR(overwriteZeroRange) && {GVAR(canAdjustElevation) select _weaponIndex}) then {
|
|
_zeroRange = GVAR(defaultZeroRange);
|
|
};
|
|
if (isNumber (_opticConfig >> "ACE_ScopeZeroRange")) then {
|
|
_zeroRange = getNumber(_opticConfig >> "ACE_ScopeZeroRange");
|
|
};
|
|
|
|
_zeroRange
|