DayZ 1.28
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
GameplayEffectWidgets.c
См. документацию.
1/*
2TODO - doxygen formating
3*/
4
7{
8 protected ref Widget m_Root; //dummy parent node
10 protected ref set<ref Widget> m_UniqueLayouts;
12 protected ref set<int> m_RunningEffects;
13 protected ref set<int> m_RunningEffectsPrevious;
15 protected ref array<ref Widget> m_UpdatedWidgetsCheck; //to make sure widgets are not updated over and over (case of multiple IDs sharing same widget set)
16 protected ref array<int> m_UpdatedWidgetSetsCheck; //to make sure sets are not updated over and over (case of multiple IDs sharing same widget set)
17 protected ref set<int> m_SuspendRequests;
19
20 protected float m_TimeProgBreath;
21 protected float m_BreathMultStamina;
22 protected float m_BreathResidue;
23
24 //UserID's for widget containers that use something different from 'EffectWidgetsTypes' defaults
25 protected const int WIDGETSET_BREATH = 100;
26
27 //effect values
28 protected int m_BreathColor;
29 protected float m_BreathAlphaVal;
30 protected float m_FlashbangCoverAlphaVal;
31
33 {
34 m_Root = GetGame().GetWorkspace().CreateWidget(FrameWidgetTypeID,0,0,1.0,1.0,WidgetFlags.VISIBLE | WidgetFlags.HEXACTPOS | WidgetFlags.VEXACTPOS, 0xffffffff, 0);
36 m_UniqueLayouts = new set<ref Widget>;
38 m_RunningEffects = new set<int>;
39 m_RunningEffectsPrevious = new set<int>;
43 m_SuspendRequests = new set<int>;
45
46 m_TimeProgBreath = 0.0;
48
49 Init();
50
52 }
53
55 {
56 for (int i = 0; i < m_Layouts.Count(); i++)
57 {
58 if (m_Layouts.GetElement(i))
59 m_Layouts.GetElement(i).Unlink();
60 }
61 }
62
64//inits
65
66 protected void Init()
67 {
71 }
72
74 protected void PairIDToTypes()
75 {
76 m_IDToTypeMap.Insert(EffectWidgetsTypes.BLEEDING_LAYER,GameplayEffectsDataBleeding);
77 }
78
79 protected void InitLayouts()
80 {
81 RegisterLayouts("gui/layouts/gameplay/CameraEffects.layout",CompileEffectListing());
82 RegisterLayouts("gui/layouts/gameplay/BleedingEffects.layout",{EffectWidgetsTypes.BLEEDING_LAYER});
83 }
84
85 protected void InitWidgetSets()
86 {
87 InitWidgetSet(EffectWidgetsTypes.MASK_BREATH,true,WIDGETSET_BREATH);
88 InitWidgetSet(EffectWidgetsTypes.HELMET_BREATH,true,WIDGETSET_BREATH);
89 InitWidgetSet(EffectWidgetsTypes.MOTO_BREATH,true,WIDGETSET_BREATH);
90
91 InitWidgetSet(EffectWidgetsTypes.MASK_OCCLUDER);
92 InitWidgetSet(EffectWidgetsTypes.HELMET_OCCLUDER);
93 InitWidgetSet(EffectWidgetsTypes.HELMET2_OCCLUDER);
94 InitWidgetSet(EffectWidgetsTypes.MOTO_OCCLUDER);
95 InitWidgetSet(EffectWidgetsTypes.NVG_OCCLUDER);
96 InitWidgetSet(EffectWidgetsTypes.PUMPKIN_OCCLUDER,false,EffectWidgetsTypes.NVG_OCCLUDER);
97 InitWidgetSet(EffectWidgetsTypes.EYEPATCH_OCCLUDER);
98
99 InitWidgetSet(EffectWidgetsTypes.COVER_FLASHBANG);
100
101 InitWidgetSet(EffectWidgetsTypes.BLEEDING_LAYER,true);
102 }
103
105
110 protected void RegisterLayouts(string path, array<int> types)
111 {
113 m_UniqueLayouts.Insert(w);
114 w.Show(false);
115 foreach (int i : types)
116 {
117 m_Layouts.Set(i,w);
118 }
119 }
120
121 protected typename TranslateIDToType(int typeID)
122 {
123 return m_IDToTypeMap.Get(typeID);
124 }
125
126 override void RegisterGameplayEffectData(int id, Param p)
127 {
128 if (!m_WidgetDataMap.Get(id).DataInitialized())
129 {
130 m_WidgetDataMap.Get(id).RegisterData(p);
131 }
132 }
133
144 protected void InitWidgetSet(int type, bool updating = false, int user_id_override = -1)
145 {
146 Widget parent = null;
147 if (user_id_override != -1)
148 {
149 parent = m_Layouts.Get(type).FindAnyWidgetById(user_id_override);
150 }
151 else
152 {
153 parent = m_Layouts.Get(type).FindAnyWidgetById(type);
154 }
155
156 if (!parent)
157 {
158 Print("InitWidgetSet | type: " + type + " - parent not found!");
159 return;
160 }
161
162 array<ref Widget> output;
163 Widget w = parent.GetChildren();
164 if (w)
165 {
166 output = new array<ref Widget>;
167 while (w)
168 {
169 w.Update();
170 w.Show(false,true);
171 output.Insert(w);
172
173 w = w.GetSibling();
174 }
175
176 if (parent.GetChildren())
177 {
178 typename handled_type = TranslateIDToType(type);
179 if ( handled_type )
180 {
181 CreateHandledClass(handled_type,output,type,user_id_override);
182 }
183 else
184 {
185 if (ImageWidget.Cast(parent.GetChildren()))
186 {
187 m_WidgetDataMap.Set(type, new GameplayEffectsDataImage(output,type,user_id_override) );
188 }
189 else
190 {
191 m_WidgetDataMap.Set(type, new GameplayEffectsData(output,type,user_id_override) );
192 }
193 }
194 }
195
196 if (updating)
197 m_UpdatingEffects.Insert(type);
198 }
199 }
200
201 bool CreateHandledClass(typename handled_type, array<ref Widget> input, int type, int user_override)
202 {
203 if (handled_type)
204 {
205 GameplayEffectsData data = GameplayEffectsData.Cast(handled_type.Spawn());
206 data.Init(input,type,m_Layouts.Get(type),user_override);
207 m_WidgetDataMap.Set(type, data);
208 return true;
209 }
210 return false;
211 }
212
215 {
216 array<int> ret = new array<int>;
217 ret.Insert(EffectWidgetsTypes.MASK_OCCLUDER);
218 ret.Insert(EffectWidgetsTypes.MASK_BREATH);
219 ret.Insert(EffectWidgetsTypes.HELMET_OCCLUDER);
220 ret.Insert(EffectWidgetsTypes.HELMET_BREATH);
221 ret.Insert(EffectWidgetsTypes.MOTO_OCCLUDER);
222 ret.Insert(EffectWidgetsTypes.MOTO_BREATH);
223 ret.Insert(EffectWidgetsTypes.COVER_FLASHBANG);
224 ret.Insert(EffectWidgetsTypes.NVG_OCCLUDER);
225 ret.Insert(EffectWidgetsTypes.PUMPKIN_OCCLUDER);
226 ret.Insert(EffectWidgetsTypes.EYEPATCH_OCCLUDER);
227 ret.Insert(EffectWidgetsTypes.HELMET2_OCCLUDER);
228
229 return ret;
230 }
231
232 protected void UpdateVisibility()
233 {
234 Widget w;
235 //Hide diff
236 int value;
237 int runningEffectCount = m_RunningEffects.Count();
238 bool runningEffectsPresent = runningEffectCount > 0;
240 for (int i = 0; i < m_RunningEffectsPrevious.Count(); i++)
241 {
242 value = m_RunningEffectsPrevious.Get(i);
243 dta = m_WidgetDataMap.Get(value);
244 if (runningEffectCount < 1 || m_RunningEffects.Find(value) == -1)
245 {
246 if (dta.HasDefinedHandle())
247 {
248 dta.UpdateVisibility(false);
249 }
250 else
251 {
252 for (int j = 0; j < m_WidgetDataMap.Get(value).GetWidgetSet().Count(); j++)
253 {
254 w = m_WidgetDataMap.Get(value).GetWidgetSet().Get(j);
255 w.Show(false);
256 }
257 w.GetParent().Show(false);
258 }
259 }
260 }
261
262 //Show running effects
263 if (runningEffectsPresent)
264 {
265 value = 0;
266 for (i = 0; i < runningEffectCount; i++)
267 {
268 value = m_RunningEffects.Get(i);
269 dta = m_WidgetDataMap.Get(value);
270 if (dta.HasDefinedHandle())
271 {
272 dta.m_LayoutRoot.Show(true);
273 dta.UpdateVisibility(true);
274 }
275 else
276 {
277 for (j = 0; j < m_WidgetDataMap.Get(value).GetWidgetSet().Count(); j++)
278 {
279 w = m_WidgetDataMap.Get(value).GetWidgetSet().Get(j);
280 w.Update();
281 w.Show(true);
282 }
283
284 while (w) //dumb but necessary because of uncertain "visible" setting of the layout
285 {
286 w = w.GetParent();
287 if (w)
288 {
289 w.Show(true);
290 }
291 }
292 }
293 }
294 }
295
296 m_Root.Show(runningEffectsPresent && m_SuspendRequests.Count() < 1);
298 }
299
300 override void AddActiveEffects(array<int> effects)
301 {
302 if (effects && effects.Count() > 0)
303 {
305
306 int value;
307 for (int i = 0; i < effects.Count(); i++)
308 {
309 value = effects.Get(i);
310 m_RunningEffects.Insert(value);
311 }
312
313 if (m_RunningEffectsPrevious.Count() != m_RunningEffects.Count())
314 {
316 }
317 }
318 }
319
320 override void RemoveActiveEffects(array<int> effects)
321 {
322 if (effects && effects.Count() > 0)
323 {
325
326 int count = effects.Count();
327 int value;
328 int idx;
329 for (int i = 0; i < count; ++i)
330 {
331 value = effects.Get(i);
332 idx = m_RunningEffects.Find(value);
333 if (idx != -1)
334 {
335 m_RunningEffects.Remove(idx);
336 }
337 }
338
339 if (m_RunningEffectsPrevious.Count() != m_RunningEffects.Count())
340 {
342 }
343 }
344 }
345
346 override void StopAllEffects()
347 {
348 m_Root.Show(false); //to avoid visual 'peeling'
349
350 if (IsAnyEffectRunning())
351 {
352 int count = m_RunningEffects.Count();
354 for (int i = 0; i < count; i++) //iterates over running metadata, in case anything requires its own stop handling
355 {
356 data = m_WidgetDataMap.Get(m_RunningEffects[i]);
357 data.ForceStop();
358 }
359 }
360
362 m_RunningEffects.Clear();
364 }
365
366 override bool IsAnyEffectRunning()
367 {
368 return m_RunningEffects && m_RunningEffects.Count() > 0;
369 }
370
371 override void AddSuspendRequest(int request_id)
372 {
373 m_SuspendRequests.Insert(request_id);
375 }
376
377 override void RemoveSuspendRequest(int request_id)
378 {
379 int idx = m_SuspendRequests.Find(request_id);
380 if (idx != -1)
381 {
382 m_SuspendRequests.Remove(idx);
383 }
385 }
386
387 override void ClearSuspendRequests()
388 {
389 m_SuspendRequests.Clear();
391 }
392
394 {
395 return m_SuspendRequests.Count();
396 }
397
399 override void UpdateWidgets(int type = -1, float timeSlice = 0, Param p = null, int handle = -1)
400 {
402 array<ref Widget> widget_set;
403
404 if (type == EffectWidgetsTypes.ROOT)
405 {
406 HandleWidgetRoot(timeSlice,p,handle);
407 }
408 else if (type == -1) //update stuff from the m_UpdatingEffects
409 {
410 int type_widgetset = 0;
411 for (int i = 0; i < m_UpdatingEffects.Count(); i++)
412 {
413 if (m_RunningEffects.Find(m_UpdatingEffects.Get(i)) != -1)
414 {
415 type_widgetset = m_UpdatingEffects.Get(i);
416
417 dta = m_WidgetDataMap.Get(type_widgetset);
418
419 if (dta.HasDefinedHandle() && dta.DataInitialized())
420 {
421 dta.Update(timeSlice,p,handle); //calculate and apply
422 }
423 else
424 {
425 CalculateValues(type_widgetset,timeSlice,p,handle);
426 widget_set = dta.GetWidgetSet();
427 foreach (Widget w : widget_set)
428 {
429 if (w.IsVisibleHierarchy() && m_UpdatedWidgetsCheck.Find(w) == -1)
430 {
431 m_UpdatedWidgetsCheck.Insert(w);
432 ProcessWidgetUpdate(w,type_widgetset,timeSlice,p,handle);
433 }
434 }
435 }
436 }
437 }
438 }
439 else //update specific widget set
440 {
441 if (m_RunningEffects.Find(type) != -1) //only do if the effect is running (FPS stonks!)
442 {
443 dta = m_WidgetDataMap.Get(type);
444
445 if (dta.HasDefinedHandle() && dta.DataInitialized())
446 {
447 dta.Update(timeSlice,p,handle); //calculate and apply
448 }
449 else
450 {
451 CalculateValues(type,timeSlice,p,handle);
452 widget_set = dta.GetWidgetSet();
453 foreach (Widget w2 : widget_set)
454 {
455 if (w2.IsVisibleHierarchy() && m_UpdatedWidgetsCheck.Find(w2) == -1)
456 {
457 m_UpdatedWidgetsCheck.Insert(w2);
458 ProcessWidgetUpdate(w2,type,timeSlice,p,handle);
459 }
460 }
461 }
462 }
463 }
464
465 m_UpdatedWidgetsCheck.Clear();
467 }
468
470 protected void CalculateValues(int type = -1, float timeSlice = 0, Param p = null, int handle = -1)
471 {
472 if (m_UpdatedWidgetSetsCheck.Find(m_WidgetDataMap.Get(type).GetWidgetSetID()) != -1)
473 {
474 //Print("skipped updating set ID " + m_WidgetDataMap.Get(type).GetWidgetSetID() + " | effect: " + type);
475 return;
476 }
477
478 switch (type)
479 {
480 case EffectWidgetsTypes.MOTO_BREATH:
481 case EffectWidgetsTypes.HELMET_BREATH:
482 case EffectWidgetsTypes.MASK_BREATH:
483 {
484 CalculateBreathEffect(timeSlice);
485 }
486 break;
487
488 case EffectWidgetsTypes.MOTO_OCCLUDER:
489 case EffectWidgetsTypes.EYEPATCH_OCCLUDER:
490 case EffectWidgetsTypes.HELMET_OCCLUDER:
491 case EffectWidgetsTypes.HELMET2_OCCLUDER:
492 case EffectWidgetsTypes.MASK_OCCLUDER:
493 {
494 CalculateOccluderEffect(type,timeSlice,p,handle);
495 }
496 break;
497
498 case EffectWidgetsTypes.COVER_FLASHBANG:
499 {
500 CalculateFlashbangEffect(type,timeSlice,p,handle);
501 }
502 break;
503
504 default:
505 return; //no need to calculate anything
506 break;
507 }
508
509 m_UpdatedWidgetSetsCheck.Insert(m_WidgetDataMap.Get(type).GetWidgetSetID());
510 }
511
512 protected void ProcessWidgetUpdate(Widget w, int type, float timeSlice = 0, Param p = null, int handle = -1)
513 {
514 switch (type)
515 {
516 case EffectWidgetsTypes.MOTO_BREATH:
517 case EffectWidgetsTypes.HELMET_BREATH:
518 case EffectWidgetsTypes.MASK_BREATH:
519 {
520 UpdateBreathEffect(ImageWidget.Cast(w));
521 }
522 break;
523
524 case EffectWidgetsTypes.MOTO_OCCLUDER:
525 case EffectWidgetsTypes.EYEPATCH_OCCLUDER:
526 case EffectWidgetsTypes.HELMET_OCCLUDER:
527 case EffectWidgetsTypes.HELMET2_OCCLUDER:
528 case EffectWidgetsTypes.MASK_OCCLUDER:
529 {
530 UpdateOccluderEffect(ImageWidget.Cast(w),type,timeSlice,p,handle);
531 }
532 break;
533
534 case EffectWidgetsTypes.COVER_FLASHBANG:
535 {
536 UpdateFlashbangEffect(ImageWidget.Cast(w));
537 }
538 break;
539
540 default:
541 //Print("---invalid widget type to update---");
542 break;
543 }
544 }
545
546 //-----------------------------------------
547 //specific widget 'handlers'
548
549 const float BREATH_HDR_MIN = 0.005; //dusk?
550 const float BREATH_HDR_MAX = 1.0; //dark?
551 const float BREATH_COLOR_MULT_MIN = 0.5;
552 const float BREATH_COLOR_MULT_MAX = 0.8;
553
554 //-----------------------------------------
555 //Breath
556 //-----------------------------------------
557 protected void CalculateBreathEffect(float timeSlice = 0, int type = -1, Param p = null)
558 {
559 float modifier = Math.Lerp(0.25, 0.5, m_BreathResidue);
560 float speed = timeSlice * modifier;
561 m_BreathResidue -= speed;
563 float residue_final = Math.Lerp(0, 0.7, m_BreathResidue);
564
565 float hdr_mult;
566 hdr_mult = GetSceneHDRMul(0);
567 hdr_mult = Math.Clamp(hdr_mult,BREATH_HDR_MIN,BREATH_HDR_MAX);
568 hdr_mult = Math.InverseLerp(BREATH_HDR_MIN,BREATH_HDR_MAX,hdr_mult);
570 m_BreathColor = ARGBF(0.0,1.0 * hdr_mult,1.0 * hdr_mult,1.0 * hdr_mult); //grayscaling of the image
571
572 m_BreathAlphaVal = Math.Lerp(m_BreathAlphaVal, residue_final, timeSlice);
573 }
574
575 protected void UpdateBreathEffect(ImageWidget w)
576 {
577 w.SetColor(m_BreathColor);
578 w.SetAlpha(m_BreathAlphaVal);
579 }
580
581 //-----------------------------------------
582 //Occluders
583 //-----------------------------------------
584 protected void CalculateOccluderEffect(int type, float timeSlice, Param p, int handle)
585 {
586 }
587
588 protected void UpdateOccluderEffect(ImageWidget w, int type, float timeSlice, Param p, int handle)
589 {
590 }
591
592 //-----------------------------------------
593 //Flashbang
594 //-----------------------------------------
595 protected void CalculateFlashbangEffect(int type, float timeSlice, Param p, int handle)
596 {
597 Param1<float> par = Param1<float>.Cast(p);
598 m_FlashbangCoverAlphaVal = par.param1;
599
600 /*if (m_FlashbangCoverAlphaVal <= 0.0)
601 {
602 RemoveActiveEffects({EffectWidgetsTypes.COVER_FLASHBANG});
603 return;
604 }*/
605 }
606
607 protected void UpdateFlashbangEffect(ImageWidget w)
608 {
609 w.SetAlpha(1 - m_FlashbangCoverAlphaVal);
610 }
611
612 //-----------------------------------------
613 //root handling (generic 'Widget', so mainly alpha and hiding?)
614 //-----------------------------------------
615 protected void HandleWidgetRoot(float timeSlice = 0, Param p = null, int handle = -1)
616 {
617 switch (handle)
618 {
619 default:
620 {
621 Param1<float> par = Param1<float>.Cast(p);
622 if (par)
623 {
624 float alpha_mod = Math.Clamp(par.param1,0.0,1.0);
625 m_Root.SetAlpha(alpha_mod);
626 }
627 }
628 break;
629 }
630 }
631
632 //-----------------------------------------
634 override void Update(float timeSlice)
635 {
636 if (m_SuspendRequests.Count() > 0)
637 {
638 return;
639 }
640
641 UpdateWidgets(-1,timeSlice);
642 }
643
644 /*
645 override void SetBreathIntensityStamina(float stamina_cap, float stamina_current)
646 {
647 float stamina_normalized = Math.InverseLerp(0, stamina_cap, stamina_current);
648 stamina_normalized = Math.Clamp(stamina_normalized,0,1);
649
650 if ( stamina_normalized < STAMINA_SOUND_TR2 )
651 {
652 m_BreathMultStamina = 2.0;
653 }
654 else if ( stamina_normalized < STAMINA_SOUND_TR1 )
655 {
656 m_BreathMultStamina = 1.5;
657 }
658 else
659 {
660 m_BreathMultStamina = 1.0;
661 }
662 }
663 */
664 override void OnVoiceEvent(float breathing_resistance01)
665 {
666 m_BreathResidue += Math.Lerp(0,0.35,breathing_resistance01);
668 }
669}
map
Определения ControlsXboxNew.c:4
void GameplayEffectsDataImage(array< ref Widget > input, int type, int user_override=-1)
Определения GEWidgetsMetaData.c:77
map< int, ref GameplayEffectsData > GameplayEffectDataMap
Определения GEWidgetsMetaData.c:105
string path
Определения OptionSelectorMultistate.c:142
@ Count
Определения RandomGeneratorSyncManager.c:8
proto native WorkspaceWidget GetWorkspace()
const int WIDGETSET_BREATH
Определения GameplayEffectWidgets.c:25
override bool IsAnyEffectRunning()
Определения GameplayEffectWidgets.c:366
override void AddSuspendRequest(int request_id)
Определения GameplayEffectWidgets.c:371
ref array< int > m_UpdatedWidgetSetsCheck
Определения GameplayEffectWidgets.c:16
void PairIDToTypes()
Links types to unique handler types, if needed. Vanilla stuff was already handled in the generic upda...
Определения GameplayEffectWidgets.c:74
void ProcessWidgetUpdate(Widget w, int type, float timeSlice=0, Param p=null, int handle=-1)
Определения GameplayEffectWidgets.c:512
const float BREATH_HDR_MIN
Определения GameplayEffectWidgets.c:549
TranslateIDToType(int typeID)
Определения GameplayEffectWidgets.c:121
override void OnVoiceEvent(float breathing_resistance01)
Определения GameplayEffectWidgets.c:664
override void Update(float timeSlice)
Generic update, called on frame from the player.
Определения GameplayEffectWidgets.c:634
void CalculateFlashbangEffect(int type, float timeSlice, Param p, int handle)
Определения GameplayEffectWidgets.c:595
array< int > CompileEffectListing()
returns all vanilla effects, nested in a vanilla layout. If using different layouts for custom effect...
Определения GameplayEffectWidgets.c:214
void RegisterLayouts(string path, array< int > types)
Registers new layout and ties effect IDs to it.
Определения GameplayEffectWidgets.c:110
void UpdateBreathEffect(ImageWidget w)
Определения GameplayEffectWidgets.c:575
void HandleWidgetRoot(float timeSlice=0, Param p=null, int handle=-1)
Определения GameplayEffectWidgets.c:615
void ~GameplayEffectWidgets()
Определения GameplayEffectWidgets.c:54
override void RemoveSuspendRequest(int request_id)
Определения GameplayEffectWidgets.c:377
void UpdateFlashbangEffect(ImageWidget w)
Определения GameplayEffectWidgets.c:607
override void RemoveActiveEffects(array< int > effects)
Определения GameplayEffectWidgets.c:320
override void ClearSuspendRequests()
Определения GameplayEffectWidgets.c:387
ref map< int, typename > m_IDToTypeMap
Определения GameplayEffectWidgets.c:18
ref set< int > m_RunningEffects
Определения GameplayEffectWidgets.c:12
override int GetSuspendRequestCount()
Определения GameplayEffectWidgets.c:393
bool CreateHandledClass(typename handled_type, array< ref Widget > input, int type, int user_override)
Определения GameplayEffectWidgets.c:201
void CalculateValues(int type=-1, float timeSlice=0, Param p=null, int handle=-1)
Only one calculation per unique WidgetSet.
Определения GameplayEffectWidgets.c:470
ref GameplayEffectDataMap m_WidgetDataMap
Определения GameplayEffectWidgets.c:11
override void UpdateWidgets(int type=-1, float timeSlice=0, Param p=null, int handle=-1)
Usually called in course of an OnFrame update, can be manually called from elsewhere with parameters.
Определения GameplayEffectWidgets.c:399
void CalculateBreathEffect(float timeSlice=0, int type=-1, Param p=null)
Определения GameplayEffectWidgets.c:557
float m_FlashbangCoverAlphaVal
Определения GameplayEffectWidgets.c:30
ref set< int > m_RunningEffectsPrevious
Определения GameplayEffectWidgets.c:13
ref set< ref Widget > m_UniqueLayouts
Определения GameplayEffectWidgets.c:10
ref array< int > m_UpdatingEffects
Определения GameplayEffectWidgets.c:14
void GameplayEffectWidgets()
Определения GameplayEffectWidgets.c:32
void InitWidgetSet(int type, bool updating=false, int user_id_override=-1)
InitWidgetSet.
Определения GameplayEffectWidgets.c:144
const float BREATH_COLOR_MULT_MAX
Определения GameplayEffectWidgets.c:552
ref set< int > m_SuspendRequests
Определения GameplayEffectWidgets.c:17
ref map< int, ref Widget > m_Layouts
Определения GameplayEffectWidgets.c:9
void UpdateOccluderEffect(ImageWidget w, int type, float timeSlice, Param p, int handle)
Определения GameplayEffectWidgets.c:588
const float BREATH_HDR_MAX
Определения GameplayEffectWidgets.c:550
ref array< ref Widget > m_UpdatedWidgetsCheck
Определения GameplayEffectWidgets.c:15
const float BREATH_COLOR_MULT_MIN
Определения GameplayEffectWidgets.c:551
override void RegisterGameplayEffectData(int id, Param p)
Определения GameplayEffectWidgets.c:126
override void StopAllEffects()
Определения GameplayEffectWidgets.c:346
override void AddActiveEffects(array< int > effects)
Определения GameplayEffectWidgets.c:300
ref Widget m_Root
Определения GameplayEffectWidgets.c:8
void CalculateOccluderEffect(int type, float timeSlice, Param p, int handle)
Определения GameplayEffectWidgets.c:584
grouped gameplay effect widgets and their handling
Определения GameplayEffectWidgets.c:7
override bool DataInitialized()
Определения GEWidgetsMetaDataBleeding.c:49
override void Init(array< ref Widget > input, int type, Widget layout_root, int user_override=-1)
Определения GEWidgetsMetaDataBleeding.c:26
override void ForceStop()
stops and re-sets indicators and images even out of sequence. Should still be tied to the 'player' up...
Определения GEWidgetsMetaDataBleeding.c:210
override void Update(float timeSlice=0, Param p=null, int handle=-1)
Определения GEWidgetsMetaDataBleeding.c:154
override void UpdateVisibility(bool state)
Определения GEWidgetsMetaDataBleeding.c:197
override bool HasDefinedHandle()
Определения GEWidgetsMetaDataBleeding.c:44
Manages all bleeding indicators and their updates.
Определения GEWidgetsMetaDataBleeding.c:4
Определения EnMath.c:7
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения EnWidgets.c:190
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
proto void Print(void var)
Prints content of variable to console/log.
proto native float GetSceneHDRMul(int camera)
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
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 float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
WidgetFlags
Определения EnWidgets.c:58
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.
proto native external Widget CreateWidget(WidgetType type, int left, int top, int width, int height, WidgetFlags flags, int color, int sort, Widget parentWidget=NULL)
Create widgets by WidgetType.
int ARGBF(float fa, float fr, float fg, float fb)
Converts <0.0, 1.0> ARGB into color.
Определения proto.c:332