DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CreditsMenu.c
См. документацию.
1class CreditsMenu extends UIScriptedMenu
2{
3 protected static float MENU_FADEIN_TIME = 2.0; //fade starts as soon as menu opens
4 protected static float LOGO_FADEIN_TIME = 1.0; //fade starts halfway through menu fade in
5 protected static float CREDIT_SCROLL_SPEED = 200.0; //pixels per second (relative to 1080p res)
6
7 protected float m_MenuFadeInIncrement;
8 protected float m_MenuFadeInLevel;
9 protected float m_MenuFadeInLevel2 = 1;
10 protected float m_LogoFadeInIncrement;
11 protected float m_LogoFadeInLevel;
12 protected float m_ScrollIncrement;
13 protected float m_ScrollLevel;
14 protected float m_ScrollMax;
15 protected float m_ScrollSize;
16
18
19 protected float m_CurrentTime = 0.0;
21
22 protected ImageWidget m_Logo;
23 protected ScrollWidget m_Scroller;
24 protected WrapSpacerWidget m_Content;
27
28 override Widget Init()
29 {
30 float x_f;
31 int x, y;
32
33 layoutRoot = g_Game.GetWorkspace().CreateWidgets( "gui/layouts/new_ui/credits/credits_menu.layout", null );
34 m_Logo = ImageWidget.Cast( layoutRoot.FindAnyWidget( "Logo" ) );
35 m_Scroller = ScrollWidget.Cast( layoutRoot.FindAnyWidget( "CreditsPanel" ) );
36 m_Content = WrapSpacerWidget.Cast( layoutRoot.FindAnyWidget( "CreditsContent" ) );
37 m_InfoPanelText = RichTextWidget.Cast( layoutRoot.FindAnyWidget( "InfoPanelText" ) );
38 m_InfoPanel = layoutRoot.FindAnyWidget( "InfoPanel" );
39
40 GetScreenSize( x, y );
41
45
46 m_Scroller.VScrollToPos01( 0 );
47 m_Scroller.GetScreenSize( x_f, m_ScrollSize );
48
49 g_Game.GameScript.Call( this, "LoadDataAsync", null );
50
51 UpdateInfoPanelText(g_Game.GetInput().GetCurrentInputDevice());
52
53 return layoutRoot;
54 }
55
56 override void OnShow()
57 {
58 super.OnShow();
59
60 MissionMainMenu mainMenu = MissionMainMenu.Cast(g_Game.GetMission());
61
63 playbackData.m_Category = EDynamicMusicPlayerCategory.CREDITS;
64 playbackData.m_Forced = true;
65 playbackData.m_FadeOut = true;
66 mainMenu.GetDynamicMusicPlayer().SetCategory(playbackData);
67 }
68
69 override void OnHide()
70 {
71 super.OnHide();
72
73 MissionMainMenu mainMenu = MissionMainMenu.Cast(g_Game.GetMission());
74
76 playbackData.m_Category = EDynamicMusicPlayerCategory.MENU;
77 playbackData.m_Forced = true;
78 playbackData.m_FadeOut = true;
79 mainMenu.GetDynamicMusicPlayer().SetCategory(playbackData);
80 }
81
83 {
85 for(int i = 1; i <= m_CreditsData.Departments.Count(); ++i)
86 {
87 CreditsDepartmentElement e = new CreditsDepartmentElement( i, m_Content, m_CreditsData.Departments.Get( i - 1 ) );
88 m_CreditsEntries.Insert(e);
89 }
90
91 m_Content.Update();
92 }
93
94 override void Update( float timeslice )
95 {
96 float new_menu_val;
97 if( m_LogoFadeInLevel != 1 )
98 {
99 new_menu_val = m_MenuFadeInLevel + m_MenuFadeInIncrement * timeslice;
100 if( new_menu_val < 1 )
101 m_MenuFadeInLevel = new_menu_val;
102 else
104
105 if( m_MenuFadeInLevel > 0.5 )
106 {
107 float new_logo_val = m_LogoFadeInLevel + m_LogoFadeInIncrement * timeslice;
108 if( new_menu_val < 1 )
109 m_LogoFadeInLevel = new_logo_val;
110 else
112 }
113
114 layoutRoot.SetAlpha( m_MenuFadeInLevel );
115 m_Logo.SetAlpha( m_LogoFadeInLevel );
117 }
118 else if( m_ScrollLevel + m_ScrollSize <= m_Scroller.GetContentHeight() )
119 {
120 float new_scroll_val = m_ScrollLevel + m_ScrollIncrement * timeslice;
121 m_ScrollLevel = new_scroll_val;
122 m_Scroller.VScrollToPos( m_ScrollLevel );
123 }
124 else
125 {
126 new_menu_val = m_MenuFadeInLevel2 - m_MenuFadeInIncrement * timeslice;
127 if( new_menu_val > 0 )
128 m_MenuFadeInLevel2 = new_menu_val;
129 else
130 Close();
131
132 layoutRoot.SetAlpha( m_MenuFadeInLevel2 );
134 }
135
136 m_CurrentTime += timeslice;
137
138 if( g_Game.GetInput().LocalRelease("UAUIBack") )
139 {
140 Close();
141 }
142 }
143
144 void UpdateInfoPanelText(int input_device_type)
145 {
146 if (g_Game.GetInput().IsEnabledMouseAndKeyboard() && input_device_type == EInputDeviceType.MOUSE_AND_KEYBOARD)
147 {
148 m_InfoPanelText.SetText("ESC " + "#menu_back");
149 }
150 else
151 {
152 m_InfoPanelText.SetText(InputUtils.GetRichtextButtonIconFromInputAction("UAUIBack", "#menu_back", EUAINPUT_DEVICE_CONTROLLER, InputUtils.ICON_SCALE_TOOLBAR));
153 }
154 }
155}
DayZGame g_Game
Определения DayZGame.c:3942
EDynamicMusicPlayerCategory
Определения EDynamicMusicPlayerCategory.c:2
Icon x
Icon y
void Close()
static JsonDataCredits GetData()
Определения CreditsLoader.c:43
Определения CreditsLoader.c:2
EDynamicMusicPlayerCategory m_Category
Определения DynamicMusicPlayer.c:78
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
Определения JsonDataCredits.c:2
Определения gameplay.c:317
override void OnShow()
Определения CreditsMenu.c:56
float m_MenuFadeInLevel
Определения CreditsMenu.c:8
override void Update(float timeslice)
Определения CreditsMenu.c:94
float m_ScrollIncrement
Определения CreditsMenu.c:12
float m_CurrentTime
Определения CreditsMenu.c:19
ImageWidget m_Logo
Определения CreditsMenu.c:22
float m_LogoFadeInLevel
Определения CreditsMenu.c:11
float m_ScrollMax
Определения CreditsMenu.c:14
RichTextWidget m_InfoPanelText
Определения CreditsMenu.c:25
float m_LogoFadeInIncrement
Определения CreditsMenu.c:10
float m_MenuFadeInLevel2
Определения CreditsMenu.c:9
static float LOGO_FADEIN_TIME
Определения CreditsMenu.c:4
ref JsonDataCredits m_CreditsData
Определения CreditsMenu.c:17
override void OnHide()
Определения CreditsMenu.c:69
float m_ScrollSize
Определения CreditsMenu.c:15
ScrollWidget m_Scroller
Определения CreditsMenu.c:23
Widget m_InfoPanel
Определения CreditsMenu.c:26
static float CREDIT_SCROLL_SPEED
Определения CreditsMenu.c:5
float m_ScrollLevel
Определения CreditsMenu.c:13
void LoadDataAsync()
Определения CreditsMenu.c:82
void UpdateInfoPanelText(int input_device_type)
Определения CreditsMenu.c:144
float m_MenuFadeInIncrement
Определения CreditsMenu.c:7
override Widget Init()
Определения CreditsMenu.c:28
WrapSpacerWidget m_Content
Определения CreditsMenu.c:24
static float MENU_FADEIN_TIME
Определения CreditsMenu.c:3
ref array< ref CreditsElement > m_CreditsEntries
Определения CreditsMenu.c:20
Определения DayZGame.c:64
Определения EnWidgets.c:190
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto void GetScreenSize(out int x, out int y)
EInputDeviceType
Определения input.c:3