Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
SCR_LoadoutRequestUIComponent.c
Go to the documentation of this file.
3 {
4  [Attribute("LoadoutList", desc: "List for available player's loadouts' buttons")]
5  protected string m_sLoadoutList;
6  protected GridLayoutWidget m_wLoadoutList;
7 
8  [Attribute("LoadoutPreview")]
9  protected string m_sLoadoutPreview;
10  protected Widget m_wLoadoutPreview;
11 
12  [Attribute("LoadoutIcon")]
13  protected string m_sLoadoutIcon;
14  protected ImageWidget m_wLoadoutIcon;
15 
16  [Attribute("LoadoutName")]
17  protected string m_sLoadoutName;
18  protected TextWidget m_wLoadoutName;
19 
20  [Attribute("{39D815C843414C76}UI/layouts/Menus/DeployMenu/LoadoutButton.layout", desc: "Layout for loadout button, has to have SCR_LoadoutButton attached to it.")]
21  protected ResourceName m_sLoadoutButton;
22 
23  [Attribute("Selector")]
24  protected string m_sLoadoutSelector;
25  protected Widget m_wLoadoutSelector;
26 
27  [Attribute("LoadoutSelectorRoot")]
28  protected string m_sRoot;
29 
30  protected SCR_LoadoutGallery m_LoadoutSelector;
31 
32  protected SCR_LoadoutManager m_LoadoutManager;
33  protected SCR_PlayerLoadoutComponent m_PlyLoadoutComp;
34  protected SCR_LoadoutPreviewComponent m_PreviewComp;
35  protected SCR_ArsenalManagerComponent m_ArsenalManagerComp;
36  protected SCR_PlayerFactionAffiliationComponent m_PlyFactionAffilComp;
37  protected IEntity m_PreviewedEntity;
38 
39  protected Widget m_wLoadouty;
40  protected Widget m_wSupplies;
41  protected RichTextWidget m_wSuppliesText;
42 
43  protected const int LOADOUTS_PER_ROW = 2;
44 
45  protected ref ScriptInvokerInt m_OnPlayerEntryFocused;
46  protected ref ScriptInvokerWidget m_OnPlayerEntryFocusLost;
47 
48  //------------------------------------------------------------------------------------------------
49  override void HandlerAttached(Widget w)
50  {
51  super.HandlerAttached(w);
52  m_wRoot = w.FindAnyWidget(m_sRoot);
53 
54  m_LoadoutManager = GetGame().GetLoadoutManager();
55  if (!m_LoadoutManager)
56  {
57  Print("Loadout manager is missing in the world! Deploy menu won't work correctly.", LogLevel.ERROR);
58  return;
59  }
60 
61  if (m_LoadoutManager)
62  m_LoadoutManager.GetOnMappedPlayerLoadoutInfoChanged().Insert(OnLoadoutsChanged); // todo@lk: update loadout list
63 
64  m_wLoadoutIcon = ImageWidget.Cast(w.FindAnyWidget(m_sLoadoutIcon));
65  m_wLoadoutName = TextWidget.Cast(w.FindAnyWidget(m_sLoadoutName));
66  m_wLoadoutList = GridLayoutWidget.Cast(w.FindAnyWidget(m_sLoadoutList));
67 
68  m_wLoadouty = w.FindAnyWidget("Loadouty");
69 
70  m_wExpandButtonName = TextWidget.Cast(w.FindAnyWidget(m_sExpandButtonName));
71  m_wExpandButtonIcon = ImageWidget.Cast(w.FindAnyWidget(m_sExpandButtonIcon));
72  m_wExpandButton = w.FindAnyWidget(m_sExpandButton);
73 
74  SCR_ArsenalManagerComponent.GetArsenalManager(m_ArsenalManagerComp);
75  if (m_ArsenalManagerComp)
76  m_ArsenalManagerComp.GetOnLoadoutUpdated().Insert(UpdateLoadouts);
77 
78  if (m_wExpandButton && m_wExpandButton.IsVisible())
79  {
81  expandBtn.m_OnClicked.Insert(ToggleCollapsed);
82  GetOnListCollapse().Insert(OnListExpand);
83  }
84 
85  m_wLoadoutSelector = w.FindAnyWidget(m_sLoadoutSelector);
86  if (m_wLoadoutSelector)
87  m_LoadoutSelector = SCR_LoadoutGallery.Cast(m_wLoadoutSelector.FindHandler(SCR_LoadoutGallery));
88 
89  if (m_LoadoutSelector)
90  {
91  m_LoadoutSelector.GetOnLoadoutClicked().Insert(RequestPlayerLoadout);
92  m_LoadoutSelector.GetOnLoadoutHovered().Insert(SetLoadoutPreview);
93  }
94 
95  m_wLoadoutPreview = w.FindAnyWidget(m_sLoadoutPreview);
96  if (m_wLoadoutPreview)
97  m_PreviewComp = SCR_LoadoutPreviewComponent.Cast(m_wLoadoutPreview.FindHandler(SCR_LoadoutPreviewComponent));
98 
99  PlayerController pc = GetGame().GetPlayerController();
100  if (pc)
101  {
104  if (GetPlayerLoadout())
105  {
106  if (m_wExpandButtonName)
107  m_wExpandButtonName.SetText(GetPlayerLoadout().GetLoadoutName());
108  SetLoadoutPreview(GetPlayerLoadout());
109  }
110  }
111 
112  if (m_wLoadouty)
113  m_wSupplies = m_wLoadouty.FindAnyWidget("w_Supplies");
114 
115  if (m_wSupplies)
116  {
117  m_wSuppliesText = RichTextWidget.Cast(m_wSupplies.FindAnyWidget("SuppliesText"));
118  m_wSupplies.SetVisible(!m_wSuppliesText.GetText().IsEmpty());
119  }
120  }
121 
122  protected override void ToggleCollapsed()
123  {
124  if (m_wExpandButton && m_wExpandButton.IsVisible())
125  {
126  bool visible = !IsExpanded();
127  SetExpanded(visible);
128  GetOnListCollapse().Invoke(this, visible);
129  }
130  }
131 
132  override void SetExpanded(bool expanded)
133  {
134  m_wLoadouty.SetVisible(expanded);
135  }
136 
137  protected override bool IsExpanded()
138  {
139  return m_wLoadouty.IsVisible();
140  }
141 
142  protected void OnLoadoutsChanged(SCR_BasePlayerLoadout loadout, int newCount)
143  {
144  }
145 
147  void OnPlayerLoadoutAssigned(SCR_PlayerLoadoutComponent component)
148  {
149  foreach (SCR_DeployButtonBase btn : m_aButtons)
150  {
151  SCR_LoadoutButton loadoutBtn = SCR_LoadoutButton.Cast(btn);
152  if (loadoutBtn && loadoutBtn.GetPlayerId() == component.GetPlayerId())
153  {
154  loadoutBtn.SetLoadout(component.GetLoadout());
155  break;
156  }
157  }
158  }
159 
161  void ShowAvailableLoadouts(Faction faction)
162  {
163  if (!m_LoadoutManager)
164  return;
165 
166  ResetPlayerLoadoutPreview();
167 
168  if (!m_LoadoutSelector)
169  return;
170 
171  m_LoadoutSelector.ClearAll();
172 
173  array<ref SCR_BasePlayerLoadout> availableLoadouts = {};
174  m_LoadoutManager.GetPlayerLoadoutsByFaction(faction, availableLoadouts);
175 
176  SCR_PlayerArsenalLoadout arsenalLoadout = null;
177  foreach (SCR_BasePlayerLoadout loadout : availableLoadouts)
178  {
179  if (!loadout.IsLoadoutAvailableClient())
180  continue;
181 
182  if (loadout.IsInherited(SCR_PlayerArsenalLoadout))
183  arsenalLoadout = SCR_PlayerArsenalLoadout.Cast(loadout);
184 
185  m_LoadoutSelector.AddItem(loadout, loadout.IsLoadoutAvailableClient());
186  }
187 
188  if (!availableLoadouts.IsEmpty())
189  {
190  if (arsenalLoadout && GetPlayerLoadout() != arsenalLoadout)
191  m_PlyLoadoutComp.RequestLoadout(arsenalLoadout);
192  else if (!GetPlayerLoadout())
193  m_PlyLoadoutComp.RequestLoadout(availableLoadouts[0]);
194  }
195 
196  RefreshLoadoutPreview();
197  }
198 
200  void ShowPlayerLoadouts(array<int> playerIds, int slotCount = -1)
201  {
202  if (!m_wLoadoutList || !m_LoadoutManager)
203  return;
204 
205  SetListVisible(true);
206 
207  ClearLoadoutList();
208 
209  if (!playerIds || playerIds.IsEmpty())
210  return;
211 
212  for (int i = 0; i < playerIds.Count(); ++i)
213  {
214  int pid = playerIds[i];
215  SCR_BasePlayerLoadout playerLoadout = m_LoadoutManager.GetPlayerLoadout(pid);
216  CreatePlayerLoadoutButton(playerLoadout, pid, i);
217  }
218 
219  for (int i = playerIds.Count(); i < slotCount; ++i)
220  {
221  CreateEmptySlot(i);
222  }
223  }
224 
226  protected void ClearLoadoutList()
227  {
228  Widget child = m_wLoadoutList.GetChildren();
229  while (child)
230  {
231  Widget sibling = child.GetSibling();
232  child.RemoveFromHierarchy();
233  child = sibling;
234  }
235 
236  m_aButtons.Clear();
237  }
238 
239  // Create a non-interactive loadout button with player's name.
240  protected void CreatePlayerLoadoutButton(SCR_BasePlayerLoadout loadout, int pid, int order)
241  {
242  Widget name = GetGame().GetWorkspace().CreateWidgets(m_sLoadoutButton, m_wLoadoutList);
243  SCR_LoadoutButton buttonComp = SCR_LoadoutButton.Cast(name.FindHandler(SCR_LoadoutButton));
244 
245  buttonComp.SetLoadout(loadout);
246  buttonComp.SetPlayer(pid);
247  buttonComp.SetSelected(pid == GetGame().GetPlayerController().GetPlayerId());
248  buttonComp.SetEnabled(loadout.IsLoadoutAvailableClient());
249 
250  buttonComp.m_OnFocus.Insert(OnButtonFocused);
251  buttonComp.m_OnFocusLost.Insert(OnButtonFocusLost);
252  buttonComp.m_OnMouseEnter.Insert(OnButtonFocused);
253  buttonComp.m_OnMouseLeave.Insert(OnMouseLeft);
254 
255  int cnt = m_aButtons.Insert(buttonComp);
256 
257  GridSlot.SetColumn(name, order % LOADOUTS_PER_ROW);
258  GridSlot.SetRow(name, order / LOADOUTS_PER_ROW);
259  }
260 
262  protected void CreateEmptySlot(int order)
263  {
264  Widget slot = GetGame().GetWorkspace().CreateWidgets(m_sLoadoutButton, m_wLoadoutList);
265  SCR_DeployButtonBase handler = SCR_DeployButtonBase.Cast(slot.FindHandler(SCR_DeployButtonBase));
266 
267  handler.SetShouldUnlock(false);
268  m_aButtons.Insert(handler);
269 
270  GridSlot.SetColumn(slot, order % LOADOUTS_PER_ROW);
271  GridSlot.SetRow(slot, order / LOADOUTS_PER_ROW);
272  }
273 
274  protected void UpdateLoadouts(int playerID, bool hasValidLoadout)
275  {
276  array<ref SCR_BasePlayerLoadout> availableLoadouts = {};
277  m_LoadoutManager.GetPlayerLoadoutsByFaction(m_PlyFactionAffilComp.GetAffiliatedFaction(), availableLoadouts);
278  foreach (SCR_BasePlayerLoadout loadout : availableLoadouts)
279  {
280  SCR_LoadoutButton loadoutBtn = m_LoadoutSelector.GetButtonForLoadout(loadout);
281  if (loadoutBtn)
282  loadoutBtn.SetEnabled(loadout.IsLoadoutAvailableClient());
283  }
284  }
285 
287  protected void RequestPlayerLoadout(SCR_LoadoutButton loadoutBtn)
288  {
289  SCR_BasePlayerLoadout loadout = loadoutBtn.GetLoadout();
290  if (!loadout)
291  return;
292 
293  Lock(loadoutBtn);
294  SetLoadoutPreview(loadout);
295 
296  if (m_wExpandButtonName)
297  m_wExpandButtonName.SetText(loadout.GetLoadoutName());
298 
299  m_PlyLoadoutComp.RequestLoadout(loadout);
300  }
301 
302  protected void OnButtonFocused(Widget w)
303  {
304  SCR_LoadoutButton loadoutBtn = SCR_LoadoutButton.Cast(w.FindHandler(SCR_LoadoutButton));
305  if (!loadoutBtn)
306  return;
307 
308  m_OnButtonFocused.Invoke();
309 
310  if (m_OnPlayerEntryFocused)
311  m_OnPlayerEntryFocused.Invoke(loadoutBtn.GetPlayerId());
312  }
313 
314  //------------------------------------------------------------------------------------------------
315  protected void OnButtonFocusLost(Widget w)
316  {
317  if (m_OnPlayerEntryFocusLost)
318  m_OnPlayerEntryFocusLost.Invoke(w);
319  }
320 
321  //------------------------------------------------------------------------------------------------
322  ScriptInvokerInt GetOnPlayerEntryFocused()
323  {
324  if (!m_OnPlayerEntryFocused)
325  m_OnPlayerEntryFocused = new ScriptInvokerInt();
326 
327  return m_OnPlayerEntryFocused;
328  }
329 
330  //------------------------------------------------------------------------------------------------
331  ScriptInvokerWidget GetOnPlayerEntryFocusLost()
332  {
333  if (!m_OnPlayerEntryFocusLost)
334  m_OnPlayerEntryFocusLost = new ScriptInvokerWidget();
335 
336  return m_OnPlayerEntryFocusLost;
337  }
338 
340  void RequestRandomLoadout(Faction faction)
341  {
342  array<ref SCR_BasePlayerLoadout> loadouts = {};
343  m_LoadoutManager.GetPlayerLoadoutsByFaction(faction, loadouts);
344  SCR_BasePlayerLoadout rndLoadout = loadouts.GetRandomElement();
345  m_PlyLoadoutComp.RequestLoadout(loadouts.GetRandomElement());
346  GetGame().GetCallqueue().CallLater(SetLoadoutPreview, 10, false, rndLoadout);
347  }
348 
349  void SetSelected(SCR_PlayerLoadoutComponent component)
350  {
351  foreach (SCR_DeployButtonBase btn : m_aButtons)
352  {
353  SCR_LoadoutButton loadoutBtn = SCR_LoadoutButton.Cast(btn);
354  if (loadoutBtn)
355  loadoutBtn.SetSelected(loadoutBtn.GetPlayerId() == component.GetPlayerId());
356  }
357 
358  if (m_LoadoutSelector)
359  m_LoadoutSelector.SetSelected(component.GetLoadout());
360  }
361 
362  //----------------------------------------------------------------------------------------------
363  protected float GetLoadoutCost()
364  {
365  //~ TODO: It should know the BASE (Or ResourceComponent of spawnpoint)
366  return SCR_ArsenalManagerComponent.GetLoadoutCalculatedSupplyCost(m_PlyLoadoutComp.GetLoadout(), true, -1, SCR_Faction.Cast(m_PlyFactionAffilComp.GetAffiliatedFaction()), null, null);
367  }
368 
370  protected void SetLoadoutPreview(SCR_BasePlayerLoadout loadout)
371  {
372  if (m_PreviewComp && loadout)
373  {
374  if (m_wLoadoutName)
375  m_wLoadoutName.SetText(loadout.GetLoadoutName());
376  m_PreviewedEntity = m_PreviewComp.SetPreviewedLoadout(loadout);
377  m_wLoadoutPreview.SetVisible(true);
378 
379  if (m_wSuppliesText)
380  {
381  float supplyCost = GetLoadoutCost();
382  m_wSuppliesText.SetText(SCR_ResourceSystemHelper.SuppliesToString(supplyCost));
383  m_wSupplies.SetVisible(supplyCost > 0);
384  }
385  }
386  }
387 
389  void RefreshLoadoutPreview()
390  {
392  if (!loadout)
393  return;
394 
395  SetLoadoutPreview(loadout);
396 
397  if (m_LoadoutSelector)
398  m_LoadoutSelector.SetSelected(loadout);
399 
400  if (m_wLoadoutName && loadout)
401  m_wLoadoutName.SetText(loadout.GetLoadoutName());
402 
403  if (m_wExpandButtonName && loadout)
404  m_wExpandButtonName.SetText(loadout.GetLoadoutName());
405 
406  if (m_wExpandButtonIcon && loadout)
407  m_wExpandButtonIcon.LoadImageTexture(0, GetUIInfo(loadout).GetIconPath());
408 
409  if (m_wSuppliesText && loadout)
410  {
411  int supplyCost = GetLoadoutCost();
412 
413  m_wSuppliesText.SetText(SCR_ResourceSystemHelper.SuppliesToString(supplyCost));
414  m_wSupplies.SetVisible(supplyCost > 0);
415  }
416  }
417 
419  SCR_BasePlayerLoadout GetPlayerLoadout()
420  {
421  return m_PlyLoadoutComp.GetAssignedLoadout();
422  }
423 
425  protected void AddLoadout(SCR_BasePlayerLoadout loadout)
426  {
427  if (loadout)
428  m_LoadoutSelector.AddItem(loadout);
429  }
430 
431  protected void ResetPlayerLoadoutPreview()
432  {
433  if (m_wLoadoutPreview)
434  m_wLoadoutPreview.SetVisible(false);
435 
436  if (m_wLoadoutName)
437  m_wLoadoutName.SetText("#AR-DeployMenu_SelectLoadout");
438  }
439 
440  void SetListVisible(bool visible)
441  {
442  if (m_wLoadoutList)
443  m_wLoadoutList.SetVisible(visible);
444  }
445 
446  void ShowLoadoutSelector(bool show)
447  {
448  m_wRoot.SetVisible(show);
449  }
450 
452  {
453  if (!loadout)
454  return null;
455 
456  Resource res = Resource.Load(loadout.GetLoadoutResource());
457  IEntityComponentSource source = SCR_BaseContainerTools.FindComponentSource(res, "SCR_EditableCharacterComponent");
458  if (source)
459  {
460  BaseContainer container = source.GetObject("m_UIInfo");
461  SCR_EditableEntityUIInfo info = SCR_EditableEntityUIInfo.Cast(BaseContainerTools.CreateInstanceFromContainer(container));
462 
463  return info;
464  }
465 
466  return null;
467  }
468 
469  override void SetListWidget(Widget list)
470  {
471  if (m_wLoadoutList)
472  {
473 // SetListVisible(false);
474  ClearLoadoutList();
475  }
476 
477  m_wLoadoutList = GridLayoutWidget.Cast(list);
478  }
479 
480  bool IsSelectorFocused()
481  {
482  return m_LoadoutSelector && m_LoadoutSelector.GetFocused();
483  }
484 };
485 
486 //------------------------------------------------------------------------------------------------
488 {
489  [Attribute("PlayerName")]
490  protected string m_sPlayerName;
491  protected TextWidget m_wPlayerName;
492 
493  [Attribute("Leader")]
494  protected string m_sLeaderText;
495  protected Widget m_wLeaderText;
496 
497  protected SCR_BasePlayerLoadout m_Loadout;
498  protected int m_iPlayerId = -1;
499 
500  //------------------------------------------------------------------------------------------------
501  override void HandlerAttached(Widget w)
502  {
503  super.HandlerAttached(w);
504 
505  m_wPlayerName = TextWidget.Cast(w.FindAnyWidget(m_sPlayerName));
506  m_wLeaderText = w.FindAnyWidget(m_sLeaderText);
507  m_wElements = w.FindAnyWidget(m_sElements);
508 
509  if (m_wLeaderText)
510  SCR_AIGroup.GetOnPlayerLeaderChanged().Insert(OnLeaderChanged);
511  }
512 
513  override void HandlerDeattached(Widget w)
514  {
515  super.HandlerDeattached(w);
516 
517  SCR_AIGroup.GetOnPlayerLeaderChanged().Remove(OnLeaderChanged);
518  }
519 
521  void SetLoadout(SCR_BasePlayerLoadout loadout)
522  {
523  m_Loadout = loadout;
524  if (!loadout)
525  return;
526 
527  if (GetUIInfo())
528  SetImage(GetUIInfo().GetIconPath());
529  }
530 
532  void SetPlayer(int pid)
533  {
534  m_iPlayerId = pid;
535  SetPlayerName(GetGame().GetPlayerManager().GetPlayerName(pid));
536 
537  SCR_GroupsManagerComponent groupManager = SCR_GroupsManagerComponent.GetInstance();
538  if (!groupManager)
539  return;
540 
541  SCR_AIGroup group = groupManager.GetPlayerGroup(pid);
542  if (!group)
543  return;
544 
545  SetIsLeader(pid == m_iPlayerId && group.IsPlayerLeader(pid));
546  }
547 
549  protected void OnLeaderChanged(int groupId, int pid)
550  {
551  SCR_GroupsManagerComponent groupManager = SCR_GroupsManagerComponent.GetInstance();
552  if (!groupManager)
553  return;
554 
555  SCR_AIGroup group = groupManager.FindGroup(groupId);
556  if (!group)
557  return;
558 
559  if (pid == m_iPlayerId)
560  SetIsLeader(group.IsPlayerLeader(pid));
561  }
562 
563  protected void SetIsLeader(bool leader)
564  {
565  if (m_wLeaderText)
566  m_wLeaderText.SetVisible(leader);
567  }
568 
573  int GetPlayerId()
574  {
575  return m_iPlayerId;
576  }
577 
578  protected void SetPlayerName(string name)
579  {
580  if (m_wPlayerName)
581  m_wPlayerName.SetText(name);
582  }
583 
588  SCR_BasePlayerLoadout GetLoadout()
589  {
590  return m_Loadout;
591  }
592 
597  SCR_EditableEntityUIInfo GetUIInfo()
598  {
599  Resource res = Resource.Load(m_Loadout.GetLoadoutResource());
600  IEntityComponentSource source = SCR_BaseContainerTools.FindComponentSource(res, "SCR_EditableCharacterComponent");
601  if (source)
602  {
603  BaseContainer container = source.GetObject("m_UIInfo");
604  SCR_EditableEntityUIInfo info = SCR_EditableEntityUIInfo.Cast(BaseContainerTools.CreateInstanceFromContainer(container));
605 
606  return info;
607  }
608 
609  return null;
610  }
611 };
SCR_PlayerLoadoutComponent
Definition: SCR_PlayerLoadoutComponent.c:16
SCR_LoadoutRequestUIComponent
Component responsible for requesting and visualization of available loadouts in deploy menu.
Definition: SCR_LoadoutRequestUIComponent.c:2
SetImage
void SetImage(BackendImage image)
image can be null
Definition: SCR_BackendImageComponent.c:36
m_wRoot
protected Widget m_wRoot
Definition: SCR_ScenarioFrameworkLayerTaskDefend.c:59
SCR_ResourceSystemHelper
Definition: SCR_ResourceSystemHelper.c:1
ScriptInvokerInt
ScriptInvokerBase< ScriptInvokerIntMethod > ScriptInvokerInt
Definition: SCR_ScriptInvokerHelper.c:24
Lock
void Lock(Managed source, bool auth)
Definition: SCR_SpawnLockComponent.c:35
GetGame
ArmaReforgerScripted GetGame()
Definition: game.c:1424
SCR_EditableEntityUIInfo
Definition: SCR_EditableEntityUIInfo.c:2
loadout
string loadout
Definition: SCR_ArsenalManagerComponent.c:2
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition: SCR_RespawnBriefingComponent.c:17
SCR_LoadoutManager
void SCR_LoadoutManager(IEntitySource src, IEntity parent)
Definition: SCR_LoadoutManager.c:500
GetPlayerController
proto external PlayerController GetPlayerController()
Definition: SCR_PlayerDeployMenuHandlerComponent.c:307
m_PlyFactionAffilComp
protected SCR_PlayerFactionAffiliationComponent m_PlyFactionAffilComp
Definition: SCR_DeployMenuBase.c:119
SCR_LoadoutButton
Definition: SCR_LoadoutRequestUIComponent.c:487
m_PlyLoadoutComp
protected SCR_PlayerLoadoutComponent m_PlyLoadoutComp
Definition: SCR_DeployMenuBase.c:121
SCR_DeployRequestUIBaseComponent
Definition: SCR_DeployRequestUIBaseComponent.c:2
Attribute
typedef Attribute
Post-process effect of scripted camera.
SCR_ButtonBaseComponent
Base class for any button, regardless its own content.
Definition: SCR_ButtonBaseComponent.c:3
m_iPlayerId
protected int m_iPlayerId
Definition: SCR_CallsignCharacterComponent.c:14
m_wLoadoutIcon
ImageWidget m_wLoadoutIcon
Definition: SCR_PlayerListMenu.c:25
SCR_BaseContainerTools
Definition: SCR_BaseContainerTools.c:3
Faction
Definition: Faction.c:12
SCR_GroupsManagerComponent
void SCR_GroupsManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition: SCR_GroupsManagerComponent.c:1320
SCR_PlayerFactionAffiliationComponent
Definition: SCR_PlayerFactionAffiliationComponent.c:16
m_sPlayerName
protected string m_sPlayerName
Definition: BanCommands.c:56
ScriptInvokerWidget
ScriptInvokerBase< ScriptInvokerWidgetMethod > ScriptInvokerWidget
Definition: SCR_ScriptInvokerHelper.c:106
SCR_AIGroup
Definition: SCR_AIGroup.c:68
m_wExpandButton
protected Widget m_wExpandButton
Definition: SCR_UITaskManagerComponent.c:20
SCR_PlayerArsenalLoadout
Definition: SCR_PlayerArsenalLoadout.c:2
SCR_LoadoutPreviewComponent
Definition: SCR_LoadoutPreviewComponent.c:1
SCR_BasePlayerLoadout
Definition: SCR_BasePlayerLoadout.c:2
m_aButtons
protected ref array< ref SCR_BrowserTooltipButtonPresetData > m_aButtons
Definition: SCR_BrowserHoverTooltipComponent.c:9
SCR_Faction
Definition: SCR_Faction.c:6
SCR_DeployButtonBase
Definition: SCR_DeployRequestUIBaseComponent.c:141
GetPlayerId
proto external int GetPlayerId()
Definition: SCR_SpawnRequestComponent.c:39