/* * Author: Ruthberg * Gets the bore height of the currently used weapon & optic combination * * Arguments: * 0: Unit * 1: Weapon index * 2: Weapon * 3: Optic * * Return Value: * bore height * * Example: * [player, 0, "srifle_LRR_F", "optic_LRPS"] call ace_scopes_fnc_getBoreHeight * * Public: Yes */ #include "script_component.hpp" params ["_player", "_weaponIndex", "_weaponClass", "_opticsClass"]; if (_opticsClass == "") then { _opticsClass = _weaponClass; }; // Determine rail height above bore private _railHeightAboveBore = 0; private _weaponConfig = configFile >> "CfgWeapons" >> _weaponClass; if (isNumber (_weaponConfig >> "ACE_RailHeightAboveBore")) then { _railHeightAboveBore = getNumber(_weaponConfig >> "ACE_RailHeightAboveBore"); } else { switch (_weaponIndex) do { case 0: { _railHeightAboveBore = 3.0; }; // Rifle case 2: { _railHeightAboveBore = 0.7; }; // Pistol }; }; // Determine scope height above rail private _scopeHeightAboveRail = 0; private _opticConfig = configFile >> "CfgWeapons" >> _opticsClass; if (isNumber (_opticConfig >> "ACE_ScopeHeightAboveRail")) then { _scopeHeightAboveRail = getNumber(_opticConfig >> "ACE_ScopeHeightAboveRail"); } else { switch (getNumber(_opticConfig >> "ItemInfo" >> "opticType")) do { case 1: { _scopeHeightAboveRail = 4.5; }; // RCO or similar case 2: { _scopeHeightAboveRail = 4.0; }; // High power scope default { switch (_weaponIndex) do { case 0: { _scopeHeightAboveRail = 2.0; }; // Rifle iron sights case 2: { _scopeHeightAboveRail = 1.0; }; // Pistol iron sights }; }; }; }; (_railHeightAboveBore + _scopeHeightAboveRail)