Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_GroupMenu.c
Go to the documentation of this file.
2{
3 protected static ref ScriptInvoker s_OnGroupMenuShow = new ScriptInvoker();
4
5 //------------------------------------------------------------------------------------------------
10
11 //------------------------------------------------------------------------------------------------
12 override void OnMenuOpen()
13 {
14 super.OnMenuOpen();
15
17 if (cancel)
18 cancel.m_OnActivated.Insert(Close);
19
22 }
23
24 //------------------------------------------------------------------------------------------------
25 override void OnMenuShow()
26 {
27 super.OnMenuShow();
28
29 s_OnGroupMenuShow.Invoke();
30
31 UpdateTabs();
32 }
33
34 //------------------------------------------------------------------------------------------------
35 override void OnMenuClose()
36 {
37 super.OnMenuClose();
38
41 }
42
43 // TODO: move tab related stuff to super menu component and use an enum instead of magic numbers
44 //------------------------------------------------------------------------------------------------
46 {
47 SCR_GroupsManagerComponent groupsManager = SCR_GroupsManagerComponent.GetInstance();
48 if (!groupsManager)
49 return;
50
51 int playerID = GetGame().GetPlayerController().GetPlayerId();
52
53 SCR_AIGroup group = groupsManager.GetPlayerGroup(playerID);
54 if (!group)
55 return;
56
57 if (!groupsManager.IsPlayerInAnyGroup(playerID) || !group.IsPlayerLeader(playerID))
58 {
59 m_SuperMenuComponent.GetTabView().EnableTab(1, false, true);
60 return;
61 }
62
63 m_SuperMenuComponent.GetTabView().EnableTab(1, true, true);
64
65 array<int> requesters = {};
66 group.GetRequesterIDs(requesters);
67
68 if (requesters.IsEmpty())
69 {
70 m_SuperMenuComponent.GetTabView().ShowIcon(1, false);
71 m_SuperMenuComponent.GetTabView().EnableTab(1, false, true);
72 }
73 else
74 {
75 m_SuperMenuComponent.GetTabView().ShowIcon(1, true);
76 m_SuperMenuComponent.GetTabView().EnableTab(1, true, true);
77
78 Widget notificationIcon = m_SuperMenuComponent.GetTabView().GetEntryIcon(1);
79 if (!notificationIcon)
80 return;
81
82 TextWidget text = TextWidget.Cast(notificationIcon.FindAnyWidget("NotificationCount"));
83 if (!text)
84 return;
85
86 if (requesters.Count() > 99)
87 text.SetText("99+");
88 else
89 text.SetText(requesters.Count().ToString());
90 }
91 }
92}
ArmaReforgerScripted GetGame()
Definition game.c:1398
void SCR_GroupsManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Widget GetRootWidget()
proto native void Close()
bool IsPlayerLeader(int playerID)
int GetRequesterIDs(out array< int > valueArray)
static ScriptInvoker GetOnPlayerLeaderChanged()
static ScriptInvoker GetOnJoinPrivateGroupRequest()
override void OnMenuOpen()
static ScriptInvoker GetOnGroupMenuShown()
override void OnMenuClose()
override void OnMenuShow()
static ref ScriptInvoker s_OnGroupMenuShow
static SCR_InputButtonComponent GetInputButtonComponent(string name, notnull Widget parent, bool searchAllChildren=true)
SCR_SuperMenuComponent m_SuperMenuComponent
ScriptInvokerBase< func > ScriptInvoker
Definition tools.c:134