Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_AttributesHelper.c
Go to the documentation of this file.
2{
3 protected static const string ENTRY_DELIMITER = ";";
4 protected static const string VALUE_DELIMITER = "|";
5
6 //------------------------------------------------------------------------------------------------
11 static ParamEnumArray ParamFromTitles(string titles)
12 {
13 array<string> titlesArray = {};
14 titles.Split(ENTRY_DELIMITER, titlesArray, false);
15 ParamEnumArray params = new ParamEnumArray();
16 foreach (int i, string title : titlesArray)
17 {
18 if (title) // !.IsEmpty() not necessary
19 params.Insert(new ParamEnum(title.Trim(), i.ToString()));
20 }
21
22 return params;
23 }
24
25 //------------------------------------------------------------------------------------------------
31 static ParamEnumArray ParamFromDescriptions(typename enumType, string descriptions)
32 {
33 array<string> descriptionsArray = {};
34 descriptions.Split(ENTRY_DELIMITER, descriptionsArray, false);
35 int variableCount = enumType.GetVariableCount();
36 ParamEnumArray params = new ParamEnumArray();
37 foreach (int i, string description : descriptionsArray)
38 {
39 int enumValue;
40 if (description && enumType.GetVariableValue(NULL, i, enumValue))
41 params.Insert(new ParamEnum(enumType.GetVariableName(i), enumValue.ToString(), description.Trim()));
42 }
43
44 return params;
45 }
46
47 //------------------------------------------------------------------------------------------------
52 static ParamEnumArray ParamFromEntries(string document)
53 {
54 array<string> entries = {};
55 document.Split(ENTRY_DELIMITER, entries, false);
56 array<string> values = {}; // Reuse instance of values array to avoid unnecessary allocations.
57 ParamEnumArray params = new ParamEnumArray();
58 foreach (string entry : entries)
59 {
60 string title, value, description;
61 SplitEntryIntoValues(entry, values, title, value, description, VALUE_DELIMITER);
62 params.Insert(new ParamEnum(title.Trim(), value.Trim(), description.Trim()));
63 values.Clear();
64 }
65
66 return params;
67 }
68
69 //------------------------------------------------------------------------------------------------
74 static string ParamToEntries(ParamEnumArray enumArray)
75 {
76 string result;
77 foreach (int i, ParamEnum paramEnum : enumArray)
78 {
79 result += string.Format("%2%1%3%1%4%5", VALUE_DELIMITER, paramEnum.m_Key, paramEnum.m_Value, paramEnum.m_Desc, ENTRY_DELIMITER);
80 }
81
82 return result;
83 }
84
85 //------------------------------------------------------------------------------------------------
93 static void SplitEntryIntoValues(string entry, notnull array<string> values, out string title, out string value, out string description, string delimiter = VALUE_DELIMITER)
94 {
95 entry.Split(delimiter, values, false);
96 int valuesCount = values.Count();
97 if (valuesCount <= 0)
98 return;
99
100 title = values[0];
101 if (valuesCount <= 1)
102 return;
103
104 value = values[1];
105 if (valuesCount <= 2)
106 return;
107
108 description = values[2];
109 }
110}
void ParamEnum(string key, string value, string desc="")
Definition attributes.c:25
static const string VALUE_DELIMITER
static ParamEnumArray ParamFromTitles(string titles)
static ParamEnumArray ParamFromEntries(string document)
static void SplitEntryIntoValues(string entry, notnull array< string > values, out string title, out string value, out string description, string delimiter=VALUE_DELIMITER)
static string ParamToEntries(ParamEnumArray enumArray)
static ParamEnumArray ParamFromDescriptions(typename enumType, string descriptions)
static const string ENTRY_DELIMITER
@ NULL
Unknown type.
Definition DataVarType.c:21