Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
SCR_ServerBrowserDialogManager.c
Go to the documentation of this file.
1 
6 //------------------------------------------------------------------------------------------------
8 {
9  // Resources
10  const ResourceName CONFIG_DIALOGS = "{471EFCF445C3E9C6}Configs/ServerBrowser/JoiningDialogs.conf";
11  protected const string OFFICIAL_SERVER_SCOPE = "officialServer";
12 
13  // Dialog tags references
14  protected const string TAG_SEARCHING_SERVER = "SEARCHING_SERVER";
15  protected const string TAG_JOIN = "JOIN";
16  protected const string TAG_REJOIN = "REJOIN";
17  protected const string TAG_SERVER_NOT_FOUND = "SERVER_NOT_FOUND";
18  protected const string TAG_VERSION_MISMATCH = "VERSION_MISMATCH";
19  protected const string TAG_CHECKING_CONTENT = "CHECKING_CONTENT";
20  protected const string TAG_MOD_UGC_PRIVILEGE_MISSING = "MOD_UGC_PRIVILEGE_MISSING";
21  protected const string TAG_MODS_DOWNLOADING = "MODS_DOWNLOADING";
22  protected const string TAG_QUEUE_WAITING = "QUEUE_WAITING";
23  protected const string TAG_PASSWORD_REQUIRED = "PASSWORD_REQUIRED";
24  protected const string TAG_BACKEND_TIMEOUT = "BACKEND_TIMEOUT";
25  protected const string TAG_BANNED = "JOIN_FAILED_BAN";
26  protected const string TAG_HIGH_PING_SERVER = "HIGH_PING_SERVER";
27  protected const string TAG_UNRELATED_DOWNLOADS_CANCELING = "UNRELATED_DOWNLOADS_CANCELING";
28 
29  protected const string STR_LIGHT_BAN = "#AR-LightBan";
30  protected const string STR_HEAVY_BAN = "#AR-HeavyBan";
31 
32  // References
33  protected Room m_JoinRoom;
34  protected SCR_RoomModsManager m_ModManager;
35  protected ServerBrowserMenuUI m_ServerBrowser;
36 
37  // States
38  protected bool m_bIsOpen = false;
39  protected int m_iOpenDialogCount = 0;
40  protected EJoinDialogState m_iDisplayState;
41  protected SCR_ConfigurableDialogUi m_CurrentDialog;
42 
43  // Join dialog widget handling
44  const string WIDGET_IMAGE_ICON = "ImgIcon";
45  const string WIDGET_TXT_SUBMSG = "TxtSubMsg";
46  const string WIDGET_LOADING = "LoadingCircle0";
47 
48  const string WIDGET_PROGRESS = "VProgress";
49  const string WIDGET_TXT_PROGRESS = "TxtProgress";
50  const string WIDGET_PROGRESS_BAR = "ProgressBar";
51 
52  const string WIDGET_BUTTON_ADDITIONAL = "Additional";
53  const string ERROR_TAG_DEFAULT = "JOIN_FAILED";
54 
55  protected int m_iDownloadedCount = 0;
56  protected ref array<ref SCR_WorkshopItemAction> m_JoinDownloadActions = {};
57 
58  // Invokers
59  protected ref ScriptInvokerVoid m_OnConfirm;
60  protected ref ScriptInvokerVoid m_OnCancel;
61  protected ref ScriptInvokerVoid m_OnDialogClose;
62 
63  protected ref ScriptInvokerRoom m_OnDownloadComplete;
64  protected ref ScriptInvokerRoom m_OnJoinRoomDemand;
65  protected ref ScriptInvokerVoid Event_OnCloseAll;
66  protected ref ScriptInvokerVoid m_OnDownloadCancelDialogClose;
67 
68  //------------------------------------------------------------------------------------------------
69  // Public functions
70  //------------------------------------------------------------------------------------------------
71 
72  //------------------------------------------------------------------------------------------------
74  void DisplayDialog(EJoinDialogState state)
75  {
76  // Set
77  m_iDisplayState = state;
78 
79  //m_bIsOpen = true;
80  if (m_CurrentDialog)
81  m_CurrentDialog.Close();
82 
83  // Visual set
84  switch (state)
85  {
86  // Searching server
87  case EJoinDialogState.SEARCHING_SERVER:
88  SetDialogByTag(TAG_SEARCHING_SERVER);
89  break;
90 
91  // Joining
92  case EJoinDialogState.JOIN:
93  SetDialogByTag(TAG_JOIN);
94  break;
95 
96  // Joining
97  case EJoinDialogState.REJOIN:
98  {
99  SetDialogByTag(TAG_REJOIN);
100  break;
101  }
102 
103  // Server by given parameters wasn't found
104  case EJoinDialogState.SERVER_NOT_FOUND:
105  SetDialogByTag(TAG_SERVER_NOT_FOUND);
106  break;
107 
108  // Wrong version restriction
109  case EJoinDialogState.VERSION_MISMATCH:
110  {
111  SetDialogByTag(TAG_VERSION_MISMATCH);
112 
113  // Display version difference text
114  string clientV = GetGame().GetBuildVersion();
115  string RoomV = m_JoinRoom.GameVersion();
116 
117  string msg = string.Format("%1: %2 \n%3: %4", "#AR-ServerBrowser_Server", RoomV, "#AR-Editor_AttributeCategory_GameSettings_Name", clientV);
118  m_CurrentDialog.SetMessage(msg);
119  break;
120  }
121 
122  // Checking mod content
123  case EJoinDialogState.CHECKING_CONTENT:
124  SetDialogByTag(TAG_CHECKING_CONTENT);
125  break;
126 
127  // Mod to update
128  case EJoinDialogState.MODS_TO_UPDATE:
129  //DisplayModsToUpdate();
130  break;
131 
132  // Cleint can't access user generated content
133  case EJoinDialogState.MOD_UGC_PRIVILEGE_MISSING:
134  SetDialogByTag(TAG_MOD_UGC_PRIVILEGE_MISSING);
135  break;
136 
137  // Queue waiting
138  case EJoinDialogState.QUEUE_WAITING:
139  DisplayWaitingQueue();
140  break;
141 
142  // Password input dialog
143  case EJoinDialogState.PASSWORD_REQUIRED:
144  {
145  DisplayPasswordRequired();
146  break;
147  }
148 
149  // Password input dialog
150  case EJoinDialogState.BACKEND_TIMEOUT:
151  {
152  SetDialogByTag(TAG_BACKEND_TIMEOUT);
153  break;
154  }
155 
156  // High ping
157  case EJoinDialogState.HIGH_PING_SERVER:
158  {
159  SetDialogByTag(TAG_HIGH_PING_SERVER);
160  break;
161  }
162 
163  // Unrelated Downloads canceling filler dialog
164  case EJoinDialogState.UNRELATED_DOWNLOADS_CANCELING:
165  {
166  SetDialogByTag(TAG_UNRELATED_DOWNLOADS_CANCELING);
167  break;
168  }
169  }
170  }
171 
172  //------------------------------------------------------------------------------------------------
173  void SetDialogMessage(string msg)
174  {
175  if (!m_CurrentDialog)
176  return;
177 
178  m_CurrentDialog.SetMessage(msg);
179  }
180 
181  //------------------------------------------------------------------------------------------------
182  void CloseCurrentDialog()
183  {
184  if (m_CurrentDialog)
185  m_CurrentDialog.Close();
186  }
187 
188  //------------------------------------------------------------------------------------------------
190  protected void SetDialogByTag(string tag, SCR_ConfigurableDialogUi dialog = null)
191  {
192  // Check dialog resource
193  if (CONFIG_DIALOGS.IsEmpty())
194  return;
195 
196  // Remove invokers actions from old dialog
197  if (m_CurrentDialog)
198  m_CurrentDialog.m_OnConfirm.Remove(OnDialogConfirm);
199 
200  // Create dialog
201  m_CurrentDialog = SCR_ConfigurableDialogUi.CreateFromPreset(CONFIG_DIALOGS, tag, dialog);
202  m_iOpenDialogCount++;
203  m_bIsOpen = true;
204 
205  // Add invoker actions to current dialog
206  m_CurrentDialog.m_OnConfirm.Insert(OnDialogConfirm);
207  m_CurrentDialog.m_OnCancel.Insert(OnDialogCancel);
208  m_CurrentDialog.m_OnClose.Insert(OnDialogClose);
209  }
210 
211  //------------------------------------------------------------------------------------------------
212  protected void OnDialogConfirm()
213  {
214  if (m_OnConfirm)
215  m_OnConfirm.Invoke();
216  }
217 
218  //------------------------------------------------------------------------------------------------
219  protected void OnDialogCancel()
220  {
221  if (m_OnCancel)
222  m_OnCancel.Invoke();
223  }
224 
225  //------------------------------------------------------------------------------------------------
226  protected void InvokeOnCloseAll()
227  {
228  if (!Event_OnCloseAll)
229  Event_OnCloseAll = new ScriptInvokerVoid();
230 
231  Event_OnCloseAll.Invoke();
232  }
233 
234  //------------------------------------------------------------------------------------------------
235  protected void OnDialogClose(SCR_ConfigurableDialogUi dialog)
236  {
237  if (m_OnDialogClose)
238  m_OnDialogClose.Invoke();
239 
240  if (m_CurrentDialog == dialog)
241  InvokeOnCloseAll();
242  }
243 
244  //------------------------------------------------------------------------------------------------
245  // Spefic dialog handling
246  //------------------------------------------------------------------------------------------------
247  //------------------------------------------------------------------------------------------------
249  void DisplayJoinFail(EApiCode apiError)
250  {
251  CloseCurrentDialog();
252 
253  string errorTag = ERROR_TAG_DEFAULT;
254 
255  // TODO@wernerjak - setup dialogs
256 
257  switch (apiError)
258  {
259  case EApiCode.EACODE_ERROR_P2P_USER_JOIN_BAN: errorTag = TAG_BANNED; break;
260  case EApiCode.EACODE_ERROR_DS_USER_JOIN_BAN: errorTag = TAG_BANNED; break;
261  case EApiCode.EACODE_ERROR_USER_IS_BANNED_FROM_SHARED_GAME: errorTag = TAG_BANNED; break;
262  case EApiCode.EACODE_ERROR_PLAYER_IS_BANNED: errorTag = TAG_BANNED; break;
263  //case EApiCode.EACODE_ERROR_MAINTENANCE_IN_PROGRESS: errorTag = "JOIN_FAILED_MAITANANCE"; break;
264  //case EApiCode.EACODE_ERROR_MP_ROOM_IS_NOT_JOINABLE: errorTag = "JOIN_FAILED_NOT_JOINABLE"; break;
265  }
266 
267  SetDialogByTag(errorTag);
268 
269  // Show additional message
270  if (m_CurrentDialog)
271  {
272  SCR_ErrorDialog errorDialog = SCR_ErrorDialog.Cast(m_CurrentDialog.GetRootWidget().FindHandler(SCR_ErrorDialog));
273  if (errorDialog)
274  {
275  string strApiError = typename.EnumToString(EApiCode, apiError);
276  errorDialog.SetErrorDetail("#AR-Workshop_Error: " + strApiError);
277  }
278  }
279  }
280 
281  //------------------------------------------------------------------------------------------------
282  void DisplayJoinBan(RoomJoinData data)
283  {
284  CloseCurrentDialog();
285 
286  SetDialogByTag(TAG_BANNED);
287 
288  if (!m_CurrentDialog)
289  return;
290 
291  if (data.expiresAt < 0)
292  return;
293 
294  int time = data.expiresAt - System.GetUnixTime();
295 
296  // Show message with time
297  if (time <= 0)
298  return;
299 
300  string message = STR_LIGHT_BAN;
301 
302  // Is ban for official servers
303  if (data.scope.Contains(OFFICIAL_SERVER_SCOPE))
304  message = STR_HEAVY_BAN;
305 
306  int timeMinutes = time / 60; // show minutes
307  m_CurrentDialog.SetMessage(WidgetManager.Translate(message, timeMinutes.ToString()));
308  }
309 
310  //------------------------------------------------------------------------------------------------
312  protected void OnAllReportsCanceled(SCR_ReportedAddonsDialog dialog)
313  {
314  dialog.GetOnAllReportsCanceled().Remove(OnAllReportsCanceled);
315  }
316 
317  //------------------------------------------------------------------------------------------------
318  // Display a dialog asking for downloads cancel confirmation
319  void DisplayJoinDownloadsWarning(array<ref SCR_WorkshopItemActionDownload> downloads, SCR_EJoinDownloadsConfirmationDialogType type)
320  {
321  // Remove invokers actions from old dialog
322  if (m_CurrentDialog)
323  m_CurrentDialog.m_OnConfirm.Remove(OnDialogConfirm);
324 
325  m_CurrentDialog = SCR_ServerJoinDownloadsConfirmationDialog.Create(downloads, type);
326 
327  // Add invoker actions to current dialog
328  m_CurrentDialog.m_OnConfirm.Insert(OnDialogConfirm);
329  m_CurrentDialog.m_OnCancel.Insert(OnDialogCancel);
330  m_CurrentDialog.m_OnClose.Insert(OnDialogClose);
331 
333  {
334  SCR_DownloadManager.GetInstance().GetOnDownloadQueueCompleted().Insert(OnDownloadingDone);
335  SCR_DownloadManager.GetInstance().GetEventOnDownloadFail().Insert(OnDownloadActionFailed);
336  }
337  }
338 
339  //------------------------------------------------------------------------------------------------
340  protected void OnDownloadingDone()
341  {
342  // Check if any of required addon is not failed
343  array<ref SCR_WorkshopItem> required = m_ModManager.GetRoomItemsScripted();
344 
345  for (int i = 0, count = required.Count(); i < count; i++)
346  {
347  // Is offline
348  if (!required[i].GetOffline())
349  return;
350  }
351 
352  if (m_OnDownloadComplete)
353  m_OnDownloadComplete.Invoke(m_JoinRoom);
354 
355  SCR_DownloadManager.GetInstance().GetOnDownloadQueueCompleted().Remove(OnDownloadingDone);
356  SCR_DownloadManager.GetInstance().GetEventOnDownloadFail().Remove(OnDownloadActionFailed);
357  }
358 
359  //------------------------------------------------------------------------------------------------
360  protected void OnDownloadActionFailed(notnull SCR_WorkshopItemAction action)
361  {
362  CloseCurrentDialog();
363 
364  SCR_DownloadManager.GetInstance().GetOnDownloadQueueCompleted().Remove(OnDownloadingDone);
365  SCR_DownloadManager.GetInstance().GetEventOnDownloadFail().Remove(OnDownloadActionFailed);
366  }
367 
368  //------------------------------------------------------------------------------------------------
371  protected void DisplayWaitingQueue()
372  {
373  SetDialogByTag(TAG_QUEUE_WAITING);
374  UpdateWaitingQueue();
375 
376  // Set state text
377  TextWidget txtStateTitle = TextWidget.Cast(m_CurrentDialog.GetRootWidget().FindAnyWidget("TxtStateTitle"));
378  if (txtStateTitle)
379  txtStateTitle.SetText("#AR-PlayerList_Header");
380 
381  // Set action
382  m_CurrentDialog.m_OnConfirm.Insert(OnWaitingQueueConfirm);
383 
384  #ifdef SB_DEBUG
385  Print("[SCR_ServerBrowserDialogManager] displaying queue waiting dialog");
386  #endif
387  }
388 
389 
390  //------------------------------------------------------------------------------------------------
392  protected void DisplayPasswordRequired()
393  {
394  SCR_EditboxDialogUi editboxDialog = new SCR_EditboxDialogUi();
395  SetDialogByTag(TAG_PASSWORD_REQUIRED, editboxDialog);
396 
397  editboxDialog.m_OnWriteModeLeave.Insert(OnPasswordEditboxChanged);
398  editboxDialog.FindButton("confirm").SetEnabled(false);
399  }
400 
401  //------------------------------------------------------------------------------------------------
403  protected void OnPasswordEditboxChanged(string text)
404  {
405  if (!m_CurrentDialog || !SCR_EditboxDialogUi.Cast(m_CurrentDialog))
406  return;
407 
408  SCR_InputButtonComponent navButton = m_CurrentDialog.FindButton("confirm");
409  if (navButton)
410  navButton.SetEnabled(!text.IsEmpty());
411 
412  navButton = m_CurrentDialog.FindButton("cancel");
413  if (navButton)
414  navButton.SetEnabled(true);
415  }
416 
417  //------------------------------------------------------------------------------------------------
419  protected void OnServerBrowserAutoRefresh()
420  {
421  if (m_iDisplayState == EJoinDialogState.QUEUE_WAITING)
422  UpdateWaitingQueue();
423  }
424 
425  //------------------------------------------------------------------------------------------------
426  protected void OnWaitingQueueConfirm(SCR_ConfigurableDialogUi dialog)
427  {
428  if (m_ServerBrowser && m_OnJoinRoomDemand)
429  m_OnJoinRoomDemand.Invoke(m_JoinRoom);
430 
431  m_CurrentDialog.m_OnConfirm.Remove(OnWaitingQueueConfirm);
432  }
433 
434  //------------------------------------------------------------------------------------------------
436  protected void UpdateWaitingQueue()
437  {
438  // Check room
439  if (!m_JoinRoom)
440  return;
441 
442  // Gte player state
443  int count = m_JoinRoom.PlayerCount();
444  int limit = m_JoinRoom.PlayerLimit();
445 
446  if (!m_CurrentDialog)
447  return;
448 
449  // Set text
450  TextWidget txtState = TextWidget.Cast(m_CurrentDialog.GetRootWidget().FindAnyWidget("TxtState"));
451  if (txtState)
452  txtState.SetText(count.ToString() + "/" + limit.ToString());
453 
454  // Setup button
455  SCR_InputButtonComponent btnConfirm = m_CurrentDialog.FindButton("confirm");
456  if (btnConfirm)
457  {
458  bool enable = limit - count > 0;
459  btnConfirm.SetEnabled(enable);
460  }
461  }
462 
464  //------------------------------------------------------------------------------------------------
465  MultiplayerDialogUI CreateManualJoinDialog()
466  {
467  MultiplayerDialogUI multiplayerDialogUI = new MultiplayerDialogUI();
468  MultiplayerDialogUI dialog = MultiplayerDialogUI.Cast(SCR_ConfigurableDialogUi.CreateFromPreset(CONFIG_DIALOGS, "MANUAL_CONNECT", multiplayerDialogUI));
469  m_CurrentDialog = dialog;
470 
471  return dialog;
472  }
473 
474  //------------------------------------------------------------------------------------------------
475  SCR_ServerDetailsDialog CreateServerDetailsDialog(Room room, array<ref SCR_WorkshopItem> items, ScriptInvokerVoid onFavoritesResponse = null)
476  {
477  SCR_ServerDetailsDialog dialog = SCR_ServerDetailsDialog.CreateServerDetailsDialog(room, items, "SERVER_DETAILS", CONFIG_DIALOGS, onFavoritesResponse);
478  m_CurrentDialog = dialog;
479 
480  return dialog;
481  }
482 
483  //------------------------------------------------------------------------------------------------
484  void FillRoomDetailsMods(array<ref SCR_WorkshopItem> items, SCR_RoomModsManager modsManager = null)
485  {
486  SCR_ServerDetailsDialog dialog = SCR_ServerDetailsDialog.Cast(m_CurrentDialog);
487  dialog.FillModList(items, modsManager);
488  }
489 
490  //------------------------------------------------------------------------------------------------
491  void UpdateRoomDetailsScenarioImage(MissionWorkshopItem scenario)
492  {
493  SCR_ServerDetailsDialog dialog = SCR_ServerDetailsDialog.Cast(m_CurrentDialog);
494  if(dialog)
495  dialog.SetScenarioImage(scenario);
496  }
497 
498 
499  //------------------------------------------------------------------------------------------------
500  // Get & Set API
501  //------------------------------------------------------------------------------------------------
502 
503  // Invokers
504  //------------------------------------------------------------------------------------------------
505  ScriptInvokerVoid GetOnConfirm()
506  {
507  if (!m_OnConfirm)
508  m_OnConfirm = new ScriptInvokerVoid();
509 
510  return m_OnConfirm;
511  }
512 
513  //------------------------------------------------------------------------------------------------
514  ScriptInvokerVoid GetOnCancel()
515  {
516  if (!m_OnCancel)
517  m_OnCancel = new ScriptInvokerVoid();
518 
519  return m_OnCancel;
520  }
521 
522  //------------------------------------------------------------------------------------------------
523  ScriptInvokerVoid GetOnDialogClose()
524  {
525  if (!m_OnDialogClose)
526  m_OnDialogClose = new ScriptInvokerVoid();
527 
528  return m_OnDialogClose;
529  }
530 
531  //------------------------------------------------------------------------------------------------
532  ScriptInvokerVoid GetOnCloseAll()
533  {
534  if (!Event_OnCloseAll)
535  Event_OnCloseAll = new ScriptInvokerVoid();
536 
537  return Event_OnCloseAll;
538  }
539 
540  //------------------------------------------------------------------------------------------------
541  ScriptInvokerRoom GetOnDownloadComplete()
542  {
543  if (!m_OnDownloadComplete)
544  m_OnDownloadComplete = new ScriptInvokerRoom();
545 
546  return m_OnDownloadComplete;
547  }
548 
549  //------------------------------------------------------------------------------------------------
550  ScriptInvokerVoid GetOnDownloadCancelDialogClose()
551  {
552  if (!m_OnDownloadCancelDialogClose)
553  m_OnDownloadCancelDialogClose = new ScriptInvokerVoid();
554 
555  return m_OnDownloadCancelDialogClose;
556  }
557 
558  //------------------------------------------------------------------------------------------------
559  ScriptInvokerRoom GetOnJoinRoomDemand()
560  {
561  if (!m_OnJoinRoomDemand)
562  m_OnJoinRoomDemand = new ScriptInvokerRoom();
563 
564  return m_OnJoinRoomDemand;
565  }
566 
567  // Helpers
568  //------------------------------------------------------------------------------------------------
569  Room GetJoinRoom()
570  {
571  return m_JoinRoom;
572  }
573 
574  //------------------------------------------------------------------------------------------------
575  EJoinDialogState GetDisplayState()
576  {
577  return m_iDisplayState;
578  }
579 
580  //------------------------------------------------------------------------------------------------
581  SCR_ConfigurableDialogUi GetCurrentDialog()
582  {
583  return m_CurrentDialog;
584  }
585 
586  //------------------------------------------------------------------------------------------------
587  bool IsDialogOpen()
588  {
589  return GetCurrentDialog();
590  }
591 
592  //------------------------------------------------------------------------------------------------
593  bool IsOpen()
594  {
595  return m_bIsOpen;
596  }
597 
598  //------------------------------------------------------------------------------------------------
599  void SetJoinRoom(Room room)
600  {
601  m_JoinRoom = room;
602  }
603 
604  //------------------------------------------------------------------------------------------------
605  void SetServerBrowser(ServerBrowserMenuUI serverBrowser)
606  {
607  m_ServerBrowser = serverBrowser;
608 
609  if (m_ServerBrowser)
610  {
611  m_ServerBrowser.m_OnAutoRefresh.Remove(OnServerBrowserAutoRefresh);
612  m_ServerBrowser.m_OnAutoRefresh.Insert(OnServerBrowserAutoRefresh);
613  }
614  }
615 
616  //------------------------------------------------------------------------------------------------
617  void SetModManager(SCR_RoomModsManager modManager)
618  {
619  m_ModManager = modManager;
620  }
621 
622 };
623 
624 //------------------------------------------------------------------------------------------------
627 {
628  // Basic states
629  SEARCHING_SERVER, // Basic msg dialog with loading
630  JOIN, // Basic msg dialog with loading
631  REJOIN, // Rejoin dialog if client is kicked
632 
633  // Basic issues states
634  SERVER_NOT_FOUND, // Basic error msg dialog
635  VERSION_MISMATCH, // Basic error msg dialog
637 
638  // Content states
639  CHECKING_CONTENT, // Basic msg dialog with loading
640  MODS_TO_UPDATE, // Download confirm dialog
641  MODS_DOWNLOADING, // Progress bar dialog
642  MOD_RESTRICTED, // Basic error msg dialog
643  MOD_UGC_PRIVILEGE_MISSING, // Client can't use user generated content
644 
645  // Additional actions states
646  QUEUE_WAITING, // Dialog with player count
647  PASSWORD_REQUIRED, // Editbox dialog
648 
649  // Issues
650  SERVICE_DOWN, // Backend service is not available
651  SERVER_DOWN, // Joined server is not running
653 
654  // Warnings
656 
657  // Fillers
658  UNRELATED_DOWNLOADS_CANCELING // Waiting for all downloads to cancel
659 };
660 
661 //------------------------------------------------------------------------------------------------
664 {
668 };
MOD_RESTRICTED
@ MOD_RESTRICTED
Definition: SCR_ServerBrowserDialogManager.c:642
UNRELATED
@ UNRELATED
Definition: SCR_ServerBrowserDialogManager.c:666
SERVICE_DOWN
@ SERVICE_DOWN
Definition: SCR_ServerBrowserDialogManager.c:650
GetGame
ArmaReforgerScripted GetGame()
Definition: game.c:1424
SERVER_NOT_FOUND
@ SERVER_NOT_FOUND
Definition: SCR_ServerBrowserDialogManager.c:634
SCR_EditboxDialogUi
Configurable editbox dialog base.
Definition: SCR_EditboxDialogUI.c:3
SEARCHING_SERVER
@ SEARCHING_SERVER
Definition: SCR_ServerBrowserDialogManager.c:629
ALL
@ ALL
Definition: SCR_ServerBrowserDialogManager.c:665
SCR_ServerBrowserDialogManager
Definition: SCR_ServerBrowserDialogManager.c:7
EJoinDialogState
EJoinDialogState
Enum for tracking current state of joining process.
Definition: SCR_ServerBrowserDialogManager.c:626
CHECKING_CONTENT
@ CHECKING_CONTENT
Definition: SCR_ServerBrowserDialogManager.c:639
MOD_UGC_PRIVILEGE_MISSING
@ MOD_UGC_PRIVILEGE_MISSING
Definition: SCR_ServerBrowserDialogManager.c:643
SCR_ServerJoinDownloadsConfirmationDialog
Dialog to cancel downloads during to server joining.
Definition: SCR_WorkshopUiCommon.c:727
UNRELATED_DOWNLOADS_CANCELING
@ UNRELATED_DOWNLOADS_CANCELING
Definition: SCR_ServerBrowserDialogManager.c:658
REJOIN
@ REJOIN
Definition: SCR_ServerBrowserDialogManager.c:631
MultiplayerDialogUI
Definition: MultiplayerDialogUI.c:2
SCR_ServerDetailsDialog
Definition: SCR_ServerDetailsDialog.c:7
SCR_ErrorDialog
Definition: SCR_ErrorDialog.c:2
SCR_WorkshopItemAction
Definition: SCR_WorkshopItemAction.c:16
REQUIRED
@ REQUIRED
Definition: SCR_ServerBrowserDialogManager.c:667
HIGH_PING_SERVER
@ HIGH_PING_SERVER
Definition: SCR_ServerBrowserDialogManager.c:655
SCR_ReportedAddonsDialog
Show list of reported mods and provide option to cancel reports.
Definition: SCR_ReportedAddonsDialog.c:3
ScriptInvokerVoid
ScriptInvokerBase< ScriptInvokerVoidMethod > ScriptInvokerVoid
Definition: SCR_ScriptInvokerHelper.c:9
SCR_RoomModsManager
Definition: SCR_RoomModsManager.c:27
SCR_ConfigurableDialogUi
Definition: SCR_ConfigurableDialogUI.c:13
JOIN
@ JOIN
Definition: SCR_ServerBrowserDialogManager.c:630
VERSION_MISMATCH
@ VERSION_MISMATCH
Definition: SCR_ServerBrowserDialogManager.c:635
type
EDamageType type
Definition: SCR_DestructibleTreeV2.c:32
data
Get all prefabs that have the spawner data
Definition: SCR_EntityCatalogManagerComponent.c:305
MODS_TO_UPDATE
@ MODS_TO_UPDATE
Definition: SCR_ServerBrowserDialogManager.c:640
SERVER_DOWN
@ SERVER_DOWN
Definition: SCR_ServerBrowserDialogManager.c:651
JOIN_FAILED
@ JOIN_FAILED
Definition: SCR_ServerBrowserDialogManager.c:636
SCR_EJoinDownloadsConfirmationDialogType
SCR_EJoinDownloadsConfirmationDialogType
Enum for confirmation dialogs that guide the player through the download processes required to join t...
Definition: SCR_ServerBrowserDialogManager.c:663
SCR_DownloadManager
Definition: SCR_DownloadManager.c:20
QUEUE_WAITING
@ QUEUE_WAITING
Definition: SCR_ServerBrowserDialogManager.c:646
ServerBrowserMenuUI
Definition: ServerBrowserMenuUI.c:10
ScriptInvokerRoom
ScriptInvokerBase< ScriptInvokerRoomMethod > ScriptInvokerRoom
Definition: ServerBrowserMenuUI.c:8
PASSWORD_REQUIRED
@ PASSWORD_REQUIRED
Definition: SCR_ServerBrowserDialogManager.c:647
SCR_InputButtonComponent
Definition: SCR_InputButtonComponent.c:1
MODS_DOWNLOADING
@ MODS_DOWNLOADING
Definition: SCR_ServerBrowserDialogManager.c:641
BACKEND_TIMEOUT
@ BACKEND_TIMEOUT
Definition: SCR_ServerBrowserDialogManager.c:652