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_MainMenuTileComponent.c
Go to the documentation of this file.
1
class
SCR_MainMenuTileComponent
:
SCR_TileBaseComponent
2
{
3
protected
const
int
THUMBNAIL_LOCALSCALE
= 1920;
4
5
protected
MissionWorkshopItem
m_Item
;
6
protected
ref
SCR_MissionHeader
m_Header
;
7
8
protected
TextWidget
m_wName
;
9
protected
TextWidget
m_wDescription
;
10
protected
Widget
m_wTextContent
;
11
protected
Widget
m_DisabledTileShadow
;
12
protected
ImageWidget
m_wBackground
;
13
14
protected
ImageWidget
m_wNewIcon
;
15
protected
ImageWidget
m_wRecentIcon
;
16
protected
ImageWidget
m_wFavoriteIcon
;
17
18
protected
SCR_InputButtonComponent
m_Play
;
19
protected
SCR_InputButtonComponent
m_Continue
;
20
protected
SCR_InputButtonComponent
m_Restart
;
21
22
protected
bool
m_bFocused
;
23
protected
bool
m_bDisabled
;
24
25
protected
bool
m_bIsTutorialNeeded
;
26
protected
MissionWorkshopItem
m_TutorialMission
;
27
28
//------------------------------------------------------------------------------------------------
29
override
void
HandlerAttached
(
Widget
w)
30
{
31
super.HandlerAttached(w);
32
33
m_wName
=
TextWidget
.Cast(w.FindAnyWidget(
"Name"
));
34
m_wDescription
=
TextWidget
.Cast(w.FindAnyWidget(
"Description"
));
35
m_wDescription
.SetVisible(
false
);
36
37
m_wTextContent
= w.FindAnyWidget(
"TextSizeLayout"
);
38
39
m_wBackground
=
ImageWidget
.Cast(w.FindAnyWidget(
"Shading"
));
40
m_wBackground
.SetVisible(
false
);
41
42
m_wNewIcon
=
ImageWidget
.Cast(w.FindAnyWidget(
"NewIcon"
));
43
m_wNewIcon
.SetVisible(
false
);
44
45
m_wRecentIcon
=
ImageWidget
.Cast(w.FindAnyWidget(
"RecentIcon"
));
46
m_wRecentIcon
.SetVisible(
false
);
47
48
m_wFavoriteIcon
=
ImageWidget
.Cast(w.FindAnyWidget(
"FavoriteIcon"
));
49
m_wFavoriteIcon
.SetVisible(
false
);
50
51
m_DisabledTileShadow
= w.FindAnyWidget(
"m_DisabledTileShadow"
);
52
m_DisabledTileShadow
.SetVisible(
false
);
53
54
m_Play
=
SCR_InputButtonComponent
.
GetInputButtonComponent
(
SCR_ScenarioUICommon
.BUTTON_PLAY, w);
55
if
(
m_Play
)
56
m_Play
.m_OnActivated.Insert(
OnPlay
);
57
58
m_Continue
=
SCR_InputButtonComponent
.
GetInputButtonComponent
(
SCR_ScenarioUICommon
.BUTTON_CONTINUE, w);
59
if
(
m_Continue
)
60
m_Continue
.m_OnActivated.Insert(
OnContinue
);
61
62
m_Restart
=
SCR_InputButtonComponent
.
GetInputButtonComponent
(
SCR_ScenarioUICommon
.BUTTON_RESTART, w);
63
if
(
m_Restart
)
64
m_Restart
.m_OnActivated.Insert(
OnRestart
);
65
66
SCR_ServicesStatusHelper
.
GetOnCommStatusCheckFinished
().Insert(
OnCommStatusCheckFinished
);
67
68
bool
isMouseInteraction =
GetGame
().GetInputManager().GetLastUsedInputDevice() == EInputDeviceType.MOUSE;
69
70
UpdateButtonInputVisibility
(
m_Play
.GetRootWidget(), !isMouseInteraction);
71
UpdateButtonInputVisibility
(
m_Continue
.GetRootWidget(), !isMouseInteraction);
72
UpdateButtonInputVisibility
(
m_Restart
.GetRootWidget(), !isMouseInteraction);
73
74
GetGame
().OnInputDeviceUserChangedInvoker().Insert(
OnInputDeviceUserChanged
);
75
}
76
77
// React on switching between input methods
78
//------------------------------------------------------------------------------------------------
79
protected
void
OnInputDeviceUserChanged
(EInputDeviceType oldDevice, EInputDeviceType newDevice)
80
{
81
if
(
m_bDisabled
|| newDevice == EInputDeviceType.TRACK_IR || newDevice == EInputDeviceType.JOYSTICK)
82
return
;
83
84
bool
isMouseInteraction = newDevice == EInputDeviceType.MOUSE;
85
86
UpdateButtonInputVisibility
(
m_Play
.GetRootWidget(), !isMouseInteraction);
87
UpdateButtonInputVisibility
(
m_Continue
.GetRootWidget(), !isMouseInteraction);
88
UpdateButtonInputVisibility
(
m_Restart
.GetRootWidget(), !isMouseInteraction);
89
}
90
91
//------------------------------------------------------------------------------------------------
92
protected
void
UpdateButtonInputVisibility
(notnull
Widget
root,
bool
visibility)
93
{
94
Widget
buttonWidget = root.FindAnyWidget(
"InputButtonDisplayRoot"
);
95
if
(!buttonWidget)
96
return
;
97
98
buttonWidget.SetEnabled(visibility);
99
buttonWidget.SetVisible(visibility);
100
}
101
102
//------------------------------------------------------------------------------------------------
103
void
DisableTile
()
104
{
105
m_bDisabled
=
true
;
106
107
m_DisabledTileShadow
.SetVisible(
true
);
108
109
m_Play
.SetEnabled(
false
);
110
m_Continue
.SetEnabled(
false
);
111
m_Restart
.SetEnabled(
false
);
112
113
SCR_ButtonImageComponent
comp =
SCR_ButtonImageComponent
.Cast(
m_wRoot
.FindHandler(
SCR_ButtonImageComponent
));
114
if
(comp)
115
comp.SetImageSaturation(!
m_bDisabled
);
116
}
117
118
//------------------------------------------------------------------------------------------------
119
override
bool
OnClick
(
Widget
w,
int
x,
int
y,
int
button)
120
{
121
if
(button ==
MouseState
.RIGHT)
122
return
true
;
123
124
OnPlayOrContinue
();
125
126
return
super.OnClick(w, x, y, button);
127
}
128
129
//------------------------------------------------------------------------------------------------
130
override
bool
OnFocus
(
Widget
w,
int
x,
int
y)
131
{
132
if
(
m_bDisabled
)
133
return
super.OnFocus(w, x, y);
134
135
SCR_ScenarioUICommon
.
UpdateInputButtons
(
m_Item
, {
m_Play
,
m_Continue
,
m_Restart
});
136
137
m_bFocused
=
true
;
138
float
position
[4] = {20.0, 0.0, 20.0, 25.0};
139
140
AnimateWidget
.
Padding
(
m_wTextContent
,
position
, 5.0);
141
m_wDescription
.SetVisible(
true
);
142
m_wBackground
.SetVisible(
true
);
143
144
return
super.OnFocus(w, x, y);
145
}
146
147
//------------------------------------------------------------------------------------------------
148
override
bool
OnFocusLost
(
Widget
w,
int
x,
int
y)
149
{
150
SCR_ScenarioUICommon
.
UpdateInputButtons
(
m_Item
, {
m_Play
,
m_Continue
,
m_Restart
},
false
);
151
152
m_bFocused
=
false
;
153
float
position
[4] = {20.0, 0.0, 20.0, -70.0};
154
155
AnimateWidget
.
Padding
(
m_wTextContent
,
position
, 5.0);
156
m_wDescription
.SetVisible(
false
);
157
m_wBackground
.SetVisible(
false
);
158
159
return
super.OnFocusLost(w, x, y);
160
}
161
162
//------------------------------------------------------------------------------------------------
165
void
ShowMission
(notnull
MissionWorkshopItem
item,
bool
showRecommended =
false
)
166
{
167
m_Item
= item;
168
if
(!
m_Item
)
169
return
;
170
171
if
(
m_wName
)
172
m_wName
.SetText(
m_Item
.Name());
173
174
if
(
m_wDescription
)
175
m_wDescription
.SetText(
m_Item
.Description());
176
177
// Set image through SCR_ButtonImageComponent
178
m_Header
=
SCR_MissionHeader
.Cast(
MissionHeader
.ReadMissionHeader(
m_Item
.Id()));
179
180
SCR_ButtonImageComponent
comp =
SCR_ButtonImageComponent
.Cast(
m_wRoot
.FindHandler(
SCR_ButtonImageComponent
));
181
if
(comp)
182
{
183
ResourceName
texture =
GetTexture
();
184
if
(!texture.IsEmpty())
185
{
186
comp.SetImage(texture);
187
comp.SetImageSaturation(!
m_bDisabled
);
188
}
189
190
}
191
192
SCR_ScenarioUICommon
.
UpdateInputButtons
(
m_Item
, {
m_Play
,
m_Continue
,
m_Restart
},
m_bFocused
);
193
194
if
(item.IsFavorite())
195
m_wFavoriteIcon
.SetVisible(
true
);
196
197
if
(item.GetTimeSinceLastPlay() >= 0)
198
m_wRecentIcon
.SetVisible(
true
);
199
200
if
(showRecommended)
201
m_wNewIcon
.SetVisible(
true
);
202
}
203
204
//------------------------------------------------------------------------------------------------
205
void
SetTutorial
(notnull
MissionWorkshopItem
tutorialMission)
206
{
207
m_TutorialMission
= tutorialMission;
208
m_bIsTutorialNeeded
=
true
;
209
}
210
211
//------------------------------------------------------------------------------------------------
213
protected
ResourceName
GetTexture
()
214
{
215
if
(!
m_Header
&&
m_Item
)
216
return
m_Item
.Thumbnail().GetLocalScale(
THUMBNAIL_LOCALSCALE
).Path();
217
218
if
(!
m_Header
.m_sPreviewImage.IsEmpty())
219
return
m_Header
.m_sPreviewImage;
220
221
if
(!
m_Header
.m_sIcon.IsEmpty())
222
return
m_Header
.m_sIcon;
223
224
return
m_Header
.m_sLoadingScreen;
225
}
226
227
//------------------------------------------------------------------------------------------------
228
protected
void
OnPlayOrContinue
()
229
{
230
if
(
m_bDisabled
|| !
m_Item
|| !
SCR_ScenarioUICommon
.
CanPlay
(
m_Item
))
231
return
;
232
233
if
(
m_Continue
.IsEnabled())
234
OnContinue
();
235
else
236
OnPlay
();
237
}
238
239
//------------------------------------------------------------------------------------------------
240
protected
void
OnPlay
()
241
{
242
if
(
m_bDisabled
|| !
m_Item
|| !
SCR_ScenarioUICommon
.
CanPlay
(
m_Item
))
243
return
;
244
245
if
(
IsShowingTutorial
(
false
))
246
return
;
247
248
OnPlayScenario
();
249
}
250
251
//------------------------------------------------------------------------------------------------
252
protected
void
OnContinue
()
253
{
254
if
(
m_bDisabled
)
255
return
;
256
257
if
(
IsShowingTutorial
(
true
))
258
return
;
259
260
OnContinueScenario
();
261
}
262
263
//------------------------------------------------------------------------------------------------
264
protected
void
OnRestart
()
265
{
266
if
(
m_bDisabled
|| !
m_Item
|| !
SCR_ScenarioUICommon
.
CanPlay
(
m_Item
))
267
return
;
268
269
SCR_ConfigurableDialogUi
dialog =
SCR_CommonDialogs
.CreateDialog(
SCR_ScenarioUICommon
.DIALOG_RESTART);
270
dialog.
m_OnConfirm
.Insert(
OnRestartConfirmed
);
271
}
272
273
//------------------------------------------------------------------------------------------------
274
protected
void
OnRestartConfirmed
()
275
{
276
SCR_ScenarioUICommon
.TryPlayScenario(
m_Item
);
277
SCR_MenuLoadingComponent.SaveLastMenu(
ChimeraMenuPreset
.MainMenu);
278
}
279
280
//------------------------------------------------------------------------------------------------
281
protected
void
OnPlayScenario
()
282
{
283
SCR_ScenarioUICommon
.TryPlayScenario(
m_Item
);
284
SCR_MenuLoadingComponent.SaveLastMenu(
ChimeraMenuPreset
.MainMenu);
285
}
286
287
//------------------------------------------------------------------------------------------------
288
protected
void
OnContinueScenario
()
289
{
290
SCR_ScenarioUICommon
.LoadSave(
m_Item
,
m_Header
,
ChimeraMenuPreset
.MainMenu);
291
SCR_ScenarioUICommon
.TryPlayScenario(
m_Item
);
292
}
293
294
//------------------------------------------------------------------------------------------------
295
protected
void
OnPlayTutorial
()
296
{
297
SCR_ScenarioUICommon
.TryPlayScenario(
m_TutorialMission
);
298
SCR_MenuLoadingComponent.SaveLastMenu(
ChimeraMenuPreset
.MainMenu);
299
}
300
301
//------------------------------------------------------------------------------------------------
302
protected
bool
IsShowingTutorial
(
bool
isContinue)
303
{
304
if
(
m_bIsTutorialNeeded
)
305
{
306
BaseContainer
settings =
GetGame
().GetGameUserSettings().GetModule(
"SCR_RecentGames"
);
307
308
if
(settings)
309
{
310
int
playTutorialShowCount;
311
312
settings.Get(
"m_iPlayTutorialShowCount"
, playTutorialShowCount);
313
playTutorialShowCount++;
314
315
settings.Set(
"m_iPlayTutorialShowCount"
, playTutorialShowCount);
316
GetGame
().UserSettingsChanged();
317
}
318
319
// Tutorial confirmation dialog
320
SCR_ConfigurableDialogUi
dialog =
SCR_CommonDialogs
.CreateTutorialDialog();
321
if
(dialog)
322
{
323
dialog.
m_OnConfirm
.Insert(
OnPlayTutorial
);
324
if
(isContinue)
325
dialog.
m_OnCancel
.Insert(
OnContinueScenario
);
326
else
327
dialog.
m_OnCancel
.Insert(
OnPlayScenario
);
328
329
return
true
;
330
}
331
}
332
333
return
false
;
334
}
335
336
//------------------------------------------------------------------------------------------------
337
protected
void
OnCommStatusCheckFinished
(
SCR_ECommStatus
status,
float
responseTime,
float
lastSuccessTime,
float
lastFailTime)
338
{
339
SCR_ScenarioUICommon
.
UpdateInputButtons
(
m_Item
, {
m_Play
,
m_Continue
,
m_Restart
},
m_bFocused
);
340
}
341
}
ChimeraMenuPreset
ChimeraMenuPreset
Menu presets.
Definition
ChimeraMenuBase.c:4
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
position
vector position
Definition
SCR_DestructibleTreeV2.c:30
SCR_ECommStatus
SCR_ECommStatus
This class may become obsolete on BackendAPI update.
Definition
SCR_ServicesStatusHelper.c:3
AnimateWidget
Definition
AnimateWidget.c:3
AnimateWidget::Padding
static WidgetAnimationPadding Padding(Widget widget, float padding[4], float speed)
Definition
AnimateWidget.c:235
BaseContainer
Definition
BaseContainer.c:13
ImageWidget
Definition
ImageWidget.c:13
MissionHeader
Definition
MissionHeader.c:13
MissionWorkshopItem
Definition
MissionWorkshopItem.c:13
ResourceName
Definition
ResourceName.c:13
SCR_ButtonImageComponent
Definition
SCR_ButtonImageComponent.c:3
SCR_CommonDialogs
Definition
CommonDialogs.c:6
SCR_ConfigurableDialogUi
Definition
SCR_ConfigurableDialogUI.c:17
SCR_ConfigurableDialogUi::m_OnCancel
ref ScriptInvoker m_OnCancel
Definition
SCR_ConfigurableDialogUI.c:48
SCR_ConfigurableDialogUi::m_OnConfirm
ref ScriptInvoker m_OnConfirm
Definition
SCR_ConfigurableDialogUI.c:47
SCR_InputButtonComponent
Definition
SCR_InputButtonComponent.c:2
SCR_InputButtonComponent::GetInputButtonComponent
static SCR_InputButtonComponent GetInputButtonComponent(string name, notnull Widget parent, bool searchAllChildren=true)
Definition
SCR_InputButtonComponent.c:1212
SCR_MainMenuTileComponent
Definition
SCR_MainMenuTileComponent.c:2
SCR_MainMenuTileComponent::OnPlayOrContinue
void OnPlayOrContinue()
Definition
SCR_MainMenuTileComponent.c:228
SCR_MainMenuTileComponent::IsShowingTutorial
bool IsShowingTutorial(bool isContinue)
Definition
SCR_MainMenuTileComponent.c:302
SCR_MainMenuTileComponent::m_Header
ref SCR_MissionHeader m_Header
Definition
SCR_MainMenuTileComponent.c:6
SCR_MainMenuTileComponent::OnContinueScenario
void OnContinueScenario()
Definition
SCR_MainMenuTileComponent.c:288
SCR_MainMenuTileComponent::OnContinue
void OnContinue()
Definition
SCR_MainMenuTileComponent.c:252
SCR_MainMenuTileComponent::OnCommStatusCheckFinished
void OnCommStatusCheckFinished(SCR_ECommStatus status, float responseTime, float lastSuccessTime, float lastFailTime)
Definition
SCR_MainMenuTileComponent.c:337
SCR_MainMenuTileComponent::m_bFocused
bool m_bFocused
Definition
SCR_MainMenuTileComponent.c:22
SCR_MainMenuTileComponent::OnPlayScenario
void OnPlayScenario()
Definition
SCR_MainMenuTileComponent.c:281
SCR_MainMenuTileComponent::THUMBNAIL_LOCALSCALE
const int THUMBNAIL_LOCALSCALE
Definition
SCR_MainMenuTileComponent.c:3
SCR_MainMenuTileComponent::m_wDescription
TextWidget m_wDescription
Definition
SCR_MainMenuTileComponent.c:9
SCR_MainMenuTileComponent::m_wNewIcon
ImageWidget m_wNewIcon
Definition
SCR_MainMenuTileComponent.c:14
SCR_MainMenuTileComponent::m_wName
TextWidget m_wName
Definition
SCR_MainMenuTileComponent.c:8
SCR_MainMenuTileComponent::m_wTextContent
Widget m_wTextContent
Definition
SCR_MainMenuTileComponent.c:10
SCR_MainMenuTileComponent::SetTutorial
void SetTutorial(notnull MissionWorkshopItem tutorialMission)
Definition
SCR_MainMenuTileComponent.c:205
SCR_MainMenuTileComponent::OnPlay
void OnPlay()
Definition
SCR_MainMenuTileComponent.c:240
SCR_MainMenuTileComponent::m_bIsTutorialNeeded
bool m_bIsTutorialNeeded
Definition
SCR_MainMenuTileComponent.c:25
SCR_MainMenuTileComponent::OnRestart
void OnRestart()
Definition
SCR_MainMenuTileComponent.c:264
SCR_MainMenuTileComponent::m_bDisabled
bool m_bDisabled
Definition
SCR_MainMenuTileComponent.c:23
SCR_MainMenuTileComponent::m_DisabledTileShadow
Widget m_DisabledTileShadow
Definition
SCR_MainMenuTileComponent.c:11
SCR_MainMenuTileComponent::HandlerAttached
override void HandlerAttached(Widget w)
Definition
SCR_MainMenuTileComponent.c:29
SCR_MainMenuTileComponent::m_Restart
SCR_InputButtonComponent m_Restart
Definition
SCR_MainMenuTileComponent.c:20
SCR_MainMenuTileComponent::OnFocusLost
override bool OnFocusLost(Widget w, int x, int y)
Definition
SCR_MainMenuTileComponent.c:148
SCR_MainMenuTileComponent::m_Play
SCR_InputButtonComponent m_Play
Definition
SCR_MainMenuTileComponent.c:18
SCR_MainMenuTileComponent::ShowMission
void ShowMission(notnull MissionWorkshopItem item, bool showRecommended=false)
Definition
SCR_MainMenuTileComponent.c:165
SCR_MainMenuTileComponent::m_wBackground
ImageWidget m_wBackground
Definition
SCR_MainMenuTileComponent.c:12
SCR_MainMenuTileComponent::OnFocus
override bool OnFocus(Widget w, int x, int y)
Definition
SCR_MainMenuTileComponent.c:130
SCR_MainMenuTileComponent::m_Continue
SCR_InputButtonComponent m_Continue
Definition
SCR_MainMenuTileComponent.c:19
SCR_MainMenuTileComponent::OnPlayTutorial
void OnPlayTutorial()
Definition
SCR_MainMenuTileComponent.c:295
SCR_MainMenuTileComponent::m_Item
MissionWorkshopItem m_Item
Definition
SCR_MainMenuTileComponent.c:5
SCR_MainMenuTileComponent::UpdateButtonInputVisibility
void UpdateButtonInputVisibility(notnull Widget root, bool visibility)
Definition
SCR_MainMenuTileComponent.c:92
SCR_MainMenuTileComponent::GetTexture
ResourceName GetTexture()
Definition
SCR_MainMenuTileComponent.c:213
SCR_MainMenuTileComponent::m_wFavoriteIcon
ImageWidget m_wFavoriteIcon
Definition
SCR_MainMenuTileComponent.c:16
SCR_MainMenuTileComponent::m_TutorialMission
MissionWorkshopItem m_TutorialMission
Definition
SCR_MainMenuTileComponent.c:26
SCR_MainMenuTileComponent::OnInputDeviceUserChanged
void OnInputDeviceUserChanged(EInputDeviceType oldDevice, EInputDeviceType newDevice)
Definition
SCR_MainMenuTileComponent.c:79
SCR_MainMenuTileComponent::OnRestartConfirmed
void OnRestartConfirmed()
Definition
SCR_MainMenuTileComponent.c:274
SCR_MainMenuTileComponent::DisableTile
void DisableTile()
Definition
SCR_MainMenuTileComponent.c:103
SCR_MainMenuTileComponent::OnClick
override bool OnClick(Widget w, int x, int y, int button)
Definition
SCR_MainMenuTileComponent.c:119
SCR_MainMenuTileComponent::m_wRecentIcon
ImageWidget m_wRecentIcon
Definition
SCR_MainMenuTileComponent.c:15
SCR_MissionHeader
Definition
SCR_MissionHeader.c:2
SCR_ScenarioUICommon
Definition
SCR_ScenarioUICommon.c:5
SCR_ScenarioUICommon::UpdateInputButtons
static void UpdateInputButtons(MissionWorkshopItem mission, array< SCR_InputButtonComponent > buttons, bool visible=true)
Definition
SCR_ScenarioUICommon.c:604
SCR_ScenarioUICommon::CanPlay
static bool CanPlay(MissionWorkshopItem mission)
Definition
SCR_ScenarioUICommon.c:227
SCR_ScriptedWidgetComponent::m_wRoot
Widget m_wRoot
Definition
SCR_ScriptedWidgetComponent.c:9
SCR_ServicesStatusHelper
Definition
SCR_ServicesStatusHelper.c:16
SCR_ServicesStatusHelper::GetOnCommStatusCheckFinished
static ScriptInvokerCommStatus GetOnCommStatusCheckFinished()
Definition
SCR_ServicesStatusHelper.c:422
SCR_TileBaseComponent
Definition
SCR_TileBaseComponent.c:2
TextWidget
Definition
TextWidget.c:16
Widget
Definition
Widget.c:13
MouseState
MouseState
Definition
MouseState.c:13
scripts
Game
UI
Components
MainMenu
SCR_MainMenuTileComponent.c
Generated by
1.17.0