Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_WelcomeScreenMenu.c
Go to the documentation of this file.
1
//------------------------------------------------------------------------------------------------
3
class
SCR_WelcomeScreenMenu
:
SCR_DeployMenuBase
4
{
5
protected
SCR_BaseGameMode
m_GameMode
;
6
protected
PlayerManager
m_PlayerManager
;
7
protected
RichTextWidget
m_wPlayerCount
;
8
protected
RichTextWidget
m_wScenarioTimeElapsed
;
9
protected
ref
MapConfiguration
m_MapConfig
=
new
MapConfiguration
();
10
protected
string
m_sTimeElapsed
;
11
protected
float
m_fTimeSlice
;
12
protected
int
m_iMaxPlayerCount
;
13
14
//------------------------------------------------------------------------------------------------
16
override
void
OnMenuOpen
()
17
{
18
super.OnMenuOpen();
19
20
m_GameMode
=
SCR_BaseGameMode
.Cast(
GetGame
().
GetGameMode
());
21
m_PlayerManager
=
GetGame
().GetPlayerManager();
22
m_MapEntity
=
SCR_MapEntity
.
GetMapInstance
();
23
24
SCR_WelcomeScreenComponent welcomeScreen = SCR_WelcomeScreenComponent.Cast(
m_GameMode
.FindComponent(SCR_WelcomeScreenComponent));
25
if
(!welcomeScreen)
26
{
27
Close
();
28
return
;
29
}
30
31
/*RichTextWidget scenarioTitle = RichTextWidget.Cast(GetRootWidget().FindAnyWidget("DeploySetup"));
32
if (scenarioTitle)
33
scenarioTitle.SetText(welcomeScreen.GetHeaderTitle());
34
35
RichTextWidget scenarioSubtitle = RichTextWidget.Cast(GetRootWidget().FindAnyWidget("HeaderSubtitle"));
36
if (scenarioSubtitle)
37
scenarioSubtitle.SetText(welcomeScreen.GetHeaderSubtitle()); */
38
39
ServerInfo
serverInfo =
GetGame
().GetServerInfo();
40
if
(serverInfo)
41
m_iMaxPlayerCount
= serverInfo.GetPlayerLimit();
42
43
m_wPlayerCount
=
RichTextWidget
.Cast(
GetRootWidget
().FindAnyWidget(
"PlayerCount"
));
44
UpdatePlayerCount
(0);
45
46
m_wScenarioTimeElapsed
=
RichTextWidget
.Cast(
GetRootWidget
().FindAnyWidget(
"TimeElapsed"
));
47
48
Widget
continueBtn =
GetRootWidget
().FindAnyWidget(
"CloseButton"
);
49
if
(continueBtn)
50
{
51
SCR_InputButtonComponent
continueButton =
SCR_InputButtonComponent
.Cast(continueBtn.FindHandler(
SCR_InputButtonComponent
));
52
if
(continueButton)
53
continueButton.
m_OnActivated
.Insert(
CloseWelcomeScreenMenu
);
54
}
55
56
Widget
pauseMenuBtn =
GetRootWidget
().FindAnyWidget(
"PauseButton"
);
57
if
(pauseMenuBtn)
58
{
59
SCR_InputButtonComponent
pauseMenuButton =
SCR_InputButtonComponent
.Cast(pauseMenuBtn.FindHandler(
SCR_InputButtonComponent
));
60
if
(pauseMenuButton)
61
pauseMenuButton.
m_OnActivated
.Insert(
OpenPauseMenu
);
62
}
63
64
Widget
chat =
GetRootWidget
().FindAnyWidget(
"ChatPanel"
);
65
if
(chat)
66
m_ChatPanel
=
SCR_ChatPanel
.Cast(chat.FindHandler(
SCR_ChatPanel
));
67
68
m_ChatButton
=
SCR_InputButtonComponent
.
GetInputButtonComponent
(
"ChatButton"
,
GetRootWidget
());
69
if
(
m_ChatButton
)
70
m_ChatButton
.m_OnActivated.Insert(
OnChatToggle
);
71
72
UpdateElapsedTime
();
73
SCR_DeployMenuBaseScreenLayout
baseLayout = welcomeScreen.GetBaseLayout();
74
if
(!baseLayout)
75
return
;
76
77
baseLayout.
InitContent
(
this
);
78
79
InitMap
();
80
81
SCR_BaseGameMode
gameMode =
SCR_BaseGameMode
.Cast(
GetGame
().
GetGameMode
());
82
gameMode.
PauseGame
(
true
,
SCR_EPauseReason
.MENU);
83
}
84
85
//------------------------------------------------------------------------------------------------
87
override
void
OnMenuOpened
()
88
{
89
// Mute sounds
90
// If menu is opened before loading screen is closed, wait for closing
91
if
(
ArmaReforgerLoadingAnim
.IsOpen())
92
ArmaReforgerLoadingAnim
.
m_onExitLoadingScreen
.Insert(
MuteSounds
);
93
else
94
MuteSounds
();
95
}
96
97
//------------------------------------------------------------------------------------------------
98
override
void
OnMenuClose
()
99
{
100
super.OnMenuClose();
101
102
SCR_BaseGameMode
gameMode =
SCR_BaseGameMode
.Cast(
GetGame
().
GetGameMode
());
103
if
(!gameMode)
104
return
;
105
106
gameMode.
PauseGame
(
false
,
SCR_EPauseReason
.MENU);
107
}
108
109
//------------------------------------------------------------------------------------------------
111
protected
void
InitMap
()
112
{
113
if
(!
m_MapEntity
)
114
return
;
115
const
ResourceName
conf
=
"{A786DD4868598F15}Configs/Map/MapPlain.conf"
;
// TODO: check for good const usage
116
m_MapEntity
.OpenMap(
m_MapEntity
.SetupMapConfig(
EMapEntityMode
.PLAIN,
conf
, GetRootWidget()));
117
}
118
119
//------------------------------------------------------------------------------------------------
121
override
void
OnMenuFocusGained
()
122
{
123
SCR_EditorManagerEntity
editorManager =
SCR_EditorManagerEntity
.GetInstance();
124
if
(editorManager)
125
editorManager.AutoInit();
126
127
GetGame
().GetInputManager().AddActionListener(
"ShowScoreboard"
,
EActionTrigger
.DOWN,
OpenPlayerList
);
128
129
super.OnMenuFocusGained();
130
}
131
132
//------------------------------------------------------------------------------------------------
134
override
void
OnMenuFocusLost
()
135
{
136
GetGame
().GetInputManager().RemoveActionListener(
"ShowScoreboard"
,
EActionTrigger
.DOWN,
OpenPlayerList
);
137
138
super.OnMenuFocusLost();
139
}
140
141
//------------------------------------------------------------------------------------------------
143
protected
void
OpenPauseMenu
()
144
{
145
MenuBase
menu =
GetGame
().GetMenuManager().OpenMenu(
ChimeraMenuPreset
.PauseMenu, 0,
true
,
false
);
146
147
PauseMenuUI
pauseMenu =
PauseMenuUI
.Cast(menu);
148
if
(pauseMenu)
149
{
150
pauseMenu.FadeBackground(
true
,
true
);
151
pauseMenu.DisableSettings();
152
}
153
}
154
155
//------------------------------------------------------------------------------------------------
157
void
OpenWelcomeScreenMenu
()
158
{
159
GetGame
().GetMenuManager().OpenMenu(
ChimeraMenuPreset
.WelcomeScreenMenu);
160
}
161
162
//------------------------------------------------------------------------------------------------
164
void
CloseWelcomeScreenMenu
()
165
{
166
GetGame
().GetMenuManager().CloseMenuByPreset(
ChimeraMenuPreset
.WelcomeScreenMenu);
167
168
PlayerController playerController =
GetGame
().GetPlayerController();
169
SCR_PlayerDeployMenuHandlerComponent deployMenu = SCR_PlayerDeployMenuHandlerComponent.Cast(playerController.FindComponent(SCR_PlayerDeployMenuHandlerComponent));
170
if
(deployMenu)
171
deployMenu.SetWelcomeClosed();
172
}
173
174
//------------------------------------------------------------------------------------------------
176
override
void
OnMenuUpdate
(
float
tDelta)
177
{
178
super.OnMenuUpdate(tDelta);
179
180
GetGame
().GetInputManager().ActivateContext(
"DeployMenuContext"
);
181
GetGame
().GetInputManager().ActivateContext(
"MenuWithEditorContext"
);
182
183
if
(
m_ChatPanel
)
184
m_ChatPanel
.OnUpdateChat(tDelta);
185
186
m_fTimeSlice
+= tDelta;
187
if
(
m_fTimeSlice
> 1)
188
UpdateElapsedTime
();
189
}
190
191
//------------------------------------------------------------------------------------------------
193
protected
void
OnChatToggle
()
194
{
195
if
(!
m_ChatPanel
)
196
{
197
Widget
chat =
GetRootWidget
().FindAnyWidget(
"ChatPanel"
);
198
if
(chat)
199
m_ChatPanel
=
SCR_ChatPanel
.Cast(chat.FindHandler(
SCR_ChatPanel
));
200
}
201
202
if
(!
m_ChatPanel
||
m_ChatPanel
.IsOpen())
203
return
;
204
205
SCR_ChatPanelManager
chatPanelManager =
SCR_ChatPanelManager
.
GetInstance
();
206
207
if
(!chatPanelManager)
208
return
;
209
210
SCR_ChatPanelManager
.
GetInstance
().
ToggleChatPanel
(
m_ChatPanel
);
211
}
212
213
//------------------------------------------------------------------------------------------------
215
protected
void
UpdateElapsedTime
()
216
{
217
m_fTimeSlice
= 0;
218
m_sTimeElapsed
=
SCR_FormatHelper
.FormatTime(
m_GameMode
.GetElapsedTime());
219
m_wScenarioTimeElapsed
.SetText(
m_sTimeElapsed
);
220
UpdatePlayerCount
(0);
221
}
222
223
//------------------------------------------------------------------------------------------------
225
protected
void
UpdatePlayerCount
(
int
playerID)
226
{
227
if
(
m_iMaxPlayerCount
> 0)
228
m_wPlayerCount
.SetTextFormat(
"%1/%2"
,
m_PlayerManager
.GetPlayerCount().ToString(),
m_iMaxPlayerCount
);
229
else
230
m_wPlayerCount
.SetText(
m_PlayerManager
.GetPlayerCount().ToString());
231
}
232
}
ChimeraMenuPreset
ChimeraMenuPreset
Menu presets.
Definition
ChimeraMenuBase.c:4
SCR_EPauseReason
SCR_EPauseReason
Definition
EPauseReason.c:2
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
GetGameMode
SCR_BaseGameMode GetGameMode()
Definition
SCR_BaseGameModeComponent.c:15
SCR_EditorManagerEntity
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
Definition
SCR_EditorManagerEntity.c:2211
EMapEntityMode
EMapEntityMode
Mode of the map.
Definition
SCR_MapConstants.c:29
GetRootWidget
Widget GetRootWidget()
Definition
SCR_ModularButtonComponent.c:189
conf
Configs ServerBrowser KickDialogs conf
Definition
SCR_NotificationSenderComponent.c:29
Close
proto native void Close()
Definition
SCR_WorkshopDialogs.c:77
ArmaReforgerLoadingAnim
Definition
LoadingScreen.c:4
ArmaReforgerLoadingAnim::m_onExitLoadingScreen
static ref ScriptInvoker m_onExitLoadingScreen
Definition
LoadingScreen.c:9
MapConfiguration
Definition
MapConfiguration.c:3
MenuBase
Definition
MenuBase.c:32
PauseMenuUI
Definition
SCR_PauseMenuUI.c:3
PlayerManager
Definition
PlayerManager.c:13
ResourceName
Definition
ResourceName.c:13
RichTextWidget
Definition
RichTextWidget.c:13
SCR_BaseGameMode
Definition
SCR_BaseGameMode.c:139
SCR_BaseGameMode::PauseGame
bool PauseGame(bool pause, SCR_EPauseReason reason=SCR_EPauseReason.SYSTEM)
Definition
SCR_BaseGameMode.c:2025
SCR_ChatPanel
Definition
SCR_ChatPanel.c:7
SCR_ChatPanelManager
Definition
SCR_ChatPanelManager.c:13
SCR_ChatPanelManager::GetInstance
static SCR_ChatPanelManager GetInstance()
Returns SCR_ChatPanelManager instance.
Definition
SCR_ChatPanelManager.c:127
SCR_ChatPanelManager::ToggleChatPanel
void ToggleChatPanel(notnull SCR_ChatPanel panel)
Toggles the chat panel: opens if it's closed, closes if it's open.
Definition
SCR_ChatPanelManager.c:65
SCR_DeployMenuBase
Base deploy menu class.
Definition
SCR_DeployMenuBase.c:7
SCR_DeployMenuBase::MuteSounds
void MuteSounds(bool mute=true)
Definition
SCR_DeployMenuBase.c:75
SCR_DeployMenuBase::m_ChatButton
SCR_InputButtonComponent m_ChatButton
Definition
SCR_DeployMenuBase.c:10
SCR_DeployMenuBase::m_MapEntity
SCR_MapEntity m_MapEntity
Definition
SCR_DeployMenuBase.c:13
SCR_DeployMenuBase::OpenPlayerList
void OpenPlayerList()
Definition
SCR_DeployMenuBase.c:67
SCR_DeployMenuBase::m_ChatPanel
SCR_ChatPanel m_ChatPanel
Definition
SCR_DeployMenuBase.c:12
SCR_DeployMenuBaseScreenLayout
Base class for Deploy menu layouts.
Definition
SCR_DeployMenuBaseScreenComponent.c:44
SCR_DeployMenuBaseScreenLayout::InitContent
void InitContent(SCR_WelcomeScreenMenu menu)
SCR_FormatHelper
Definition
SCR_FormatHelper.c:2
SCR_InputButtonComponent
Definition
SCR_InputButtonComponent.c:2
SCR_InputButtonComponent::m_OnActivated
ref ScriptInvoker m_OnActivated
Definition
SCR_InputButtonComponent.c:153
SCR_InputButtonComponent::GetInputButtonComponent
static SCR_InputButtonComponent GetInputButtonComponent(string name, notnull Widget parent, bool searchAllChildren=true)
Definition
SCR_InputButtonComponent.c:1212
SCR_MapEntity
Definition
SCR_MapEntity.c:18
SCR_MapEntity::GetMapInstance
static SCR_MapEntity GetMapInstance()
Get map entity instance.
Definition
SCR_MapEntity.c:112
SCR_WelcomeScreenMenu
Class that handles Welcome screen menu.
Definition
SCR_WelcomeScreenMenu.c:4
SCR_WelcomeScreenMenu::OnChatToggle
void OnChatToggle()
Toggles chat panel.
Definition
SCR_WelcomeScreenMenu.c:193
SCR_WelcomeScreenMenu::m_PlayerManager
PlayerManager m_PlayerManager
Definition
SCR_WelcomeScreenMenu.c:6
SCR_WelcomeScreenMenu::CloseWelcomeScreenMenu
void CloseWelcomeScreenMenu()
Closes Welcome screen menu.
Definition
SCR_WelcomeScreenMenu.c:164
SCR_WelcomeScreenMenu::OnMenuFocusLost
override void OnMenuFocusLost()
Removes action listeners when menu loses focus.
Definition
SCR_WelcomeScreenMenu.c:134
SCR_WelcomeScreenMenu::UpdateElapsedTime
void UpdateElapsedTime()
Updates elapsed time.
Definition
SCR_WelcomeScreenMenu.c:215
SCR_WelcomeScreenMenu::m_fTimeSlice
float m_fTimeSlice
Definition
SCR_WelcomeScreenMenu.c:11
SCR_WelcomeScreenMenu::UpdatePlayerCount
void UpdatePlayerCount(int playerID)
Updates player count.
Definition
SCR_WelcomeScreenMenu.c:225
SCR_WelcomeScreenMenu::m_sTimeElapsed
string m_sTimeElapsed
Definition
SCR_WelcomeScreenMenu.c:10
SCR_WelcomeScreenMenu::OnMenuOpened
override void OnMenuOpened()
Mutes sounds once the menu is opened.
Definition
SCR_WelcomeScreenMenu.c:87
SCR_WelcomeScreenMenu::m_iMaxPlayerCount
int m_iMaxPlayerCount
Definition
SCR_WelcomeScreenMenu.c:12
SCR_WelcomeScreenMenu::m_wPlayerCount
RichTextWidget m_wPlayerCount
Definition
SCR_WelcomeScreenMenu.c:7
SCR_WelcomeScreenMenu::InitMap
void InitMap()
Initializes map in the menu background.
Definition
SCR_WelcomeScreenMenu.c:111
SCR_WelcomeScreenMenu::OpenPauseMenu
void OpenPauseMenu()
Opens pause menu.
Definition
SCR_WelcomeScreenMenu.c:143
SCR_WelcomeScreenMenu::OnMenuClose
override void OnMenuClose()
Definition
SCR_WelcomeScreenMenu.c:98
SCR_WelcomeScreenMenu::OnMenuOpen
override void OnMenuOpen()
Initializes necessary parts of menu upon opening it.
Definition
SCR_WelcomeScreenMenu.c:16
SCR_WelcomeScreenMenu::m_GameMode
SCR_BaseGameMode m_GameMode
Definition
SCR_WelcomeScreenMenu.c:5
SCR_WelcomeScreenMenu::OnMenuUpdate
override void OnMenuUpdate(float tDelta)
Refreshes chat and elapsed time.
Definition
SCR_WelcomeScreenMenu.c:176
SCR_WelcomeScreenMenu::OnMenuFocusGained
override void OnMenuFocusGained()
Adds action listeners when menu is focused.
Definition
SCR_WelcomeScreenMenu.c:121
SCR_WelcomeScreenMenu::OpenWelcomeScreenMenu
void OpenWelcomeScreenMenu()
Opens Welcome screen menu.
Definition
SCR_WelcomeScreenMenu.c:157
SCR_WelcomeScreenMenu::m_wScenarioTimeElapsed
RichTextWidget m_wScenarioTimeElapsed
Definition
SCR_WelcomeScreenMenu.c:8
SCR_WelcomeScreenMenu::m_MapConfig
ref MapConfiguration m_MapConfig
Definition
SCR_WelcomeScreenMenu.c:9
ServerInfo
Definition
ServerInfo.c:8
Widget
Definition
Widget.c:13
EActionTrigger
EActionTrigger
Definition
EActionTrigger.c:13
scripts
Game
UI
Menu
DeployMenu
SCR_WelcomeScreenMenu.c
Generated by
1.17.0