Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
ServerBrowserFiltering.c
Go to the documentation of this file.
1 /*
2 File for server browser search filtering parameters class.
3 */
4 
5 //------------------------------------------------------------------------------------------------
7 class FilteredServerParams : RoomFilterBase
8 {
9  // Constant filter parameters
10  const int RECENT_SERVERS_SECONDS = 60 * 60 * 24 * 7;
11 
12  // Filter names
13  const string FILTER_FAVORITES = "favorites";
14  const string FILTER_RECENT_SERVERS = "oldestJoinInSeconds";
15  const string FILTER_MODDED = "modded";
16  const string FILTER_OFFICIAL = "official";
17  const string FILTER_COMMUNITY = "community";
18  const string FILTER_CROSS_PLAY = "gameClientFilter";
19  const string FILTER_VERSION = "gameVersion";
20 
21  const string SORT_ASCENDENT = "ascendent";
22  const string SORT_NAME = "SessionName";
23  const string SORT_PING = "Ping";
24 
25  // Categories
26  const string CATEGORY_PLAYERS = "Players";
27  const string CATEGORY_VERSION = "Version";
28 
29  // Filter values
30  const string VALUE_PLAYERS_MIN = "minPlayersPercent";
31  const string VALUE_PLAYERS_MAX = "maxPlayersPercent";
32  const string VALUE_PLAYERS_MIN_COUNT = "minPlayersCount";
33  const string VALUE_PLAYERS_MAX_COUNT = "maxPlayersCount";
34 
35  // Filters
36  protected ref SCR_FilterSet m_Filter;
37  protected ref array<SCR_FilterEntryRoom> m_aFiltersUncategorized = {};
38  protected ref array<ref SCR_FilterEntryRoom> m_aDefaultFilters = {};
39 
40  protected ref array<string> modIds = new array<string>;
41 
42  // Direct search
43  protected string text = "";
44 
45  protected string hostAddress = "";
46  protected string directJoinCode = "";
47 
48  // Scenario filter
49  protected string scenarioId = "";
50  protected string hostedScenarioModId = "";
51 
52  // Sorting order
53  protected string order = SORT_NAME;
54 
55  // Tabs filter
56  protected bool m_bOfficialOn = false;
57  protected bool m_bOfficialDisplay = false;
58  protected bool m_bFavoriteFilterOn = false;
59  protected bool m_bRecentlyPlayedOn = false;
60 
61  // Mutually exclusive filters
62  protected bool m_bModdedFilterSelected;
63  protected bool m_bCrossPlayFilterSelected;
64 
65  // Custom filter specific
66  protected int m_iSelectedTab = 0;
67  protected int lockedBoth = 0;
68  protected bool m_bUsePlayerLimit = true;
69 
70  //--------------------------------------------
71  // Overrided filter functions
72  //--------------------------------------------
73 
74  //------------------------------------------------------------------------------------------------
75  override void OnPack()
76  {
77  SCR_FilterEntryRoom official = FindFilterByInternalName(m_aDefaultFilters, FILTER_OFFICIAL);
78  SCR_FilterEntryRoom community = FindFilterByInternalName(m_aDefaultFilters, FILTER_COMMUNITY);
79 
80  official.SetSelected(false);
81  community.SetSelected(false);
82 
83  // Setup tab filters
84  if (m_bOfficialOn)
85  {
86  official.SetSelected(m_bOfficialDisplay);
87  community.SetSelected(!m_bOfficialDisplay);
88  }
89 
90  SCR_FilterEntryRoom favorite = FindFilterByInternalName(m_aDefaultFilters, FILTER_FAVORITES);
91  favorite.SetSelected(m_bFavoriteFilterOn);
92 
93  SCR_FilterEntryRoom recentlyPlayed = FindFilterByInternalName(m_aDefaultFilters, FILTER_RECENT_SERVERS);
94  recentlyPlayed.SetSelected(m_bRecentlyPlayedOn);
95 
96  // Modded
97  m_bModdedFilterSelected = false;
98  m_bCrossPlayFilterSelected = false;
99 
100  // Search bar
101  StoreString("text", text);
102 
103  // Handle players filters
104  //int min, max, minCount, maxCount = -1;
105  int min = -1;
106  int max = -1;
107  int minCount = -1;
108  int maxCount = -1;
109 
110  if (m_bUsePlayerLimit)
111  FormatePlayersFilters(min, max, minCount, maxCount);
112 
113  if (min != -1)
114  StoreInteger(VALUE_PLAYERS_MIN, min);
115  if (max != -1)
116  StoreInteger(VALUE_PLAYERS_MAX, max);
117  if (minCount != -1)
118  StoreInteger(VALUE_PLAYERS_MIN_COUNT, minCount);
119  if (maxCount != -1)
120  StoreInteger(VALUE_PLAYERS_MAX_COUNT, maxCount);
121 
122  // Game version
123  // Works togheter with "versionMatch"
124  SCR_FilterCategory version;
125  if (m_Filter)
126  version = m_Filter.FindFilterCategory(CATEGORY_VERSION);
127 
128  if (version && version.GetAnySelected())
129  StoreString(FILTER_VERSION, GetGame().GetBuildVersion());
130 
131  // Register filters
132  foreach (SCR_FilterEntryRoom filter : m_aFiltersUncategorized)
133  {
134  if (!filter)
135  continue;
136 
137  // Store boolean of selected
138  if (filter.GetSelected())
139  {
140  // Separated handling for players
141  if (m_Filter && filter.GetCategory() == m_Filter.FindFilterCategory(CATEGORY_PLAYERS))
142  continue;
143 
144  ActivateFilterValues(filter);
145  }
146  }
147 
148  if (!m_bCrossPlayFilterSelected)
149  StoreString(FILTER_CROSS_PLAY, "AnyCompatible");
150 
151  // Set search by mod id
152  if (modIds.IsEmpty())
153  UnregV("modIds");
154  else
155  RegV("modIds");
156  }
157 
158  //--------------------------------------------
159  // Public functions
160  //--------------------------------------------
161 
162  //------------------------------------------------------------------------------------------------
163  void AddModId(string sId)
164  {
165  modIds.Insert(sId);
166  }
167 
168  //------------------------------------------------------------------------------------------------
169  void ClearModIds()
170  {
171  modIds.Clear();
172  }
173 
174  //------------------------------------------------------------------------------------------------
176  void SetHostAddress(string address)
177  {
178  hostAddress = address;
179  directJoinCode = string.Empty;
180  }
181 
182  //------------------------------------------------------------------------------------------------
184  void SetJoinCode(string joinCode)
185  {
186  directJoinCode = joinCode;
187  hostAddress = string.Empty;
188  }
189 
190  //------------------------------------------------------------------------------------------------
191  void FilteredServerParams()
192  {
193  includePing = true;
194 
195  // Apply filter
196  //RegV("lockedBoth");
197  RegV("directJoinCode");
198 
199  RegV("hostAddress");
200 
201  // Sort
202  RegV("order");
203 
204  // Room content
205  RegV("modIds");
206  RegV("scenarioId");
207 
208  RegV("includePing");
209 
210  // Sort ascendence
212  asc.m_sInternalName = SORT_ASCENDENT;
213  asc.AddFilterValue(SORT_ASCENDENT, "1", EFilterType.TYPE_BOOL);
214  asc.SetSelected(true);
215  m_aDefaultFilters.Insert(asc);
216 
217  // Official-community
218  SCR_FilterEntryRoom filterOfficial = new SCR_FilterEntryRoom;
219  filterOfficial.m_sInternalName = FILTER_OFFICIAL;
220  filterOfficial.AddFilterValue(FILTER_OFFICIAL, "1", EFilterType.TYPE_BOOL);
221  filterOfficial.SetSelected(false);
222  m_aDefaultFilters.Insert(filterOfficial);
223 
224  SCR_FilterEntryRoom filterCommunity = new SCR_FilterEntryRoom;
225  filterCommunity.m_sInternalName = FILTER_COMMUNITY;
226  filterCommunity.AddFilterValue(FILTER_OFFICIAL, "0", EFilterType.TYPE_BOOL);
227  filterCommunity.SetSelected(false);
228  m_aDefaultFilters.Insert(filterCommunity);
229 
230  // Favorite
231  SCR_FilterEntryRoom filterFavorite = new SCR_FilterEntryRoom;
232  filterFavorite.m_sInternalName = FILTER_FAVORITES;
233  filterFavorite.AddFilterValue(FILTER_FAVORITES, "1", EFilterType.TYPE_BOOL);
234  filterFavorite.SetSelected(true);
235  m_aDefaultFilters.Insert(filterFavorite);
236 
237  // Recent servers
238  SCR_FilterEntryRoom filterRecent = new SCR_FilterEntryRoom;
239  filterRecent.m_sInternalName = FILTER_RECENT_SERVERS;
240  filterRecent.AddFilterValue(FILTER_RECENT_SERVERS, RECENT_SERVERS_SECONDS.ToString(), EFilterType.TYPE_INT);
241  filterRecent.SetSelected(true);
242  m_aDefaultFilters.Insert(filterRecent);
243 
244  // Add default filters
245  foreach (SCR_FilterEntryRoom filter : m_aDefaultFilters)
246  m_aFiltersUncategorized.Insert(filter);
247  }
248 
249  //--------------------------------------------
250  // Protected functions
251  //--------------------------------------------
252 
253  //-----------------------------------------------------------------------------------------------------------
255  protected SCR_FilterEntryRoom FindFilterByInternalName(array<ref SCR_FilterEntryRoom> filters, string internalName)
256  {
257  if (!filters || filters.IsEmpty())
258  return null;
259 
260  // Go throught filtres
261  foreach (SCR_FilterEntryRoom roomFilter : filters)
262  {
263  // check name and value
264  if (roomFilter.m_sInternalName == internalName)
265  return roomFilter;
266  }
267 
268  return null;
269  }
270 
271  //------------------------------------------------------------------------------------------------
273  protected void ActivateFilterValues(SCR_FilterEntryRoom filter)
274  {
275  // Check filter
276  if (!filter)
277  return;
278 
279  // Check values
280  array<ref SCR_FilterEntryRoomValue> values = filter.GetValues();
281 
282  if (!values || values.IsEmpty())
283  return;
284 
285  // Go through values
286  foreach (SCR_FilterEntryRoomValue value : values)
287  {
288  // Values
289  string name = value.GetName();
290 
291  // Track modded filter
292  if (name == FILTER_MODDED && value.GetBoolValue() == true)
293  m_bModdedFilterSelected = filter.GetSelected();
294 
295  // Track cross play filter
296  if (name == FILTER_CROSS_PLAY)
297  m_bCrossPlayFilterSelected = filter.GetSelected();
298 
299  // Check type
300  EFilterType filterType = value.GetType();
301 
302  switch(filterType)
303  {
304  // Booleans
305  case EFilterType.TYPE_BOOL:
306  StoreBoolean(name, value.GetBoolValue());
307  break;
308 
309  // Integers
310  case EFilterType.TYPE_INT:
311  StoreInteger(name, value.GetIntNumberValue());
312  break;
313 
314  // Floating decimals
315  case EFilterType.TYPE_FLOAT:
316  StoreFloat(name, value.GetFloatNumberValue());
317  break;
318 
319  // Strings
320  case EFilterType.TYPE_STRING:
321  StoreString(name, value.GetStringValue());
322  break;
323  }
324  }
325  }
326 
327  //------------------------------------------------------------------------------------------------
329  protected void FormatePlayersFilters(out int min, out int max, out int minCount, out int maxCount)
330  {
331  if (!m_Filter)
332  return;
333 
334  // Get players
335  SCR_FilterCategory playersCat = m_Filter.FindFilterCategory(CATEGORY_PLAYERS);
336  if (!playersCat)
337  return;
338 
339  // Checkc filters
340  array<ref SCR_FilterEntry> filters = playersCat.GetFilters();
341  if(filters.IsEmpty())
342  return;
343 
344  // Default range values
345  min = -1;
346  max = -1;
347  minCount = -1;
348  maxCount = -1;
349 
350  for (int i = 0, count = filters.Count(); i < count; i++)
351  {
352  // Active?
353  if (!filters[i].GetSelected())
354  continue;
355 
356  SCR_FilterEntryRoom roomFilter = SCR_FilterEntryRoom.Cast(filters[i]);
357  if (!roomFilter)
358  return;
359 
360  // Min count - smallest min
361  SCR_FilterEntryRoomValue valueMinCount = roomFilter.FindValue(VALUE_PLAYERS_MIN_COUNT);
362  if (valueMinCount)
363  {
364  if (minCount == -1 || valueMinCount.GetIntNumberValue() < minCount)
365  minCount = valueMinCount.GetIntNumberValue();
366  }
367 
368  // Max count - biggest max
369  SCR_FilterEntryRoomValue valueMaxCount = roomFilter.FindValue(VALUE_PLAYERS_MAX_COUNT);
370  if (valueMaxCount)
371  {
372  if (maxCount == -1 || valueMaxCount.GetIntNumberValue() < maxCount)
373  maxCount = valueMaxCount.GetIntNumberValue();
374  }
375 
376  // Min range - smallest min
377  SCR_FilterEntryRoomValue valueMin = roomFilter.FindValue(VALUE_PLAYERS_MIN);
378  if (valueMin)
379  {
380  if (min == -1 || valueMin.GetIntNumberValue() < min)
381  min = valueMin.GetIntNumberValue();
382  }
383 
384  // Max range - biggest max
385  SCR_FilterEntryRoomValue valueMax = roomFilter.FindValue(VALUE_PLAYERS_MAX);
386  if (valueMax)
387  {
388  if (max == -1 || valueMax.GetIntNumberValue() > max)
389  max = valueMax.GetIntNumberValue();
390  }
391  }
392  }
393 
394 
395  //--------------------------------------------
396  // Get & set
397  //--------------------------------------------
398 
399  //------------------------------------------------------------------------------------------------
401  void SetFilters(SCR_FilterSet filterSet)
402  {
403  // Filter list clear up
404  if (!m_aFiltersUncategorized.IsEmpty())
405  m_aFiltersUncategorized.Clear();
406 
407  // Check filter set
408  if (!filterSet)
409  return;
410 
411  m_Filter = filterSet;
412 
413  // Check categories
414  array<ref SCR_FilterCategory> categories = filterSet.GetFilterCategories();
415  if (!categories || categories.IsEmpty())
416  return;
417 
418  // Go thorugh filter set categories
419  foreach (SCR_FilterCategory category : categories)
420  {
421  // Add filters to uncategorized
422  foreach (SCR_FilterEntry filter : category.GetFilters())
423  {
424  SCR_FilterEntryRoom roomFilter = SCR_FilterEntryRoom.Cast(filter);
425  if (roomFilter)
426  {
427  m_aFiltersUncategorized.Insert(roomFilter);
428  }
429  }
430  }
431 
432  // Add default filters
433  foreach (SCR_FilterEntryRoom filter : m_aDefaultFilters)
434  {
435  m_aFiltersUncategorized.Insert(filter);
436  }
437  }
438 
439  //------------------------------------------------------------------------------------------------
440  void SetFavoriteFilter(bool isAllowed)
441  {
442  m_bFavoriteFilterOn = isAllowed;
443  }
444 
445  //------------------------------------------------------------------------------------------------
446  bool GetFavoriteFilter()
447  {
448  return m_bFavoriteFilterOn;
449  }
450 
451  //------------------------------------------------------------------------------------------------
452  void SetRecentlyPlayedFilter(bool isAllowed)
453  {
454  m_bRecentlyPlayedOn = isAllowed;
455  }
456 
457  //------------------------------------------------------------------------------------------------
458  bool GetRecentlyPlayedFilter()
459  {
460  return m_bRecentlyPlayedOn;
461  }
462 
463  //------------------------------------------------------------------------------------------------
464  void SetOfficialFilter(bool activate, bool displayOfficial)
465  {
466  m_bOfficialOn = activate;
467  m_bOfficialDisplay = displayOfficial;
468  }
469 
470  //------------------------------------------------------------------------------------------------
471  void SetSorting(string mOrder, bool bAscendent)
472  {
473  order = mOrder;
474 
475  // find order filter
476  SCR_FilterEntryRoom orderFilter = FindFilterByInternalName(m_aDefaultFilters, SORT_ASCENDENT);
477 
478  // Set order
479  if (orderFilter)
480  {
481  orderFilter.GetValues()[0].SetValue("0");
482 
483  if (bAscendent)
484  orderFilter.GetValues()[0].SetValue("1");
485  }
486  }
487 
488  //------------------------------------------------------------------------------------------------
489  string GetSortOrder() { return order; }
490 
491  //------------------------------------------------------------------------------------------------
492  void SetSearch(string sInput)
493  {
494  text = sInput;
495  }
496 
497  //------------------------------------------------------------------------------------------------
498  string GetSearchText() { return text; }
499 
500  //------------------------------------------------------------------------------------------------
501  void SetSelectedTab(int tabId) { m_iSelectedTab = tabId; }
502 
503  //------------------------------------------------------------------------------------------------
504  int GetSelectedTab() { return m_iSelectedTab; }
505 
506  // Scenario id
507 
508  //------------------------------------------------------------------------------------------------
509  string GetScenarioId() { return scenarioId; }
510 
511  //------------------------------------------------------------------------------------------------
512  void SetScenarioId(string id)
513  {
514  scenarioId = id;
515  }
516 
517  // Scenario mod id
518  //------------------------------------------------------------------------------------------------
519  string GetHostedScenarioModId() { return hostedScenarioModId; }
520 
521  //------------------------------------------------------------------------------------------------
522  void SetHostedScenarioModId(string id)
523  {
524  hostedScenarioModId = id;
525 
526  // Registration
527  if (!hostedScenarioModId.IsEmpty())
528  RegV("hostedScenarioModId");
529  else
530  UnregV("hostedScenarioModId");
531  }
532 
533  //------------------------------------------------------------------------------------------------
534  bool IsModdedFilterSelected()
535  {
536  return m_bModdedFilterSelected;
537  }
538 
539  //------------------------------------------------------------------------------------------------
540  bool IsCrossPlayFilterSelected()
541  {
542 
543  }
544 
545  //------------------------------------------------------------------------------------------------
546  void SetOwnedOnly(bool showOwned)
547  {
548  ownedOnly = showOwned;
549  }
550 
551  //--------------------------------------------
552  // Default filter setups
553  //--------------------------------------------
554 
555  //------------------------------------------------------------------------------------------------
556  protected void DefaultFilter()
557  {
558  array<ref SCR_FilterEntryRoom> filters = {};
559 
560  // Clear filters
561  foreach (SCR_FilterEntryRoom filter : m_aFiltersUncategorized)
562  {
563  filters.Insert(filter);
564  /*if (filter.GetSelected())
565  Print("count: " + filter.m_sInternalName);*/
566 
567  filter.SetSelected(false);
568  }
569 
570  // Clear search string
571  SetSearch(string.Empty);
572 
573  // Set ascendecy
574  SCR_FilterEntryRoom asc = FindFilterByInternalName(filters, SORT_ASCENDENT);
575  if (asc)
576  asc.SetSelected(true);
577  }
578 
579  //protected array<SCR_FilterEntryRoom> m_aFiltersStored;
580 
581  //------------------------------------------------------------------------------------------------
583  void DefaulFilterFavorite()
584  {
585  m_bFavoriteFilterOn = true;
586  DefaultFilter();
587 
588  // Apply filter
589  SCR_FilterEntryRoom favorite = FindFilterByInternalName(m_aDefaultFilters, FILTER_FAVORITES);
590  favorite.SetSelected(m_bFavoriteFilterOn);
591  }
592 
593  //------------------------------------------------------------------------------------------------
595  void DefaulFilterRecentlyPlayed()
596  {
597  m_bRecentlyPlayedOn = true;
598  DefaultFilter();
599 
600  // Apply filters
601  SCR_FilterEntryRoom recentlyPlayed = FindFilterByInternalName(m_aDefaultFilters, FILTER_RECENT_SERVERS);
602  recentlyPlayed.SetSelected(m_bRecentlyPlayedOn);
603  }
604 
605  //------------------------------------------------------------------------------------------------
606  void RestoreFilters()
607  {
608  /*m_aFiltersUncategorized.Clear();
609 
610  foreach (SCR_FilterEntryRoom filter : m_aFiltersStored)
611  {
612  m_aFiltersUncategorized.Insert(filter);
613  if (filter.GetSelected())
614  Print("count: " + filter.m_sInternalName);
615  }*/
616  }
617 
618  //------------------------------------------------------------------------------------------------
619  void SetUsePlayerLimit(bool use)
620  {
621  m_bUsePlayerLimit = use;
622  }
623 };
624 
625 //------------------------------------------------------------------------------------------------
627 {
628  string m_sName = "";
629  bool m_bValue = false;
630  bool m_bIsUsed = false;
631 
632  void BoolFilter(string name, bool value, bool used = false)
633  {
634  m_sName = name;
635  m_bValue = value;
636  m_bIsUsed = used;
637  }
638 };
639 
640 //------------------------------------------------------------------------------------------------
641 // Filter entry class extended with value
644 {
645  // Filter values array
646  [Attribute("", UIWidgets.Object)]
647  protected ref array<ref SCR_FilterEntryRoomValue> m_aValues;
648 
649  //------------------------------------------------------------------------------------------------
650  void AddFilterValue(string name, string value, EFilterType type)
651  {
652  // Check and initiate filter values
653  if (!m_aValues)
654  m_aValues = new array<ref SCR_FilterEntryRoomValue>;
655 
656  // Setup filter value
658  filterValue.SetName(name);
659  filterValue.SetValue(value);
660  filterValue.SetType(type);
661 
662  // Add value
663  m_aValues.Insert(filterValue);
664  }
665 
666  //------------------------------------------------------------------------------------------------
667  array<ref SCR_FilterEntryRoomValue> GetValues() { return m_aValues; }
668 
669  //------------------------------------------------------------------------------------------------
670  SCR_FilterEntryRoomValue FindValue(string name)
671  {
672  for (int i = 0, count = m_aValues.Count(); i < count; i++)
673  {
674  if (m_aValues[i].GetName() == name)
675  return m_aValues[i];
676  }
677 
678  return null;
679  }
680 };
681 
682 //------------------------------------------------------------------------------------------------
685 {
686  [Attribute("", UIWidgets.EditBox, "Name of used filter")]
687  protected string m_sInternalName;
688 
689  [Attribute("", UIWidgets.EditBox, "Filter value for any type")]
690  protected string m_sValue;
691 
692  [Attribute("0", UIWidgets.ComboBox, desc: "Filter variable type", category: "", ParamEnumArray.FromEnum(EFilterType))]
693  protected EFilterType m_iType;
694 
695  //------------------------------------------------------------------------------------------------
696  void SetName(string name) { m_sInternalName = name; }
697 
698  //------------------------------------------------------------------------------------------------
699  string GetName() { return m_sInternalName; }
700 
701  //------------------------------------------------------------------------------------------------
702  void SetType(EFilterType type) { m_iType = type; }
703 
704  //------------------------------------------------------------------------------------------------
705  EFilterType GetType() { return m_iType; }
706 
707  // Setting and returning value
708 
709  //------------------------------------------------------------------------------------------------
710  void SetValue(string value) { m_sValue = value; }
711 
712  //------------------------------------------------------------------------------------------------
713  string GetStringValue() { return m_sValue; }
714 
715  //------------------------------------------------------------------------------------------------
716  bool GetBoolValue() { return m_sValue == "1"; }
717 
718  //------------------------------------------------------------------------------------------------
719  float GetIntNumberValue() { return m_sValue.ToInt(); }
720 
721  //------------------------------------------------------------------------------------------------
722  float GetFloatNumberValue() { return m_sValue.ToFloat(); }
723 };
724 
725 //------------------------------------------------------------------------------------------------
727 {
732 };
SCR_FilterEntry
Definition: SCR_FilterSet.c:9
GetName
string GetName()
Definition: SCR_ScenarioFrameworkLayerBase.c:85
m_aValues
SCR_BaseEditorAttributeEntryTimeSlider m_aValues
TYPE_BOOL
@ TYPE_BOOL
Definition: ServerBrowserFiltering.c:728
GetGame
ArmaReforgerScripted GetGame()
Definition: game.c:1424
GetSelected
proto external int GetSelected(out notnull array< MapItem > outItems)
Get all selected entities.
SCR_FilterCategory
Definition: SCR_FilterSet.c:65
TYPE_STRING
@ TYPE_STRING
Definition: ServerBrowserFiltering.c:731
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition: SCR_RespawnBriefingComponent.c:17
SCR_FilterSet
Definition: SCR_FilterSet.c:183
SCR_FilterEntryRoomValue
Definition: ServerBrowserFiltering.c:684
m_iSelectedTab
int m_iSelectedTab
Definition: SCR_TabViewComponent.c:16
TYPE_FLOAT
@ TYPE_FLOAT
Definition: ServerBrowserFiltering.c:730
Attribute
typedef Attribute
Post-process effect of scripted camera.
SCR_FilterEntryTitle
Set filter title in config by internal name for better readability.
Definition: SCR_FilterSet.c:248
type
EDamageType type
Definition: SCR_DestructibleTreeV2.c:32
FilteredServerParams
Server search filtering.
Definition: ServerBrowserFiltering.c:7
m_sName
protected LocalizedString m_sName
Definition: SCR_GroupIdentityComponent.c:19
SCR_FilterEntryRoom
Definition: ServerBrowserFiltering.c:643
BoolFilter
Definition: ServerBrowserFiltering.c:626
EFilterType
EFilterType
Definition: ServerBrowserFiltering.c:726
TYPE_INT
@ TYPE_INT
Definition: ServerBrowserFiltering.c:729
BaseContainerProps
SCR_AIGoalReaction_Follow BaseContainerProps
Handles insects that are supposed to be spawned around selected prefabs defined in prefab names array...
Definition: SCR_AIGoalReaction.c:468
category
params category
Definition: SCR_VehicleDamageManagerComponent.c:180