From 123c19c1c0428fd87e5966b5d2fa4a76e59cb3d1 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Sat, 24 Feb 2018 06:29:41 +0100 Subject: [PATCH] Scope stats and ballistic stats improvement (#6164) * Hide some of the ballistic stats if config value not defined ACE_magMuzzleVelocity ACE_bulletMass ACE_ballisticCoef * Add vertical and horizontal scope limits stats --- addons/ballistics/ACE_Arsenal_Stats.hpp | 3 +++ addons/scopes/ACE_Arsenal_Stats.hpp | 18 ++++++++++++++++++ addons/scopes/config.cpp | 1 + addons/scopes/stringtable.xml | 8 ++++++++ 4 files changed, 30 insertions(+) create mode 100644 addons/scopes/ACE_Arsenal_Stats.hpp diff --git a/addons/ballistics/ACE_Arsenal_Stats.hpp b/addons/ballistics/ACE_Arsenal_Stats.hpp index 4cf9872b7a..620c0fb2bc 100644 --- a/addons/ballistics/ACE_Arsenal_Stats.hpp +++ b/addons/ballistics/ACE_Arsenal_Stats.hpp @@ -34,6 +34,7 @@ class EGVAR(arsenal,stats) { displayName= CSTRING(statBallisticCoef); showText= 1; textStatement = QUOTE(params[ARR_2('_stat', '_config')]; private _ammoCfg = (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo'))); private _ballisticCoef = getArray (_ammoCfg >> _stat select 1); _ballisticCoef sort false; format [ARR_4('%1 G%2 (%3)', _ballisticCoef select 0 ,getNumber (_ammoCfg >> _stat select 0), getText (_ammoCfg >> _stat select 2))]); + condition = QUOTE(params[ARR_2('_stat', '_config')]; private _ammoCfg = (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo'))); !(getArray (_ammoCfg >> _stat select 1) isEqualTo [])); tabs[] ={{}, {4}}; }; class ACE_bulletMass: statBase { @@ -43,6 +44,7 @@ class EGVAR(arsenal,stats) { displayName = CSTRING(statBulletMass); showText = 1; textStatement = QUOTE(params[ARR_2('_stat', '_config')]; private _ammoWeight = getNumber (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo')) >> _stat select 0); format [ARR_3('%1g (%2gr)', _ammoWeight toFixed 1, (_ammoWeight * 15.43) toFixed 1)]); + condition = QUOTE(params[ARR_2('_stat', '_config')]; getNumber (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo')) >> _stat select 0) > 0); tabs[] = {{}, {4}}; }; class ACE_magMuzzleVelocity: statBase { @@ -52,6 +54,7 @@ class EGVAR(arsenal,stats) { displayName= CSTRING(statMuzzleVelocity); showText= 1; textStatement = QUOTE(params[ARR_2('_stat', '_config')]; private _initSpeed = getNumber (_config >> _stat select 0); format [ARR_3('%1 m/s (%2 ft/s)', _initSpeed, (_initSpeed * 3.28084) toFixed 0)]); + condition = QUOTE(getNumber (_this select 1 >> (_this select 0) select 0) > 0); tabs[] = {{}, {4}}; }; class ACE_weaponMuzzleVelocity: statBase { diff --git a/addons/scopes/ACE_Arsenal_Stats.hpp b/addons/scopes/ACE_Arsenal_Stats.hpp new file mode 100644 index 0000000000..1e2ebd91ea --- /dev/null +++ b/addons/scopes/ACE_Arsenal_Stats.hpp @@ -0,0 +1,18 @@ +class EGVAR(arsenal,stats) { + class statBase; + class ACE_scopeHorizontalLimits: statBase { + scope = 2; + priority = 3; + stats[] = {"ACE_ScopeAdjust_Horizontal", "ACE_ScopeAdjust_HorizontalIncrement"}; + displayName = CSTRING(statHorizontalLimits); + showText = 1; + textStatement = QUOTE(params[ARR_2('_stat','_config')]; private _limits = getArray (_config >> _stat select 0); format [ARR_4('%1 / %2 MIL (∆ %3 MIL)', _limits select 0, _limits select 1, getNumber (_config >> _stat select 1))]); + condition = QUOTE(params[ARR_2('_stat', '_config')]; !((getArray (_config >> _stat select 0)) isEqualTo [])); + tabs[] = {{}, {0}}; + }; + class ACE_scopeVerticalLimits: ACE_scopeHorizontalLimits { + stats[] = {"ACE_ScopeAdjust_Vertical", "ACE_ScopeAdjust_VerticalIncrement"}; + priority = 2; + displayName = CSTRING(statVerticalLimits); + }; +}; diff --git a/addons/scopes/config.cpp b/addons/scopes/config.cpp index 85c870b97c..4bef442049 100644 --- a/addons/scopes/config.cpp +++ b/addons/scopes/config.cpp @@ -20,3 +20,4 @@ class CfgPatches { #include "CfgWeapons.hpp" #include "RscTitles.hpp" #include "ACE_Settings.hpp" +#include "ACE_Arsenal_Stats.hpp" diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index 9bb2468339..4306e72137 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -440,5 +440,13 @@ %1R %1R + + Horizontal limits + Limites horizontales + + + Vertical limits + Limites verticales +