DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
IngameHud.c
Go to the documentation of this file.
1class IngameHud extends Hud
2{
3 protected const float FADE_IN_TIME = 0.3;
4 protected const float FADE_OUT_TIME = 0.3;
5 protected const float HIDE_MENU_TIME = 5;
6
8 protected ref map<int,ImageWidget> m_StatesWidgets; // [key] ImageWidget
9
10 protected ref map<ImageWidget, int> m_TendencyStatusCritical; //array of icons that are blinking due to critical tendency status
11 protected const float TENDENCY_BLINK_TIME = 0.25;
12 protected float m_BlinkTime;
13
16 protected ref map<int,ImageWidget> m_BadgesWidgets; // [key] ImageWidget
17 protected bool m_AnyBadgeVisible;
18 protected bool m_IsTemperatureVisible;
19 protected float m_TemperatureTimer;
20 protected float m_TemperatureShowTime = 30;
21 protected ImageWidget m_HeatBufferPlus;
22
23 protected bool m_IsStaminaVisible;
24 protected float m_StaminaTimer;
25 protected float m_StaminaShowTime = 0.15;
26
29
33 protected ref InventoryQuickbar m_Quickbar;
34
36
37 protected ImageWidget m_VehicleRPMPointer;
38 protected ImageWidget m_VehicleRPMDial;
39 protected ImageWidget m_VehicleRPMRedline;
40 protected ImageWidget m_VehicleSpeedPointer;
42 protected ImageWidget m_VehicleTemperaturePointer;
43 protected ImageWidget m_VehicleTemperatureLight;
44 protected ImageWidget m_VehicleFuelPointer;
45 protected ImageWidget m_VehicleFuelLight;
46
48
52
53 protected ImageWidget m_VehicleBatteryLight;
54 protected ImageWidget m_VehicleEngineLight;
55 protected ImageWidget m_VehicleOilLight;
56 protected ImageWidget m_VehicleHandBrakeLight;
57 protected ImageWidget m_VehicleWheelLight;
58
61
62 protected bool m_InVehicleAsDriver;
64
65
67 protected ImageWidget m_HighPingA;
68 protected ImageWidget m_HighPingB;
69 protected ImageWidget m_LowServerPerfA;
70 protected ImageWidget m_LowServerPerfB;
71 protected ImageWidget m_ConnectionLost;
72
77 protected Widget m_Badges;
78 protected ref Timer m_HideTimer;
79 protected ref WidgetFadeTimer m_FadeTimerCrosshair;
80 protected ref WidgetFadeTimer m_FadeTimerActionCursor;
81// protected ref WidgetFadeTimer m_FadeTimerWeaponMode;
82// protected ref WidgetFadeTimer m_FadeTimerZeroing;
83 protected ref WidgetFadeTimer m_FadeTimerZeroingOld;
84 protected ref WidgetFadeTimer m_FadeTimerMagazineName;
85 protected ref WidgetFadeTimer m_FadeTimerWeaponName;
86 protected ref WidgetFadeTimer m_FadeTimerWeaponStats;
87 protected ref WidgetFadeTimer m_FadeTimerQuickbar;
88 protected ref WidgetFadeTimer m_FadeTimerWalkieTalkie;
89 protected ref WidgetFadeTimer m_FadeTimerWalkieTalkieText;
90
91 protected ProgressBarWidget m_Stamina;
93 protected Widget m_Presence;
105 protected ref Timer myTimer; //TEMP
113 protected ImageWidget m_CursorIcon;
115
119 protected Widget m_ActionItemQuantityWrapper
120 protected ImageWidget m_ActionHealthMark;
121 protected ProgressBarWidget m_ActionQuantityBar;
124 protected ImageWidget m_ActionIcon;
126
129
131 protected ActionTargetsCursor m_ActionTargetsCursor;
132
133 // CrossHairs
134 protected ImageWidget m_PermanentCrossHair;
135
136 protected bool m_HudHideUI;
137 protected bool m_HudHidePlayer;
138 protected bool m_HudInventory;
139 protected bool m_HudState; //options-driven global setting
140 protected bool m_QuickbarHideUI;
141 protected bool m_QuickbarHidePlayer;
142 protected bool m_QuickbarState; //options-driven global setting
143 protected bool m_IsQuickbarVisible;
144 protected bool m_IsHudVisible;
145 protected bool m_Faded;
146 protected bool m_ZeroingKeyPressed;
147
155
157
159 {
160 m_FadeTimerCrosshair = new WidgetFadeTimer;
161 m_FadeTimerActionCursor = new WidgetFadeTimer;
162 m_FadeTimerQuickbar = new WidgetFadeTimer;
163 m_FadeTimerWalkieTalkie = new WidgetFadeTimer;
164 m_FadeTimerWalkieTalkieText = new WidgetFadeTimer;
165
166 m_StatesWidgets = new map<int, ImageWidget>; // [key] widgetName
167 m_StatesWidgetNames = new map<int, string>;
168
169 m_TendencyStatusCritical = new map<ImageWidget, int>;
170
171 m_BadgesWidgets = new map<int, ImageWidget>; // [key] widgetName
172 m_BadgesWidgetNames = new map<int, string>;
173 m_BadgesWidgetDisplay = new map<int, int>;
174
175 m_VehicleDamageZonesHitTimer = 0;
176
177 m_VehicleGearTable = new map<int, string>;
178 m_VehicleGearTable.Set(-1, "");
179 m_VehicleGearTable.Set(CarGear.REVERSE, "R");
180 m_VehicleGearTable.Set(CarGear.NEUTRAL, "N");
181 m_VehicleGearTable.Set(CarGear.FIRST, "1");
182 m_VehicleGearTable.Set(CarGear.SECOND, "2");
183 m_VehicleGearTable.Set(CarGear.THIRD, "3");
184 m_VehicleGearTable.Set(CarGear.FOURTH, "4");
185 m_VehicleGearTable.Set(CarGear.FIFTH, "5");
186 m_VehicleGearTable.Set(CarGear.SIXTH, "6");
187 m_VehicleGearTable.Set(CarGear.SEVENTH, "7");
188 m_VehicleGearTable.Set(CarGear.EIGTH, "8");
189
190 m_VehicleGearTableAuto = new map<int, string>;
191 m_VehicleGearTableAuto.Set(-1, "");
192 m_VehicleGearTableAuto.Set(CarAutomaticGearboxMode.R, "R");
193 m_VehicleGearTableAuto.Set(CarAutomaticGearboxMode.N, "N");
194 m_VehicleGearTableAuto.Set(CarAutomaticGearboxMode.D, "D");
195
196 }
197
198 override void Init( Widget hud_panel_widget )
199 {
200 m_HudPanelWidget = hud_panel_widget;
201 m_HudPanelWidget.Show( true );
202
203 //Quickbar
204 m_QuickbarWidget = m_HudPanelWidget.FindAnyWidget("QuickbarGrid");
205 m_QuickbarWidget.Show( false );
206
207 //Left HUD Panel
208 m_LeftHudPanelWidget = m_HudPanelWidget.FindAnyWidget("LeftHUDPanel");
209
210 //TEMPORARY HACK!!! player is not present when Hud is being initialized
211 myTimer = new Timer( CALL_CATEGORY_GAMEPLAY );
212 myTimer.Run( 1, this, "InitQuickbar" );
213
214 m_CursorWidget = m_HudPanelWidget.FindAnyWidget("CursorIcons");
215 m_CursorWidget.Show(true);
216 Class.CastTo(m_CursorIcon, m_HudPanelWidget.FindAnyWidget("Cursor"));
217
218 //Permanent Crosshair
219 Class.CastTo(m_PermanentCrossHair, m_HudPanelWidget.FindAnyWidget("PermanentCrossHair"));
220
221 m_WalkieTalkie = m_HudPanelWidget.FindAnyWidget("WalkieTalkie");
222
223 //Panels
224 Class.CastTo(m_Stamina, m_HudPanelWidget.FindAnyWidget("StaminaBar"));
225 m_Presence = m_HudPanelWidget.FindAnyWidget("PresencePanel");
226 m_Badges = hud_panel_widget.FindAnyWidget("BadgesPanel");
227 m_Notifiers = m_HudPanelWidget.FindAnyWidget("NotifiersPanel");
228 m_SpecializatonPanel = m_HudPanelWidget.FindAnyWidget("SpecializationPanel");
229 m_SpecializationIcon = m_HudPanelWidget.FindAnyWidget("SpecializationIcon");
230 m_BadgeNotifierDivider = m_HudPanelWidget.FindAnyWidget("BadgeNotifierDivider");
231 m_BloodType = TextWidget.Cast( m_HudPanelWidget.FindAnyWidget("BloodType") );
232 m_BloodPosType = TextWidget.Cast( m_HudPanelWidget.FindAnyWidget("BloodPosType") );
233
234 m_VehiclePanel = m_HudPanelWidget.FindAnyWidget("VehiclePanel");
235 m_VehiclePanel.Show(false);
236
237 m_VehicleRPMPointer = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("RPMPointer") );
238 m_VehicleRPMDial = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("RPMDial") );
239 m_VehicleRPMRedline = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("RPMDialRedline") );
240 m_VehicleSpeedPointer = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("SpeedPointer") );
241 m_VehicleSpeedValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("SpeedValue") );
242
243 m_VehicleCurrentGearValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("Current") );
244 m_VehicleNextGearValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("Next") );
245 m_VehiclePrevGearValue = TextWidget.Cast( m_VehiclePanel.FindAnyWidget("Prev") );
246
247 m_VehicleBatteryLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("BatteryLight"));
248 m_VehicleEngineLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("EngineLight"));
249 m_VehicleOilLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("OilLight"));
250 m_VehicleHandBrakeLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("HandBrakeLight"));
251 m_VehicleWheelLight = ImageWidget.Cast( m_VehiclePanel.FindAnyWidget("WheelLight"));
252
253 m_VehicleTemperatureIndicator = m_VehiclePanel.FindAnyWidget("TemperatureIndicator");
254 m_VehicleTemperaturePointer = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("TemperaturePointer"));
255 m_VehicleTemperatureLight = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("TemperatureLight"));
256 m_VehicleFuelPointer = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("FuelPointer"));
257 m_VehicleFuelLight = ImageWidget.Cast(m_VehiclePanel.FindAnyWidget("FuelLight"));
258
259 m_StaminaBackground = m_HudPanelWidget.FindAnyWidget("StaminaBackground");
260 m_StaminaBackground.Show(true);
261 m_StanceProne = m_HudPanelWidget.FindAnyWidget("StanceProne");
262 m_StanceCrouch = m_HudPanelWidget.FindAnyWidget("StanceCrouch");
263 m_StanceStand = m_HudPanelWidget.FindAnyWidget("StanceStand");
264 m_StanceStandWalk = m_HudPanelWidget.FindAnyWidget("StanceStandWalk");
265 m_StanceCar = m_HudPanelWidget.FindAnyWidget("StanceCar");
266 m_StancePanel = m_HudPanelWidget.FindAnyWidget("StancePanel");
267
268 m_ActionTarget = m_HudPanelWidget.FindAnyWidget("ActionTargetsCursorWidget");
270 m_ActionTarget.GetScript(m_ActionTargetsCursor);
271
272 // heat buffer plus sign
273 m_HeatBufferPlus = ImageWidget.Cast( m_HudPanelWidget.FindAnyWidget( "HeatBuffer" ) );
274
275 //Game State Icons
276 m_GameStatusIconsPanel = m_HudPanelWidget.FindAnyWidget("GameStatusIcons");
277 m_HighPingA = ImageWidget.Cast(m_HudPanelWidget.FindAnyWidget("HighPingA"));
278 m_HighPingB = ImageWidget.Cast(m_HudPanelWidget.FindAnyWidget("HighPingB"));
279 m_LowServerPerfA = ImageWidget.Cast(m_HudPanelWidget.FindAnyWidget("LowServerPerfA"));
280 m_LowServerPerfB = ImageWidget.Cast(m_HudPanelWidget.FindAnyWidget("LowServerPerfB"));
281 m_ConnectionLost = ImageWidget.Cast(m_HudPanelWidget.FindAnyWidget("ConnectionLost"));
282
283 if ( m_HeatBufferPlus )
284 m_HeatBufferPlus.Show( false );
285
286 #ifndef NO_GUI
288 m_Timer.Run(0.333, this, "RefreshQuickbar", NULL, true );
289 #endif
291
292 m_PresenceLevel0 = hud_panel_widget.FindAnyWidget("Presence0");
293 m_PresenceLevel1 = hud_panel_widget.FindAnyWidget("Presence1");
294 m_PresenceLevel2 = hud_panel_widget.FindAnyWidget("Presence2");
295 m_PresenceLevel3 = hud_panel_widget.FindAnyWidget("Presence3");
296 m_PresenceLevel4 = hud_panel_widget.FindAnyWidget("Presence4");
297 m_PresenceLevel0.Show( false );
298 m_PresenceLevel1.Show( false );
299 m_PresenceLevel2.Show( false );
300 m_PresenceLevel3.Show( false );
301 m_PresenceLevel4.Show( false );
302
304 m_HudState = g_Game.GetProfileOption( EDayZProfilesOptions.HUD );
305 MissionGameplay.Cast(GetGame().GetMission()).GetConnectivityInvoker().Insert(OnConnectionIconsSettingsChanged);
306 m_GameStatusIconsPanel.Show(g_Game.GetProfileOption(EDayZProfilesOptions.CONNECTIVITY_INFO));
307 //ShowQuickBar(GetGame().GetInput().IsEnabledMouseAndKeyboardEvenOnServer() && g_Game.GetProfileOption(EDayZProfilesOptions.QUICKBAR)); //unreliable
308 }
309
311 {
312 // state notifiers
313 m_StatesWidgetNames.Clear();
314 m_StatesWidgets.Clear();
315 m_StatesWidgetNames.Set( NTFKEY_THIRSTY, "Thirsty" );
316 m_StatesWidgetNames.Set( NTFKEY_HUNGRY, "Hungry" );
317 m_StatesWidgetNames.Set( NTFKEY_SICK, "Health" );
318 m_StatesWidgetNames.Set( NTFKEY_BLEEDISH, "Blood" );
319 m_StatesWidgetNames.Set( NTFKEY_FEVERISH, "Temperature" );
320
321 m_Notifiers.Show( true );
322 m_Badges.Show( true );
323
324 int i = 0;
325 int key = 0;
326 for ( i = 0; i < m_StatesWidgetNames.Count(); i++ )
327 {
328 string widget_name = m_StatesWidgetNames.GetElement(i);
329 key = m_StatesWidgetNames.GetKey(i);
330 ImageWidget w;
331 Class.CastTo(w, m_Notifiers.FindAnyWidget( String( "Icon" + widget_name ) ) );
332 m_StatesWidgets.Set( key, w );
333 w.Show( true );
334 for ( int y = 0; y < 5; y++ )
335 {
336 w.LoadImageFile( y, "set:dayz_gui image:icon" + widget_name + y );
337 }
338
339 w.SetImage( 0 );
340 float alpha = w.GetAlpha();
341 w.SetColor( ARGB( alpha * 255, 220, 220, 220 ) ); //white
342 m_TendencyStatusCritical.Remove( w );
343 // clear all arrows
344 for ( int x = 1; x < 4; x++ )
345 {
346 Class.CastTo(w, m_Notifiers.FindAnyWidget( String( widget_name + "ArrowUp" + x.ToString() ) ) );
347 w.Show( false );
348 Class.CastTo(w, m_Notifiers.FindAnyWidget( String( widget_name + "ArrowDown" + x.ToString() ) ) );
349 w.Show( false );
350 }
351
352
353 }
354
355 // badges
356 m_BadgesWidgetNames.Clear();
357 m_BadgesWidgets.Clear();
358 m_BadgesWidgetDisplay.Clear();
359 m_BadgesWidgetNames.Set( NTFKEY_FRACTURE, "Fracture" );
360 m_BadgesWidgetNames.Set( NTFKEY_STUFFED, "Stomach" );
361 m_BadgesWidgetNames.Set( NTFKEY_SICK, "Sick" );
362 m_BadgesWidgetNames.Set( NTFKEY_WETNESS, "Wetness" );
363 m_BadgesWidgetNames.Set( NTFKEY_POISONED, "Poisoned" );
364 m_BadgesWidgetNames.Set( NTFKEY_BLEEDISH, "Bleeding" );
365 m_BadgesWidgetNames.Set( NTFKEY_LIVES, "Shock" );
366 m_BadgesWidgetNames.Set( NTFKEY_PILLS, "Pills" );
367 m_BadgesWidgetNames.Set( NTFKEY_LEGS, "InjuredLegs" );
368
369 int badgeCountMax = EnumTools.GetLastEnumValue(eBadgeLevel);
370
371 for ( i = 0; i < m_BadgesWidgetNames.Count(); i++ )
372 {
373 string badge_name = m_BadgesWidgetNames.GetElement( i);
374 key = m_BadgesWidgetNames.GetKey( i );
375 ImageWidget badge_widget;
376
377 Class.CastTo(badge_widget, m_Badges.FindAnyWidget( badge_name ) );
378
379 for ( int q = 0; q < badgeCountMax; q++ )
380 {
381 badge_widget.LoadImageFile( q, "set:dayz_gui image:icon" + badge_name + q );
382 }
383 m_BadgesWidgets.Set( key, badge_widget );
384 badge_widget.Show( false );
385 m_BadgesWidgetDisplay.Set( key, false );
386 }
387 m_AnyBadgeVisible = false;
388 m_BadgeNotifierDivider.Show(false);
389
390 }
391
393 {
394 m_GameStatusIconsPanel.Show(enabled);
395 }
396
397 override void OnResizeScreen()
398 {
399 float x, y;
400 m_HudPanelWidget.GetScreenSize( x, y );
401 m_HudPanelWidget.Update();
402 m_Badges.Update();
403 m_Notifiers.SetPos( 0, 0 );
404 }
405
406 override void Show( bool show )
407 {
408 m_HudPanelWidget.Show( show );
409 }
410
411 override void ShowWalkieTalkie( bool show )
412 {
413 m_FadeTimerWalkieTalkie.Stop();
414 m_FadeTimerWalkieTalkieText.Stop();
415 m_WalkieTalkie.Show( show );
416 }
417
418 override void ShowWalkieTalkie( int fadeOutSeconds )
419 {
420 m_WalkieTalkie.Show(true);
421 m_FadeTimerWalkieTalkie.Stop();
422 m_FadeTimerWalkieTalkieText.Stop();
423 m_FadeTimerWalkieTalkie.FadeOut( m_WalkieTalkie.FindAnyWidget("Icon") , fadeOutSeconds );
424 m_FadeTimerWalkieTalkieText.FadeOut( m_WalkieTalkie.FindAnyWidget("Text") , fadeOutSeconds );
425 }
426
427 override void SetWalkieTalkieText( string text )
428 {
429 TextWidget txt;
430 Class.CastTo(txt, m_WalkieTalkie.FindAnyWidget("Text"));
431 txt.SetText(text);
432 }
433
434 override void SetCursorIcon( string icon )
435 {
436 if ( icon.Length() == 0 || icon == CursorIcons.None )
437 m_CursorIcon.Show(false);
438 else
439 {
440 m_CursorIcon.LoadImageFile( 0, icon );
441 m_CursorIcon.Show(true);
442 }
443 }
444
445 override void ShowCursor()
446 {
447 m_CursorWidget.Show( true );
448 }
449
450 override void HideCursor()
451 {
452 m_CursorWidget.Show( false );
453 }
454
455 override void SetCursorIconScale( string type, float percentage )
456 {
457 float x, y;
458 m_CursorIcon.FindAnyWidget( type ).GetParent().GetSize( x, y );
459 m_CursorIcon.FindAnyWidget( type ).GetParent().SetSize( x * percentage, y * percentage );
460 }
461
462 override void SetCursorIconOffset( string type, float x, float y )
463 {
464 m_CursorIcon.FindAnyWidget( type ).GetParent().SetPos( x, y );
465 }
466
467 override void SetCursorIconSize( string type, float x, float y )
468 {
469 m_CursorIcon.FindAnyWidget( type ).GetParent().SetSize( x, y );
470 }
471
472#ifdef DIAG_DEVELOPER
473 // Debug Crosshair
474 override void SetPermanentCrossHair( bool show )
475 {
476 m_PermanentCrossHair.Show(show);
477 }
478#endif
479
480 override void DisplayNotifier( int key, int tendency, int status )
481 {
482 ImageWidget w;
483 if ( key == NTFKEY_FEVERISH )
484 {
485 DisplayTendencyTemp( key, tendency, status );
486 }
487 else
488 {
489 DisplayTendencyNormal( key, tendency, status );
490 }
491
492 // tendency arrows
493 string arrow_name = "ArrowUp";
494 if ( tendency < 0 )
495 {
496 arrow_name = "ArrowDown";
497 }
498 tendency = Math.AbsInt( tendency );
499
500 for ( int x = 1; x < 4; x++ )
501 {
502 Class.CastTo(w, m_Notifiers.FindAnyWidget( String( m_StatesWidgetNames.Get( key ) + "ArrowUp" + x.ToString() ) ) );
503 if( w )
504 w.Show( false );
505 Class.CastTo(w, m_Notifiers.FindAnyWidget( String( m_StatesWidgetNames.Get( key ) + "ArrowDown" + x.ToString() ) ) );
506 if( w )
507 w.Show( false );
508 }
509
510 if( tendency > 0 )
511 {
512 string widget_name = m_StatesWidgetNames.Get( key ) + arrow_name + Math.Clamp( tendency, 1, 3 );
513 Class.CastTo(w, m_Notifiers.FindAnyWidget( widget_name ) );
514 if( w )
515 w.Show( true );
516 }
517 }
518
519 void DisplayTendencyNormal( int key, int tendency, int status )
520 {
521 ImageWidget w;
522 Class.CastTo(w, m_Notifiers.FindAnyWidget( String( "Icon" + m_StatesWidgetNames.Get( key ) ) ) );
523
524 if( w )
525 {
526 w.SetImage( Math.Clamp( status - 1, 0, 4 ) );
527 float alpha = w.GetAlpha();
528
529 switch( status )
530 {
531 case 3:
532 w.SetColor( ARGB( alpha * 255, 220, 220, 0 ) ); //yellow
533 m_TendencyStatusCritical.Remove( w ); //remove from blinking group
534 break;
535 case 4:
536 w.SetColor( ARGB( alpha * 255, 220, 0, 0 ) ); //red
537 m_TendencyStatusCritical.Remove( w ); //remove from blinking group
538 break;
539 case 5:
540 if ( !m_TendencyStatusCritical.Contains( w ) )
541 {
542 m_TendencyStatusCritical.Insert( w, ARGB( alpha * 255, 220, 0, 0 ) ); //add to blinking group
543 }
544 break;
545 default:
546 w.SetColor( ARGB( alpha * 255, 220, 220, 220 ) ); //white
547 m_TendencyStatusCritical.Remove( w ); //remove from blinking group
548 break;
549 }
550 }
551 }
552
553 void DisplayTendencyTemp( int key, int tendency, int status )
554 {
555 ImageWidget w = ImageWidget.Cast( m_Notifiers.FindAnyWidget( String( "Icon" + m_StatesWidgetNames.Get( key ) ) ) );
556 TextWidget temp_top = TextWidget.Cast( m_Notifiers.FindAnyWidget( "TemperatureValueTop" ) );
557 TextWidget temp_bot = TextWidget.Cast( m_Notifiers.FindAnyWidget( "TemperatureValueBottom" ) );
558 //string temp = player..ToString() + "ยฐC";
559 float alpha = w.GetAlpha();
560
561 if ( tendency < 0 )
562 {
563 temp_top.Show( true );
564 temp_bot.Show( false );
565 }
566 else
567 {
568 temp_top.Show( false );
569 temp_bot.Show( true );
570 }
571
572 switch( status )
573 {
574 case 2:
575 w.SetColor( ARGB( alpha * 255, 220, 220, 0 ) ); //WARNING_PLUS
576 m_TendencyStatusCritical.Remove( w );
577 w.SetImage( 1 );
578
579 break;
580 case 3:
581 w.SetColor( ARGB( alpha * 255, 220, 0, 0 ) ); //CRITICAL_PLUS
582 m_TendencyStatusCritical.Remove( w );
583 w.SetImage( 0 );
584 break;
585 case 4:
586 if ( !m_TendencyStatusCritical.Contains( w ) ) //BLINKING_PLUS
587 {
588 m_TendencyStatusCritical.Insert( w, ARGB( alpha * 255, 220, 0, 0 ) );
589 }
590 w.SetImage( 0 );
591 break;
592 case 5:
593 w.SetColor( ARGB( alpha * 255, 0, 206, 209 ) ); //WARNING_MINUS
594 m_TendencyStatusCritical.Remove( w );
595 w.SetImage( 3 );
596 break;
597 case 6:
598 w.SetColor( ARGB( alpha * 255, 30, 144, 220 ) ); //CRITICAL_MINUS
599 m_TendencyStatusCritical.Remove( w );
600 w.SetImage( 4 );
601 break;
602 case 7: //BLINKING_MINUS
603 if ( !m_TendencyStatusCritical.Contains( w ) )
604 {
605 m_TendencyStatusCritical.Insert( w, ARGB( alpha * 255, 30, 144, 220 ) );
606 }
607 w.SetImage( 4 );
608 break;
609 default:
610 w.SetColor( ARGB( alpha * 255, 220, 220, 220 ) ); //DEFAULT
611 m_TendencyStatusCritical.Remove( w );
612 w.SetImage( 2 );
613 break;
614 }
615 }
616
617 override void DisplayBadge( int key, int value )
618 {
619 TextWidget bleed_count = TextWidget.Cast( m_Badges.FindAnyWidget( "BleedingCount" ) );
620
621 m_BadgesWidgetDisplay.Set( key, value );
622 m_AnyBadgeVisible = false;
623 for ( int i = 0; i < m_BadgesWidgetDisplay.Count(); i++ )
624 {
625 int badge_key = m_BadgesWidgetDisplay.GetKey( i );
626 int badge_value = m_BadgesWidgetDisplay.Get( badge_key );
627 string badge_name = m_BadgesWidgetNames.Get( badge_key );
628
629 ImageWidget badge_widget
630 Class.CastTo(badge_widget, m_Badges.FindAnyWidget( badge_name ) );
631 if ( badge_widget )
632 {
633 if ( badge_value > 0 )
634 {
635 badge_widget.SetImage(badge_value - 1);
636
637 badge_widget.Show( true );
638 m_AnyBadgeVisible = true;
639 if( badge_key == NTFKEY_BLEEDISH )
640 {
641 bleed_count.Show( true );
642 bleed_count.SetText( m_BadgesWidgetDisplay.Get( badge_key ).ToString() );
643 }
644 }
645 else
646 {
647 if( badge_key == NTFKEY_BLEEDISH )
648 {
649 bleed_count.Show( false );
650 }
651 badge_widget.Show( false );
652 }
653 }
654 }
655
657 }
658
659 override void SetTemperature( string temp )
660 {
661 m_IsTemperatureVisible = true;
662 TextWidget temp_top = TextWidget.Cast( m_Notifiers.FindAnyWidget( "TemperatureValueTop" ) );
663 TextWidget temp_bot = TextWidget.Cast( m_Notifiers.FindAnyWidget( "TemperatureValueBottom" ) );
664 temp_top.SetText( temp );
665 temp_bot.SetText( temp );
666 m_TemperatureTimer = 0;
667 }
668
670 {
671 m_IsTemperatureVisible = false;
672 TextWidget temp_top = TextWidget.Cast( m_Notifiers.FindAnyWidget( "TemperatureValueTop" ) );
673 TextWidget temp_bot = TextWidget.Cast( m_Notifiers.FindAnyWidget( "TemperatureValueBottom" ) );
674 temp_top.SetText( "" );
675 temp_bot.SetText( "" );
676 m_TemperatureTimer = 0;
677 }
678
679 override void SetStaminaBarVisibility( bool show )
680 {
681 //m_StaminaBackground.Show( show );
682 //m_Stamina.Show( show );
683 if ( show )
684 {
685 m_Stamina.SetAlpha(1);
686 //m_Stamina.SetTextColor( ColorManager.COLOR_NORMAL_TEXT );
687 }
688 else
689 {
690 m_Stamina.SetAlpha(0.3);
691 //m_Stamina.SetTextColor( ColorManager.RED_COLOR );
692 }
693
694 m_IsStaminaVisible = show;
695 m_StaminaTimer = 0;
696 }
697
698 // state 0 = empty
699 // state 1 = digesting
700 // state 2 = full
701 void SetStomachState( int state )
702 {
703 ImageWidget stomach = ImageWidget.Cast( m_Badges.FindAnyWidget( "Stomach" ) );
704 stomach.LoadImageFile( 0, "set:dayz_gui image:iconStomach" + state );
705 }
706
707 override void SetStamina( int value , int range )
708 {
709 float sx, sy;
710 float max = CfgGameplayHandler.GetStaminaMax();
711 float percentage = 1;
712 if (max != 0)
713 {
714 percentage = range / max;
715 }
716
717 if (range != 0)
718 {
719 m_Stamina.SetCurrent(( value / range ) * 100);
720 }
721 else
722 {
723 m_Stamina.SetCurrent(0);
724 }
725
726 m_Stamina.GetSize(sx, sy);
727 m_Stamina.SetSize(percentage, sy);
728 m_StaminaBackground.SetSize(1 - percentage, sy);
729
730 // set health & blood values
731 if (!GetGame().IsMultiplayer())
732 {
733 if (GetGame().GetPlayer())
734 {
735 PlayerBase player;
736 Class.CastTo(player, GetGame().GetPlayer());
737
738 if (player)
739 {
740 float h1 = player.GetHealth("","");
741 float b1 = player.GetHealth("","Blood");
742
743 GetDayZGame().GetBacklit().SetHealth(h1);
744 GetDayZGame().GetBacklit().SetBlood(b1);
745 }
746 }
747 }
748
749 // update backlit
750 GetDayZGame().GetBacklit().UpdatePlayer(false);
751 }
752
753 bool KeyPress(int key)
754 {
755 return false;
756 }
757
759 {
760 m_ZeroingKeyPressed = true;
761 }
762
763 override void DisplayStance( int stance )
764 {
765 PlayerBase player;
766 Class.CastTo(player, GetGame().GetPlayer() );
767 Car car;
768 if ( !Class.CastTo(car, player.GetDrivingVehicle()) )
769 {
770 if( stance == 1 )
771 {
772 bool is_walking;
773 m_StanceStand.Show(!is_walking);
774 m_StanceStandWalk.Show(is_walking);
775 m_StanceCrouch.Show(false);
776 m_StanceProne.Show(false);
777 m_StanceCar.Show( false );
778 }
779 if( stance == 2 )
780 {
781 m_StanceStand.Show(false);
782 m_StanceStandWalk.Show(false);
783 m_StanceCrouch.Show(true);
784 m_StanceProne.Show(false);
785 m_StanceCar.Show( false );
786 }
787 if( stance == 3 )
788 {
789 m_StanceStand.Show(false);
790 m_StanceStandWalk.Show(false);
791 m_StanceCrouch.Show(false);
792 m_StanceProne.Show(true);
793 m_StanceCar.Show( false );
794 }
795 }
796 else
797 {
798 m_StanceStand.Show(false);
799 m_StanceCrouch.Show(false);
800 m_StanceProne.Show(false);
801 m_StanceCar.Show( true );
802 }
803 }
804
805 override void DisplayPresence()
806 {
807 PlayerBase player;
808
809 if ( Class.CastTo(player, GetGame().GetPlayer()) )
810 {
811 int presence_level = player.GetNoisePresenceInAI();
812 m_PresenceLevel0.Show( false );
813 m_PresenceLevel1.Show( false );
814 m_PresenceLevel2.Show( false );
815 m_PresenceLevel3.Show( false );
816 m_PresenceLevel4.Show( false );
817
818 if ( presence_level > 0 )
819 {
820 m_PresenceLevel0.Show( true );
821 }
822 if ( presence_level > 1 )
823 {
824 m_PresenceLevel1.Show( true );
825 }
826 if ( presence_level > 2 )
827 {
828 m_PresenceLevel2.Show( true );
829 }
830 if ( presence_level > 3 )
831 {
832 m_PresenceLevel3.Show( true );
833 }
834 if ( presence_level > 4 )
835 {
836 m_PresenceLevel4.Show( true );
837 }
838 }
839 }
840
841 int m_VehicleGearCount = -1;
845
846 override void ShowVehicleInfo()
847 {
848 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
849 if (player)
850 {
851 HumanCommandVehicle hcv = player.GetCommand_Vehicle();
852 if (hcv)
853 {
854 m_CurrentVehicle = CarScript.Cast(hcv.GetTransport());
855 if (m_CurrentVehicle)
856 {
857 m_InVehicleAsDriver = true;
858 m_VehicleGearCount = m_CurrentVehicle.GetGearsCount();
859 m_VehicleOilLight.Show(m_VehicleHasOil);
860
861 float rpm_value_red = m_CurrentVehicle.EngineGetRPMRedline() / m_CurrentVehicle.EngineGetRPMMax();
862 m_VehicleRPMDial.SetMaskProgress(rpm_value_red);
863 m_VehicleRPMRedline.SetMaskProgress(1 - rpm_value_red);
864
865 m_HudPanelWidget.FindAnyWidget("PlayerPanel").Show(false);
866 m_Presence.Show(false);
867 m_StancePanel.Show(false);
868
869 m_VehiclePanel.Show(true);
870 }
871 }
872 }
873 }
874
875 override void HideVehicleInfo()
876 {
877 m_HudPanelWidget.FindAnyWidget("PlayerPanel").Show(true);
878 m_Presence.Show(true);
879 m_StancePanel.Show(true);
880 m_VehiclePanel.Show(false);
881
882 m_InVehicleAsDriver = false;
883 m_CurrentVehicle = null;
884 m_VehicleGearCount = -1;
885 }
886
887 void RefreshVehicleHud(float timeslice)
888 {
889 if (m_CurrentVehicle && !GetGame().GetUIManager().GetMenu())
890 {
891 m_VehiclePanel.Show(true);
892 float rpm_value = m_CurrentVehicle.EngineGetRPM() / m_CurrentVehicle.EngineGetRPMMax();
893 float rpm_value_red = m_CurrentVehicle.EngineGetRPMRedline() / m_CurrentVehicle.EngineGetRPMMax();
894 float speed_value = m_CurrentVehicle.GetSpeedometerAbsolute() / 200;
895
896 m_VehicleRPMPointer.SetRotation(0, 0, rpm_value * 270 - 130, true);
897 m_VehicleSpeedPointer.SetRotation(0, 0, speed_value * 260 - 130, true);
898 m_VehicleSpeedValue.SetText(Math.AbsInt(m_CurrentVehicle.GetSpeedometer()).ToString());
899
900 int engineHealthLevel = m_CurrentVehicle.GetHealthLevel("Engine");
901 int fuelTankHealthLevel = m_CurrentVehicle.GetHealthLevel("FuelTank");
902 bool newHealth = false;
903
905 if (m_CurrentVehicle.HasEngineZoneReceivedHit())
906 {
907 if (m_TimeSinceLastEngineLightChange > 0.35)
908 {
909 m_VehicleEngineLight.Show(!m_VehicleEngineLight.IsVisible());
910 if (engineHealthLevel <= GameConstants.STATE_WORN)
911 {
912 m_VehicleEngineLight.SetColor(Colors.WHITE);
913 }
914 else
915 {
916 m_VehicleEngineLight.SetColor(ItemManager.GetItemHealthColor(engineHealthLevel));
917 }
918
919 m_VehicleEngineLight.SetAlpha(1);
920 m_TimeSinceLastEngineLightChange = 0;
921 }
922
923 m_TimeSinceLastEngineLightChange += timeslice;
924 newHealth = true;
925 }
926 else if (engineHealthLevel > GameConstants.STATE_WORN)
927 {
928 m_VehicleEngineLight.SetColor(ItemManager.GetItemHealthColor(engineHealthLevel));
929 m_VehicleEngineLight.SetAlpha(1);
930 m_VehicleEngineLight.Show(true);
931 }
932 else
933 {
934 m_VehicleEngineLight.Show(false);
935 }
936
938 if (fuelTankHealthLevel <= GameConstants.STATE_WORN)
939 {
940 m_VehicleFuelLight.SetColor(Colors.WHITE);
941 m_VehicleFuelLight.SetAlpha(1);
942 m_VehicleFuelLight.Show(true);
943 }
944 else if (fuelTankHealthLevel > GameConstants.STATE_WORN)
945 {
946 m_VehicleFuelLight.SetColor(ItemManager.GetItemHealthColor(fuelTankHealthLevel));
947 m_VehicleFuelLight.SetAlpha(1);
948 m_VehicleFuelLight.Show(true);
949 }
950
952 if (m_CurrentVehicle.IsVitalRadiator())
953 {
954 m_VehicleTemperatureIndicator.Show(true);
955 if (m_CurrentVehicle.HasRadiator())
956 {
957 int radiatorHealthLevel = m_CurrentVehicle.GetRadiator().GetHealthLevel("");
958 if (radiatorHealthLevel <= GameConstants.STATE_WORN)
959 {
960 m_VehicleTemperatureLight.SetColor(Colors.WHITE);
961 m_VehicleTemperatureLight.SetAlpha(1);
962 m_VehicleTemperatureLight.Show(true);
963 }
964 else if (radiatorHealthLevel > GameConstants.STATE_WORN)
965 {
966 m_VehicleTemperatureLight.SetColor(ItemManager.GetItemHealthColor(radiatorHealthLevel));
967 m_VehicleTemperatureLight.SetAlpha(1);
968 m_VehicleTemperatureLight.Show(true);
969 }
970 }
971 else
972 {
973 m_VehicleTemperatureLight.SetColor(Colors.COLOR_RUINED);
974 m_VehicleTemperatureLight.SetAlpha(1);
975 m_VehicleTemperatureLight.Show(true);
976 }
977 }
978 else
979 {
980 m_VehicleTemperatureIndicator.Show(false);
981 }
982
983 m_VehicleHandBrakeLight.Show(m_CurrentVehicle.IsHandbrakeActive());
984 m_VehicleWheelLight.Show(m_CurrentVehicle.WheelIsAnyLocked());
985
986
987 int engagedGear = -1;
988 int prevGear = -1;
989 int nextGear = -1;
990
991 if (m_CurrentVehicle.GearboxGetType() == CarGearboxType.MANUAL)
992 {
993 engagedGear = m_CurrentVehicle.GetGear();
994 prevGear = engagedGear - 1;
995 nextGear = engagedGear + 1;
996
997 if (engagedGear == CarGear.NEUTRAL)
998 {
999 prevGear = CarGear.REVERSE;
1000 }
1001 else if (engagedGear == CarGear.REVERSE)
1002 {
1003 prevGear = -1;
1004 nextGear = CarGear.NEUTRAL;
1005 }
1006
1007 m_VehicleCurrentGearValue.SetText(m_VehicleGearTable.Get(engagedGear));
1008 m_VehicleNextGearValue.Show(nextGear < m_VehicleGearCount);
1009
1010 m_VehicleNextGearValue.SetText(m_VehicleGearTable.Get(nextGear));
1011 m_VehiclePrevGearValue.SetText(m_VehicleGearTable.Get(prevGear));
1012 }
1013 else
1014 {
1015 engagedGear = m_CurrentVehicle.GearboxGetMode();
1016 prevGear = engagedGear - 1;
1017 nextGear = engagedGear + 1;
1018
1019 m_VehicleCurrentGearValue.SetText(m_VehicleGearTableAuto.Get(engagedGear));
1020 m_VehicleNextGearValue.Show(nextGear < EnumTools.GetEnumSize(CarAutomaticGearboxMode));
1021
1022 m_VehicleNextGearValue.SetText(m_VehicleGearTableAuto.Get(nextGear));
1023 m_VehiclePrevGearValue.SetText(m_VehicleGearTableAuto.Get(prevGear));
1024 }
1025
1026 // refresh backlit
1027 GetDayZGame().GetBacklit().RefreshVehicleLayout(engagedGear, newHealth);
1028
1029 m_VehicleFuelPointer.SetRotation( 0, 0, m_CurrentVehicle.GetFluidFraction( CarFluid.FUEL ) * 260 - 130, true );
1030 m_VehicleTemperaturePointer.SetRotation( 0, 0, -1 * m_CurrentVehicle.GetFluidFraction( CarFluid.COOLANT ) * 260 + 130, true );
1031
1033 if (m_VehicleDamageZonesHitTimer > 1)
1034 {
1035 m_VehicleDamageZoneHitEngineState = false;
1036 m_VehicleDamageZonesHitTimer = 0;
1037 }
1038
1039 m_VehicleDamageZonesHitTimer += timeslice;
1040 }
1041 else
1042 {
1043 m_VehiclePanel.Show(false);
1044 }
1045 }
1046
1048 {
1049 if (m_Quickbar == NULL)
1050 {
1051 m_Quickbar = new InventoryQuickbar( m_QuickbarWidget );
1052 }
1053 }
1054
1055 InventoryQuickbar GetQuickbar()
1056 {
1057 return m_Quickbar;
1058 }
1059
1061 {
1062 return m_IsQuickbarVisible;
1063 }
1064
1066 {
1067 return m_IsHudVisible;
1068 }
1069
1071 {
1072 m_IsQuickbarVisible = !m_QuickbarHideUI && !m_QuickbarHidePlayer && m_QuickbarState;
1073 m_QuickbarWidget.Show( m_IsQuickbarVisible );
1074 }
1075
1077 {
1078 m_IsHudVisible = ( !m_HudHidePlayer && !m_HudHideUI && m_HudState ) || m_HudInventory;
1079
1080 SetLeftStatsVisibility( m_IsHudVisible );
1081 m_Badges.Show( m_IsHudVisible );
1082 m_Notifiers.Show( m_IsHudVisible );
1083 m_BadgeNotifierDivider.Show( m_IsHudVisible && m_AnyBadgeVisible );
1084 #ifdef PLATFORM_CONSOLE
1085 m_SpecializatonPanel.Show(m_HudInventory);
1086 #else
1087 m_SpecializatonPanel.Show(false);
1088 #endif
1089 }
1090
1091 void UpdateSpecialtyMeter(float x, float y)
1092 {
1093 #ifdef PLATFORM_CONSOLE
1094 m_SpecializationIcon.SetPos(x, y, true);
1095 #endif
1096 }
1097
1099 {
1100 return m_QuickbarHidePlayer;
1101 }
1102
1104 {
1105 return m_HudHidePlayer;
1106 }
1107
1108 override void ShowQuickbarUI( bool show )
1109 {
1110 m_QuickbarHideUI = !show;
1112 }
1113
1114 override void ShowQuickbarPlayer( bool show )
1115 {
1116 m_QuickbarHidePlayer = !show;
1118 }
1119
1120 override void ShowHudPlayer( bool show )
1121 {
1122 m_HudHidePlayer = !show;
1123 if (m_HudState)
1124 {
1126 }
1127 }
1128
1129 override void ShowHudUI( bool show )
1130 {
1131 m_HudHideUI = !show;
1132 if (m_HudState)
1133 {
1135 }
1136 }
1137
1138 override void ShowHudInventory( bool show )
1139 {
1140 m_HudInventory = show;
1142 }
1143
1144 override void ToggleHeatBufferPlusSign( bool show )
1145 {
1146 m_HeatBufferPlus.Show( show );
1147 }
1148
1150 override void ShowQuickBar( bool show )
1151 {
1152 m_QuickbarState = show;
1153 //shown by default
1154 m_QuickbarHidePlayer = false;
1156 }
1157
1158 override void ShowHud( bool show )
1159 {
1160 m_HudState = show;
1161 m_HudHidePlayer = false;
1163 }
1164
1166 {
1167 return m_QuickbarState;
1168 }
1169
1171 {
1172 return m_HudState;
1173 }
1174
1175
1176
1177 override void SetConnectivityStatIcon(EConnectivityStatType type, EConnectivityStatLevel level)
1178 {
1179 if (type == EConnectivityStatType.PING)
1180 {
1181 switch (level)
1182 {
1183 case EConnectivityStatLevel.OFF:
1184 m_HighPingA.Show(false);
1185 m_HighPingB.Show(false);
1186 break;
1187 case EConnectivityStatLevel.LEVEL1:
1188 m_HighPingA.Show(true);
1189 m_HighPingB.Show(false);
1190 break;
1191 case EConnectivityStatLevel.LEVEL2:
1192 m_HighPingA.Show(false);
1193 m_HighPingB.Show(true);
1194 break;
1195 }
1196 }
1197 else if (type == EConnectivityStatType.SERVER_PERF)
1198 {
1199 switch (level)
1200 {
1201 case EConnectivityStatLevel.OFF:
1202 m_LowServerPerfA.Show(false);
1203 m_LowServerPerfB.Show(false);
1204 break;
1205 case EConnectivityStatLevel.LEVEL1:
1206 m_LowServerPerfA.Show(true);
1207 m_LowServerPerfB.Show(false);
1208 break;
1209 case EConnectivityStatLevel.LEVEL2:
1210 m_LowServerPerfA.Show(false);
1211 m_LowServerPerfB.Show(true);
1212 break;
1213 }
1214 }
1215 else if (type == EConnectivityStatType.CONN_LOST)
1216 {
1217 switch (level)
1218 {
1219 case EConnectivityStatLevel.OFF:
1220 m_ConnectionLost.Show(false);
1221 break;
1222 case EConnectivityStatLevel.LEVEL1:
1223 m_ConnectionLost.Show(true);
1224 break
1225 }
1226 }
1227 }
1228
1230 void SetLeftStatsVisibility(bool visible)
1231 {
1232 Widget child = m_LeftHudPanelWidget.GetChildren();
1233 while (child)
1234 {
1235 if (child.GetName() == "ChatFrameWidget")
1236 {
1237 child = child.GetSibling();
1238 continue
1239 }
1240
1241 child.Show(visible);
1242 child = child.GetSibling();
1243 }
1244 }
1245
1246 override void RefreshQuickbar( bool itemChanged = false )
1247 {
1248 if ((!m_QuickbarState || m_QuickbarHidePlayer || m_QuickbarHideUI) && !itemChanged) // Don't update when it is hidden or disabled
1249 return;
1250
1251 if ( itemChanged )
1252 {
1253 UIManager manager = GetGame().GetUIManager();
1254
1255 InventoryMenu inventory = InventoryMenu.Cast(manager.FindMenu( MENU_INVENTORY ));
1256 MissionGameplay mission = MissionGameplay.Cast(GetGame().GetMission());
1257
1258 if ( mission )
1259 {
1260 inventory = mission.GetInventory();
1261 }
1262
1263 if ( inventory )
1264 {
1265 inventory.RefreshQuickbar();
1266 }
1267 }
1268
1269 if ( m_Quickbar )
1270 {
1271 m_Quickbar.UpdateItems( m_QuickbarWidget );
1272 }
1273 }
1274
1276 {
1277 return m_HudPanelWidget;
1278 }
1279
1280 override void UpdateBloodName()
1281 {
1282 PlayerBase player;
1283 Class.CastTo(player, GetGame().GetPlayer() );
1284
1285 if( player )
1286 {
1287 string blood_name;
1288 bool positive;
1289 BloodTypes.GetBloodTypeName( player.GetBloodType(), blood_name, positive );
1290 bool blood_type_visible = player.HasBloodTypeVisible();
1291
1292 if( blood_type_visible )
1293 {
1294 m_BloodType.SetText( blood_name );
1295 if( positive )
1296 m_BloodPosType.SetText( "+" );
1297 else
1298 m_BloodPosType.SetText( "-" );
1299 }
1300 else
1301 {
1302 m_BloodType.SetText( "" );
1303 m_BloodPosType.SetText( "" );
1304 }
1305 }
1306 }
1307
1309 {
1310 if( GetGame().GetPlayer() )
1311 {
1312 bool found = false;
1314 float distance;
1315 foreach( Man player : ClientData.m_PlayerBaseList )
1316 {
1317 vector target_player = player.GetPosition();
1318 distance = vector.Distance( head_pos, target_player );
1319
1320 target_player[1] = target_player[1] + 1.2;
1321
1322 if( distance <= 15 && player != GetGame().GetPlayer() )
1323 {
1324 vector screen_pos = GetGame().GetScreenPosRelative( target_player );
1325 vector end_pos = head_pos + GetGame().GetCurrentCameraDirection() * 25;
1326 RaycastRVParams params = new RaycastRVParams( head_pos, end_pos, GetGame().GetPlayer(), 0 );
1327 params.sorted = true;
1328
1330 DayZPhysics.RaycastRVProxy( params, results );
1331 if( results.Count() > 0 )
1332 {
1333 if( results.Get( 0 ).obj == player )
1334 {
1335 m_CurrentTaggedPlayer = PlayerBase.Cast( player );
1336 found = true;
1337 }
1338 }
1339 }
1340 }
1341 if( !found )
1342 {
1343 m_CurrentTaggedPlayer = null;
1344 }
1345 }
1346 }
1347
1352
1353 void ShowPlayerTag( float timeslice )
1354 {
1355 if ( m_CurrentTaggedPlayer && m_CurrentTaggedPlayer.GetIdentity() )
1356 {
1357 if ( !m_PlayerTag )
1358 {
1359 m_PlayerTag = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/hud/hud_player_tag.layout");
1360 m_PlayerTagText = TextWidget.Cast( m_PlayerTag.FindAnyWidget( "TagText" ) );
1361 }
1362 m_PlayerSpineIndex = m_CurrentTaggedPlayer.GetBoneIndex( "Spine2" );
1363 vector player_pos = m_CurrentTaggedPlayer.GetBonePositionWS( m_PlayerSpineIndex );
1364 vector screen_pos = GetGame().GetScreenPosRelative( player_pos );
1365
1366 if ( screen_pos[2] > 0 )
1367 {
1368 if ( screen_pos[0] > 0 && screen_pos[0] < 1 )
1369 {
1370 if ( screen_pos[1] > 0 && screen_pos[1] < 1 )
1371 {
1372 m_PlayerTagText.SetAlpha( Math.Clamp( m_PlayerTagText.GetAlpha() + timeslice * 10, 0, 1 ) );
1373 m_PlayerTag.SetPos( 0.55, 0.55 );
1374 m_PlayerTagText.SetText( m_CurrentTaggedPlayer.GetIdentity().GetPlainName() );
1375
1376 //m_PlayerTagText.SetSize( 1, 1 - screen_pos[2] / 25 );
1377 return;
1378 }
1379 }
1380 }
1381 }
1382
1383 if ( m_PlayerTag )
1384 {
1385 float new_alpha = Math.Clamp( m_PlayerTagText.GetAlpha() - timeslice * 10, 0, 1 );
1386 m_PlayerTagText.SetAlpha( Math.Clamp( m_PlayerTagText.GetAlpha() - timeslice * 10, 0, 1 ) );
1387 if ( new_alpha == 0 )
1388 {
1389 m_PlayerTagText.SetText( "" );
1390 m_CurrentTaggedPlayer = null;
1391 }
1392 }
1393 }
1394
1395 override void Update( float timeslice )
1396 {
1397 super.Update( timeslice );
1398
1399 m_ActionTargetsCursor.Update();
1401 //
1402 //modifiers - tendency status (critical)
1403 if ( m_BlinkTime > TENDENCY_BLINK_TIME )
1404 {
1405 //get color & alpha
1406 if ( m_TendencyStatusCritical.Count() > 0 )
1407 {
1408 for ( int i = 0; i < m_TendencyStatusCritical.Count(); ++i )
1409 {
1410
1411 ImageWidget widget = m_TendencyStatusCritical.GetKey( i );
1412 int alpha = widget.GetAlpha() * 255;
1413 int color;
1414 int colorA = ARGB( alpha, 255, 255, 255 );
1415 int colorB = m_TendencyStatusCritical.Get( widget );
1416
1417 //set new color to different color
1418 if ( widget.GetColor() == colorA )
1419 {
1420 color = colorB;
1421 }
1422 else
1423 {
1424 color = colorA;
1425 }
1426
1427 widget.SetColor( color );
1428 }
1429 }
1430
1431 m_BlinkTime = 0; //reset
1432 }
1433 else
1434 {
1435 m_BlinkTime += timeslice;
1436 }
1437
1438 if( m_IsTemperatureVisible )
1439 {
1440 m_TemperatureTimer += timeslice;
1441 if( m_TemperatureTimer > m_TemperatureShowTime )
1442 {
1444 }
1445 }
1446
1447 if ( !m_IsStaminaVisible )
1448 {
1449 m_StaminaTimer += timeslice;
1450 if ( m_StaminaTimer > m_StaminaShowTime )
1451 {
1453 }
1454
1455 }
1456
1457 if ( m_HitDirEffectArray && m_HitDirEffectArray.Count() > 0 )
1458 {
1459 UpdateHitDirEffects(timeslice);
1461 }
1462
1463 RefreshVehicleHud(timeslice);
1464
1465 #ifdef PLATFORM_PS4
1467 ShowPlayerTag(timeslice);
1468 #endif
1469 }
1470
1471 override void SpawnHitDirEffect(DayZPlayer player, float hit_direction,float intensity_max)
1472 {
1474 {
1475 return;
1476 }
1477
1478 if (m_HitDirEffectArray == null)
1479 {
1480 m_HitDirEffectArray = new array<ref HitDirectionEffectBase>;
1481 }
1483 hiteff.Init(player,hit_direction,intensity_max);
1484 m_HitDirEffectArray.Insert(hiteff);
1485 }
1486
1487 void UpdateHitDirEffects( float timeslice )
1488 {
1489 for (int i = 0; i < m_HitDirEffectArray.Count(); i++)
1490 {
1491 m_HitDirEffectArray[i].Update(timeslice);
1492 }
1493 }
1494
1496 {
1497 for (int i = m_HitDirEffectArray.Count() - 1; i > -1; i--)
1498 {
1499 if ( m_HitDirEffectArray[i].DurationCheck() )
1500 {
1501 m_HitDirEffectArray.Remove(i);
1502 }
1503 }
1504 }
1505
1506 void Debug()
1507 {
1508 foreach (int val:m_BadgesWidgetDisplay)
1509 {
1510 int key = m_BadgesWidgetDisplay.GetKeyByValue(val);
1511 Print(EnumTools.EnumToString(eDisplayElements, key));
1512 Print(val);
1513 Print("---------------------");
1514 }
1515 }
1516
1517//------------------------------------------
1518//ye olde unused methods
1519
1520 //DEPRECATED
1522 {
1523 }
1524}
const int NTFKEY_LIVES
Definition _constants.c:44
const int NTFKEY_WETNESS
Definition _constants.c:36
const int NTFKEY_POISONED
Definition _constants.c:46
const int NTFKEY_PILLS
Definition _constants.c:47
const int NTFKEY_SICK
Definition _constants.c:40
enum eBadgeLevel NTFKEY_THIRSTY
const int NTFKEY_HUNGRY
Definition _constants.c:34
const int NTFKEY_FRACTURE
Definition _constants.c:37
const int NTFKEY_BLEEDISH
Definition _constants.c:42
const int NTFKEY_LEGS
Definition _constants.c:49
eBadgeLevel
Definition _constants.c:2
const int NTFKEY_FEVERISH
Definition _constants.c:39
const int NTFKEY_STUFFED
Definition _constants.c:41
protected Widget m_QuickbarWidget
Definition Inventory.c:34
protected ref InventoryQuickbar m_Quickbar
Definition Inventory.c:32
protected Widget m_SpecializationIcon
Definition Inventory.c:36
CarAutomaticGearboxMode
Enumerated automatic gearbox modes. (native, do not change or extend)
Definition Car.c:69
CarFluid
Type of vehicle's fluid. (native, do not change or extend)
Definition Car.c:19
CarGearboxType
Enumerated gearbox types. (native, do not change or extend)
Definition Car.c:35
DayZGame g_Game
Definition DayZGame.c:3654
DayZGame GetDayZGame()
Definition DayZGame.c:3656
ref Timer m_Timer
Definition DayZGame.c:687
Mission mission
EDayZProfilesOptions
EConnectivityStatType
Icon x
Icon y
void InventoryMenu()
PlayerBase GetPlayer()
ref array< ref NotifierBase > m_Notifiers
protected ref map< PlayerBase, int > m_BloodType
protected float m_Stamina
static string GetBloodTypeName(int bloodtype, out string type, out bool positive)
Definition BloodType.c:89
proto native vector GetCurrentCameraDirection()
proto native DayZPlayer GetPlayer()
proto native UIManager GetUIManager()
proto native vector GetCurrentCameraPosition()
proto native WorkspaceWidget GetWorkspace()
proto native vector GetScreenPosRelative(vector world_pos)
Transforms position in world to position in screen in percentage (0.0 - 1.0) as x,...
override bool IsVitalRadiator()
Definition Offroad_02.c:385
static float GetStaminaMax()
Super root of all classes in Enforce script.
Definition EnScript.c:11
static ref array< Man > m_PlayerBaseList
Definition ClientData.c:7
Definition Colors.c:4
const int WHITE
Definition Colors.c:15
const int COLOR_RUINED
Definition Colors.c:20
const string None
Definition gameplay.c:577
static proto bool RaycastRVProxy(notnull RaycastRVParams in, out notnull array< ref RaycastRVResult > results, array< Object > excluded=null)
static int GetLastEnumValue(typename e)
Return amount of values in enum.
Definition EnConvert.c:647
static string EnumToString(typename e, int enumValue)
Return string name of enum value.
Definition EnConvert.c:601
static int GetEnumSize(typename e)
Return amount of values in enum.
Definition EnConvert.c:623
void Init(DayZPlayer player, float hit_direction, float intensity_max)
Called manually after object spawn.
override void DisplayBadge(int key, int value)
Definition IngameHud.c:617
protected ImageWidget m_VehicleSpeedPointer
Definition IngameHud.c:40
protected Widget m_PresenceLevel4
Definition IngameHud.c:104
protected ref WidgetFadeTimer m_FadeTimerCrosshair
Definition IngameHud.c:79
protected Widget m_SpecializatonPanel
Definition IngameHud.c:153
protected bool m_IsQuickbarVisible
Definition IngameHud.c:143
void SetLeftStatsVisibility(bool visible)
eg. stamina bar...
Definition IngameHud.c:1230
protected ImageWidget m_CursorIcon
Definition IngameHud.c:113
protected Widget m_QuickbarWidget
Definition IngameHud.c:32
override void SetCursorIconOffset(string type, float x, float y)
Definition IngameHud.c:462
override void ShowVehicleInfo()
Definition IngameHud.c:846
protected TextWidget m_VehicleSpeedValue
Definition IngameHud.c:47
protected bool m_HudInventory
Definition IngameHud.c:138
override void ShowQuickbarUI(bool show)
Definition IngameHud.c:1108
override void Update(float timeslice)
Definition IngameHud.c:1395
PlayerBase m_CurrentTaggedPlayer
Definition IngameHud.c:1349
protected Widget m_HitIndicatorRight
Definition IngameHud.c:151
protected Widget m_VehiclePanel
Definition IngameHud.c:35
void IngameHud()
Definition IngameHud.c:158
void ZeroingKeyPress()
Definition IngameHud.c:758
protected ImageWidget m_LowServerPerfA
Definition IngameHud.c:69
override void ShowWalkieTalkie(bool show)
Definition IngameHud.c:411
protected Widget m_ActionTarget
Definition IngameHud.c:130
protected ref Timer m_HideTimer
Definition IngameHud.c:78
bool KeyPress(int key)
Definition IngameHud.c:753
protected ImageWidget m_ConnectionLost
Definition IngameHud.c:71
protected ref InventoryQuickbar m_Quickbar
Definition IngameHud.c:33
protected ImageWidget m_VehicleWheelLight
Definition IngameHud.c:57
protected bool m_IsStaminaVisible
Definition IngameHud.c:23
override void OnResizeScreen()
Definition IngameHud.c:397
protected ImageWidget m_VehicleEngineLight
Definition IngameHud.c:54
protected Widget m_BadgeNotifierDivider
Definition IngameHud.c:76
protected float m_StaminaTimer
Definition IngameHud.c:24
protected ref WidgetFadeTimer m_FadeTimerWalkieTalkieText
Definition IngameHud.c:89
override void SetTemperature(string temp)
Definition IngameHud.c:659
bool m_VehicleHasOil
Definition IngameHud.c:843
protected Widget m_SpecializationIcon
Definition IngameHud.c:154
protected Widget m_StanceStandWalk
Definition IngameHud.c:96
protected ActionTargetsCursor m_ActionTargetsCursor
Definition IngameHud.c:131
float m_TimeSinceLastEngineLightChange
Definition IngameHud.c:842
protected Widget m_ActionQuantityBox
Definition IngameHud.c:122
protected bool m_IsHudVisible
Definition IngameHud.c:144
void CleanupHitDirEffects()
Definition IngameHud.c:1495
protected CarScript m_CurrentVehicle
Definition IngameHud.c:63
protected ImageWidget m_LowServerPerfB
Definition IngameHud.c:70
protected ref map< int, string > m_VehicleGearTable
Definition IngameHud.c:27
override void Init(Widget hud_panel_widget)
Definition IngameHud.c:198
void UpdateHitDirEffects(float timeslice)
Definition IngameHud.c:1487
protected Widget m_StanceStand
Definition IngameHud.c:95
protected Widget m_ActionWidget
Definition IngameHud.c:116
void HideTemperature()
Definition IngameHud.c:669
void RefreshHudVisibility()
Definition IngameHud.c:1076
protected bool m_IsTemperatureVisible
Definition IngameHud.c:18
protected Widget m_HitIndicatorUp
Definition IngameHud.c:148
Widget GetHudPanelWidget()
Definition IngameHud.c:1275
void DisplayTendencyNormal(int key, int tendency, int status)
Definition IngameHud.c:519
protected Widget m_StanceCrouch
Definition IngameHud.c:97
protected ImageWidget m_PermanentCrossHair
Definition IngameHud.c:134
protected TextWidget m_VehicleCurrentGearValue
Definition IngameHud.c:49
protected TextWidget m_VehicleNextGearValue
Definition IngameHud.c:50
protected TextWidget m_ActionButtonText
Definition IngameHud.c:125
protected bool m_QuickbarHideUI
Definition IngameHud.c:140
bool IsHudVisible()
Definition IngameHud.c:1065
void HideQuickbarTimer()
Definition IngameHud.c:1521
void RefreshPlayerTags()
Definition IngameHud.c:1308
override void DisplayPresence()
Definition IngameHud.c:805
protected float m_VehicleDamageZonesHitTimer
Definition IngameHud.c:60
protected Widget m_PresenceLevel3
Definition IngameHud.c:103
protected bool m_HudState
Definition IngameHud.c:139
protected ImageWidget m_HighPingB
Definition IngameHud.c:68
protected Widget m_ActionIconFrame
Definition IngameHud.c:127
override void ShowHudInventory(bool show)
Definition IngameHud.c:1138
override void RefreshQuickbar(bool itemChanged=false)
Definition IngameHud.c:1246
protected ImageWidget m_VehicleTemperaturePointer
Definition IngameHud.c:42
protected float m_TemperatureTimer
Definition IngameHud.c:19
override void ShowQuickbarPlayer(bool show)
Definition IngameHud.c:1114
override void SetCursorIconSize(string type, float x, float y)
Definition IngameHud.c:467
void ShowPlayerTag(float timeslice)
Definition IngameHud.c:1353
protected ImageWidget m_ActionIcon
Definition IngameHud.c:124
protected bool m_QuickbarHidePlayer
Definition IngameHud.c:141
protected bool m_AnyBadgeVisible
Definition IngameHud.c:17
protected Widget m_StanceProne
Definition IngameHud.c:94
void DisplayTendencyTemp(int key, int tendency, int status)
Definition IngameHud.c:553
bool IsQuickbarVisible()
Definition IngameHud.c:1060
protected Widget m_RadialProgressBar1
Definition IngameHud.c:109
override void ShowQuickBar(bool show)
global setting; is quickbar visibility allowed?
Definition IngameHud.c:1150
protected Widget m_LeftHudPanelWidget
Definition IngameHud.c:31
void UpdateSpecialtyMeter(float x, float y)
Definition IngameHud.c:1091
protected bool m_InVehicleAsDriver
Definition IngameHud.c:62
protected ref WidgetFadeTimer m_FadeTimerActionCursor
Definition IngameHud.c:80
bool GetHudState()
Definition IngameHud.c:1170
protected TextWidget m_ActionQuantityBoxText
Definition IngameHud.c:123
protected Widget m_CursorWidget
Definition IngameHud.c:112
protected bool m_HudHidePlayer
Definition IngameHud.c:137
override void DisplayNotifier(int key, int tendency, int status)
Definition IngameHud.c:480
protected ref map< int, string > m_VehicleGearTableAuto
Definition IngameHud.c:28
protected Widget m_ActionItemQuantityWrapper protected ImageWidget m_ActionHealthMark
Definition IngameHud.c:120
void OnConnectionIconsSettingsChanged(bool enabled)
Definition IngameHud.c:392
override void SetWalkieTalkieText(string text)
Definition IngameHud.c:427
protected ref map< int, int > m_BadgesWidgetDisplay
Definition IngameHud.c:15
protected Widget m_PresenceLevel1
Definition IngameHud.c:101
override void Show(bool show)
Definition IngameHud.c:406
override void ShowHudPlayer(bool show)
Definition IngameHud.c:1120
override void SetStaminaBarVisibility(bool show)
Definition IngameHud.c:679
int m_PlayerSpineIndex
Definition IngameHud.c:1348
protected ProgressBarWidget m_ActionQuantityBar
Definition IngameHud.c:121
protected bool m_QuickbarState
Definition IngameHud.c:142
protected Widget m_WalkieTalkie
Definition IngameHud.c:114
override void ShowHudUI(bool show)
Definition IngameHud.c:1129
protected Widget m_ActionMultipleItemsFrame
Definition IngameHud.c:128
protected ImageWidget m_VehicleTemperatureLight
Definition IngameHud.c:43
override void HideVehicleInfo()
Definition IngameHud.c:875
protected Widget m_HitIndicatorDown
Definition IngameHud.c:149
InventoryQuickbar GetQuickbar()
Definition IngameHud.c:1055
protected TextWidget m_VehiclePrevGearValue
Definition IngameHud.c:51
protected Widget m_HitIndicatorLeft
Definition IngameHud.c:150
protected ImageWidget m_VehicleRPMRedline
Definition IngameHud.c:39
bool IsHideHudPlayer()
Definition IngameHud.c:1103
protected float m_BlinkTime
Definition IngameHud.c:12
TextWidget m_PlayerTagText
Definition IngameHud.c:1351
override void ShowCursor()
Definition IngameHud.c:445
override void SpawnHitDirEffect(DayZPlayer player, float hit_direction, float intensity_max)
Definition IngameHud.c:1471
protected Widget m_StaminaBackground
Definition IngameHud.c:92
protected Widget m_RadialProgressBar
Definition IngameHud.c:111
void RefreshQuickbarVisibility()
Definition IngameHud.c:1070
protected ImageWidget m_VehicleBatteryLight
Definition IngameHud.c:53
protected Widget m_HudPanelWidget
Definition IngameHud.c:30
void SetStomachState(int state)
Definition IngameHud.c:701
protected ref WidgetFadeTimer m_FadeTimerWeaponStats
Definition IngameHud.c:86
protected ImageWidget m_VehicleRPMDial
Definition IngameHud.c:38
override void HideCursor()
Definition IngameHud.c:450
override void ShowHud(bool show)
Definition IngameHud.c:1158
override void SetCursorIconScale(string type, float percentage)
Definition IngameHud.c:455
protected ref WidgetFadeTimer m_FadeTimerMagazineName
Definition IngameHud.c:84
protected TextWidget m_BloodType
Definition IngameHud.c:74
protected ImageWidget m_VehicleFuelLight
Definition IngameHud.c:45
protected Widget m_Notifiers
Definition IngameHud.c:73
protected ImageWidget m_VehicleHandBrakeLight
Definition IngameHud.c:56
protected ref map< int, ImageWidget > m_BadgesWidgets
Definition IngameHud.c:16
protected Widget m_VehicleTemperatureIndicator
Definition IngameHud.c:41
protected bool m_VehicleDamageZoneHitEngineState
Definition IngameHud.c:59
protected Widget m_MouseContinuousAction
Definition IngameHud.c:108
protected ref WidgetFadeTimer m_FadeTimerWeaponName
Definition IngameHud.c:85
protected Widget m_PresenceLevel2
Definition IngameHud.c:102
override void SetConnectivityStatIcon(EConnectivityStatType type, EConnectivityStatLevel level)
Definition IngameHud.c:1177
protected ref map< int, ImageWidget > m_StatesWidgets
Definition IngameHud.c:8
protected ProgressBarWidget m_Stamina
Definition IngameHud.c:91
override void ToggleHeatBufferPlusSign(bool show)
Definition IngameHud.c:1144
protected Widget m_StanceCar
Definition IngameHud.c:98
void RefreshVehicleHud(float timeslice)
Definition IngameHud.c:887
void DisplayPresence()
Definition gameplay.c:631
protected Widget m_PresenceLevel0
Definition IngameHud.c:100
protected Widget m_Presence
Definition IngameHud.c:93
protected ref map< int, string > m_StatesWidgetNames
Definition IngameHud.c:7
protected Widget m_RadialProgressBarCrossHair
Definition IngameHud.c:110
override void SetStamina(int value, int range)
Definition IngameHud.c:707
ref array< ref HitDirectionEffectBase > m_HitDirEffectArray
Definition IngameHud.c:156
protected TextWidget m_BloodPosType
Definition IngameHud.c:75
protected Widget m_HitIndicatorSingle
Definition IngameHud.c:152
void InitBadgesAndNotifiers()
Definition IngameHud.c:310
protected ref Timer myTimer
Definition IngameHud.c:105
protected ref map< ImageWidget, int > m_TendencyStatusCritical
Definition IngameHud.c:10
void Debug()
Definition IngameHud.c:1506
protected ref WidgetFadeTimer m_FadeTimerZeroingOld
Definition IngameHud.c:83
protected ImageWidget m_VehicleRPMPointer
Definition IngameHud.c:37
override void ShowWalkieTalkie(int fadeOutSeconds)
Definition IngameHud.c:418
protected bool m_ZeroingKeyPressed
Definition IngameHud.c:146
protected TextWidget m_ActionDesc
Definition IngameHud.c:117
protected ImageWidget m_VehicleOilLight
Definition IngameHud.c:55
Widget m_PlayerTag
Definition IngameHud.c:1350
override void UpdateBloodName()
Definition IngameHud.c:1280
protected ref map< int, string > m_BadgesWidgetNames
Definition IngameHud.c:14
protected ImageWidget m_HeatBufferPlus
Definition IngameHud.c:21
protected ref WidgetFadeTimer m_FadeTimerWalkieTalkie
Definition IngameHud.c:88
protected Widget m_StancePanel
Definition IngameHud.c:99
protected Widget m_MouseSingleAction
Definition IngameHud.c:107
protected Widget m_GameStatusIconsPanel
Definition IngameHud.c:66
override void DisplayStance(int stance)
Definition IngameHud.c:763
bool m_VehicleHasCoolant
Definition IngameHud.c:844
bool GetQuickBarState()
Definition IngameHud.c:1165
bool IsHideQuickbarPlayer()
Definition IngameHud.c:1098
protected ImageWidget m_VehicleFuelPointer
Definition IngameHud.c:44
protected TextWidget m_ActionItemDesc
Definition IngameHud.c:118
override void SetCursorIcon(string icon)
Definition IngameHud.c:434
protected ImageWidget m_HighPingA
Definition IngameHud.c:67
void SetPermanentCrossHair(bool show)
Definition gameplay.c:661
protected Widget m_Badges
Definition IngameHud.c:77
protected ref WidgetFadeTimer m_FadeTimerQuickbar
Definition IngameHud.c:87
void InitQuickbar()
Definition IngameHud.c:1047
protected bool m_HudHideUI
Definition IngameHud.c:136
void SetStaminaBarVisibility(bool show)
protected bool m_Faded
Definition IngameHud.c:145
proto native Transport GetTransport()
void SetSize(int x, int y)
Definition Icon.c:1223
static int GetItemHealthColor(int pHealthLevel)
Definition EnMath.c:7
bool sorted
used only if groundOnly = false
Definition DayZPhysics.c:72
UIScriptedMenu FindMenu(int id)
Returns menu with specific ID if it is open (see MenuID)
Definition UIManager.c:161
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Object obj
Object inside of box.
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
proto native CGame GetGame()
HitDirectionModes
Definition constants.c:86
proto void Print(void var)
Prints content of variable to console/log.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
string String(string s)
Helper for passing string expression to functions with void parameter. Example: Print(String("Hello "...
Definition EnScript.c:339
const int STATE_WORN
Definition constants.c:745
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto int AbsInt(int i)
Returns absolute value.
const int MENU_INVENTORY
Definition constants.c:158
proto native int Length()
Returns length of string.
const int CALL_CATEGORY_GAMEPLAY
Definition tools.c:10
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.
int ARGB(int a, int r, int g, int b)
Definition proto.c:322