Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_RankContainer.c
Go to the documentation of this file.
1
[
BaseContainerProps
(configRoot:
true
)]
2
class
SCR_RankContainer
3
{
4
[
Attribute
(
desc
:
"List of ranks"
)]
5
protected
ref array<ref SCR_RankInfo>
m_aRanks
;
6
7
//------------------------------------------------------------------------------------------------
10
bool
IsRankRenegade
(SCR_ECharacterRank rankID)
11
{
12
if
(!
m_aRanks
)
13
return
false
;
14
15
SCR_RankInfo
foundRank =
GetRankByID
(rankID);
16
if
(!foundRank)
17
return
false
;
18
19
return
foundRank.
IsRankRenegade
();
20
}
21
22
//------------------------------------------------------------------------------------------------
25
int
GetRequiredRankXP
(SCR_ECharacterRank rankID)
26
{
27
if
(!
m_aRanks
)
28
return
int
.MAX;
29
30
SCR_RankInfo
foundRank =
GetRankByID
(rankID);
31
if
(!foundRank)
32
return
int
.MAX;
33
34
return
foundRank.
GetRequiredRankXP
();
35
}
36
37
//------------------------------------------------------------------------------------------------
38
protected
SCR_ECharacterRank
GetRenegadeRank
()
39
{
40
foreach
(
SCR_RankInfo
rank :
m_aRanks
)
41
{
42
if
(rank && rank.IsRankRenegade())
43
return
rank.GetRankID();
44
}
45
46
return
SCR_ECharacterRank.INVALID;
47
}
48
49
//------------------------------------------------------------------------------------------------
52
SCR_ECharacterRank
GetRankByXP
(
int
XP)
53
{
54
if
(!
m_aRanks
)
55
return
SCR_ECharacterRank.INVALID;
56
57
int
maxFoundXP = -100000;
58
SCR_ECharacterRank rankFound =
GetRenegadeRank
();
59
60
foreach
(
SCR_RankInfo
rank :
m_aRanks
)
61
{
62
int
reqXP =
GetRequiredRankXP
(rank.GetRankID());
63
64
if
(reqXP <= XP && reqXP > maxFoundXP)
65
{
66
maxFoundXP = reqXP;
67
rankFound = rank.GetRankID();
68
}
69
}
70
71
return
rankFound;
72
}
73
74
//------------------------------------------------------------------------------------------------
77
SCR_ECharacterRank
GetNextRank
(SCR_ECharacterRank rankID)
78
{
79
if
(!
m_aRanks
)
80
return
SCR_ECharacterRank.INVALID;
81
82
SCR_ECharacterRank foundID = SCR_ECharacterRank.INVALID;
83
SCR_ECharacterRank CheckedID;
84
85
if
(
GetRankByID
(rankID))
// rank needs to be defined in this container to be able to retrieve and use the XP
86
{
87
int
rankXP =
GetRequiredRankXP
(rankID);
88
int
higherXP =
int
.MAX;
89
90
foreach
(
SCR_RankInfo
checkedRank :
m_aRanks
)
91
{
92
CheckedID = checkedRank.GetRankID();
93
int
thisXP =
GetRequiredRankXP
(CheckedID);
94
95
if
(thisXP > rankXP && thisXP < higherXP)
96
{
97
higherXP = thisXP;
98
foundID = CheckedID;
99
}
100
}
101
102
return
foundID;
103
}
104
105
// this rank is currently not defined in this specific faction / rank container so the xp cannot be checked.
106
// so we will attempt to get the closest rank by going from the top down using the enums
107
// Invalid is already the highest enum value so we only need to go down.
108
foreach
(
SCR_RankInfo
checkedRank :
m_aRanks
)
109
{
110
CheckedID = checkedRank.GetRankID();
111
112
if
(rankID < CheckedID && CheckedID < foundID)
113
{
114
foundID = CheckedID;
115
}
116
}
117
118
return
foundID;
119
}
120
121
//------------------------------------------------------------------------------------------------
124
SCR_ECharacterRank
GetPreviousRank
(SCR_ECharacterRank rankID)
125
{
126
if
(!
m_aRanks
)
127
return
SCR_ECharacterRank.INVALID;
128
129
SCR_ECharacterRank foundID = SCR_ECharacterRank.INVALID;
130
SCR_ECharacterRank CheckedID;
131
132
if
(
GetRankByID
(rankID))
// rank needs to be defined in this container to be able to retrieve and use the XP
133
{
134
int
rankXP =
GetRequiredRankXP
(rankID);
135
int
lowerXP =
int
.MIN;
136
137
foreach
(
SCR_RankInfo
checkedRank :
m_aRanks
)
138
{
139
CheckedID = checkedRank.GetRankID();
140
int
thisXP =
GetRequiredRankXP
(CheckedID);
141
142
if
(thisXP < rankXP && thisXP > lowerXP)
143
{
144
lowerXP = thisXP;
145
foundID = CheckedID;
146
}
147
}
148
149
return
foundID;
150
}
151
152
// this rank is currently not defined in this specific faction / rank container so the xp cannot be checked.
153
// so we will attempt to get the closest rank by going from the bottom up using the enums
154
foundID = SCR_ECharacterRank.RENEGADE;
155
156
foreach
(
SCR_RankInfo
checkedRank :
m_aRanks
)
157
{
158
CheckedID = checkedRank.GetRankID();
159
160
if
(rankID > CheckedID && CheckedID > foundID)
161
{
162
foundID = CheckedID;
163
}
164
}
165
166
return
foundID;
167
}
168
169
//------------------------------------------------------------------------------------------------
170
array<ref SCR_RankInfo>
GetAllRanks
()
171
{
172
array<ref SCR_RankInfo> outArray = {};
173
foreach
(
SCR_RankInfo
rank :
m_aRanks
)
174
{
175
outArray.Insert(rank);
176
}
177
178
return
outArray;
179
}
180
181
//------------------------------------------------------------------------------------------------
182
SCR_RankInfo
GetRankByID
(SCR_ECharacterRank rankIdentifier)
183
{
184
foreach
(
SCR_RankInfo
rank :
m_aRanks
)
185
{
186
if
(rank.GetRankID() == rankIdentifier)
187
return
rank;
188
}
189
190
return
null;
191
}
192
193
//------------------------------------------------------------------------------------------------
196
SCR_RankInfo
GetRankByID
(SCR_ECharacterRank rankIdentifier,
bool
fetchNext)
197
{
198
foreach
(
SCR_RankInfo
rank :
m_aRanks
)
199
{
200
if
(rank.GetRankID() == rankIdentifier)
201
return
rank;
202
}
203
204
if
(fetchNext)
205
return
GetRankByID
(
GetNextRank
(rankIdentifier));
206
207
return
GetRankByID
(
GetPreviousRank
(rankIdentifier));
208
}
209
210
//------------------------------------------------------------------------------------------------
213
string
GetRankName
(SCR_ECharacterRank rankID)
214
{
215
SCR_RankInfo
rank =
GetRankByID
(rankID);
216
217
if
(rank)
218
return
rank.
GetRankName
();
219
else
220
return
string
.Empty;
221
}
222
223
//------------------------------------------------------------------------------------------------
226
string
GetRankNameUpperCase
(SCR_ECharacterRank rankID)
227
{
228
SCR_RankInfo
rank =
GetRankByID
(rankID);
229
230
if
(rank)
231
return
rank.
GetRankNameUpperCase
();
232
else
233
return
string
.Empty;
234
}
235
236
//------------------------------------------------------------------------------------------------
239
string
GetRankNameShort
(SCR_ECharacterRank rankID)
240
{
241
SCR_RankInfo
rank =
GetRankByID
(rankID);
242
243
if
(rank)
244
return
rank.
GetRankNameShort
();
245
else
246
return
string
.Empty;
247
}
248
249
//------------------------------------------------------------------------------------------------
252
string
GetRankInsignia
(SCR_ECharacterRank rankID)
253
{
254
SCR_RankInfo
rank =
GetRankByID
(rankID);
255
256
if
(rank)
257
return
rank.
GetRankInsignia
();
258
else
259
return
string
.Empty;
260
}
261
}
BaseContainerProps
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
Definition
SCR_AIAnimationWaypoint.c:14
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
SCR_RankContainer
Definition
SCR_RankContainer.c:3
SCR_RankContainer::GetRankNameShort
string GetRankNameShort(SCR_ECharacterRank rankID)
Definition
SCR_RankContainer.c:239
SCR_RankContainer::GetNextRank
SCR_ECharacterRank GetNextRank(SCR_ECharacterRank rankID)
Definition
SCR_RankContainer.c:77
SCR_RankContainer::GetAllRanks
array< ref SCR_RankInfo > GetAllRanks()
Definition
SCR_RankContainer.c:170
SCR_RankContainer::GetRankByID
SCR_RankInfo GetRankByID(SCR_ECharacterRank rankIdentifier)
Definition
SCR_RankContainer.c:182
SCR_RankContainer::IsRankRenegade
bool IsRankRenegade(SCR_ECharacterRank rankID)
Definition
SCR_RankContainer.c:10
SCR_RankContainer::GetRenegadeRank
SCR_ECharacterRank GetRenegadeRank()
Definition
SCR_RankContainer.c:38
SCR_RankContainer::GetRankByXP
SCR_ECharacterRank GetRankByXP(int XP)
Definition
SCR_RankContainer.c:52
SCR_RankContainer::GetRankNameUpperCase
string GetRankNameUpperCase(SCR_ECharacterRank rankID)
Definition
SCR_RankContainer.c:226
SCR_RankContainer::GetRankInsignia
string GetRankInsignia(SCR_ECharacterRank rankID)
Definition
SCR_RankContainer.c:252
SCR_RankContainer::GetPreviousRank
SCR_ECharacterRank GetPreviousRank(SCR_ECharacterRank rankID)
Definition
SCR_RankContainer.c:124
SCR_RankContainer::GetRankByID
SCR_RankInfo GetRankByID(SCR_ECharacterRank rankIdentifier, bool fetchNext)
Definition
SCR_RankContainer.c:196
SCR_RankContainer::GetRankName
string GetRankName(SCR_ECharacterRank rankID)
Definition
SCR_RankContainer.c:213
SCR_RankContainer::GetRequiredRankXP
int GetRequiredRankXP(SCR_ECharacterRank rankID)
Definition
SCR_RankContainer.c:25
SCR_RankContainer::m_aRanks
ref array< ref SCR_RankInfo > m_aRanks
Definition
SCR_RankContainer.c:5
SCR_RankInfo
Definition
SCR_RankInfo.c:3
SCR_RankInfo::GetRankNameUpperCase
string GetRankNameUpperCase()
Definition
SCR_RankInfo.c:56
SCR_RankInfo::GetRankName
string GetRankName()
Definition
SCR_RankInfo.c:49
SCR_RankInfo::GetRequiredRankXP
int GetRequiredRankXP()
Definition
SCR_RankInfo.c:42
SCR_RankInfo::GetRankNameShort
string GetRankNameShort()
Definition
SCR_RankInfo.c:63
SCR_RankInfo::GetRankInsignia
string GetRankInsignia()
Definition
SCR_RankInfo.c:70
SCR_RankInfo::IsRankRenegade
bool IsRankRenegade()
Definition
SCR_RankInfo.c:35
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
scripts
Game
Ranks
SCR_RankContainer.c
Generated by
1.17.0