Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_BaseWeaponElevationDisplay.c
Go to the documentation of this file.
1
class
SCR_BaseWeaponElevationDisplay
:
SCR_BaseHeadingDisplay
2
{
3
[
Attribute
(
"{EF0A00F789607F39}UI/layouts/HUD/MortarInfo/ScopeElevationSlots.layout"
,
params
:
"layout"
)]
4
protected
ResourceName
m_sElevationNotchHolderLayout
;
5
6
[
Attribute
(
"{2BDCF42A2713A90B}UI/layouts/HUD/MortarInfo/ScopeElevationSteps.layout"
,
params
:
"layout"
)]
7
protected
ResourceName
m_sElevationNotchItemLayout
;
8
9
//------------------------------------------------------------------------------------------------
10
void
UpdateElevationInfo
(
vector
aimRotation)
11
{
12
float
elevation = aimRotation[1];
13
float
elevationMils = elevation * (
m_fMils
/ 360);
14
15
m_iCurrentHeading
= elevation;
16
17
if
(
m_wMilsTextWidget
)
18
m_wMilsTextWidget
.SetTextFormat(
UIConstants
.VALUE_UNIT_MILS, elevationMils.ToString(4, 0));
19
20
if
(
m_wDegreesTextWidget
)
21
m_wDegreesTextWidget
.SetTextFormat(
UIConstants
.VALUE_UNIT_DEGREES, elevation.ToString(3, 1));
22
23
float
elevationInPercent = elevation -
m_iCurrentHeading
;
24
elevationInPercent =
Math
.Clamp(elevationInPercent, 0, 1);
25
26
// We didn't move so we don't need to reset
27
if
(
m_iCurrentHeading
==
m_iLastStoredHeading
)
28
{
29
// Since SetSliderPosPixels() works in DPIScaled we need to first upscale our change to make it work in not FullHD resolutions.
30
float
newSliderPos =
GetGame
().GetWorkspace().DPIScale(
m_fSliderPosY
- (
m_fDegreeWidgetSize
* elevationInPercent));
31
32
if
(
m_wHeadingTableHolderWidget
)
33
m_wHeadingTableHolderWidget
.SetSliderPosPixels(0, newSliderPos);
34
}
35
else
36
{
37
UpdateElevationWidgets
();
38
m_iLastStoredHeading
=
m_iCurrentHeading
;
39
}
40
}
41
42
//------------------------------------------------------------------------------------------------
43
protected
void
UpdateElevationWidgets
()
44
{
45
if
(
m_aHeadingTextWidgets
.IsEmpty())
46
return
;
47
48
// Calculate how many numbers we need to go in every direction from the current elevation
49
int
elevation =
m_iCurrentHeading
+ ((
m_iMaxShownDegrees
- 1) * 0.5);
50
51
if
(elevation < 0)
52
elevation += 360;
53
54
foreach
(
TextWidget
w :
m_aHeadingTextWidgets
)
55
{
56
// If the next number would be 360, change it to 0 since they are both 0°
57
if
(elevation == 360)
58
elevation = 0;
59
else
if
(elevation == -1)
60
elevation = 359;
61
62
w.SetText(elevation.ToString());
63
64
elevation--;
65
}
66
67
m_wHeadingTableHolderWidget
.SetSliderPos(0, 0.5);
68
m_wHeadingTableHolderWidget
.GetSliderPosPixels(
m_fSliderPosX
,
m_fSliderPosY
);
69
m_fSliderPosY
=
GetGame
().GetWorkspace().DPIUnscale(
m_fSliderPosY
);
70
}
71
72
//------------------------------------------------------------------------------------------------
73
override
void
SetupHeadingWidgets
(
ResourceName
headingHolderLayout =
""
,
ResourceName
headingNotchLayout =
""
)
74
{
75
super.SetupHeadingWidgets(
m_sElevationNotchHolderLayout
,
m_sElevationNotchItemLayout
);
76
UpdateElevationWidgets
();
77
}
78
79
//------------------------------------------------------------------------------------------------
80
override
void
CalculateWidgetScreenSizeUnscaled
(
Widget
widget)
81
{
82
float
w;
83
widget.GetScreenSize(w,
m_fDegreeWidgetSize
);
84
m_fDegreeWidgetSize
=
GetGame
().GetWorkspace().DPIUnscale(
m_fDegreeWidgetSize
);
85
86
super.CalculateWidgetScreenSizeUnscaled(widget);
87
}
88
89
//------------------------------------------------------------------------------------------------
90
override
void
CalculateScreenSize
(
Widget
degreeWidget)
91
{
92
super.CalculateScreenSize(degreeWidget);
93
m_fDegreeWidgetDefaultSize
=
m_fDegreeWidgetDefaultSizeHeight
;
94
95
CalculateWidgetScreenSizeUnscaled
(degreeWidget);
96
}
97
98
//------------------------------------------------------------------------------------------------
99
override
void
DisplayUpdate
(
IEntity
owner,
float
timeSlice)
100
{
101
vector
aimRotation =
GetMuzzleDirection
().VectorToAngles();
102
UpdateElevationInfo
(aimRotation);
103
104
if
(
m_iCurrentHeading
== 0)
105
{
106
m_iCurrentHeading
= aimRotation[1];
107
UpdateElevationWidgets
();
108
}
109
110
super.DisplayUpdate(owner, timeSlice);
111
}
112
113
//------------------------------------------------------------------------------------------------
114
override
void
DisplayStartDraw
(
IEntity
owner)
115
{
116
super.DisplayStartDraw(owner);
117
SetupHeadingWidgets
();
118
}
119
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
params
category params
Definition
SCR_SpherePointGeneratorPreviewComponent.c:21
IEntity
Definition
IEntity.c:13
Math
Definition
Math.c:13
ResourceName
Definition
ResourceName.c:13
SCR_BaseHeadingDisplay
Definition
SCR_BaseHeadingDisplay.c:2
SCR_BaseHeadingDisplay::m_fDegreeWidgetSize
float m_fDegreeWidgetSize
Definition
SCR_BaseHeadingDisplay.c:43
SCR_BaseHeadingDisplay::m_fSliderPosY
float m_fSliderPosY
Definition
SCR_BaseHeadingDisplay.c:40
SCR_BaseHeadingDisplay::m_wHeadingTableHolderWidget
ScrollLayoutWidget m_wHeadingTableHolderWidget
Definition
SCR_BaseHeadingDisplay.c:55
SCR_BaseHeadingDisplay::m_iLastStoredHeading
int m_iLastStoredHeading
Definition
SCR_BaseHeadingDisplay.c:46
SCR_BaseHeadingDisplay::m_iMaxShownDegrees
int m_iMaxShownDegrees
Definition
SCR_BaseHeadingDisplay.c:4
SCR_BaseHeadingDisplay::m_iCurrentHeading
int m_iCurrentHeading
Definition
SCR_BaseHeadingDisplay.c:47
SCR_BaseHeadingDisplay::m_fDegreeWidgetDefaultSize
float m_fDegreeWidgetDefaultSize
Definition
SCR_BaseHeadingDisplay.c:36
SCR_BaseHeadingDisplay::GetMuzzleDirection
vector GetMuzzleDirection()
Definition
SCR_BaseHeadingDisplay.c:120
SCR_BaseHeadingDisplay::m_fMils
float m_fMils
Definition
SCR_BaseHeadingDisplay.c:7
SCR_BaseHeadingDisplay::m_wMilsTextWidget
TextWidget m_wMilsTextWidget
Definition
SCR_BaseHeadingDisplay.c:53
SCR_BaseHeadingDisplay::m_wDegreesTextWidget
TextWidget m_wDegreesTextWidget
Definition
SCR_BaseHeadingDisplay.c:54
SCR_BaseHeadingDisplay::m_fSliderPosX
float m_fSliderPosX
Definition
SCR_BaseHeadingDisplay.c:39
SCR_BaseHeadingDisplay::m_fDegreeWidgetDefaultSizeHeight
float m_fDegreeWidgetDefaultSizeHeight
Definition
SCR_BaseHeadingDisplay.c:38
SCR_BaseHeadingDisplay::m_aHeadingTextWidgets
ref array< TextWidget > m_aHeadingTextWidgets
Definition
SCR_BaseHeadingDisplay.c:59
SCR_BaseWeaponElevationDisplay
Definition
SCR_BaseWeaponElevationDisplay.c:2
SCR_BaseWeaponElevationDisplay::UpdateElevationWidgets
void UpdateElevationWidgets()
Definition
SCR_BaseWeaponElevationDisplay.c:43
SCR_BaseWeaponElevationDisplay::DisplayUpdate
override void DisplayUpdate(IEntity owner, float timeSlice)
Definition
SCR_BaseWeaponElevationDisplay.c:99
SCR_BaseWeaponElevationDisplay::m_sElevationNotchItemLayout
ResourceName m_sElevationNotchItemLayout
Definition
SCR_BaseWeaponElevationDisplay.c:7
SCR_BaseWeaponElevationDisplay::CalculateWidgetScreenSizeUnscaled
override void CalculateWidgetScreenSizeUnscaled(Widget widget)
Definition
SCR_BaseWeaponElevationDisplay.c:80
SCR_BaseWeaponElevationDisplay::UpdateElevationInfo
void UpdateElevationInfo(vector aimRotation)
Definition
SCR_BaseWeaponElevationDisplay.c:10
SCR_BaseWeaponElevationDisplay::CalculateScreenSize
override void CalculateScreenSize(Widget degreeWidget)
Definition
SCR_BaseWeaponElevationDisplay.c:90
SCR_BaseWeaponElevationDisplay::SetupHeadingWidgets
override void SetupHeadingWidgets(ResourceName headingHolderLayout="", ResourceName headingNotchLayout="")
Definition
SCR_BaseWeaponElevationDisplay.c:73
SCR_BaseWeaponElevationDisplay::DisplayStartDraw
override void DisplayStartDraw(IEntity owner)
Definition
SCR_BaseWeaponElevationDisplay.c:114
SCR_BaseWeaponElevationDisplay::m_sElevationNotchHolderLayout
ResourceName m_sElevationNotchHolderLayout
Definition
SCR_BaseWeaponElevationDisplay.c:4
TextWidget
Definition
TextWidget.c:16
UIConstants
Definition
Constants.c:151
Widget
Definition
Widget.c:13
vector
Definition
vector.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
scripts
Game
UI
HUD
MortarInfo
SCR_BaseWeaponElevationDisplay.c
Generated by
1.17.0