DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CharacterCreationMenu.c
См. документацию.
1class CharacterCreationMenu extends UIScriptedMenu
2{
3 #ifdef PLATFORM_CONSOLE
4 DayZIntroSceneXbox m_Scene;
5 protected bool m_CharacterSaved;
6 #else
8 #endif
9
10 const int TOOLTIP_ID_SAVE = 1;
11 const int TOOLTIP_ID_APPLY = 2;
12
14 protected Widget m_Apply;
15 protected Widget m_Save;
19 protected TextWidget m_Version;
20 protected Widget m_DetailsRoot; //tooltips
24
25 protected ref OptionSelectorEditbox m_NameSelector;
31
33
35
37 {
38 MissionMainMenu mission = MissionMainMenu.Cast(g_Game.GetMission());
39
40 #ifdef PLATFORM_CONSOLE
41 m_Scene = mission.GetIntroSceneXbox();
42 #else
43 m_Scene = mission.GetIntroScenePC();
44 #endif
45
46 m_Scene.ResetIntroCamera();
47 }
48
50 {
51 return m_Scene.GetIntroCharacter().GetCharacterObj();
52 }
53
54 protected void OnInputDeviceChanged(EInputDeviceType pInputDeviceType)
55 {
56 #ifdef PLATFORM_CONSOLE
57 switch (pInputDeviceType)
58 {
59 case EInputDeviceType.CONTROLLER:
60 if (g_Game.GetInput().IsEnabledMouseAndKeyboard())
61 {
62 g_Game.GetUIManager().ShowUICursor(false);
63 }
64 CheckNewOptions(); //TODO - pick only the 'focus' bit
65 break;
66
67 default:
68 if (g_Game.GetInput().IsEnabledMouseAndKeyboard())
69 {
70 g_Game.GetUIManager().ShowUICursor(true);
71 }
72 break;
73 }
74
76 #endif
77 }
78
79 override Widget Init()
80 {
81 #ifdef PLATFORM_CONSOLE
82 layoutRoot = g_Game.GetWorkspace().CreateWidgets("gui/layouts/new_ui/character_creation/xbox/character_creation.layout");
83 m_CharacterSaved = false;
84 #else
85 layoutRoot = g_Game.GetWorkspace().CreateWidgets("gui/layouts/new_ui/character_creation/pc/character_creation.layout");
86 #endif
87
88 m_CharacterRotationFrame = layoutRoot.FindAnyWidget("character_rotation_frame");
89 m_Apply = layoutRoot.FindAnyWidget("apply");
90 m_Save = layoutRoot.FindAnyWidget("save");
91 m_RandomizeCharacter = layoutRoot.FindAnyWidget("randomize_character");
92 m_BackButton = layoutRoot.FindAnyWidget("back");
93 m_Version = TextWidget.Cast(layoutRoot.FindAnyWidget("version"));
94 m_DetailsRoot = layoutRoot.FindAnyWidget("menu_details_tooltip");
95 m_DetailsLabel = TextWidget.Cast(m_DetailsRoot.FindAnyWidget("menu_details_label"));
96 m_DetailsText = RichTextWidget.Cast(m_DetailsRoot.FindAnyWidget("menu_details_tooltip_content"));
97 m_CharacterHeaderText = TextWidget.Cast(layoutRoot.FindAnyWidget("char_header_text"));
98 m_PlayedCharacterInfo = layoutRoot.FindAnyWidget("played_char_info");
99
100 string version;
101 g_Game.GetVersion(version);
102 #ifdef PLATFORM_CONSOLE
103 version = "#main_menu_version" + " " + version + " (" + g_Game.GetDatabaseID() + ")";
104 #else
105 version = "#main_menu_version" + " " + version;
106 #endif
107 m_Version.SetText(version);
108
109 if (m_Scene && m_Scene.GetIntroCharacter())
110 {
111 m_OriginalCharacterID = m_Scene.GetIntroCharacter().GetCharacterID();
112 }
113
114 m_NameSelector = new OptionSelectorEditbox(layoutRoot.FindAnyWidget("character_name_setting_option"), m_Scene.GetIntroCharacter().GetCharacterName(), null, false);
115 m_GenderSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_gender_setting_option"), 0, null, false, m_Scene.GetIntroCharacter().GetCharGenderList());
116 if (m_Scene.GetIntroCharacter().IsCharacterFemale())
117 {
118 m_GenderSelector.SetValue("Female");
119 m_SkinSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_head_setting_option"), 0, null, false, m_Scene.GetIntroCharacter().GetCharList(ECharGender.Female));
120 }
121 else
122 {
123 m_GenderSelector.SetValue("Male");
124 m_SkinSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_head_setting_option"), 0, null, false, m_Scene.GetIntroCharacter().GetCharList(ECharGender.Male));
125 }
126
127 m_TopSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_top_setting_option"), 0, null, false, DefaultCharacterCreationMethods.GetConfigAttachmentTypes(InventorySlots.BODY));
128 m_BottomSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_bottom_setting_option"), 0, null, false, DefaultCharacterCreationMethods.GetConfigAttachmentTypes(InventorySlots.LEGS));
129 m_ShoesSelector = new OptionSelectorMultistateCharacterMenu(layoutRoot.FindAnyWidget("character_shoes_setting_option"), 0, null, false, DefaultCharacterCreationMethods.GetConfigAttachmentTypes(InventorySlots.FEET));
130
131 m_GenderSelector.ShowNavigationButtons(true);
132 m_SkinSelector.ShowNavigationButtons(true);
133 m_TopSelector.ShowNavigationButtons(true);
134 m_BottomSelector.ShowNavigationButtons(true);
135 m_ShoesSelector.ShowNavigationButtons(true);
136
138 {
140 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_gender_button"), m_GenderSelector);
141 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_head_button"), m_SkinSelector);
142 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_top_button"), m_TopSelector);
143 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_bottom_button"), m_BottomSelector);
144 m_MultiOptionSelectors.Insert(layoutRoot.FindAnyWidget("character_shoes_button"), m_ShoesSelector);
145 }
146
147 PlayerBase scene_char = GetPlayerObj();
148 if (scene_char)
149 {
150 Object obj = scene_char.GetInventory().FindAttachment(InventorySlots.BODY);
151 if (obj)
152 m_TopSelector.SetValue(obj.GetType(), false);
153
154 obj = scene_char.GetInventory().FindAttachment(InventorySlots.LEGS);
155 if (obj)
156 m_BottomSelector.SetValue(obj.GetType(), false);
157
158 obj = scene_char.GetInventory().FindAttachment(InventorySlots.FEET);
159 if (obj)
160 m_ShoesSelector.SetValue(obj.GetType(), false);
161
162 m_SkinSelector.SetValue(scene_char.GetType());
163 }
164
165 m_GenderSelector.m_OptionChanged.Insert(GenderChanged);
166 m_SkinSelector.m_OptionChanged.Insert(SkinChanged);
167 m_TopSelector.m_OptionChanged.Insert(TopChanged);
168 m_BottomSelector.m_OptionChanged.Insert(BottomChanged);
169 m_ShoesSelector.m_OptionChanged.Insert(ShoesChanged);
170
171 Refresh();
172 SetCharacter();
174
175 g_Game.GetMission().GetOnInputDeviceChanged().Insert(OnInputDeviceChanged);
176
177 return layoutRoot;
178 }
179
181 {
182 m_GenderSelector.m_OptionChanged.Remove(GenderChanged);
183 m_SkinSelector.m_OptionChanged.Remove(SkinChanged);
184 m_TopSelector.m_OptionChanged.Remove(TopChanged);
185 m_BottomSelector.m_OptionChanged.Remove(BottomChanged);
186 m_ShoesSelector.m_OptionChanged.Remove(ShoesChanged);
187 }
188
189 //Button Events
191 void Apply()
192 {
193 if (!m_Scene.GetIntroCharacter().IsDefaultCharacter())
194 {
195 string name = m_NameSelector.GetValue();
196 if (name == "")
198
199 m_Scene.GetIntroCharacter().SaveCharName(name);
200 }
201
202 MainMenu menu_main = MainMenu.Cast(g_Game.GetUIManager().FindMenu(MENU_MAIN));
203 if (menu_main)
204 {
205 menu_main.OnChangeCharacter(false);
206 }
207 g_Game.GetUIManager().Back();
208 }
209
211 void Save()
212 {
213 if (m_Scene.GetIntroCharacter().IsDefaultCharacter())
214 {
215 string name = m_NameSelector.GetValue();
216 if (name == "")
218
219 m_Scene.GetIntroCharacter().SaveCharName(name);
220 m_Scene.GetIntroCharacter().SaveDefaultCharacter();
221 m_Scene.GetIntroCharacter().SetToDefaultCharacter();
222 SetCharacterSaved(true);
223 }
224 }
225
226 void Back()
227 {
228 //bring back DefaultCharacter, if it exists (it should), or a previously played one.
229 g_Game.GetMenuData().RequestGetDefaultCharacterData();
230 #ifdef PLATFORM_CONSOLE
232 {
234 }
235 #endif
236 m_Scene.GetIntroCharacter().SetCharacterID(m_OriginalCharacterID);
237 m_Scene.GetIntroCharacter().CreateNewCharacterById(m_Scene.GetIntroCharacter().GetCharacterID());
238 g_Game.GetUIManager().Back();
239 }
240
242 {
243 if (m_Scene.GetIntroCharacter().IsDefaultCharacter())
244 {
245 g_Game.GetMenuDefaultCharacterData().EquipDefaultCharacter(m_Scene.GetIntroCharacter().GetCharacterObj());
246 }
247 }
248
250 {
251 m_Scene.GetIntroCharacter().SetToDefaultCharacter();
252
253 // make random selection
254 m_Scene.GetIntroCharacter().SetCharacterGender(Math.RandomInt(0, 2));
255
256 if (m_Scene.GetIntroCharacter().IsCharacterFemale())
257 {
258 m_GenderSelector.SetValue("Female");
259 m_SkinSelector.LoadNewValues(m_Scene.GetIntroCharacter().GetCharList(ECharGender.Female), 0);
260 m_SkinSelector.SetRandomValue();
261 }
262 else
263 {
264 m_GenderSelector.SetValue("Male");
265 m_SkinSelector.LoadNewValues(m_Scene.GetIntroCharacter().GetCharList(ECharGender.Male), 0);
266 m_SkinSelector.SetRandomValue();
267 }
268
269 g_Game.GetMenuDefaultCharacterData().GenerateRandomEquip();
270
271 m_TopSelector.SetValue(g_Game.GetMenuDefaultCharacterData().GetAttachmentMap().Get(InventorySlots.BODY),false);
272 m_BottomSelector.SetValue(g_Game.GetMenuDefaultCharacterData().GetAttachmentMap().Get(InventorySlots.LEGS),false);
273 m_ShoesSelector.SetValue(g_Game.GetMenuDefaultCharacterData().GetAttachmentMap().Get(InventorySlots.FEET),false);
274
275 Refresh();
276 SetCharacter();
277
279 }
280
281 //Selector Events
283 {
284 ECharGender gender = ECharGender.Male;
285
286 if (m_GenderSelector.GetStringValue() == "Female")
287 {
288 gender = ECharGender.Female;
289 }
290
291 m_Scene.GetIntroCharacter().SetCharacterGender(gender);
292
293 m_SkinSelector.LoadNewValues(m_Scene.GetIntroCharacter().GetCharList(gender) , 0);
294 m_SkinSelector.SetRandomValue();
295 SetCharacterSaved(false);
296 }
297
299 {
300 m_Scene.GetIntroCharacter().CreateNewCharacterByName(m_SkinSelector.GetStringValue(), false);
301 SetCharacterSaved(false);
302 }
303
305 {
306 g_Game.GetMenuDefaultCharacterData().SetDefaultAttachment(InventorySlots.BODY,m_TopSelector.GetStringValue());
307 g_Game.GetMenuDefaultCharacterData().EquipDefaultCharacter(m_Scene.GetIntroCharacter().GetCharacterObj());
308 SetCharacterSaved(false);
309 }
310
312 {
313 g_Game.GetMenuDefaultCharacterData().SetDefaultAttachment(InventorySlots.LEGS,m_BottomSelector.GetStringValue());
314 g_Game.GetMenuDefaultCharacterData().EquipDefaultCharacter(m_Scene.GetIntroCharacter().GetCharacterObj());
315 SetCharacterSaved(false);
316 }
317
319 {
320 g_Game.GetMenuDefaultCharacterData().SetDefaultAttachment(InventorySlots.FEET,m_ShoesSelector.GetStringValue());
321 g_Game.GetMenuDefaultCharacterData().EquipDefaultCharacter(m_Scene.GetIntroCharacter().GetCharacterObj());
322 SetCharacterSaved(false);
323 }
324
325 override bool OnKeyPress(Widget w, int x, int y, int key)
326 {
327 super.OnKeyPress(w, x, y, key);
328 return false;
329 }
330
331 override bool OnClick(Widget w, int x, int y, int button)
332 {
333 if (w == m_Apply)
334 {
335 Apply();
336 return true;
337 }
338 else if (w == m_Save)
339 {
340 Save();
341 g_Game.GetUIManager().Back();
342 return true;
343 }
344 else if (w == m_RandomizeCharacter)
345 {
347 return true;
348 }
349 else if (w == m_BackButton)
350 {
351 Back();
352 return true;
353 }
354 return false;
355 }
356
357 override bool OnMouseButtonDown(Widget w, int x, int y, int button)
358 {
359 #ifndef PLATFORM_CONSOLE
361 {
362 if (m_Scene)
364 return true;
365 }
366 #endif
367 return false;
368 }
369
370 override bool OnMouseButtonUp(Widget w, int x, int y, int button)
371 {
372 #ifndef PLATFORM_CONSOLE
373 if (m_Scene)
375 #endif
376 return false;
377 }
378
379 override bool OnMouseEnter(Widget w, int x, int y)
380 {
381 string tooltip_header = "";
382 string tooltip_text = "";
384 switch (w.GetUserID())
385 {
386 case TOOLTIP_ID_APPLY:
387 tooltip_header = "#layout_main_menu_rename";
388 tooltip_text = "#layout_character_creation_apply_tooltip";
389 break;
390
391 case TOOLTIP_ID_SAVE:
392 tooltip_header = "#layout_character_creation_save_character_alt";
393 tooltip_text = "#layout_character_creation_save_tooltip";
394 break;
395 }
396 SetTooltipTexts(w, tooltip_header, tooltip_text);
397 return true;
398 }
399
400 override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
401 {
402 ColorNormal(w);
403 SetFocus(null);
404
405 return true;
406 }
407
408 override bool OnFocus(Widget w, int x, int y)
409 {
410 string tooltip_header = "";
411 string tooltip_text = "";
412 if (IsFocusable(w))
413 {
415 switch (w.GetUserID())
416 {
417 case TOOLTIP_ID_APPLY:
418 tooltip_header = "#layout_main_menu_rename";
419 tooltip_text = "#layout_character_creation_apply_tooltip";
420 break;
421
422 case TOOLTIP_ID_SAVE:
423 tooltip_header = "#layout_character_creation_save_character_alt";
424 tooltip_text = "#layout_character_creation_save_tooltip";
425 break;
426 }
427 SetTooltipTexts(w, tooltip_header, tooltip_text);
428 return true;
429 }
431 return false;
432 }
433
434 override bool OnFocusLost(Widget w, int x, int y)
435 {
436 if (IsFocusable(w))
437 {
438 ColorNormal(w);
439 return true;
440 }
441 return false;
442 }
443
445 {
446 if (w)
447 {
448 return (w == m_Apply || w == m_Save || w == m_RandomizeCharacter || w == m_BackButton);
449 }
450 return false;
451 }
452
453 void SetTooltipTexts(Widget w, string header = "", string desc = "")
454 {
455 #ifndef PLATFORM_CONSOLE
456 bool show = header != "" && desc != "";
457 m_DetailsRoot.Show(show);
458 m_DetailsLabel.SetText(header);
459 m_DetailsText.SetText(desc);
460
461 //moves the widget to parent, setting is relative to widget alignment, case-specific implementation (getter missing!!!)
462 if (show)
463 {
464 float parent_pos_x, parent_pos_y;
465 float parent_size_x, parent_size_y;
466 float layout_size_x, layout_size_y;
467
468 w.GetScreenPos(parent_pos_x,parent_pos_y);
469 w.GetScreenSize(parent_size_x,parent_size_y);
470 layoutRoot.GetScreenSize(layout_size_x,layout_size_y);
471
472 float set_x = layout_size_x - parent_pos_x;
473 float set_y = layout_size_y - parent_pos_y - parent_size_y;
474 m_DetailsRoot.SetPos(set_x,set_y,true);
475 }
476
477 m_DetailsText.Update();
478 m_DetailsLabel.Update();
479 m_DetailsRoot.Update();
480 #endif
481 }
482
484 {
485 bool show_widgets = m_Scene.GetIntroCharacter().IsDefaultCharacter();
486 layoutRoot.FindAnyWidget("character_gender_button").Show(show_widgets);
487 layoutRoot.FindAnyWidget("character_head_button").Show(show_widgets);
488 layoutRoot.FindAnyWidget("character_top_button").Show(show_widgets);
489 layoutRoot.FindAnyWidget("character_bottom_button").Show(show_widgets);
490 layoutRoot.FindAnyWidget("character_shoes_button").Show(show_widgets);
491
492 if (show_widgets)
493 {
494 m_GenderSelector.Focus();
495 }
496 else
497 {
499 }
500 }
501
502 override void OnShow()
503 {
504#ifdef PLATFORM_CONSOLE
505 m_GenderSelector.Focus();
506 OnInputDeviceChanged(g_Game.GetInput().GetCurrentInputDevice());
507#endif
509 }
510
511 override void Refresh()
512 {
513 string name;
514 #ifdef PLATFORM_CONSOLE
515 if (g_Game.GetUserManager() && g_Game.GetUserManager().GetSelectedUser())
516 {
517 name = g_Game.GetUserManager().GetSelectedUser().GetName();
518 if (name.LengthUtf8() > 16)
519 {
520 name = name.SubstringUtf8(0, 16);
521 name += "...";
522 }
523 }
524 #else
525 name = m_Scene.GetIntroCharacter().GetCharacterName();
526 if (name == "")
528 #endif
529
530 m_NameSelector.SetValue(name);
531
532 string version;
533 g_Game.GetVersion(version);
534 #ifdef PLATFORM_CONSOLE
535 version = "#main_menu_version" + " " + version + " (" + g_Game.GetDatabaseID() + ")";
536
537 m_Apply.Show(m_CharacterSaved || !m_Scene.GetIntroCharacter().IsDefaultCharacter());
538 m_Save.Show(!m_CharacterSaved && m_Scene.GetIntroCharacter().IsDefaultCharacter());
539 #else
540 version = "#main_menu_version" + " " + version;
541 m_Apply.Show(!m_Scene.GetIntroCharacter().IsDefaultCharacter());
542 m_Save.Show(m_Scene.GetIntroCharacter().IsDefaultCharacter());
543 #endif
544 m_PlayedCharacterInfo.Show(!m_Scene.GetIntroCharacter().IsDefaultCharacter());
545
546 if (m_Scene.GetIntroCharacter().IsDefaultCharacter())
547 {
548 m_CharacterHeaderText.SetText("#character_menu_header");
549 }
550 else
551 {
552 m_CharacterHeaderText.SetText("#server_browser_prev_play_filter");
553 }
554
555 m_Version.SetText(version);
556
557 #ifdef PLATFORM_CONSOLE
560 #endif
561 }
562
563 override void Update(float timeslice)
564 {
565 if (GetUApi().GetInputByID(UAUIBack).LocalPress())
566 {
567 Back();
568 }
569
570 if (GetUApi().GetInputByID(UAUICtrlX).LocalPress())
571 {
573 }
574
575 if (GetUApi().GetInputByID(UAUIRight).LocalPress())
576 {
577 NextOption();
578 }
579
580 if (GetUApi().GetInputByID(UAUILeft).LocalPress())
581 {
583 }
584
585 #ifdef PLATFORM_CONSOLE
586 if (GetUApi().GetInputByID(UAUICtrlY).LocalPress())
587 {
588 if (m_Scene.GetIntroCharacter().IsDefaultCharacter() && !m_CharacterSaved)
589 {
590 Save();
591 }
592 }
593 #endif
594 }
595
596 protected void NextOption()
597 {
598 Widget w = GetFocus();
599 if (!w)
600 return;
601
603 if (optionSelector)
604 optionSelector.SetNextOption();
605 }
606
607 protected void PreviousOption()
608 {
609 Widget w = GetFocus();
610 if (!w)
611 return;
612
614 if (optionSelector)
615 optionSelector.SetPrevOption();
616 }
617
618 override void OnHide()
619 {
620 }
621
622 //Coloring functions (Until WidgetStyles are useful)
624 {
625 if (w.IsInherited(ButtonWidget))
626 {
627 ButtonWidget button = ButtonWidget.Cast(w);
628 button.SetTextColor(ARGB(255, 200, 0, 0));
629 }
630
631 w.SetColor(ARGB(255, 0, 0, 0));
632
633 TextWidget text1 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text"));
634 TextWidget text2 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_label"));
635 TextWidget text3 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text_1"));
636 ImageWidget image = ImageWidget.Cast(w.FindAnyWidget(w.GetName() + "_image"));
637 Widget option = Widget.Cast(w.FindAnyWidget(w.GetName() + "_option_wrapper"));
638 Widget option_label = w.FindAnyWidget("option_label");
639
640 if (text1)
641 {
642 text1.SetColor(ARGB(255, 255, 0, 0));
643 }
644
645 if (text2)
646 {
647 text2.SetColor(ARGB(255, 255, 0, 0));
648 }
649
650 if (text3)
651 {
652 text3.SetColor(ARGB(255, 255, 0, 0));
653 w.SetAlpha(1);
654 }
655
656 if (image)
657 {
658 image.SetColor(ARGB(255, 200, 0, 0));
659 }
660
661 if (option)
662 {
663 option.SetColor(ARGB(255, 255, 0, 0));
664 }
665
666 #ifndef PLATFORM_CONSOLE
667 if (option_label)
668 {
669 option_label.SetColor(ARGB(255, 255, 0, 0));
670 }
671 #endif
672 }
673
675 {
676 if (w.IsInherited(ButtonWidget))
677 {
678 ButtonWidget button = ButtonWidget.Cast(w);
679 button.SetTextColor(ColorManager.COLOR_NORMAL_TEXT);
680 }
681
682 TextWidget text1 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text"));
683 TextWidget text2 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text_1"));
684 TextWidget text3 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_label"));
685 ImageWidget image = ImageWidget.Cast(w.FindAnyWidget(w.GetName() + "_image"));
686 Widget option = w.FindAnyWidget(w.GetName() + "_option_wrapper");
687 Widget option_label = w.FindAnyWidget("option_label");
688
689 if (text1)
690 {
691 text1.SetColor(ColorManager.COLOR_NORMAL_TEXT);
692 }
693
694 if (text2)
695 {
696 text2.SetColor(ColorManager.COLOR_NORMAL_TEXT);
697 }
698
699 if (text3)
700 {
701 text3.SetColor(ColorManager.COLOR_NORMAL_TEXT);
702 w.SetAlpha(0);
703 }
704
705 if (image)
706 {
707 image.SetColor(ColorManager.COLOR_NORMAL_TEXT);
708 }
709
710 if (option)
711 {
712 option.SetColor(ARGB(150, 255, 255, 255));
713 }
714
715 #ifndef PLATFORM_CONSOLE
716 if (option_label)
717 {
718 option_label.SetColor(ColorManager.COLOR_NORMAL_TEXT);
719 }
720 #endif
721 }
722
724 {
725 #ifndef PLATFORM_CONSOLE
726 SetFocus(null);
727 #endif
728
729 if (w)
730 {
731 ButtonWidget button = ButtonWidget.Cast(w);
732 if (button)
733 {
734 button.SetTextColor(ColorManager.COLOR_DISABLED_TEXT);
735 }
736 }
737
738 TextWidget text1 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text"));
739 TextWidget text2 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_label"));
740 TextWidget text3 = TextWidget.Cast(w.FindAnyWidget(w.GetName() + "_text_1"));
741 ImageWidget image = ImageWidget.Cast(w.FindAnyWidget(w.GetName() + "_image"));
742 Widget option = Widget.Cast(w.FindAnyWidget(w.GetName() + "_option_wrapper"));
743 Widget option_label = w.FindAnyWidget("option_label");
744
745 if (text1)
746 {
747 text1.SetColor(ColorManager.COLOR_DISABLED_TEXT);
748 }
749
750 if (text2)
751 {
752 text2.SetColor(ColorManager.COLOR_DISABLED_TEXT);
753 }
754
755 if (text3)
756 {
757 text3.SetColor(ColorManager.COLOR_DISABLED_TEXT);
758 w.SetAlpha(1);
759 }
760
761 if (image)
762 {
763 image.SetColor(ColorManager.COLOR_DISABLED_TEXT);
764 }
765
766 if (option)
767 {
768 option.SetColor(ColorManager.COLOR_DISABLED_TEXT);
769 }
770
771 #ifndef PLATFORM_CONSOLE
772 if (option_label)
773 {
774 option_label.SetColor(ColorManager.COLOR_DISABLED_TEXT);
775 }
776 #endif
777 }
778
779 void SetCharacterSaved(bool state)
780 {
781 #ifdef PLATFORM_CONSOLE
782 m_CharacterSaved = state;
783 Refresh();
784 #endif
785 }
786
787 protected void UpdateControlsElements()
788 {
789 #ifdef PLATFORM_CONSOLE
790 RichTextWidget toolbar_text = RichTextWidget.Cast(layoutRoot.FindAnyWidget("ContextToolbarText"));
791 string text = "";
792 if (!m_CharacterSaved && m_Scene.GetIntroCharacter().IsDefaultCharacter()) //can be saved..
793 {
794 text += string.Format(" %1",InputUtils.GetRichtextButtonIconFromInputAction("UAUICtrlY", "#layout_character_creation_save_character_alt", EUAINPUT_DEVICE_CONTROLLER, InputUtils.ICON_SCALE_TOOLBAR));
795 }
796 text += string.Format(" %1",InputUtils.GetRichtextButtonIconFromInputAction("UAUICtrlX", "#layout_character_creation_toolbar_randomize", EUAINPUT_DEVICE_CONTROLLER, InputUtils.ICON_SCALE_TOOLBAR));
797 if (m_Scene.GetIntroCharacter().IsDefaultCharacter()) //edit options available
798 {
799 #ifdef PLATFORM_PS4
800 string result = string.Format("<image set=\"%1\" name=\"%2\" scale=\"%3\" />", "playstation_buttons", "DPAD_left_short", 1.92);
801 string result2 = string.Format("<image set=\"%1\" name=\"%2\" scale=\"%3\" />", "playstation_buttons", "DPAD_right_short", 1.92);
802 #else
803 string result = string.Format("<image set=\"%1\" name=\"%2\" scale=\"%3\" />", "xbox_buttons", "DPAD_left_short", 1.92);
804 string result2 = string.Format("<image set=\"%1\" name=\"%2\" scale=\"%3\" />", "xbox_buttons", "DPAD_right_short", 1.92);
805 #endif
806 text += string.Format(" %1%2 %3", result, result2, "#layout_character_creation_toolbar_select");
807 }
808 text += string.Format(" %1",InputUtils.GetRichtextButtonIconFromInputAction("UAUIBack", "#layout_character_creation_toolbar_back", EUAINPUT_DEVICE_CONTROLLER, InputUtils.ICON_SCALE_TOOLBAR));
809 toolbar_text.SetText(text);
810 #endif
811 }
812
814 {
815 #ifdef PLATFORM_CONSOLE
816 bool toolbarShow = !g_Game.GetInput().IsEnabledMouseAndKeyboard() || g_Game.GetInput().GetCurrentInputDevice() == EInputDeviceType.CONTROLLER;
817 layoutRoot.FindAnyWidget("toolbar_bg").Show(toolbarShow);
818 layoutRoot.FindAnyWidget("play_panel_root").Show(!toolbarShow);
819 #endif
820 }
821}
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
DayZGame g_Game
Определения DayZGame.c:3942
Mission mission
Определения DisplayStatus.c:28
ECharGender
Определения ECharGender.c:2
Icon x
Icon y
void OptionSelectorMultistateCharacterMenu(Widget parent, int current_index, ScriptedWidgetEventHandler parent_c, bool disabled, notnull array< string > options)
Определения OptionSelectorMultistate.c:145
proto native UAInputAPI GetUApi()
static int COLOR_NORMAL_TEXT
Определения ColorManager.c:5
static int COLOR_DISABLED_TEXT
Определения ColorManager.c:11
Определения ColorManager.c:2
void CharacterRotationStart()
Определения DayZIntroScenePC.c:59
void CharacterRotationStop()
Определения DayZIntroScenePC.c:71
static string GetRichtextButtonIconFromInputAction(notnull UAInput pInput, string pLocalizedDescription, int pInputDeviceType=EUAINPUT_DEVICE_CONTROLLER, float pScale=ICON_SCALE_NORMAL, bool pVertical=false)
Определения InputUtils.c:167
static const float ICON_SCALE_TOOLBAR
Определения InputUtils.c:15
Определения InputUtils.c:2
provides access to slot configuration
Определения InventorySlots.c:6
Определения EnMath.c:7
Определения ObjectTyped.c:2
Определения PlayerBaseClient.c:2
Определения gameplay.c:317
Определения EnWidgets.c:220
void UpdateControlsElementVisibility()
Определения ControlsXboxNew.c:545
ref OptionSelectorMultistateCharacterMenu m_BottomSelector
Определения CharacterCreationMenu.c:29
ref OptionSelectorMultistateCharacterMenu m_TopSelector
Определения CharacterCreationMenu.c:28
void PreviousOption()
Определения CharacterCreationMenu.c:607
RichTextWidget m_DetailsText
Определения CharacterCreationMenu.c:22
override bool OnMouseEnter(Widget w, int x, int y)
Определения CharacterCreationMenu.c:379
void GenderChanged()
Определения CharacterCreationMenu.c:282
override void OnShow()
Определения CharacterCreationMenu.c:502
void ShoesChanged()
Определения CharacterCreationMenu.c:318
void ColorDisable(Widget w)
Определения CharacterCreationMenu.c:723
ButtonWidget m_Save
Определения CameraToolsMenu.c:43
override bool OnFocus(Widget w, int x, int y)
Определения CharacterCreationMenu.c:408
override void Update(float timeslice)
Определения CharacterCreationMenu.c:563
int m_OriginalCharacterID
Определения CharacterCreationMenu.c:34
TextWidget m_DetailsLabel
Определения CharacterCreationMenu.c:21
override void Refresh()
Определения ChatInputMenu.c:70
TextWidget m_Version
Определения InGameMenuXbox.c:36
TextWidget m_CharacterHeaderText
Определения CharacterCreationMenu.c:23
void ColorHighlight(Widget w)
Определения ControlsXboxNew.c:454
bool IsFocusable(Widget w)
Определения CameraToolsMenu.c:960
const int TOOLTIP_ID_SAVE
Определения CharacterCreationMenu.c:10
void SetTooltipTexts(Widget w, string header="", string desc="")
Определения CharacterCreationMenu.c:453
Widget m_Apply
Определения CharacterCreationMenu.c:14
ref OptionSelectorMultistateCharacterMenu m_GenderSelector
Определения CharacterCreationMenu.c:26
const int TOOLTIP_ID_APPLY
Определения CharacterCreationMenu.c:11
ref OptionSelectorMultistateCharacterMenu m_SkinSelector
Определения CharacterCreationMenu.c:27
void Apply()
renames character
Определения CharacterCreationMenu.c:191
void OnInputDeviceChanged(EInputDeviceType pInputDeviceType)
Определения CharacterCreationMenu.c:54
void CheckNewOptions()
Определения CharacterCreationMenu.c:483
void BottomChanged()
Определения CharacterCreationMenu.c:311
void NextOption()
Определения CharacterCreationMenu.c:596
override bool OnKeyPress(Widget w, int x, int y, int key)
Определения CharacterCreationMenu.c:325
Widget m_CharacterRotationFrame
Определения CharacterCreationMenu.c:13
override void OnHide()
Определения CharacterCreationMenu.c:618
void SkinChanged()
Определения CharacterCreationMenu.c:298
void TopChanged()
Определения CharacterCreationMenu.c:304
void SetCharacterSaved(bool state)
Определения CharacterCreationMenu.c:779
override bool OnMouseButtonUp(Widget w, int x, int y, int button)
Определения CharacterCreationMenu.c:370
override bool OnFocusLost(Widget w, int x, int y)
Определения CharacterCreationMenu.c:434
override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
Определения CharacterCreationMenu.c:400
void Back()
Определения CharacterCreationMenu.c:226
ref OptionSelectorMultistateCharacterMenu m_ShoesSelector
Определения CharacterCreationMenu.c:30
void Save()
saves default character
Определения CharacterCreationMenu.c:211
override bool OnMouseButtonDown(Widget w, int x, int y, int button)
Определения CharacterCreationMenu.c:357
void CharacterCreationMenu()
Определения CharacterCreationMenu.c:36
DayZIntroScenePC m_Scene
Определения CharacterCreationMenu.c:7
Widget m_BackButton
Определения CharacterCreationMenu.c:17
void UpdateControlsElements()
Определения ControlsXboxNew.c:535
PlayerBase GetPlayerObj()
Определения CharacterCreationMenu.c:49
Widget m_RandomizeCharacter
Определения CharacterCreationMenu.c:16
ref map< Widget, OptionSelectorMultistateCharacterMenu > m_MultiOptionSelectors
Определения CharacterCreationMenu.c:32
void ~CharacterCreationMenu()
Определения CharacterCreationMenu.c:180
override Widget Init()
Определения CharacterCreationMenu.c:79
override bool OnClick(Widget w, int x, int y, int button)
Определения CharacterCreationMenu.c:331
Widget m_DetailsRoot
Определения CharacterCreationMenu.c:20
void RandomizeCharacter()
Определения CharacterCreationMenu.c:249
void SetCharacter()
Определения CharacterCreationMenu.c:241
void ColorNormal(Widget w)
Определения ControlsXboxNew.c:471
ref OptionSelectorEditbox m_NameSelector
Определения CharacterCreationMenu.c:25
Widget m_PlayedCharacterInfo
Определения CharacterCreationMenu.c:18
Определения DayZGame.c:64
Определения EnWidgets.c:190
Определения CachedEquipmentStorage.c:4
const int DEFAULT_CHARACTER_MENU_ID
Определения 3_Game/DayZ/constants.c:987
const string DEFAULT_CHARACTER_NAME
Определения 3_Game/DayZ/constants.c:985
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
const int MENU_MAIN
Определения 3_Game/DayZ/constants.c:182
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.
proto native Widget GetFocus()
proto native void SetFocus(Widget w)
EInputDeviceType
Определения input.c:3
int ARGB(int a, int r, int g, int b)
Определения proto.c:322