Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
carhud.c
Go to the documentation of this file.
1
// Car HUD
2
class
CarHud
:
VehicleHudBase
3
{
4
protected
ImageWidget
m_VehicleRPMPointer
;
5
protected
ImageWidget
m_VehicleRPMDial
;
6
protected
ImageWidget
m_VehicleRPMRedline
;
7
protected
ImageWidget
m_VehicleSpeedPointer
;
8
protected
Widget
m_VehicleTemperatureIndicator
;
9
protected
ImageWidget
m_VehicleTemperaturePointer
;
10
protected
ImageWidget
m_VehicleTemperatureLight
;
11
protected
ImageWidget
m_VehicleFuelPointer
;
12
protected
ImageWidget
m_VehicleFuelLight
;
13
14
protected
TextWidget
m_VehicleSpeedValue
;
15
16
protected
ImageWidget
m_VehicleBatteryLight
;
17
protected
ImageWidget
m_VehicleEngineLight
;
18
protected
ImageWidget
m_VehicleOilLight
;
19
protected
ImageWidget
m_VehicleHandBrakeLight
;
20
protected
ImageWidget
m_VehicleWheelLight
;
21
22
protected
bool
m_VehicleDamageZoneHitEngineState
;
23
protected
float
m_VehicleDamageZonesHitTimer
;
24
25
protected
CarScript
m_CurrentVehicle
;
26
27
protected
int
m_VehicleGearCount
= -1;
28
protected
float
m_TimeSinceLastEngineLightChange
;
29
protected
bool
m_VehicleHasCoolant
;
30
31
override
void
Init
(
Widget
vehicleHudPanels)
32
{
33
super.Init(vehicleHudPanels);
34
35
m_VehiclePanel
=
g_Game
.GetWorkspace().CreateWidgets(
"gui/layouts/day_z_hud_cars.layout"
, vehicleHudPanels);
36
37
m_VehicleRPMPointer
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"RPMPointer"
) );
38
m_VehicleRPMDial
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"RPMDial"
) );
39
m_VehicleRPMRedline
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"RPMDialRedline"
) );
40
m_VehicleSpeedPointer
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"SpeedPointer"
) );
41
m_VehicleSpeedValue
=
TextWidget
.Cast(
m_VehiclePanel
.FindAnyWidget(
"SpeedValue"
) );
42
43
m_VehicleCurrentGearValue
=
TextWidget
.Cast(
m_VehiclePanel
.FindAnyWidget(
"Current"
) );
44
m_VehicleNextGearValue
=
TextWidget
.Cast(
m_VehiclePanel
.FindAnyWidget(
"Next"
) );
45
m_VehiclePrevGearValue
=
TextWidget
.Cast(
m_VehiclePanel
.FindAnyWidget(
"Prev"
) );
46
47
m_VehicleBatteryLight
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"BatteryLight"
));
48
m_VehicleEngineLight
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"EngineLight"
));
49
m_VehicleOilLight
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"OilLight"
));
50
m_VehicleHandBrakeLight
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"HandBrakeLight"
));
51
m_VehicleWheelLight
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"WheelLight"
));
52
53
m_VehicleTemperatureIndicator
=
m_VehiclePanel
.FindAnyWidget(
"TemperatureIndicator"
);
54
m_VehicleTemperaturePointer
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"TemperaturePointer"
));
55
m_VehicleTemperatureLight
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"TemperatureLight"
));
56
m_VehicleFuelPointer
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"FuelPointer"
));
57
m_VehicleFuelLight
= ImageWidget.Cast(
m_VehiclePanel
.FindAnyWidget(
"FuelLight"
));
58
59
m_VehicleGearTable
.Set(-1,
""
);
60
m_VehicleGearTable
.Set(CarGear.REVERSE,
"R"
);
61
m_VehicleGearTable
.Set(CarGear.NEUTRAL,
"N"
);
62
m_VehicleGearTable
.Set(CarGear.FIRST,
"1"
);
63
m_VehicleGearTable
.Set(CarGear.SECOND,
"2"
);
64
m_VehicleGearTable
.Set(CarGear.THIRD,
"3"
);
65
m_VehicleGearTable
.Set(CarGear.FOURTH,
"4"
);
66
m_VehicleGearTable
.Set(CarGear.FIFTH,
"5"
);
67
m_VehicleGearTable
.Set(CarGear.SIXTH,
"6"
);
68
m_VehicleGearTable
.Set(CarGear.SEVENTH,
"7"
);
69
m_VehicleGearTable
.Set(CarGear.EIGTH,
"8"
);
70
71
m_VehicleGearTableAuto
.Set(-1,
""
);
72
m_VehicleGearTableAuto
.Set(
CarAutomaticGearboxMode
.R,
"R"
);
73
m_VehicleGearTableAuto
.Set(
CarAutomaticGearboxMode
.N,
"N"
);
74
m_VehicleGearTableAuto
.Set(
CarAutomaticGearboxMode
.D,
"D"
);
75
}
76
77
override
void
ShowVehicleInfo
(
PlayerBase
player)
78
{
79
HumanCommandVehicle
hcv = player.GetCommand_Vehicle();
80
if
(!hcv)
81
return
;
82
83
m_CurrentVehicle
=
CarScript
.Cast(hcv.
GetTransport
());
84
if
(!
m_CurrentVehicle
)
85
return
;
86
87
m_VehicleGearCount
=
m_CurrentVehicle
.GetGearCount();
88
89
float
rpm_value_red =
m_CurrentVehicle
.EngineGetRPMRedline() /
m_CurrentVehicle
.EngineGetRPMMax();
90
m_VehicleRPMDial
.SetMaskProgress(rpm_value_red);
91
m_VehicleRPMRedline
.SetMaskProgress(1 - rpm_value_red);
92
93
m_VehiclePanel
.Show(
true
);
94
}
95
96
override
void
HideVehicleInfo
()
97
{
98
m_CurrentVehicle
= null;
99
m_VehicleGearCount
= -1;
100
}
101
102
override
void
RefreshVehicleHud
(
float
timeslice)
103
{
104
float
rpm_value =
m_CurrentVehicle
.EngineGetRPM() /
m_CurrentVehicle
.EngineGetRPMMax();
105
float
rpm_value_red =
m_CurrentVehicle
.EngineGetRPMRedline() /
m_CurrentVehicle
.EngineGetRPMMax();
106
float
speed_value =
m_CurrentVehicle
.GetSpeedometerAbsolute() / 200;
107
108
m_VehicleRPMPointer
.SetRotation(0, 0, rpm_value * 270 - 130,
true
);
109
m_VehicleSpeedPointer
.SetRotation(0, 0, speed_value * 260 - 130,
true
);
110
m_VehicleSpeedValue
.SetText(
Math
.
AbsInt
(
m_CurrentVehicle
.GetSpeedometer()).ToString());
111
112
int
engineHealthLevel =
m_CurrentVehicle
.GetHealthLevel(
"Engine"
);
113
int
fuelTankHealthLevel =
m_CurrentVehicle
.GetHealthLevel(
"FuelTank"
);
114
bool
newHealth =
false
;
115
117
if
(
m_CurrentVehicle
.HasEngineZoneReceivedHit())
118
{
119
if
(
m_TimeSinceLastEngineLightChange
> 0.35)
120
{
121
m_VehicleEngineLight
.Show(!
m_VehicleEngineLight
.IsVisible());
122
if
(engineHealthLevel <=
GameConstants
.
STATE_WORN
)
123
{
124
m_VehicleEngineLight
.SetColor(
Colors
.
WHITE
);
125
}
126
else
127
{
128
m_VehicleEngineLight
.SetColor(
ItemManager
.
GetItemHealthColor
(engineHealthLevel));
129
}
130
131
m_VehicleEngineLight
.SetAlpha(1);
132
m_TimeSinceLastEngineLightChange
= 0;
133
}
134
135
m_TimeSinceLastEngineLightChange
+= timeslice;
136
newHealth =
true
;
137
}
138
else
if
(engineHealthLevel >
GameConstants
.
STATE_WORN
)
139
{
140
m_VehicleEngineLight
.SetColor(
ItemManager
.
GetItemHealthColor
(engineHealthLevel));
141
m_VehicleEngineLight
.SetAlpha(1);
142
m_VehicleEngineLight
.Show(
true
);
143
}
144
else
145
{
146
m_VehicleEngineLight
.Show(
false
);
147
}
148
150
if
(fuelTankHealthLevel <=
GameConstants
.
STATE_WORN
)
151
{
152
m_VehicleFuelLight
.SetColor(
Colors
.
WHITE
);
153
m_VehicleFuelLight
.SetAlpha(1);
154
m_VehicleFuelLight
.Show(
true
);
155
}
156
else
if
(fuelTankHealthLevel >
GameConstants
.
STATE_WORN
)
157
{
158
m_VehicleFuelLight
.SetColor(
ItemManager
.
GetItemHealthColor
(fuelTankHealthLevel));
159
m_VehicleFuelLight
.SetAlpha(1);
160
m_VehicleFuelLight
.Show(
true
);
161
}
162
164
if
(
m_CurrentVehicle
.IsVitalRadiator())
165
{
166
m_VehicleTemperatureIndicator
.Show(
true
);
167
if
(
m_CurrentVehicle
.HasRadiator())
168
{
169
int
radiatorHealthLevel =
m_CurrentVehicle
.GetRadiator().GetHealthLevel(
""
);
170
if
(radiatorHealthLevel <=
GameConstants
.
STATE_WORN
)
171
{
172
m_VehicleTemperatureLight
.SetColor(
Colors
.
WHITE
);
173
m_VehicleTemperatureLight
.SetAlpha(1);
174
m_VehicleTemperatureLight
.Show(
true
);
175
}
176
else
if
(radiatorHealthLevel >
GameConstants
.
STATE_WORN
)
177
{
178
m_VehicleTemperatureLight
.SetColor(
ItemManager
.
GetItemHealthColor
(radiatorHealthLevel));
179
m_VehicleTemperatureLight
.SetAlpha(1);
180
m_VehicleTemperatureLight
.Show(
true
);
181
}
182
}
183
else
184
{
185
m_VehicleTemperatureLight
.SetColor(
Colors
.
COLOR_RUINED
);
186
m_VehicleTemperatureLight
.SetAlpha(1);
187
m_VehicleTemperatureLight
.Show(
true
);
188
}
189
}
190
else
191
{
192
m_VehicleTemperatureIndicator
.Show(
false
);
193
}
194
195
m_VehicleHandBrakeLight
.Show(
m_CurrentVehicle
.IsHandbrakeActive());
196
m_VehicleWheelLight
.Show(
m_CurrentVehicle
.WheelIsAnyLocked());
197
198
199
int
engagedGear = -1;
200
int
prevGear = -1;
201
int
nextGear = -1;
202
203
if
(
m_CurrentVehicle
.GearboxGetType() ==
CarGearboxType
.MANUAL)
204
{
205
engagedGear =
m_CurrentVehicle
.GetGear();
206
prevGear = engagedGear - 1;
207
nextGear = engagedGear + 1;
208
209
if
(engagedGear == CarGear.NEUTRAL)
210
{
211
prevGear = CarGear.REVERSE;
212
}
213
else
if
(engagedGear == CarGear.REVERSE)
214
{
215
prevGear = -1;
216
nextGear = CarGear.NEUTRAL;
217
}
218
219
m_VehicleCurrentGearValue
.SetText(
m_VehicleGearTable
.Get(engagedGear));
220
m_VehicleNextGearValue
.Show(nextGear <
m_VehicleGearCount
);
221
222
m_VehicleNextGearValue
.SetText(
m_VehicleGearTable
.Get(nextGear));
223
m_VehiclePrevGearValue
.SetText(
m_VehicleGearTable
.Get(prevGear));
224
}
225
else
226
{
227
engagedGear =
m_CurrentVehicle
.GearboxGetMode();
228
prevGear = engagedGear - 1;
229
nextGear = engagedGear + 1;
230
231
m_VehicleCurrentGearValue
.SetText(
m_VehicleGearTableAuto
.Get(engagedGear));
232
m_VehicleNextGearValue
.Show(nextGear <
EnumTools
.
GetEnumSize
(
CarAutomaticGearboxMode
));
233
234
m_VehicleNextGearValue
.SetText(
m_VehicleGearTableAuto
.Get(nextGear));
235
m_VehiclePrevGearValue
.SetText(
m_VehicleGearTableAuto
.Get(prevGear));
236
}
237
238
// refresh backlit
239
GetDayZGame
().GetBacklit().RefreshVehicleLayout(engagedGear, newHealth);
240
241
m_VehicleFuelPointer
.SetRotation( 0, 0,
m_CurrentVehicle
.GetFluidFraction(
CarFluid
.FUEL ) * 260 - 130,
true
);
242
m_VehicleTemperaturePointer
.SetRotation( 0, 0, -1 *
m_CurrentVehicle
.GetFluidFraction(
CarFluid
.COOLANT ) * 260 + 130,
true
);
243
245
if
(
m_VehicleDamageZonesHitTimer
> 1)
246
{
247
m_VehicleDamageZoneHitEngineState
=
false
;
248
m_VehicleDamageZonesHitTimer
= 0;
249
}
250
251
m_VehicleDamageZonesHitTimer
+= timeslice;
252
}
253
}
CarAutomaticGearboxMode
CarAutomaticGearboxMode
Enumerated automatic gearbox modes. (native, do not change or extend).
Definition
car.c:69
CarFluid
CarFluid
Type of vehicle's fluid. (native, do not change or extend).
Definition
car.c:19
CarGearboxType
CarGearboxType
Enumerated gearbox types. (native, do not change or extend).
Definition
car.c:35
CarHud
Definition
carhud.c:3
CarHud::m_VehicleRPMDial
ImageWidget m_VehicleRPMDial
Definition
carhud.c:5
CarHud::ShowVehicleInfo
override void ShowVehicleInfo(PlayerBase player)
Definition
carhud.c:77
CarHud::m_VehicleSpeedValue
TextWidget m_VehicleSpeedValue
Definition
carhud.c:14
CarHud::m_TimeSinceLastEngineLightChange
float m_TimeSinceLastEngineLightChange
Definition
carhud.c:28
CarHud::m_VehicleFuelPointer
ImageWidget m_VehicleFuelPointer
Definition
carhud.c:11
CarHud::m_VehicleTemperatureIndicator
Widget m_VehicleTemperatureIndicator
Definition
carhud.c:8
CarHud::m_VehicleSpeedPointer
ImageWidget m_VehicleSpeedPointer
Definition
carhud.c:7
CarHud::m_VehicleDamageZoneHitEngineState
bool m_VehicleDamageZoneHitEngineState
Definition
carhud.c:22
CarHud::m_VehicleFuelLight
ImageWidget m_VehicleFuelLight
Definition
carhud.c:12
CarHud::m_VehicleRPMPointer
ImageWidget m_VehicleRPMPointer
Definition
carhud.c:4
CarHud::m_VehicleDamageZonesHitTimer
float m_VehicleDamageZonesHitTimer
Definition
carhud.c:23
CarHud::RefreshVehicleHud
override void RefreshVehicleHud(float timeslice)
Definition
carhud.c:102
CarHud::m_VehicleRPMRedline
ImageWidget m_VehicleRPMRedline
Definition
carhud.c:6
CarHud::Init
override void Init(Widget vehicleHudPanels)
Definition
carhud.c:31
CarHud::m_VehicleTemperaturePointer
ImageWidget m_VehicleTemperaturePointer
Definition
carhud.c:9
CarHud::HideVehicleInfo
override void HideVehicleInfo()
Definition
carhud.c:96
CarHud::m_VehicleGearCount
int m_VehicleGearCount
Definition
carhud.c:27
CarHud::m_VehicleOilLight
ImageWidget m_VehicleOilLight
Definition
carhud.c:18
CarHud::m_VehicleEngineLight
ImageWidget m_VehicleEngineLight
Definition
carhud.c:17
CarHud::m_VehicleWheelLight
ImageWidget m_VehicleWheelLight
Definition
carhud.c:20
CarHud::m_CurrentVehicle
CarScript m_CurrentVehicle
Definition
carhud.c:25
CarHud::m_VehicleHandBrakeLight
ImageWidget m_VehicleHandBrakeLight
Definition
carhud.c:19
CarHud::m_VehicleBatteryLight
ImageWidget m_VehicleBatteryLight
Definition
carhud.c:16
CarHud::m_VehicleHasCoolant
bool m_VehicleHasCoolant
Definition
carhud.c:29
CarHud::m_VehicleTemperatureLight
ImageWidget m_VehicleTemperatureLight
Definition
carhud.c:10
CarScript
Definition
civiliansedan.c:2
Colors
Definition
colors.c:4
Colors::WHITE
const int WHITE
Definition
colors.c:15
Colors::COLOR_RUINED
const int COLOR_RUINED
Definition
colors.c:20
EnumTools
Definition
enconvert.c:603
EnumTools::GetEnumSize
static int GetEnumSize(typename e)
Return amount of values in enum.
Definition
enconvert.c:636
GameConstants
Definition
constants.c:664
HumanCommandVehicle
Definition
human.c:690
HumanCommandVehicle::GetTransport
proto native Transport GetTransport()
ItemManager
Definition
itemmanager.c:2
ItemManager::GetItemHealthColor
static int GetItemHealthColor(int pHealthLevel)
Definition
itemmanager.c:417
Math
Definition
enmath.c:7
PlayerBase
Definition
playerbaseclient.c:2
TextWidget
Definition
enwidgets.c:220
VehicleHudBase::m_VehiclePrevGearValue
TextWidget m_VehiclePrevGearValue
Definition
vehiclehudbase.c:7
VehicleHudBase::VehicleHudBase
void VehicleHudBase()
VehicleHudBase::m_VehicleCurrentGearValue
TextWidget m_VehicleCurrentGearValue
Definition
vehiclehudbase.c:5
VehicleHudBase::m_VehicleGearTable
ref map< int, string > m_VehicleGearTable
Definition
vehiclehudbase.c:9
VehicleHudBase::m_VehicleGearTableAuto
ref map< int, string > m_VehicleGearTableAuto
Definition
vehiclehudbase.c:10
VehicleHudBase::m_VehicleNextGearValue
TextWidget m_VehicleNextGearValue
Definition
vehiclehudbase.c:6
VehicleHudBase::m_VehiclePanel
Widget m_VehiclePanel
Definition
vehiclehudbase.c:4
Widget
Definition
enwidgets.c:190
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
GetDayZGame
DayZGame GetDayZGame()
Definition
dayzgame.c:3944
GameConstants::STATE_WORN
const int STATE_WORN
Definition
constants.c:854
Math::AbsInt
static proto int AbsInt(int i)
Returns absolute value.
Games
Dayz
scripts
5_mission
gui
vehicles
carhud.c
Generated by
1.17.0