Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
SCR_CampaignMapUIBase.c
Go to the documentation of this file.
1 //------------------------------------------------------------------------------------------------
3 {
4  [Attribute("{14E86B20D0ED993F}UI/layouts/Campaign/ServiceContainer.layout")]
5  protected ResourceName m_sServiceElement;
6 
7  [Attribute("{94F1E2223D7E0588}UI/layouts/Campaign/ServiceHint.layout")]
8  protected ResourceName m_sServiceHint;
9 
10  [Attribute("{CA8B528037B6831A}UI/Textures/InventoryIcons/Supplies_icon_UI.edds")]
11  protected ResourceName m_sSupplyIcon;
12 
13  protected static const float OPACITY_DISABLED = 0.5;
14  protected static const float OPACITY_UNSELECTED = 0.9;
15 
16  /*
17  note(koudelkaluk): base name and service container offsets
18  are currently hardcoded in SetBaseImage() based on the icon size.
19  Once this system starts utilizing SCR_MilitarySymbolUIComponent,
20  this whole thing can be redone in a better way.
21  */
22  protected int m_iServicesPadding = 0;
23  protected float m_fNameOffset = 2;
24 
25  protected ref map<EEditableEntityLabel, SCR_ServicePointDelegateComponent> m_mServices = new map<EEditableEntityLabel, SCR_ServicePointDelegateComponent>(); // true if built
26  protected ref map<Widget, SCR_MapUITask> m_mTasks = new map<Widget, SCR_MapUITask>();
27 
28  protected SCR_CampaignMilitaryBaseComponent m_Base;
29  protected string m_sFactionKey;
30  protected SCR_CampaignFaction m_PlayerFaction;
31  protected SCR_CampaignMobileAssemblyStandaloneComponent m_MobileAssembly;
32  protected SCR_ResourceComponent m_ResourceComponent;
33  protected SCR_ResourceConsumer m_ResourceConsumer;
34  protected ref SCR_ResourceSystemSubscriptionHandleBase m_ResourceSubscriptionHandleConsumer;
35  protected RplId m_ResourceInventoryPlayerComponentRplId;
36 
37  protected SizeLayoutWidget m_wImageOverlay;
38  protected Widget m_wBaseFrame;
39  protected Widget m_wBaseIcon;
40  protected Widget m_wBaseOverlay;
41  protected Widget m_wInfoOverlay;
42  protected Widget m_wServices;
43  protected TextWidget m_w_NameDialog;
44  protected static Widget m_wServiceHint;
45  protected Widget m_w_ServicesOverlay;
46 
47  protected TextWidget m_wBaseName;
48  protected TextWidget m_wCallsignName;
49  protected TextWidget m_wBaseNameDialog;
50  protected TextWidget m_wCallsignNameDialog;
51  protected TextWidget m_wSuppliesText
52  protected Widget m_wInfoText;
53  protected Widget m_wAntennaImg;
54 
55  protected int m_iBaseSize = 80; // Maximum base icon size - it needs to be divisible by 4, otherwise the texture will look blurred
56  protected int m_iDefBaseSize = 46; // Default base size
57  protected int m_iMaxBaseSize = 80; // Maximum size of the base, everything is calculated from this value, changing it will change the scale of all the steps
58  protected int m_iDefHQSize = 88;
59  protected int m_iDefRelaySize = 64;
60 
61  protected ImageWidget m_wLocalTask;
62  protected LocalizedString m_sAssembly = "#AR-Vehicle_MobileAssembly_Name";
63 
64  static ref ScriptInvoker Event_OnIconUpdated = new ScriptInvoker();
65 
66  protected ref ScriptInvoker m_OnBaseSelected = new ScriptInvoker();
67  protected ref ScriptInvoker m_OnMapIconEnter;
68  protected ref ScriptInvoker m_OnMapIconClick;
69 
70  bool m_bHighlighted;
71  bool m_bIsAnyElementHovered;
72  bool m_bIsAnyElementClicked;
73  protected bool m_bServicesShown;
74  protected bool m_bCanRespawn;
75  protected bool m_bIsRespawnMenu;
76  protected bool m_bIsEditor;
77  protected bool m_bCanPlaySounds = true;
78 
79  protected SCR_SpawnPoint m_SpawnPoint;
80 
81  //------------------------------------------------------------------------------------------------
82  ScriptInvoker GetOnMapIconEnter()
83  {
84  if (!m_OnMapIconEnter)
85  m_OnMapIconEnter = new ScriptInvoker();
86 
87  return m_OnMapIconEnter;
88  }
89 
90  //------------------------------------------------------------------------------------------------
91  ScriptInvoker GetOnMapIconClick()
92  {
93  if (!m_OnMapIconClick)
94  m_OnMapIconClick = new ScriptInvoker();
95 
96  return m_OnMapIconClick;
97  }
98 
99  //------------------------------------------------------------------------------------------------
100  override bool OnClick(Widget w, int x, int y, int button)
101  {
102  if (m_OnMapIconClick)
103  m_OnMapIconClick.Invoke();
104 
105  CheckIfCanRespawn();
106 
107  if (!m_bIsAnyElementHovered && m_bCanRespawn && m_bIsRespawnMenu)
108  {
109  m_bIsAnyElementClicked = true;
110  SelectIcon();
111  m_bIsAnyElementClicked = false;
112  m_wHighlightImg.SetVisible(false);
113  }
114  return false;
115  }
116 
117  //------------------------------------------------------------------------------------------------
118  override void SelectIcon(bool invoke = true)
119  {
120  if (!m_wSelectImg)
121  return;
122 
123  if (s_SelectedElement && s_SelectedElement != this)
124  {
125  s_SelectedElement.Select(false);
126  SCR_UISoundEntity.SoundEvent(SCR_SoundEvent.SOUND_MAP_CLICK_POINT_ON);
127  }
128 
129  Select(invoke);
130 
131  m_wSelectImg.SetVisible(true);
132  if (m_wGradient)
133  m_wGradient.SetVisible(true);
134 
135  if (m_bIsSelected && invoke)
136  m_Parent.OnSpawnPointSelected(m_SpawnPoint.GetRplId());
137  }
138 
139  //------------------------------------------------------------------------------------------------
140  void FlashBaseIcon(Faction faction = null, bool changeToDefault = false)
141  {
142  // Flash the icon only if base faction is known to player's faction
143  // Otherwise just switch to default
144  if (m_Base.IsHQRadioTrafficPossible(SCR_FactionManager.SGetLocalPlayerFaction()))
145  {
146  if (changeToDefault)
147  SetBaseIconFactionColor(m_Base.GetCampaignFaction());
148  else
149  SetBaseIconFactionColor(faction);
150  }
151  else
152  {
153  if (!changeToDefault)
154  return;
155 
156  SetBaseIconFactionColor(null);
157  }
158  }
159 
160  //------------------------------------------------------------------------------------------------
161  override bool OnMouseEnter(Widget w, int x, int y)
162  {
163  if (m_wImageOverlay && w == m_wImageOverlay && !m_wBaseOverlay.IsEnabled())
164  m_wBaseOverlay.SetEnabled(true); // enable the underlying button, allowing click
165 
167  if (tm && !tm.IsTaskListOpen())
168  {
169  GetGame().GetWorkspace().SetFocusedWidget(w);
170  }
171 
172  if (m_OnMapIconEnter)
173  m_OnMapIconEnter.Invoke();
174 
175  super.OnMouseEnter(w, x, y);
176 
177  if (w.Type() == ButtonWidget)
178  AnimExpand();
179 
180  if (m_Base)
181  {
182  m_Base.GetMapDescriptor().OnIconHovered(this, true);
183 
184  if (m_wServices && m_Base && m_Base.GetType() == SCR_ECampaignBaseType.BASE && m_Base.IsHQRadioTrafficPossible(SCR_CampaignFaction.Cast(SCR_FactionManager.SGetLocalPlayerFaction())))
185  {
186  m_wServices.SetVisible(!m_mServices.IsEmpty());
187  m_wServices.SetEnabled(!m_mServices.IsEmpty());
188  }
189  }
190 
191  if (m_wInfoText)
192  {
193  m_wInfoText.SetVisible(true);
194  m_wRoot.SetZOrder(1);
195  }
196 
197  if (m_MobileAssembly){
198  m_MobileAssembly.OnIconHovered(this, true);
199  m_wServices.SetVisible(true);
200  m_w_ServicesOverlay.SetVisible(false);
201  m_wRoot.SetZOrder(1);
202  }
203 
204  if (!m_bCanRespawn && m_bIsRespawnMenu)
205  return false;
206 
207  return false;
208  }
209 
210  //------------------------------------------------------------------------------------------------
211  override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
212  {
213  super.OnMouseLeave(w, enterW, x, y);
214 
215  AnimCollapse();
216 
217  if(m_wInfoText)
218  {
219  m_wInfoText.SetVisible(false);
220  m_wRoot.SetZOrder(0);
221  }
222 
223  if (m_Base)
224  m_Base.GetMapDescriptor().OnIconHovered(this, false);
225 
226  if (m_MobileAssembly)
227  m_MobileAssembly.OnIconHovered(this, false);
228  m_wInfoText.SetVisible(false);
229 
230  if (!m_bCanRespawn && m_bIsRespawnMenu)
231  return false;
232 
233  if (m_wServices)
234  m_wServices.SetEnabled(false);
235 
236  if (m_wLocalTask.IsEnabled())
237  m_wLocalTask.SetVisible(true);
238 
239  if (enterW)
240  m_bCanPlaySounds = ScriptedWidgetEventHandler.Cast(w.FindHandler(SCR_CampaignMapUIService)) == null;
241  else
242  m_bCanPlaySounds = true;
243 
244  if (RenderTargetWidget.Cast(enterW) && m_wBaseOverlay.IsEnabled())
245  {
246  m_wBaseOverlay.SetEnabled(false); // disable the base widget when not hovered, deactivating the button
247  m_bCanPlaySounds = true;
248  }
249 
250  return false;
251  }
252 
253  //------------------------------------------------------------------------------------------------
254  protected void SelectBase()
255  {
256  if (s_SelectedElement && s_SelectedElement != this)
257  s_SelectedElement.Select(false);
258 
259  Select();
260  }
261 
262  //------------------------------------------------------------------------------------------------
263  protected void OnLeave()
264  {
265  }
266 
267  //------------------------------------------------------------------------------------------------
268  override void AnimExpand()
269  {
270  if (!m_bIsAnyElementHovered && m_bCanPlaySounds)
271  {
272  switch (m_eIconType)
273  {
274  case SCR_EIconType.NONE:
275  {
276  } break;
277 
278  case SCR_EIconType.BASE:
279  {
280  if (!m_bIsAnyElementClicked)
281  PlayHoverSound(m_sSoundBase);
282  } break;
283 
284  case SCR_EIconType.ENEMY_BASE:
285  {
286  PlayHoverSound(m_sSoundEnemyBase);
287  } break;
288 
289  case SCR_EIconType.RELAY:
290  {
291  PlayHoverSound(m_sSoundRelay);
292  } break;
293  }
294  }
295 
296  int paddingLeft = 0;
297  int paddingRight = 0;
298  int paddingBottom = 0;
299  int expand = -5;
300  if (m_mTasks.IsEmpty())
301  paddingRight = 0;
302  if (m_mServices.IsEmpty())
303  paddingLeft = 0;
304 
305  if (m_wServices)
306  {
307  AnimateWidget.Opacity(m_wServices, 1, ANIM_SPEED);
308  }
309 
310  m_wHighlightImg.SetVisible(true);
311  if (m_wGradient)
312  m_wGradient.SetVisible(true);
313  }
314 
315  //------------------------------------------------------------------------------------------------
316  override void AnimCollapse()
317  {
318  m_wHighlightImg.SetVisible(false);
319  if (m_wGradient && !m_bIsSelected)
320  m_wGradient.SetVisible(false);
321 
322  if (m_wServices)
323  {
324  AnimateWidget.Opacity(m_wServices, 0, ANIM_SPEED);
325  }
326  }
327 
328  //------------------------------------------------------------------------------------------------
329  void ShowServiceHint(string name, string text, bool show, int suppliesAmount = -1, int suppliesMax = -1)
330  {
331  int mx;
332  int my;
333 
334  WidgetManager.GetMousePos(mx, my);
335 
336  mx = GetGame().GetWorkspace().DPIUnscale(mx);
337  my = GetGame().GetWorkspace().DPIUnscale(my);
338 
339  if (!m_wServiceHint)
340  {
341  SCR_MapEntity entity = SCR_MapEntity.GetMapInstance();
342  m_wServiceHint = entity.GetMapMenuRoot().FindAnyWidget("ServiceHintRoot");
343  }
344 
345  if (show)
346  {
347  FrameSlot.SetPos(m_wServiceHint, mx, my);
348  TextWidget.Cast(m_wServiceHint.FindAnyWidget("ServiceName")).SetTextFormat(name);
349  Widget resupplyText = m_wServiceHint.FindAnyWidget("ResupplyText");
350  if (resupplyText)
351  resupplyText.SetVisible(false);
352 
353  if (suppliesAmount > -1 && suppliesMax > -1)
354  {
355  TextWidget serviceText = TextWidget.Cast(m_wServiceHint.FindAnyWidget("ServiceText"));
356  if (serviceText)
357  serviceText.SetTextFormat(text, suppliesAmount, suppliesMax);
358 
359  if (resupplyText)
360  resupplyText.SetVisible(suppliesAmount < suppliesMax);
361  }
362  else
363  {
364  TextWidget serviceText = TextWidget.Cast(m_wServiceHint.FindAnyWidget("ServiceText"));
365  if (serviceText)
366  serviceText.SetTextFormat(text);
367  }
368  }
369 
370  m_wServiceHint.SetVisible(show)
371  }
372 
373  //------------------------------------------------------------------------------------------------
374  override void HandlerAttached(Widget w)
375  {
376  super.HandlerAttached(w);
377 
378 // SCR_SelectSpawnPointSubMenu.Event_OnSpawnPointChanged.Insert(OnSelected);
379 
380  m_wImageOverlay = SizeLayoutWidget.Cast(w.FindAnyWidget("SizeBaseIcon"));
381  m_wBaseOverlay = w.FindAnyWidget("ImageOverlay");
382  m_wInfoOverlay = w.FindAnyWidget("InfoOverlay");
383  m_wServices = w.FindAnyWidget("ServicesFrame");
384  m_w_ServicesOverlay = w.FindAnyWidget("ServicesSizeOverlay");
385 
386  m_wBaseFrame = w.FindAnyWidget("BaseFrame");
387  m_wBaseIcon = Widget.Cast(w.FindAnyWidget("SideSymbol"));
388 
389  m_wBaseName = TextWidget.Cast(w.FindAnyWidget("Name"));
390  m_wCallsignName = TextWidget.Cast(w.FindAnyWidget("Callsign"));
391 
392  m_wBaseNameDialog = TextWidget.Cast(w.FindAnyWidget("m_w_NameDialog"));
393  m_wCallsignNameDialog = TextWidget.Cast(w.FindAnyWidget("Callsign-Dialog"));
394 
395 
396  m_wInfoText = Widget.Cast(w.FindAnyWidget("Info"));
397  m_wAntennaImg = w.FindAnyWidget("AntenaOff");
398 
399  m_wLocalTask = ImageWidget.Cast(w.FindAnyWidget("LocalTask"));
400 
401  SCR_GameModeCampaign gameMode = SCR_GameModeCampaign.GetInstance();
402  if (gameMode)
403  {
404  SCR_CampaignMobileAssemblyStandaloneComponent.s_OnUpdateRespawnCooldown.Insert(SetIconInfoText);
405  SCR_CampaignMobileAssemblyStandaloneComponent.s_OnSpawnPointOwnerChanged.Insert(UpdateAssemblyIcon);
406  }
407 
408  m_bIsRespawnMenu = SCR_DeployMenuMain.GetDeployMenu() != null;
409  m_bIsEditor = SCR_EditorManagerEntity.IsOpenedInstance(false);
410  SCR_MapEntity.GetOnMapClose().Insert(OnMapCloseInvoker);
411  m_PlayerFaction = SCR_CampaignFaction.Cast(SCR_FactionManager.SGetLocalPlayerFaction());
412 
413  if (m_wInfoText)
414  m_wSuppliesText = TextWidget.Cast(m_wInfoText.FindAnyWidget("Supplies"));
415  }
416 
417  //------------------------------------------------------------------------------------------------
418  void OnMapCloseInvoker(MapConfiguration config)
419  {
420  RemoveHint();
421  }
422 
423  //------------------------------------------------------------------------------------------------
424  void RemoveHint()
425  {
426  if (m_wServiceHint)
427  m_wServiceHint.RemoveFromHierarchy();
428  m_wServiceHint = null;
429  }
430 
431  //------------------------------------------------------------------------------------------------
432  override void HandlerDeattached(Widget w)
433  {
434  RemoveHint();
435 
436  if (SCR_GameModeCampaign.GetInstance())
437  {
438  SCR_CampaignMobileAssemblyStandaloneComponent.s_OnUpdateRespawnCooldown.Remove(SetIconInfoText);
439  SCR_CampaignMobileAssemblyStandaloneComponent.s_OnSpawnPointOwnerChanged.Remove(UpdateAssemblyIcon);
440  }
441 
442  SCR_MapEntity.GetOnMapClose().Remove(OnMapCloseInvoker);
443 
445  m_ResourceComponent.TEMP_GetOnInteractorReplicated().Remove(SetIconInfoText);
446 
448  }
449 
450  //------------------------------------------------------------------------------------------------
451  protected void FocusOnBase(SCR_SpawnPoint sp)
452  {
453  OnLeave();
454 
455  if (!sp)
456  return;
457 
458  IEntity parent = sp.GetParent();
459  if (!parent)
460  return;
461 
462  if (m_MobileAssembly)
463  {
464  SelectBase();
465  }
466  else
467  {
469 
470  if (base && base == m_Base)
471  SelectBase();
472  }
473  }
474 
475  //------------------------------------------------------------------------------------------------
476  protected void OnSelected(SCR_SpawnPoint sp)
477  {
478  if (!sp)
479  return;
480  if (sp == m_SpawnPoint)
481  {
482  m_wRoot.SetZOrder(1);
483  m_wSelectImg.SetVisible(true);
484  if (m_wGradient)
485  m_wGradient.SetVisible(true);
486  }
487  else
488  {
489  m_wRoot.SetZOrder(0);
490  m_wSelectImg.SetVisible(false);
491  if (m_wGradient)
492  m_wGradient.SetVisible(false);
493  }
494  }
495 
496  //------------------------------------------------------------------------------------------------
497  protected void ShowServices(bool show)
498  {
499  m_wServices.SetVisible(show);
500  }
501 
502  //------------------------------------------------------------------------------------------------
503  protected void ShowBase(bool show)
504  {
505  m_wBaseFrame.SetVisible(show);
506  }
507 
508  //------------------------------------------------------------------------------------------------
509  void SetIconInfoText()
510  {
511  if (!m_wInfoText)
512  return;
513 
514  if (m_MobileAssembly)
515  m_MobileAssembly.UpdateRespawnCooldown(m_wInfoText);
516 
517  if (!m_Base)
518  return;
519 
520  Faction playerFaction = SCR_FactionManager.SGetLocalPlayerFaction();
521 
522  if (!playerFaction)
523  return;
524 
525  Faction baseFaction = m_Base.GetFaction();
526  ChimeraWorld world = GetGame().GetWorld();
527  float respawnCooldown = Math.Ceil(m_Base.GetRespawnTimestamp().DiffMilliseconds(world.GetServerTimestamp()) * 0.001);
528  string shownRespawnCooldown;
529  int d, h, m, s;
530  string sStr;
531 
532  TextWidget respawn = TextWidget.Cast(m_wInfoText.FindAnyWidget("Respawn"));
533  RichTextWidget freq = RichTextWidget.Cast(m_wInfoText.FindAnyWidget("Freq"));
534  TextWidget supplies = TextWidget.Cast(m_wInfoText.FindAnyWidget("Supplies"));
535  ImageWidget respawnImg = ImageWidget.Cast(m_wInfoText.FindAnyWidget("RespawnIMG"));
536  ImageWidget freqImg = ImageWidget.Cast(m_wInfoText.FindAnyWidget("FreqIMG"));
537  ImageWidget suppliesImg = ImageWidget.Cast(m_wInfoText.FindAnyWidget("SuppliesIMG"));
538 
539  // Cooldown in progress, update UI timer
540  if (m_Base.GetSupplies() >= m_Base.GetBaseSpawnCost() && respawnCooldown > 0 && baseFaction && baseFaction == playerFaction)
541  {
542  shownRespawnCooldown = "#AR-Campaign_MobileAssemblyCooldown";
543  SCR_DateTimeHelper.GetDayHourMinuteSecondFromSeconds(respawnCooldown, d, h, m, s);
544  sStr = string.ToString(s);
545 
546  if (s < 10)
547  sStr = "0" + sStr;
548  }
549  else
550  {
551  respawnImg.SetVisible(false);
552  }
553 
554  // Compose proper map info based on the base type and ownership
555  LocalizedString suppliesString;
556  string suppliesInfo;
557  int income;
558 
559  if (m_Base.GetType() == SCR_ECampaignBaseType.BASE)
560  {
561  supplies.SetVisible(true);
562  suppliesImg.SetVisible(true);
563 
564  if (baseFaction && baseFaction == playerFaction)
565  {
566  suppliesString = "#AR-Campaign_BaseSuppliesAmount";
567  suppliesInfo = m_Base.GetSupplies().ToString();
568  income = m_Base.GetSuppliesIncome();
569 
570  if (!m_Base.IsHQ() && !shownRespawnCooldown.IsEmpty())
571  {
572  respawn.SetVisible(true);
573  respawnImg.SetVisible(true);
574  }
575  }
576  else
577  {
578  suppliesString = "#AR-Campaign_BaseSuppliesUnknown";
579  }
580  }
581 
582  ResourceName imageset = m_Base.GetBuildingIconImageset();
583 
584  if (!imageset.IsEmpty())
585  {
586  respawnImg.LoadImageFromSet(0, imageset, "RespawnBig");
587  suppliesImg.LoadImageFromSet(0, imageset, "SuppliesBig");
588  }
589 
590  if (income > 0)
591  supplies.SetTextFormat(suppliesString + " (+%3)", suppliesInfo, m_Base.GetSuppliesMax(), income);
592  else
593  supplies.SetTextFormat(suppliesString, suppliesInfo, m_Base.GetSuppliesMax());
594 
595  respawn.SetTextFormat(shownRespawnCooldown, m, sStr);
596 
597  /*if (m_wSuppliesText)
598  UpdateResources();*/
599 
600  if (suppliesImg)
601  suppliesImg.LoadImageTexture(0, m_sSupplyIcon);
602  }
603 
604  //------------------------------------------------------------------------------------------------
605  void InitServices()
606  {
607  Widget w = m_wServices.FindAnyWidget("ServicesSizeOverlay"); //GetGame().GetWorkspace().CreateWidgets(m_sServiceElement, m_wServices);
608  if (!w)
609  return;
610 
611  m_wServices.SetVisible(false);
612  m_wServices.SetOpacity(0);
613 
614  int cnt = m_mServices.Count();
615  for (int serviceId = 0; serviceId < 8; ++serviceId)
616  {
617  string btnName = "Service" + serviceId.ToString();
618  Widget serviceBtn = w.FindAnyWidget(btnName);
619 
620  if (serviceId >= cnt)
621  {
622  serviceBtn.SetVisible(false);
623  continue;
624  }
625 
626  SCR_CampaignMapUIService handler = SCR_CampaignMapUIService.Cast(serviceBtn.FindHandler(SCR_CampaignMapUIService));
627  if (handler)
628  {
629  handler.SetParent(this);
630  handler.SetService(m_mServices.GetKey(serviceId), m_mServices.GetElement(serviceId));
631  }
632  }
633  }
634 
635  //------------------------------------------------------------------------------------------------
636  protected void InitBaseIcon()
637  {
638  if (!m_Base)
639  return;
640 
641  SCR_Faction f;
642  if (m_bIsEditor || m_Base.IsHQ() || (m_PlayerFaction && m_Base.IsHQRadioTrafficPossible(m_PlayerFaction)))
643  {
644  f = m_Base.GetCampaignFaction();
645  }
646 
647  Widget w = m_wRoot.FindAnyWidget("rootWidget");
648  if (w)
649  FrameSlot.SetAlignment(w, 0.5, m_fNameOffset);
650 
651  SetIconFaction(f);
652  SetIconName(m_Base.GetBaseName());
653  SetBaseType(m_Base.GetType());
654  SetBaseImage();
655  ChangeBaseIconSize();
656  }
657 
658  //------------------------------------------------------------------------------------------------
659  protected void UpdateResources()
660  {
662  return;
663 
664  m_wSuppliesText.SetText(string.ToString(m_ResourceConsumer.GetAggregatedResourceValue()));
665  }
666 
667  //------------------------------------------------------------------------------------------------
668  void UpdateBaseIcon(int id)
669  {
670  SCR_GameModeCampaign campaign = SCR_GameModeCampaign.GetInstance();
671 
672  if (!campaign)
673  return;
674 
675  string f = m_sFactionNeutral;
676 
677  if (id == 1)
678  f = campaign.GetFactionKeyByEnum(SCR_ECampaignFaction.OPFOR);
679  else if (id == 2)
680  f = campaign.GetFactionKeyByEnum(SCR_ECampaignFaction.BLUFOR);
681  else if (id == 3)
682  f = campaign.GetFactionKeyByEnum(SCR_ECampaignFaction.INDFOR);
683 
684  m_sFactionKey = f;
685  SetBaseImage();
686  }
687 
688  //------------------------------------------------------------------------------------------------
689  protected void UpdateAssemblyIcon()
690  {
691  if (!m_MobileAssembly)
692  return;
693 
694  SetIconName(m_sAssembly);
695  SetIconFaction(m_MobileAssembly.GetParentFaction());
696 
697  string img = string.Format("%1_%2", m_sFactionKey, m_sMobileAssembly);
698  string selectionImg = string.Format("%1_%2_%3", m_sFactionKey, m_sRelay, m_sSelection);
699  SetImage(img);
700  }
701 
702  //------------------------------------------------------------------------------------------------
703  protected void SetIconFaction(Faction faction)
704  {
705  if (faction)
706  m_sFactionKey = faction.GetFactionKey();
707  else
708  m_sFactionKey = m_sFactionNeutral;
709  }
710 
711  //------------------------------------------------------------------------------------------------
712  protected void SetBaseImage()
713  {
714  string img;
715 
716  if (m_Base.GetType() == SCR_ECampaignBaseType.RELAY)
717  {
718  img = string.Format("%1_%2", m_sFactionKey, m_sRelay);
719  m_fNameOffset = 0.9;
720  }
721  else if (m_Base.IsHQ())
722  {
723  img = string.Format("%1_%2_%3", m_sFactionKey, m_sBase, "Main");
724  m_iServicesPadding = -10;
725  m_fNameOffset = 0.8;
726  }
727  else if (m_Base.IsControlPoint())
728  {
729  img = string.Format("%1_%2_%3", m_sFactionKey, m_sBase, "Major");
730  m_iServicesPadding = -5;
731  m_fNameOffset = 0.8;
732  }
733  else
734  {
735  img = string.Format("%1_%2_%3", m_sFactionKey, m_sBase, "Small");
736  m_fNameOffset = 0.3;
737  }
738 
739  if (img != string.Empty)
740  SetImage(img);
741  }
742 
743  //------------------------------------------------------------------------------------------------
744  void InitBase(SCR_CampaignMilitaryBaseComponent base)
745  {
746  m_Base = base;
747 
748  SetBaseServices(m_Base);
749  InitBaseIcon();
750  SetIconInfoText();
751  InitServices();
752  SCR_MapEntity.GetOnMapClose().Insert(OnMapClose);
753 
754  if (m_Base.GetType() != SCR_ECampaignBaseType.RELAY && !m_Base.IsHQ() && !m_Base.IsControlPoint())
755  m_wCallsignName.SetExactFontSize(18);
756 
757  SCR_CampaignMilitaryBaseMapDescriptorComponent descr = m_Base.GetMapDescriptor();
758 
759  if (!descr)
760  return;
761 
762  m_MapItem = descr.Item();
763  MapDescriptorProps props = m_MapItem.GetProps();
764  props.SetIconVisible(false);
765  props.SetTextVisible(false);
766  props.Activate(true);
767  props.SetGroupType(EMapDescriptorGroup.MDG_SEPARATE);
768 
769  if (!m_wSuppliesText)
770  return;
771 
772  IEntity owner = m_Base.GetOwner();
773 
774  if (!owner)
775  return;
776 
777  m_ResourceComponent = SCR_ResourceComponent.FindResourceComponent(owner);
778 
779  if (!m_ResourceComponent)
780  return;
781 
783 
784  if (!m_ResourceConsumer)
785  return;
786 
787  m_ResourceInventoryPlayerComponentRplId = Replication.FindId(SCR_ResourcePlayerControllerInventoryComponent.Cast(GetGame().GetPlayerController().FindComponent(SCR_ResourcePlayerControllerInventoryComponent)));
788  m_ResourceSubscriptionHandleConsumer = GetGame().GetResourceSystemSubscriptionManager().RequestSubscriptionListenerHandle(m_ResourceConsumer, m_ResourceInventoryPlayerComponentRplId);
789 
790  m_ResourceComponent.TEMP_GetOnInteractorReplicated().Insert(SetIconInfoText);
791  }
792 
793  //------------------------------------------------------------------------------------------------
794  void InitMobile(SCR_CampaignMobileAssemblyStandaloneComponent assembly)
795  {
796  m_MobileAssembly = assembly;
797  m_eIconType = SCR_EIconType.BASE;
798  UpdateAssemblyIcon();
799  SetIconInfoText();
800 
801  SCR_MapEntity.GetOnMapClose().Insert(OnMapClose);
802  SCR_SpawnPoint spawnpoint = SCR_SpawnPoint.Cast(m_MobileAssembly.GetOwner());
803  m_w_ServicesOverlay.SetVisible(false);
804  m_wServices.SetVisible(false);
805 
806  if (!spawnpoint)
807  {
808  m_w_ServicesOverlay.SetVisible(false);
809  return;
810  }
811 
812  SCR_MapDescriptorComponent descr = SCR_MapDescriptorComponent.Cast(spawnpoint.FindComponent(SCR_MapDescriptorComponent));
813  if (descr)
814  {
815  m_MapItem = descr.Item();
816  MapDescriptorProps props = m_MapItem.GetProps();
817  props.SetIconVisible(false);
818  props.SetTextVisible(false);
819  props.Activate(true);
820  props.SetGroupType(EMapDescriptorGroup.MDG_SEPARATE);
821  m_w_ServicesOverlay.SetVisible(false);
822  m_wServices.SetVisible(false);
823 
824  }
825  }
826 
827  //------------------------------------------------------------------------------------------------
828  protected void OnMapClose(MapConfiguration config)
829  {
830  if (m_Base)
831  m_Base.GetMapDescriptor().OnIconHovered(this, false);
832  else if (m_MobileAssembly)
833  m_MobileAssembly.OnIconHovered(this, false);
834  }
835 
836  //------------------------------------------------------------------------------------------------
837  protected void SetIconName(string name)
838  {
839  if (m_wBaseName)
840  {
841  m_wBaseName.SetText(name);
842  m_wBaseNameDialog.SetText(name);
843  m_sName = name;
844  }
845  if (m_wCallsignName)
846  {
847  string callsign;
848  if (m_Base)
849  callsign = m_Base.GetCallsignDisplayNameOnlyUC();
850 
851  m_wCallsignName.SetText(callsign);
852  m_wCallsignNameDialog.SetText(callsign);
853 
854  if (m_Base && m_Base.IsControlPoint())
855  {
856  m_wCallsignName.SetColorInt(Color.DARK_MAGENTA);
857  m_wCallsignNameDialog.SetColorInt(Color.DARK_MAGENTA);
858  }
859  }
860  }
861 
862  //------------------------------------------------------------------------------------------------
863  protected void CheckIfCanRespawn()
864  {
865  SCR_SpawnPoint spawnPoint;
866 
867  if (m_Base)
868  spawnPoint = m_Base.GetSpawnPoint();
869  if (m_MobileAssembly)
870  spawnPoint = SCR_SpawnPoint.Cast(m_MobileAssembly.GetOwner());
871 
872  if (!spawnPoint)
873  return;
874 
875  m_bCanRespawn = (m_PlayerFaction && m_PlayerFaction.GetFactionKey() == spawnPoint.GetFactionKey());// && SCR_SelectSpawnPointSubMenu.GetInstance() != null); @lk: why
876  }
877 
878  //------------------------------------------------------------------------------------------------
879  protected void SetBaseType(SCR_ECampaignBaseType type)
880  {
881  SCR_MapEntity mapEnt = SCR_MapEntity.GetMapInstance();
882  int curLayer;
883  if (mapEnt)
884  curLayer = mapEnt.GetLayerIndex();
885  ChangeNameSizeOnLayerChange(curLayer);
886  SCR_MapEntity.GetOnLayerChanged().Insert(ChangeNameSizeOnLayerChange);
887 
888  if (type == SCR_ECampaignBaseType.RELAY)
889  m_eIconType = SCR_EIconType.RELAY;
890  else
891  {
892  if (m_PlayerFaction && m_PlayerFaction.GetFactionKey() != m_sFactionKey)
893  m_eIconType = SCR_EIconType.ENEMY_BASE;
894  else
895  m_eIconType = SCR_EIconType.BASE;
896  }
897  }
898 
899  //------------------------------------------------------------------------------------------------
900  protected void SetBaseServices(SCR_CampaignMilitaryBaseComponent base)
901  {
902  array<SCR_ServicePointComponent> available = {};
903  array<SCR_ServicePointDelegateComponent> built = {};
904  array<int> allServices = {};
905 
906  SCR_Enum.GetEnumValues(SCR_EServicePointType, allServices);
907 
908  if (base)
909  base.GetServiceDelegates(built);
910 
911  foreach (SCR_EServicePointType type : allServices)
912  {
913  m_mServices.Set(type, null);
914  }
915 
916  foreach (SCR_ServicePointDelegateComponent delegate : built)
917  {
918  m_mServices.Set(delegate.GetType(), delegate);
919  }
920  }
921 
922  //------------------------------------------------------------------------------------------------
923  void ChangeBaseIconSize() // Function for getting base services count and setting base size according to the value
924  {
925  protected int m_iServicesLimit = 8; // Maximum amount of services - used as a max size for base icon resize.
926  protected int m_iServicesCount = 1; // Amount of services - it cannot be 0
927 
928  array<SCR_EServicePointType> checkedTypes =
929  {
930  SCR_EServicePointType.ARMORY,
931  SCR_EServicePointType.HELIPAD,
932  SCR_EServicePointType.BARRACKS,
933  SCR_EServicePointType.FUEL_DEPOT,
934  SCR_EServicePointType.RADIO_ANTENNA,
935  SCR_EServicePointType.FIELD_HOSPITAL,
936  SCR_EServicePointType.LIGHT_VEHICLE_DEPOT,
937  SCR_EServicePointType.HEAVY_VEHICLE_DEPOT
938  };
939 
940  foreach (SCR_EServicePointType type : checkedTypes)
941  {
942  if (m_Base.GetServiceDelegateByType(type))
943  m_iServicesCount++;
944  }
945 
946  if (m_iServicesCount > m_iServicesLimit)
947  return;
948 
949  if (m_Base.GetFaction() == m_PlayerFaction || m_wServices && m_Base.GetType() == SCR_ECampaignBaseType.BASE && m_Base.IsHQRadioTrafficPossible(SCR_CampaignFaction.Cast(SCR_FactionManager.SGetLocalPlayerFaction())))
950  {
951  if (m_Base.IsHQ())
952  {
953  m_iBaseSize = m_iDefHQSize;
954  m_wImageOverlay.SetWidthOverride(m_iBaseSize);
955  m_wImageOverlay.SetHeightOverride(m_iBaseSize);
956  return;
957  }
958 
959  if (m_Base.GetType() == SCR_ECampaignBaseType.RELAY)
960  {
961  m_iBaseSize = m_iDefRelaySize;
962  m_wImageOverlay.SetWidthOverride(m_iBaseSize);
963  m_wImageOverlay.SetHeightOverride(m_iBaseSize);
964  return;
965  }
966 
967  m_iBaseSize = Math.Round(m_iDefBaseSize + ((m_iMaxBaseSize - m_iDefBaseSize) / m_iServicesLimit) * m_iServicesCount); //Calculation of new base size
968  m_wImageOverlay.SetWidthOverride(m_iBaseSize);
969  m_wImageOverlay.SetHeightOverride(m_iBaseSize);
970  }
971  }
972 
973  //------------------------------------------------------------------------------------------------
974  void SetLocalTaskIcon(SCR_BaseTask task = null)
975  {
976  m_wLocalTask.SetEnabled(task != null);
977  m_wLocalTask.SetVisible(task != null);
978  if (!task)
979  return;
980  task.SetWidgetIcon(m_wLocalTask);
981  }
982 
983  //------------------------------------------------------------------------------------------------
984  override void ShowName(bool visible)
985  {
986  m_wBaseName.SetVisible(visible);
987  m_wCallsignName.SetVisible(visible);
988  m_wBaseNameDialog.SetVisible(visible);
989  // m_wCallsignNameDialog.SetVisible(visible);
990  }
991 
992  //------------------------------------------------------------------------------------------------
993  override vector GetPos()
994  {
995  if (m_Base)
996  return m_Base.GetOwner().GetOrigin();
997 
998  if (m_MobileAssembly)
999  return m_MobileAssembly.GetOwner().GetOrigin();
1000 
1001  return vector.Zero;
1002  }
1003 
1004  //------------------------------------------------------------------------------------------------
1005  void ChangeNameSize(bool visible)
1006  {
1007  Widget w = m_wRoot.FindAnyWidget("BaseNameFrame");
1008 
1009  if (visible){
1010  m_wCallsignName.SetExactFontSize(24);
1011  if (m_Base.GetType() != SCR_ECampaignBaseType.RELAY && !m_Base.IsHQ() && !m_Base.IsControlPoint())
1012  {
1013  m_fNameOffset = 0.3;
1014  m_wBaseName.SetVisible(true);
1015  m_wCallsignName.SetExactFontSize(18);
1016  }
1017 
1018  }
1019  else
1020  {
1021  m_wCallsignName.SetExactFontSize(18);
1022  if (m_Base.GetType() != SCR_ECampaignBaseType.RELAY && !m_Base.IsHQ() && !m_Base.IsControlPoint())
1023  {
1024  m_fNameOffset = 0.7;
1025  m_wBaseName.SetVisible(false);
1026  m_wCallsignName.SetExactFontSize(12);
1027  }
1028  }
1029  }
1030 
1031  //------------------------------------------------------------------------------------------------
1032  void ChangeNameSizeOnLayerChange(int layer)
1033  {
1034  ChangeNameSize(layer <= 3);
1035  }
1036 
1037  //------------------------------------------------------------------------------------------------
1038  string GetFactionKey()
1039  {
1040  return m_sFactionKey;
1041  }
1042  //------------------------------------------------------------------------------------------------
1043  Color GetFactionColor()
1044  {
1045  return GetColorForFaction(m_sFactionKey);
1046  }
1047  //------------------------------------------------------------------------------------------------
1049  {
1050  return m_Base;
1051  }
1052 
1053  //------------------------------------------------------------------------------------------------
1054  void SetBaseIconFactionColor(Faction faction)
1055  {
1056  if (!m_wBaseIcon)
1057  return;
1058 
1059  Color color;
1060 
1061  if (faction)
1062  color = faction.GetFactionColor();
1063  else
1064  color = GetColorForFaction("");
1065 
1066  m_wBaseIcon.SetColor(color);
1067  if (m_wGradient)
1068  m_wGradient.SetColor(color);
1069  }
1070 
1071  //------------------------------------------------------------------------------------------------
1072  override void SetImage(string image)
1073  {
1074  if (!m_wImage)
1075  return;
1076 
1077  if (!m_wBaseIcon)
1078  return;
1079 
1080  SCR_GameModeCampaign campaign = SCR_GameModeCampaign.GetInstance();
1081 
1082  if (!campaign)
1083  return;
1084 
1085  TStringArray strs = new TStringArray;
1086 
1087  image.Split("_", strs, true);
1088 
1089  Color factionColor = GetColorForFaction(m_sFactionKey);
1090  m_wBaseIcon.SetColor(factionColor);
1091  if (m_wGradient)
1092  m_wGradient.SetColor(factionColor);
1093 
1095  SCR_MilitarySymbol baseIcon = new SCR_MilitarySymbol();
1096  string selection;
1097  string highlight;
1098  SCR_SpawnPoint spawnPoint;
1099 
1100  switch (strs.Get(0))
1101  {
1102  case campaign.GetFactionKeyByEnum(SCR_ECampaignFaction.INDFOR):
1103  {
1104  baseIcon.SetIdentity(EMilitarySymbolIdentity.INDFOR);
1105  selection = "Neutral_Select";
1106  highlight = "Neutral_Installation_Focus_Land";
1107  m_wAntennaImg.SetVisible(false);
1108  m_w_NameDialog = TextWidget.Cast(m_wRoot.FindAnyWidget("m_w_NameDialog"));
1109  m_w_NameDialog.SetColor(Color.FromRGBA(0,177,79,255));
1110  break;
1111  }
1112  case campaign.GetFactionKeyByEnum(SCR_ECampaignFaction.OPFOR):
1113  {
1114  baseIcon.SetIdentity(EMilitarySymbolIdentity.OPFOR);
1115  selection = "Hostile_Select";
1116  highlight = "Hostile_Installation_Focus_Land";
1117  m_w_NameDialog = TextWidget.Cast(m_wRoot.FindAnyWidget("m_w_NameDialog"));
1118  m_w_NameDialog.SetColor(Color.FromRGBA(238,49,47,255));
1119  break;
1120  }
1121  case campaign.GetFactionKeyByEnum(SCR_ECampaignFaction.BLUFOR):
1122  {
1123  baseIcon.SetIdentity(EMilitarySymbolIdentity.BLUFOR);
1124  selection = "Friend_Select";
1125  highlight = "Friend_Installation_Focus_Land";
1126  image.Replace("US", "USSR");
1127  m_w_NameDialog = TextWidget.Cast(m_wRoot.FindAnyWidget("m_w_NameDialog"));
1128  m_w_NameDialog.SetColor(Color.FromRGBA(31,195,243,255));
1129  break;
1130  }
1131  case "Unknown":
1132  {
1133  baseIcon.SetIdentity(EMilitarySymbolIdentity.UNKNOWN);
1134  selection = "Unknown_Select";
1135  highlight = "Unknown_Installation_Focus_Land";
1136  m_wAntennaImg.SetVisible(false);
1137  m_w_NameDialog = TextWidget.Cast(m_wRoot.FindAnyWidget("m_w_NameDialog"));
1138  m_w_NameDialog.SetColor(Color.FromRGBA(249,210,103,255));
1139  break;
1140  }
1141  }
1142 
1143  switch (strs.Get(1))
1144  {
1145  case "Relay":
1146  {
1147  baseIcon.SetIcons(EMilitarySymbolIcon.RELAY);
1148  m_wImageOverlay.SetWidthOverride(m_iDefRelaySize);
1149  m_wImageOverlay.SetHeightOverride(m_iDefRelaySize);
1150  m_wAntennaImg.SetVisible(false);
1151  break;
1152  }
1153  case "Mobile":
1154  {
1155  baseIcon.SetIcons(EMilitarySymbolIcon.MOBILEHQ | EMilitarySymbolIcon.RELAY);
1156  spawnPoint = SCR_SpawnPoint.Cast(m_MobileAssembly.GetOwner());
1157  m_wAntennaImg.SetVisible(false);
1158  m_wImageOverlay.SetWidthOverride(m_iDefRelaySize);
1159  m_wImageOverlay.SetHeightOverride(m_iDefRelaySize);
1160  break;
1161  }
1162  default:
1163  {
1164  spawnPoint = m_Base.GetSpawnPoint();
1165  if (strs.Get(0) != "Unknown")
1166  {
1167  if (!m_Base.IsHQRadioTrafficPossible(m_Base.GetFaction(), SCR_ECampaignHQRadioComms.BOTH_WAYS) && m_Base.GetFaction() == m_PlayerFaction)
1168  {
1169  m_wAntennaImg.SetVisible(true);
1170  }
1171  else
1172  {
1173  m_wAntennaImg.SetVisible(false);
1174  }
1175  }
1176  if (strs.Get(2) == "Small")
1177  {
1178  m_wImageOverlay.SetWidthOverride(38);
1179  m_wImageOverlay.SetHeightOverride(38);
1180  }
1181  }
1182  }
1183 
1184  baseIcon.SetDimension(2);
1185  m_SymbolUI.Update(baseIcon);
1186 
1187  m_wHighlightImg.LoadImageFromSet(0, m_sImageSetARO, highlight);
1188  m_wSelectImg.LoadImageFromSet(0, m_sImageSetARO, selection);
1189 
1190  if (!spawnPoint)
1191  return;
1192 
1193  m_SpawnPoint = spawnPoint;
1194  m_bCanRespawn = (m_PlayerFaction && m_PlayerFaction.GetFactionKey() == spawnPoint.GetFactionKey());// && SCR_SelectSpawnPointSubMenu.GetInstance() != null); note@lk: why
1195 
1196  if (m_bCanRespawn)
1197  {
1198  if (strs.Get(1) == "Mobile")
1199  baseIcon.SetIcons(EMilitarySymbolIcon.RESPAWN | EMilitarySymbolIcon.MOBILEHQ);
1200  else
1201  baseIcon.SetIcons(EMilitarySymbolIcon.RESPAWN);
1202  }
1203 
1204  m_SymbolUI.Update(baseIcon);
1205  }
1206 
1207  override RplId GetSpawnPointId()
1208  {
1209  if (m_SpawnPoint)
1210  return m_SpawnPoint.GetRplId();
1211  return RplId.Invalid();
1212  }
1213 
1214  //------------------------------------------------------------------------------
1215  void SetAntennaIconVisible(bool visible)
1216  {
1217  m_wAntennaImg.SetVisible(visible);
1218  }
1219 
1220  //------------------------------------------------------------------------------------------------
1221  void ~SCR_CampaignMapUIBase()
1222  {
1223  s_SelectedElement = null;
1224  SCR_MapEntity.GetOnMapClose().Remove(OnMapClose);
1225  }
1226 };
SCR_CampaignMapUIService
Definition: SCR_CampaignMapUIService.c:2
ChimeraWorld
Definition: ChimeraWorld.c:12
m_ResourceConsumer
protected SCR_ResourceConsumer m_ResourceConsumer
Definition: SCR_BaseSupportStationComponent.c:114
SCR_MilitarySymbol
Definition: SCR_MilitarySymbol.c:2
SCR_Enum
Definition: SCR_Enum.c:1
SCR_ECampaignFaction
SCR_ECampaignFaction
Definition: SCR_CampaignFactionManager.c:130
m_wRoot
protected Widget m_wRoot
Definition: SCR_ScenarioFrameworkLayerTaskDefend.c:59
m_MapItem
protected MapItem m_MapItem
Definition: SCR_CampaignMobileAssemblyStandaloneComponent.c:14
SCR_UISoundEntity
Definition: SCR_UISoundEntity.c:7
SCR_EIconType
SCR_EIconType
Definition: SCR_MapUIElement.c:1
GetGame
ArmaReforgerScripted GetGame()
Definition: game.c:1424
m_PlayerFaction
protected SCR_CampaignFaction m_PlayerFaction
Definition: SCR_CampaignFastTravelComponent.c:44
EMapDescriptorGroup
EMapDescriptorGroup
Definition: EMapDescriptorGroup.c:15
SCR_SoundEvent
Definition: SCR_SoundEvent.c:1
SCR_CampaignMapUIBase
Definition: SCR_CampaignMapUIBase.c:2
SCR_SpawnPoint
Spawn point entity defines positions on which players can possibly spawn.
Definition: SCR_SpawnPoint.c:27
SCR_BaseTask
A base class for tasks.
Definition: SCR_BaseTask.c:8
SCR_ECampaignBaseType
SCR_ECampaignBaseType
Definition: SCR_CampaignMilitaryBaseComponent.c:2577
m_sFactionKey
protected FactionKey m_sFactionKey
Definition: SCR_ScenarioFrameworkLayerBase.c:25
GetPlayerController
proto external PlayerController GetPlayerController()
Definition: SCR_PlayerDeployMenuHandlerComponent.c:307
SCR_UITaskManagerComponent
void SCR_UITaskManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition: SCR_UITaskManagerComponent.c:1096
SCR_GameModeCampaign
void SCR_GameModeCampaign(IEntitySource src, IEntity parent)
Definition: SCR_GameModeCampaign.c:1927
SCR_DateTimeHelper
Definition: SCR_DateTimeHelper.c:1
m_Base
protected SCR_CampaignMilitaryBaseComponent m_Base
Definition: SCR_CampaignServiceCompositionComponent.c:19
EMilitarySymbolIdentity
EMilitarySymbolIdentity
Definition: EMilitarySymbol.c:1
MapDescriptorProps
Definition: MapDescriptorProps.c:12
m_ResourceSubscriptionHandleConsumer
protected SCR_ResourceSystemSubscriptionHandleBase m_ResourceSubscriptionHandleConsumer
Definition: SCR_BaseSupportStationComponent.c:125
Attribute
typedef Attribute
Post-process effect of scripted camera.
EResourceType
EResourceType
Definition: SCR_ResourceContainer.c:1
m_wInfoOverlay
protected Widget m_wInfoOverlay
Definition: SCR_ScenarioFrameworkLayerTaskDefend.c:60
m_ResourceComponent
protected SCR_ResourceComponent m_ResourceComponent
Definition: SCR_CampaignBuildingProviderComponent.c:51
m_SpawnPoint
protected SCR_SpawnPoint m_SpawnPoint
Definition: SCR_CampaignMobileAssemblyComponent.c:28
SCR_MapEntity
Map entity.
Definition: SCR_MapEntity.c:20
Select
void Select(bool select)
Definition: SCR_InventoryHitZonePointUI.c:508
SCR_CampaignMapUIElement
Definition: SCR_CampaignMapUIElement.c:2
m_SymbolUI
protected SCR_MilitarySymbolUIComponent m_SymbolUI
Definition: SCR_GroupEditableEntityUIComponent.c:8
Faction
Definition: Faction.c:12
m_wImage
protected ImageWidget m_wImage
Definition: SCR_BackendImageComponent.c:248
SCR_CampaignFaction
Definition: SCR_CampaignFaction.c:2
type
EDamageType type
Definition: SCR_DestructibleTreeV2.c:32
SCR_ResourcePlayerControllerInventoryComponent
Definition: SCR_ResourcePlayerControllerInventoryComponent.c:20
SCR_FactionManager
void SCR_FactionManager(IEntitySource src, IEntity parent)
Definition: SCR_FactionManager.c:461
SCR_ResourceSystemSubscriptionHandleBase
Definition: SCR_ResourceSystemSubscriptionHandleBase.c:1
m_sName
protected LocalizedString m_sName
Definition: SCR_GroupIdentityComponent.c:19
SCR_MilitarySymbolUIComponent
Definition: SCR_MilitarySymbolUIComponent.c:1
LocalizedString
Definition: LocalizedString.c:21
SCR_EServicePointType
SCR_EServicePointType
Definition: SCR_ServicePointComponent.c:180
SCR_Faction
Definition: SCR_Faction.c:6
EMilitarySymbolIcon
EMilitarySymbolIcon
Definition: EMilitarySymbol.c:29
SCR_CampaignMilitaryBaseComponent
Definition: SCR_CampaignMilitaryBaseComponent.c:38
EResourceGeneratorID
EResourceGeneratorID
Definition: SCR_ResourceGenerator.c:1
SCR_EditorManagerEntity
Definition: SCR_EditorManagerEntity.c:26