DayZ 1.27
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 = GetGame().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 GetGame().GameScript.Call( this, "LoadDataAsync", null );
50
51 UpdateInfoPanelText(GetGame().GetInput().GetCurrentInputDevice());
52
53 return layoutRoot;
54 }
55
57 {
59 for( int i = 1; i <= m_CreditsData.Departments.Count(); i++ )
60 {
61 ref CreditsDepartmentElement e = new CreditsDepartmentElement( i, m_Content, m_CreditsData.Departments.Get( i - 1 ) );
62 m_CreditsEntries.Insert( e );
63 }
64 m_Content.Update();
65 }
66
67 override void Update( float timeslice )
68 {
69 float new_menu_val;
70 if( m_LogoFadeInLevel != 1 )
71 {
72 new_menu_val = m_MenuFadeInLevel + m_MenuFadeInIncrement * timeslice;
73 if( new_menu_val < 1 )
74 m_MenuFadeInLevel = new_menu_val;
75 else
77
78 if( m_MenuFadeInLevel > 0.5 )
79 {
80 float new_logo_val = m_LogoFadeInLevel + m_LogoFadeInIncrement * timeslice;
81 if( new_menu_val < 1 )
82 m_LogoFadeInLevel = new_logo_val;
83 else
85 }
86
87 layoutRoot.SetAlpha( m_MenuFadeInLevel );
88 m_Logo.SetAlpha( m_LogoFadeInLevel );
90 }
91 else if( m_ScrollLevel + m_ScrollSize <= m_Scroller.GetContentHeight() )
92 {
93 float new_scroll_val = m_ScrollLevel + m_ScrollIncrement * timeslice;
94 m_ScrollLevel = new_scroll_val;
95 m_Scroller.VScrollToPos( m_ScrollLevel );
96 }
97 else
98 {
99 new_menu_val = m_MenuFadeInLevel2 - m_MenuFadeInIncrement * timeslice;
100 if( new_menu_val > 0 )
101 m_MenuFadeInLevel2 = new_menu_val;
102 else
103 Close();
104
105 layoutRoot.SetAlpha( m_MenuFadeInLevel2 );
107 }
108
109 m_CurrentTime += timeslice;
110
111 if( GetGame().GetInput().LocalRelease("UAUIBack") )
112 {
113 Close();
114 }
115 }
116
117 void UpdateInfoPanelText(int input_device_type)
118 {
119 if (GetGame().GetInput().IsEnabledMouseAndKeyboard() && input_device_type == EInputDeviceType.MOUSE_AND_KEYBOARD)
120 {
121 m_InfoPanelText.SetText("ESC " + "#menu_back");
122 }
123 else
124 {
125 m_InfoPanelText.SetText(InputUtils.GetRichtextButtonIconFromInputAction("UAUIBack", "#menu_back", EUAINPUT_DEVICE_CONTROLLER, InputUtils.ICON_SCALE_TOOLBAR));
126 }
127 }
128}
Icon x
Icon y
void Close()
proto native WorkspaceWidget GetWorkspace()
ScriptModule GameScript
Определения Game.c:12
static JsonDataCredits GetData()
Определения CreditsLoader.c:43
Определения CreditsLoader.c:2
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
float m_MenuFadeInLevel
Определения CreditsMenu.c:8
override void Update(float timeslice)
Определения CreditsMenu.c:67
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
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:56
void UpdateInfoPanelText(int input_device_type)
Определения CreditsMenu.c:117
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 native CGame GetGame()
proto volatile int Call(Class inst, string function, void parm)
proto void GetScreenSize(out int x, out int y)
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.
EInputDeviceType
Определения input.c:3