Braf_Air2 atualizado

This commit is contained in:
2026-06-14 21:25:45 -03:00
parent e4ac56b038
commit 63626ca260
62 changed files with 1734 additions and 306 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -23,21 +23,6 @@ class CfgModels
class Animations
{
};
};
class braf_a29_gunner_n
{
htMin=0;
htMax=0;
afMax=0;
mfMax=0;
mFact=0;
tBody=0;
skeletonName="braf_A29_Flir";
sectionsInherit="";
sections[]={};
class Animations
{
};
};
class braf_a29_gunner_m
{

View File

@@ -1,48 +1,76 @@
/*
Author: Brazilian Armed Forces
File: BRAF_AirOptics.hpp
Purpose:
Define a UI (InGame Optics) do A-29 com elementos vanilla + elementos custom (IDCs 9901..9905)
e instala um EventHandler para atualizar os controles em tempo real enquanto a optics estiver ativa.
Correções lógicas aplicadas (padrão Arma 3):
1) onLoad usa _this (minúsculo), não _This
2) EH 'Draw' entrega CONTROL; chamamos a função passando DISPLAY via ctrlParent
3) onUnload remove o EH, evitando acumular handlers após abrir/fechar optics
4) Caminhos usam barra simples '\' (padrão Arma 3), sem inventar '\\'
=======================================================================
BRAF A-29 STARSAPHIRE - DICIONÁRIO DE IDCs (REFERÊNCIA)
=======================================================================
IDDs
300 - Display do optics A-29 (BRAF_RscOptics_A29)
Grupos (ControlsGroup)
170 - CA_IGUI_elements_group (grupo principal do optics)
CUSTOM (BRAF)
9901 - Seta: indicador de elevação (trilho vertical)
9902 - Texto: valor numérico da elevação (ex: -12.3°)
9903 - Seta: indicador de direção (trilho horizontal)
9904 - Texto: valor numérico da direção (ex: -45°)
9905 - Seta: bússola (norte geográfico relativo ao apontamento)
*/
class ScrollBar;
class RscUnitInfo;
class RscControlsGroup
{
class VScrollbar;
class HScrollbar;
class Controls;
};
class RscControlsGroup;
class RscControlsGroupNoScrollbars;
class CA_HUDRscControlsGroup;
class RscText;
class RangeText: RscText{};
class RscPicture;
class RscOpticsText;
class RscOpticsValue;
class RscIGProgress;
class RscInGameUI
{
class RscOptics_MBT_01_gunner;
class BRAF_RscOptics_A29: RscUnitInfo
{
idd=300;
controls[]=
{
"CA_IGUI_elements_group"
};
class CA_IGUI_elements_group: RscControlsGroup
{
idc=170;
class VScrollbar: VScrollbar
{
width=0;
};
class HScrollbar: HScrollbar
{
height=0;
};
x="0 * (0.01875 * SafezoneH) + (SafezoneX + ((SafezoneW - SafezoneH) / 2))";
y="0 * (0.025 * SafezoneH) + (SafezoneY)";
w="70";
h="40 * (0.025 * SafezoneH)";
class controls
{
class ValueDistance: RscText
class BRAF_RscOptics_A29: RscUnitInfo
{
idd = 300;
controls[] = {"CA_Zeroing","CA_IGUI_elements_group","CA_VehicleToggles"};
class VScrollbar;
class HScrollbar;
onLoad = "[""onLoad"",_this,""RscUnitInfo"",'IGUI'] call (uiNamespace getVariable 'BIS_fnc_initDisplay'); _this call BRAF_fnc_initRSC;";
onUnload = "[""onUnload"",_this,""RscUnitInfo"",'IGUI'] call (uiNamespace getVariable 'BIS_fnc_initDisplay')";
class CA_IGUI_elements_group: RscControlsGroup
{
idc = 170;
class VScrollbar: VScrollbar { width = 0; };
class HScrollbar: HScrollbar { height = 0; };
x = "-4 * (0.01875 * SafezoneH) + (SafezoneX + ((SafezoneW - SafezoneH)/2))";
y = "000 * (0.02500 * SafezoneH) + (SafezoneY)";
w = "100 * (0.01875 * SafezoneH)";
h = "080 * (0.02500 * SafezoneH)";
class controls
{
class ValueDistance: RscText
{
style=1;
sizeEx="0.038*SafezoneH";
shadow=0;
font="EtelkaMonospacePro";
idc=198; //idc=183;
idc=198;
text="245678";
colorText[] = {0,0,0,1};
colorBackground[] = {0,0,0,0};
@@ -66,7 +94,7 @@ class RscInGameUI
x="10 * (0.01875 * SafezoneH)";
y="34 * (0.025 * SafezoneH)";
};
class Textweapon: ValueGrid
class TextGrid: ValueGrid
{
style=0;
idc=1801;
@@ -144,6 +172,22 @@ class RscInGameUI
y="35.75 * (0.025 * SafezoneH)";
w="6.5 * (0.01875 * SafezoneH)";
};
class braf_fov_mode: RscText
{
idc = 154;
text = "WFOV";
sizeEx="0.03*SafezoneH";
style=0;
shadow=0;
font="EtelkaMonospacePro";
x = "0 * (0.01875 * SafezoneH)";
y="3 * (0.025 * SafezoneH)";
w="5 * (0.01875 * SafezoneH)";
h="1.2 * (0.025 * SafezoneH)";
colorText[] = {0,0,0,1};
};
class CA_VisionMode: RscText
{
idc=152;
@@ -151,18 +195,19 @@ class RscInGameUI
style=0;
shadow=0;
font="EtelkaMonospacePro";
text="DAY";
x="1 * (0.01875 * SafezoneH)";
text="DTV";
x="4.5 * (0.01875 * SafezoneH)";
y="3 * (0.025 * SafezoneH)";
w="5 * (0.01875 * SafezoneH)";
h="1.2 * (0.025 * SafezoneH)";
colorText[] = {0,0,0,1};
};
class CA_FlirMode: CA_VisionMode
{
idc=153;
text="BHOT";
x="5 * (0.01875 * SafezoneH)";
x="7 * (0.01875 * SafezoneH)";
};
class CA_Laser: RscText
{
@@ -173,73 +218,251 @@ class RscInGameUI
shadow=0;
font="EtelkaMonospacePro";
text="\A3\ui_f\data\igui\rscingameui\rscoptics\laser_designator_iconLaserOn.paa";
x="31.1 * (0.01875 * SafezoneH)";
y="12.85 * (0.025 * SafezoneH)";
x="33 * (0.01875 * SafezoneH)";
y="8 * (0.025 * SafezoneH)";
w="3.5 * (0.01875 * SafezoneH)";
h="1.5 * (0.025 * SafezoneH)";
};
//class braf_tri_vert: RscPicture
//{
// idc = 1806;
// text = "rhsusf\addons\rhsusf_optics\data\tex\tri_vert.paa";
// x = "12.9 * (0.01875 * SafezoneH)";
// y = "14.65 * (0.025 * SafezoneH)";
// w = "0.7 * (0.01875 * SafezoneH)";
// h = "1.1 * (0.025 * SafezoneH)";
//};
//class braf_tri_horiz: braf_tri_vert
//{
// idc = 1807;
// text = "rhsusf\addons\rhsusf_optics\data\tex\tri_hor.paa";
// x = "26.1 * (0.01875 * SafezoneH)";
// y = "26.8 * (0.025 * SafezoneH)";
// w = "1.1 * (0.01875 * SafezoneH)";
// h = "0.7 * (0.025 * SafezoneH)";
//};
};
};
class braf_arrow_vert: RscPicture
{
idc = 1901;
text = "\braf\braf_air2\braf_optics_air2\A29\data\braf_arrow_vert_ca.paa";
shadow = 0;
sizeEx = "0.03*SafezoneH";
x = "-0.5 * (0.01875 * SafezoneH)";
y = "16.6 * (0.025 * SafezoneH)";
w = "2.1 * (0.01875 * SafezoneH)";
h = "2.1 * (0.025 * SafezoneH)";
color[] = {1,1,1,1};
colorBackground[] = {0,0,0,0};
};
class braf_elev_value: RscText
{
idc = 1902;
style = 0;
shadow = 0;
sizeEx = "0.03*SafezoneH";
colorText[] = {1,1,1,1};
colorBackground[] = {0,0,0,0};
x = "1 * (0.01875 * SafezoneH)";
y = "16.6 * (0.025 * SafezoneH)";
w = "4 * (0.01875 * SafezoneH)";
h = "2.1 * (0.025 * SafezoneH)";
text = "-120";
};
class braf_arrow_horiz: braf_arrow_vert
{
idc = 1903;
text = "\braf\braf_air2\braf_optics_air2\A29\data\braf_arrow_hor_ca.paa";
x = "-12 * (0.01875 * SafezoneH)";
y = "30 * (0.025 * SafezoneH)";
};
class braf_dir_value: braf_elev_value
{
idc = 1904;
style = 2;
x = "-12.95 * (0.01875 * SafezoneH)";
y = "20 * (0.025 * SafezoneH)";
w = "4.0 * (0.01875 * SafezoneH)";
h = "2.1 * (0.025 * SafezoneH)";
text = "-180";
};
class braf_compass_arrow: RscPicture
{
idc = 1905;
style = 144;
shadow = 0;
text = "\braf\braf_air2\braf_optics_air2\A29\data\braf_arrow_north_ca.paa";
x = "57.5 * (0.01875 * SafezoneH)";
y = "25.5 * (0.02500 * SafezoneH)";
w = "10 * (0.01875 * SafezoneH)";
h = "10 * (0.02500 * SafezoneH)";
};
class braf_compass_n: braf_elev_value
{
idc = -1;
style = 2;
sizeEx = "0.03*SafezoneH";
x = "60 * (0.01875 * SafezoneH)";
y = "28 * (0.02500 * SafezoneH)";
w = "05 * (0.01875 * SafezoneH)";
h = "05 * (0.02500 * SafezoneH)";
text = "N";
};
class BRAF_AirData_Label_HDG: RscText
{
idc = 1906;
style = 2;
shadow = 0;
font = "EtelkaMonospacePro";
sizeEx = "0.02*SafezoneH";
colorText[] = {1,1,1,1};
colorBackground[] = {0,0,0,0};
text = "HDG:";
x="60 * (0.01875 * SafezoneH)";
y = "4.4 * (0.025 * SafezoneH)";
w = "4 * (0.01875 * SafezoneH)";
h = "1.2 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Value_HDG: BRAF_AirData_Label_HDG
{
idc = 1907;
style = 1;
text = "000";
x = "60 * (0.01875 * SafezoneH)";
w = "5 * (0.01875 * SafezoneH)";
};
class BRAF_AirData_Label_IAS: BRAF_AirData_Label_HDG
{
idc = 1908;
text = "IAS:";
y = "5 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Value_IAS: BRAF_AirData_Value_HDG
{
idc = 1909;
text = "000";
y = "5 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Label_GS: BRAF_AirData_Label_HDG
{
idc = 1910;
text = "GS:";
y = "5.6 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Value_GS: BRAF_AirData_Value_HDG
{
idc = 1911;
text = "000";
y = "5.6 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Label_RALT: BRAF_AirData_Label_HDG
{
idc = 1912;
text = "RALT:";
y = "6.2 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Value_RALT: BRAF_AirData_Value_HDG
{
idc = 1913;
text = "0000";
y = "6.2 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Label_BARO: BRAF_AirData_Label_HDG
{
idc = 1914;
text = "BARO:";
y = "6.8 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Value_BARO: BRAF_AirData_Value_HDG
{
idc = 1915;
text = "0000";
y = "6.8 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Label_ROLL: BRAF_AirData_Label_HDG
{
idc = 1916;
text = "ROLL:";
y = "7.4 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Value_ROLL: BRAF_AirData_Value_HDG
{
idc = 1917;
text = "0";
y = "7.4 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Label_PTCH: BRAF_AirData_Label_HDG
{
idc = 1918;
text = "PTCH:";
y = "8 * (0.025 * SafezoneH)";
};
class BRAF_AirData_Value_PTCH: BRAF_AirData_Value_HDG
{
idc = 1919;
text = "0";
y = "8 * (0.025 * SafezoneH)";
};
};
};
};
class BRAF_RscOptics_Fennec: BRAF_RscOptics_A29
{
};
};
};
class BRAF_A29_Gunner_Optics: Optics_Armored
{
class Wide: RCWSOptics
class Wide: RCWSOptics
{
initFov = 0.5236;
minFov = 0.5236;
maxFov = 0.5236;
opticsDisplayName = "WFOV";
visionMode[] = { "Normal", "TI" };
thermalMode[] = { 0, 1 };
thermalNoise[] = { 0.5, 1.25, 2.5, 0.75, 1, 0, 0, 0.95 };
gunnerOpticsModel = "\braf\braf_air2\braf_optics_air2\A29\braf_a29_gunner_w.p3d";
gunnerOpticsEffect[] = {};
directionStabilized = 1;
};
class Medium: Wide
{
opticsDisplayName = "MFOV";
gunnerOpticsModel = "\braf\braf_air2\braf_optics_air2\A29\braf_a29_gunner_m.p3d";
initFov = 0.0593;
minFov = 0.0593;
maxFov = 0.0593;
};
class Narrow: Wide
{
opticsDisplayName = "NFOV";
gunnerOpticsModel = "\braf\braf_air2\braf_optics_air2\A29\braf_a29_gunner_n.p3d";
initFov = 0.0140;
minFov = 0.0140;
maxFov = 0.0140;
};
class Narrower: Narrow
{
initFov=0.4;
minFov=0.4;
maxFov=0.4;
visionMode[]=
{
"Normal",
"TI"
};
thermalMode[]={0,1};
thermalNoise[]=
{
0.5, //intensity,
1.25, //sharpness,
2.5, //grainSize,
0.75, //intensityX0,
1, //intensityX1,
0, //monochromatic,
0, //static,
0.95 //blurCoef
};
gunnerOpticsModel="\braf\braf_air2\BRAF_Optics_Air2\A29\braf_a29_gunner_w.p3d";
gunnerOpticsEffect[]={};
directionStabilized=1;
opticsDisplayName = "NFOV 2X";
initFov = 0.0070;
minFov = 0.0070;
maxFov = 0.0070;
};
class Medium: Wide
class UltraNarrow: Narrow
{
gunnerOpticsModel="\braf\braf_air2\BRAF_Optics_Air2\A29\braf_a29_gunner_m.p3d";
initFov=0.07;
minFov=0.07;
maxFov=0.07;
opticsDisplayName = "NFOV 4X";
initFov = 0.0035;
minFov = 0.0035;
maxFov = 0.0035;
};
class Narrow: Wide
{
gunnerOpticsModel="\braf\braf_air2\BRAF_Optics_Air2\A29\braf_a29_gunner_n.p3d";
initFov=0.014;
minFov=0.014;
maxFov=0.014;
};
};
};
class BRAF_Fennec_Gunner_Optics: BRAF_A29_Gunner_Optics
{
class Wide;
class Medium;
class Narrow;
class Narrower;
class UltraNarrow;
};

View File

@@ -0,0 +1,315 @@
/*
Author: Brazilian Armed Forces
File: BRAF_AirOptics.hpp
Purpose:
Define a UI (InGame Optics) do A-29 com elementos vanilla + elementos custom (IDCs 9901..9905)
e instala um EventHandler para atualizar os controles em tempo real enquanto a optics estiver ativa.
Correções lógicas aplicadas (padrão Arma 3):
1) onLoad usa _this (minúsculo), não _This
2) EH 'Draw' entrega CONTROL; chamamos a função passando DISPLAY via ctrlParent
3) onUnload remove o EH, evitando acumular handlers após abrir/fechar optics
4) Caminhos usam barra simples '\' (padrão Arma 3), sem inventar '\\'
=======================================================================
BRAF A-29 STARSAPHIRE - DICIONÁRIO DE IDCs (REFERÊNCIA)
=======================================================================
IDDs
300 - Display do optics A-29 (BRAF_RscOptics_A29)
Grupos (ControlsGroup)
170 - CA_IGUI_elements_group (grupo principal do optics)
CUSTOM (BRAF)
9901 - Seta: indicador de elevação (trilho vertical)
9902 - Texto: valor numérico da elevação (ex: -12.3°)
9903 - Seta: indicador de direção (trilho horizontal)
9904 - Texto: valor numérico da direção (ex: -45°)
9905 - Seta: bússola (norte geográfico relativo ao apontamento)
*/
class ScrollBar;
class RscUnitInfo;
class RscControlsGroup;
class RscControlsGroupNoScrollbars;
class CA_HUDRscControlsGroup;
class RscText;
class RangeText: RscText{};
class RscPicture;
class RscOpticsText;
class RscOpticsValue;
class RscIGProgress;
class RscInGameUI
{
class BRAF_RscOptics_A29: RscUnitInfo
{
idd = 300;
controls[] = {"CA_Zeroing","CA_IGUI_elements_group","CA_VehicleToggles"};
class VScrollbar;
class HScrollbar;
onLoad = "[""onLoad"",_this,""RscUnitInfo"",'IGUI'] call (uiNamespace getVariable 'BIS_fnc_initDisplay'); _this call BRAF_fnc_initRSC;";
onUnload = "[""onUnload"",_this,""RscUnitInfo"",'IGUI'] call (uiNamespace getVariable 'BIS_fnc_initDisplay')";
class CA_IGUI_elements_group: RscControlsGroup
{
idc = 170;
class VScrollbar: VScrollbar { width = 0; };
class HScrollbar: HScrollbar { height = 0; };
x = "000 * (0.01875 * SafezoneH) + (SafezoneX + ((SafezoneW - SafezoneH)/2))";
y = "000 * (0.02500 * SafezoneH) + (SafezoneY)";
w = "100 * (0.01875 * SafezoneH)";
h = "080 * (0.02500 * SafezoneH)";
class controls
{
class ValueDistance: RscText
{
style=1;
sizeEx="0.038*SafezoneH";
shadow=0;
font="EtelkaMonospacePro";
idc=198; //idc=183;
text="245678";
colorText[] = {0,0,0,1};
colorBackground[] = {0,0,0,0};
x="45.5 * (0.01875 * SafezoneH)";
y="35.75 * (0.025 * SafezoneH)";
w="8 * (0.01875 * SafezoneH)";
h="1.2 * (0.025 * SafezoneH)";
};
class TextDistance: ValueDistance
{
style=0;
idc=1800;
text="Laser dist:";
x="42 * (0.01875 * SafezoneH)";
y="35.75 * (0.025 * SafezoneH)";
};
class ValueGrid: ValueDistance
{
idc=171;
text="245678";
x="10 * (0.01875 * SafezoneH)";
y="34 * (0.025 * SafezoneH)";
};
class Textweapon: ValueGrid
{
style=0;
idc=1801;
text="GPS grid:";
x="4.45 * (0.01875 * SafezoneH)";
y="34 * (0.025 * SafezoneH)";
};
class ValueWeapon: ValueDistance
{
idc=172;
text="245678";
x="10 * (0.01875 * SafezoneH)";
y="35.75 * (0.025 * SafezoneH)";
};
class TextTarget: ValueGrid
{
style=0;
idc=1802;
text="Target grid:";
x="4.45 * (0.01875 * SafezoneH)";
y="35.75 * (0.025 * SafezoneH)";
};
class TextElev: ValueGrid
{
style=0;
idc=1803;
text="Elev:";
x="32 * (0.01875 * SafezoneH)";
y="35.75 * (0.025 * SafezoneH)";
};
class ValueElev: ValueDistance
{
idc=175;
text="245";
x="32 * (0.01875 * SafezoneH)";
y="35.75 * (0.025 * SafezoneH)";
};
class TextAz: ValueGrid
{
style=0;
idc=1804;
text="Az:";
x="24.5 * (0.01875 * SafezoneH)";
y="35.75 * (0.025 * SafezoneH)";
};
class ValueAz: ValueDistance
{
idc=156;
text="245";
x="23 * (0.01875 * SafezoneH)";
y="35.75 * (0.025 * SafezoneH)";
};
class TextAlt: ValueGrid
{
style=0;
idc=1805;
text="Alt:";
x="24.5 * (0.01875 * SafezoneH)";
y="34 * (0.025 * SafezoneH)";
};
class ValueAlt: ValueDistance
{
idc=189;
text="245678";
x="24 * (0.01875 * SafezoneH)";
y="34 * (0.025 * SafezoneH)";
};
class CA_Time: ValueGrid
{
idc=190;
style=0;
shadow=0;
text="XX:XX:xx";
x="54 * (0.01875 * SafezoneH)";
y="35.75 * (0.025 * SafezoneH)";
w="6.5 * (0.01875 * SafezoneH)";
};
class CA_VisionMode: RscText
{
idc=152;
sizeEx="0.03*SafezoneH";
style=0;
shadow=0;
font="EtelkaMonospacePro";
text="DTV";
x="1 * (0.01875 * SafezoneH)";
y="3 * (0.025 * SafezoneH)";
w="5 * (0.01875 * SafezoneH)";
h="1.2 * (0.025 * SafezoneH)";
colorText[] = {0,0,0,1};
};
class CA_FlirMode: CA_VisionMode
{
idc=153;
text="BHOT";
x="5 * (0.01875 * SafezoneH)";
};
class CA_Laser: RscText
{
idc=158;
style="0x30 + 0x800";
sizeEx="0.038*SafezoneH";
colorText[]={0.70599997,0.074500002,0.0196,1};
shadow=0;
font="EtelkaMonospacePro";
text="\A3\ui_f\data\igui\rscingameui\rscoptics\laser_designator_iconLaserOn.paa";
x="33 * (0.01875 * SafezoneH)";
y="8 * (0.025 * SafezoneH)";
w="3.5 * (0.01875 * SafezoneH)";
h="1.5 * (0.025 * SafezoneH)";
};
class braf_arrow_vert: RscPicture
{
idc = 1901;
text = "\braf\braf_air2\braf_optics_air2\A29\data\braf_arrow_vert_ca.paa";
shadow = 2;
sizeEx = "0.06*SafezoneH";
x = "0 * (0.01875 * SafezoneH)";
y = "16.6 * (0.025 * SafezoneH)";
w = "4.2 * (0.01875 * SafezoneH)";
h = "4.2 * (0.025 * SafezoneH)";
color[] = {1,1,1,1};
colorBackground[] = {0,0,0,0};
};
class braf_arrow_horiz: braf_arrow_vert
{
idc = 1903;
text = "\braf\braf_air2\braf_optics_air2\A29\data\braf_arrow_hor_ca.paa";
x = "24.45 * (0.01875 * SafezoneH)";
y = "29 * (0.025 * SafezoneH)";
w = "4.2 * (0.01875 * SafezoneH)";
};
class braf_compass_arrow: RscPicture
{
idc = 1905;
style = 144;
text = "\braf\braf_air2\braf_optics_air2\A29\data\braf_arrow_north_ca.paa";
x = "56 * (0.01875 * SafezoneH)";
y = "28 * (0.02500 * SafezoneH)";
w = "05 * (0.01875 * SafezoneH)";
h = "05 * (0.02500 * SafezoneH)";
};
class braf_elev_value: RscText
{
idc = 1902;
style = 2;
shadow = 2;
sizeEx = "0.06*SafezoneH";
colorText[] = {1,1,1,1};
colorBackground[] = {0,0,0,0};
x = "0 * (0.01875 * SafezoneH)";
y = "16.6 * (0.025 * SafezoneH)";
w = "4.2 * (0.01875 * SafezoneH)";
h = "1.5 * (0.025 * SafezoneH)";
text = "-120";
};
class braf_dir_value: braf_elev_value
{
idc = 1904;
x = "24.15 * (0.01875 * SafezoneH)";
y = "28.45 * (0.025 * SafezoneH)";
w = "4.2 * (0.01875 * SafezoneH)";
h = "1.5 * (0.025 * SafezoneH)";
text = "-180";
};
class braf_compass_n: braf_elev_value
{
idc = -1;
style = 1;
x = "56 * (0.01875 * SafezoneH)";
y = "29.5 * (0.02500 * SafezoneH)";
w = "05 * (0.01875 * SafezoneH)";
h = "2 * (0.02500 * SafezoneH)";
text = "N";
};
};
};
};
};
class BRAF_A29_Gunner_Optics: Optics_Armored
{
class Wide: RCWSOptics
{
initFov = 0.4;
minFov = 0.4;
maxFov = 0.4;
visionMode[] = { "Normal", "TI" };
thermalMode[] = { 0, 1 };
thermalNoise[] = { 0.5, 1.25, 2.5, 0.75, 1, 0, 0, 0.95 };
gunnerOpticsModel = "\braf\braf_air2\braf_optics_air2\A29\braf_a29_gunner_w.p3d";
gunnerOpticsEffect[] = {};
directionStabilized = 1;
};
class Medium: Wide
{
gunnerOpticsModel = "\braf\braf_air2\braf_optics_air2\A29\braf_a29_gunner_m.p3d";
initFov = 0.07;
minFov = 0.07;
maxFov = 0.07;
};
class Narrow: Wide
{
gunnerOpticsModel = "\braf\braf_air2\braf_optics_air2\A29\braf_a29_gunner_n.p3d";
initFov = 0.014;
minFov = 0.014;
maxFov = 0.014;
};
};