Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_MapMarkerEntryMilitary.c
Go to the documentation of this file.
1//------------------------------------------------------------------------------------------------
5{
6 [Attribute("AR-MapMarker_Military", desc: "Description in selection menu")]
7 protected string m_sMenuDescription;
8
9 [Attribute("{3262679C50EF4F01}UI/Textures/Icons/icons_wrapperUI.imageset", UIWidgets.ResourcePickerThumbnail, desc: "Imageset resource", params: "imageset")]
11
12 [Attribute("unknown_faction", desc: "Imageset icon")]
13 protected string m_sMenuIcon;
14
15 [Attribute(desc: "Predefined marker factions")]
16 protected ref array<ref SCR_MarkerMilitaryFactionEntry> m_aMilitaryFactionEntries;
17
18 [Attribute(desc: "Military dimension defines")]
19 protected ref array<ref SCR_MarkerMilitaryDimension> m_aMilitaryDimensions;
20
21 [Attribute(desc: "Military type defines")]
22 protected ref array<ref SCR_MarkerMilitaryType> m_aMilitaryTypes;
23
24 const int FACTION_DETERMINATOR = 100;
25 const float DIMENSION_DETERMINATOR = 0.01;
26
27 //------------------------------------------------------------------------------------------------
29 {
30 return m_sMenuDescription;
31 }
32
33 //------------------------------------------------------------------------------------------------
38
39 //------------------------------------------------------------------------------------------------
40 string GetMenuIcon()
41 {
42 return m_sMenuIcon;
43 }
44
45 //------------------------------------------------------------------------------------------------
46 array<ref SCR_MarkerMilitaryFactionEntry> GetMilitaryFactionEntries()
47 {
49 }
50
51 //------------------------------------------------------------------------------------------------
52 SCR_MarkerMilitaryFactionEntry GetFactionEntry(int i)
53 {
54 if (!m_aMilitaryFactionEntries.IsIndexValid(i))
55 return null;
56
58 }
59
60 //------------------------------------------------------------------------------------------------
62 {
63 foreach (int id, SCR_MarkerMilitaryFactionEntry entry : m_aMilitaryFactionEntries)
64 {
65 if (entry.GetFactionIdentity() == faction)
66 return id;
67 }
68
69 return -1;
70 }
71
72 //------------------------------------------------------------------------------------------------
73 array<ref SCR_MarkerMilitaryDimension> GetMilitaryDimensions()
74 {
76 }
77
78 //------------------------------------------------------------------------------------------------
79 SCR_MarkerMilitaryDimension GetDimensionEntry(int i)
80 {
81 if (!m_aMilitaryDimensions.IsIndexValid(i))
82 return null;
83
84 return m_aMilitaryDimensions[i];
85 }
86
87 //------------------------------------------------------------------------------------------------
89 {
90 foreach (int id, SCR_MarkerMilitaryDimension entry : m_aMilitaryDimensions)
91 {
92 if (entry.GetDimension() == dimension)
93 return id;
94 }
95
96 return -1;
97 }
98
99 //------------------------------------------------------------------------------------------------
100 array<ref SCR_MarkerMilitaryType> GetMilitaryTypes()
101 {
102 return m_aMilitaryTypes;
103 }
104
105 //------------------------------------------------------------------------------------------------
106 SCR_MarkerMilitaryType GetTypeEntry(int i)
107 {
108 if (!m_aMilitaryTypes.IsIndexValid(i))
109 return null;
110
111 return m_aMilitaryTypes[i];
112 }
113
114 //------------------------------------------------------------------------------------------------
116 {
117 return SCR_EMapMarkerType.PLACED_MILITARY;
118 }
119
120 //------------------------------------------------------------------------------------------------
121 override void InitClientSettings(SCR_MapMarkerBase marker, SCR_MapMarkerWidgetComponent widgetComp, bool skipProfanityFilter = false)
122 {
123 super.InitClientSettings(marker, widgetComp);
124
125 widgetComp.SetEventListening(true);
126 widgetComp.SetMilitarySymbolMode(true);
127
128 array<ref SCR_MarkerMilitaryFactionEntry> milFactionEntries = GetMilitaryFactionEntries();
129 array<ref SCR_MarkerMilitaryDimension> milDimensions = GetMilitaryDimensions();
130 array<ref SCR_MarkerMilitaryType> milTypes = GetMilitaryTypes();
131
132 int factionID = marker.GetMarkerConfigID() % FACTION_DETERMINATOR;
133 int dimensionID = marker.GetMarkerConfigID() * DIMENSION_DETERMINATOR;
134
135 if (!milFactionEntries || !milDimensions || !milFactionEntries.IsIndexValid(factionID) || !milDimensions.IsIndexValid(dimensionID))
136 return;
137
138 SCR_MilitarySymbol milSymbol = new SCR_MilitarySymbol();
139 SCR_MarkerMilitaryFactionEntry factionEntry = milFactionEntries[factionID];
140 milSymbol.SetIdentity(factionEntry.GetFactionIdentity());
141 milSymbol.SetDimension(milDimensions[dimensionID].GetDimension());
142 milSymbol.SetIcons(marker.GetFlags());
143
144 widgetComp.UpdateMilitarySymbol(milSymbol);
145 widgetComp.SetColor(factionEntry.GetColor());
146 widgetComp.SetText(marker.GetCustomText());
147
148 widgetComp.SetTimestampVisibility(marker.IsTimestampVisible());
149 if (marker.IsTimestampVisible())
150 widgetComp.SetTimestamp(marker.GetTimestamp());
151
152 widgetComp.SetTypeIcon(1, milDimensions[dimensionID].GetTranslation());
153
154 int typeFlags = marker.GetFlags();
155 if (typeFlags == 0)
156 return;
157
158 bool secondType;
159 foreach (SCR_MarkerMilitaryType type : milTypes)
160 {
161 if (typeFlags & type.GetType())
162 {
163 if (secondType)
164 {
165 widgetComp.SetTypeIcon(3, type.GetTranslation());
166 return;
167 }
168 else
169 {
170 widgetComp.SetTypeIcon(2, type.GetTranslation());
171 if (typeFlags == type.GetType()) // return if singular flag
172 return;
173
174 secondType = true;
176 }
177 }
178 }
179
180 //------------------------------------------------------------------------------------------------
181 override void OnMapLayerChanged(notnull SCR_MapMarkerWidgetComponent widgetComp, int layerID)
182 {
183 if (layerID > 1)
184 {
185 widgetComp.SetTextVisible(false);
186 }
187 else
188 {
189 widgetComp.SetTextVisible(true);
190 }
191 }
192}
193
194//------------------------------------------------------------------------------------------------
197class SCR_MarkerMilitaryDimension
198{
199 [Attribute("", uiwidget: UIWidgets.SearchComboBox, enums: ParamEnumArray.FromEnum(EMilitarySymbolDimension))]
200 protected EMilitarySymbolDimension m_eDimension;
201
202 [Attribute("", desc: "Translation in UI")]
203 protected string m_sTranslation;
204
205 //------------------------------------------------------------------------------------------------
206 EMilitarySymbolDimension GetDimension()
207 {
208 return m_eDimension;
209 }
210
211 //------------------------------------------------------------------------------------------------
212 string GetTranslation()
213 {
214 return m_sTranslation;
215 }
216}
217
218//------------------------------------------------------------------------------------------------
220{
221 //------------------------------------------------------------------------------------------------
222 override bool _WB_GetCustomTitle(BaseContainer source, out string title)
223 {
224
225 EMilitarySymbolIcon symbol;
226 source.Get("m_eDimension", symbol);
227
228 title = typename.EnumToString(EMilitarySymbolDimension, symbol);
229
230 return true;
231 }
232}
233
234//------------------------------------------------------------------------------------------------
237class SCR_MarkerMilitaryType
238{
239 [Attribute("", uiwidget: UIWidgets.SearchComboBox, enums: ParamEnumArray.FromEnum(EMilitarySymbolIcon))]
241
242 [Attribute("", desc: "Translation in UI")]
243 protected string m_sTranslation;
244
245 //------------------------------------------------------------------------------------------------
247 {
248 return m_eType;
249 }
250
251 //------------------------------------------------------------------------------------------------
252 string GetTranslation()
253 {
254 return m_sTranslation;
255 }
256}
257
258//------------------------------------------------------------------------------------------------
260{
261 //------------------------------------------------------------------------------------------------
262 override bool _WB_GetCustomTitle(BaseContainer source, out string title)
263 {
264
265 EMilitarySymbolIcon symbol;
266 source.Get("m_eType", symbol);
267
268 title = typename.EnumToString(EMilitarySymbolIcon, symbol);
269
270 return true;
271 }
272}
273
274//------------------------------------------------------------------------------------------------
277class SCR_MarkerMilitaryFactionEntry
278{
279 [Attribute("0", uiwidget: UIWidgets.SearchComboBox, enums: ParamEnumArray.FromEnum(EMilitarySymbolIdentity))]
280 protected EMilitarySymbolIdentity m_FactionIdentity;
281
282 [Attribute("1.0 1.0 1.0 1.0")]
283 protected ref Color m_FactionColor;
284
285 [Attribute("{3262679C50EF4F01}UI/Textures/Icons/icons_wrapperUI.imageset", UIWidgets.ResourcePickerThumbnail, desc: "Imageset resource", params: "imageset")]
286 protected ResourceName m_sIconImageset;
287
288 [Attribute("unknown_faction", desc: "Imageset quad")]
289 protected string m_sIconImagesetQuad;
290
291 [Attribute("", desc: "Translation in UI")]
292 protected string m_sTranslation;
293
294 //------------------------------------------------------------------------------------------------
295 EMilitarySymbolIdentity GetFactionIdentity()
296 {
297 return m_FactionIdentity;
298 }
299
300 //------------------------------------------------------------------------------------------------
302 {
303 return Color.FromInt(m_FactionColor.PackToInt());
304 }
305
306 //------------------------------------------------------------------------------------------------
307 void GetIconResource(out ResourceName imageset, out string imageQuad)
308 {
309 imageset = m_sIconImageset;
310 imageQuad = m_sIconImagesetQuad;
311 }
312
313 //------------------------------------------------------------------------------------------------
314 string GetTranslation()
315 {
316 return m_sTranslation;
317 }
318}
319
320//------------------------------------------------------------------------------------------------
322{
323 //------------------------------------------------------------------------------------------------
324 override bool _WB_GetCustomTitle(BaseContainer source, out string title)
325 {
327 source.Get("m_FactionIdentity", faction);
328
329 title = typename.EnumToString(EMilitarySymbolIdentity, faction);
330
331 return true;
332 }
333}
AddonBuildInfoTool id
EMilitarySymbolIdentity
EMilitarySymbolDimension
EMilitarySymbolIcon
override EGadgetType GetType()
SCR_ECampaignBaseType m_eType
string m_sIconImagesetQuad
EDamageType type
SCR_EMapMarkerType
SCR_MapMarkerEntryMilitary SCR_MapMarkerEntryConfig SCR_MapMarkerMilitaryDimensionTitle()] class SCR_MarkerMilitaryDimension
SCR_MapMarkerMilitaryDimensionTitle BaseContainerCustomTitle SCR_MapMarkerMilitaryTypeTitle()] class SCR_MarkerMilitaryType
SCR_MapMarkerMilitaryTypeTitle BaseContainerCustomTitle SCR_MapMarkerFactionTitle()] class SCR_MarkerMilitaryFactionEntry
ref array< ref SCR_MarkerMilitaryType > m_aMilitaryTypes
ref array< ref SCR_MarkerMilitaryDimension > m_aMilitaryDimensions
SCR_MapMarkerEntryMilitary SCR_MapMarkerEntryConfig BaseContainerProps()
Marker military dimension.
ref array< ref SCR_MarkerMilitaryFactionEntry > m_aMilitaryFactionEntries
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition Color.c:13
WorldTimestamp GetTimestamp()
Base entry config.
Marker military symbol entry.
ResourceName GetMenuImageset()
override void OnMapLayerChanged(notnull SCR_MapMarkerWidgetComponent widgetComp, int layerID)
int GetDimensionEntryID(EMilitarySymbolDimension dimension)
SCR_MarkerMilitaryType GetTypeEntry(int i)
string m_sMenuDescription
ref array< ref SCR_MarkerMilitaryDimension > m_aMilitaryDimensions
SCR_MarkerMilitaryDimension GetDimensionEntry(int i)
array< ref SCR_MarkerMilitaryDimension > GetMilitaryDimensions()
const float DIMENSION_DETERMINATOR
string GetMenuDescription()
const int FACTION_DETERMINATOR
int GetFactionEntryID(EMilitarySymbolIdentity faction)
array< ref SCR_MarkerMilitaryType > GetMilitaryTypes()
array< ref SCR_MarkerMilitaryFactionEntry > GetMilitaryFactionEntries()
override void InitClientSettings(SCR_MapMarkerBase marker, SCR_MapMarkerWidgetComponent widgetComp, bool skipProfanityFilter=false)
SCR_MarkerMilitaryFactionEntry GetFactionEntry(int i)
override SCR_EMapMarkerType GetMarkerType()
string GetMenuIcon()
ref array< ref SCR_MarkerMilitaryType > m_aMilitaryTypes
ref array< ref SCR_MarkerMilitaryFactionEntry > m_aMilitaryFactionEntries
string m_sMenuIcon
ResourceName m_sMenuImageset
void SetText(string text, bool skipProfanityFilter=false)
void SetTypeIcon(int type, string text)
Not synched secondary text.
void UpdateMilitarySymbol(SCR_MilitarySymbol milSymbol)
void SetTimestamp(WorldTimestamp timestamp)
void SetDimension(EMilitarySymbolDimension dimension)
void SetIcons(EMilitarySymbolIcon icons)
void SetIdentity(EMilitarySymbolIdentity identity)
SCR_FieldOfViewSettings Attribute