Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_CallsignCompanyData.c
Go to the documentation of this file.
1
5{
7
8 //---------------------------------------- On Init ----------------------------------------\\
9
13 void Init(SCR_FactionCallsignInfo factionCallsignInfo)
14 {
15 array<ref SCR_CallsignInfo> platoonArray = new array<ref SCR_CallsignInfo>;
16 factionCallsignInfo.GetPlatoonArray(platoonArray);
17 int count = platoonArray.Count();
18
19 for(int i = 0; i < count; i++)
20 {
22 platoonData.Init(factionCallsignInfo);
23 m_mPlatoonCallsigns.Insert(i, platoonData);
24 }
25 }
26
27 //---------------------------------------- Get Random Callsign ----------------------------------------\\
28
34 void GetRandomCallsign(out int platoon, out int squad)
35 {
36 int random = Math.RandomInt(0, m_mPlatoonCallsigns.Count());
37 platoon = m_mPlatoonCallsigns.GetKey(random);
38 SCR_CallsignPlatoonData randomPlatoon = m_mPlatoonCallsigns.GetElement(random);
39
40 squad = randomPlatoon.GetRandomSquad();
41 }
42
43 //---------------------------------------- Get first availible Callsign ----------------------------------------\\
44
50 void GetFirstAvailibleCallsign(out int firstAvailiblePlatoon, out int firstAvailibleSquad)
51 {
52 firstAvailiblePlatoon = int.MAX;
53 SCR_CallsignPlatoonData firstAvailiblePlatoonData;
54
56 {
57 if (index < firstAvailiblePlatoon)
58 {
59 firstAvailiblePlatoon = index;
60 firstAvailiblePlatoonData = platoon;
61 }
62 }
63
64 firstAvailibleSquad = firstAvailiblePlatoonData.GetFirstAvailibleSquad();
65 }
66
67 //------------------------------------------------------------------------------------------------
72 bool GetFirstAvailableSquadCallsign(out int firstAvailablePlatoon, out int firstAvailableSquad)
73 {
74 firstAvailableSquad = int.MAX;
75 SCR_CallsignPlatoonData platoonData;
76
77 int firstSquad;
79 {
80 firstSquad = platoon.GetFirstAvailibleSquad();
81 if (firstSquad < firstAvailableSquad)
82 {
83 firstAvailableSquad = firstSquad;
84 firstAvailablePlatoon = index;
85 }
86 else if (firstSquad == firstAvailableSquad && index < firstAvailablePlatoon)
87 {
88 firstAvailableSquad = firstSquad;
89 firstAvailablePlatoon = index;
90 }
91 }
92
93 return firstAvailableSquad < int.MAX;
94 }
95
96 //---------------------------------------- Add availible Callsign ----------------------------------------\\
97
102 void AddCallsign(int platoonIndex, int squadIndex)
103 {
104 SCR_CallsignPlatoonData platoonData;
105
106 if (m_mPlatoonCallsigns.Find(platoonIndex, platoonData))
107 {
108 platoonData.AddSquad(squadIndex);
109 }
110 else
111 {
112 platoonData = new SCR_CallsignPlatoonData();
113 platoonData.AddSquad(squadIndex);
114 m_mPlatoonCallsigns.Insert(platoonIndex, platoonData);
115 }
116 }
117
118 //---------------------------------------- Remove availible Callsign ----------------------------------------\\
119
124 bool RemoveCallsign(int plattonIndex, int squadIndex)
125 {
126 SCR_CallsignPlatoonData platoonData;
127
128 if (m_mPlatoonCallsigns.Find(plattonIndex, platoonData))
129 {
130 //Check if all squads are used then remove platoon
131 if (platoonData.RemoveSquad(squadIndex))
132 {
133 m_mPlatoonCallsigns.Remove(plattonIndex);
134 return m_mPlatoonCallsigns.IsEmpty();
135 }
136 }
137
138 return false;
139 }
140};
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
Definition Math.c:13
Removes callsign from availible callsign pool param platoon index param squad index *bool RemoveCallsign(int plattonIndex, int squadIndex)
Init Company creating all the platoons within which in turn create the availible squads within param factionCallsignInfo specific callsign info for faction *void Init(SCR_FactionCallsignInfo factionCallsignInfo)
Adds callsign back to availible callsign pool param platoon index param squad index *void AddCallsign(int platoonIndex, int squadIndex)
bool GetFirstAvailableSquadCallsign(out int firstAvailablePlatoon, out int firstAvailableSquad)
ref map< int, ref SCR_CallsignPlatoonData > m_mPlatoonCallsigns
Gets platoon and squad index randomly from availible callsigns param[out] platoon index param[out] squad index return bool true if succesfully found a callsign *void GetRandomCallsign(out int platoon, out int squad)
Goes through all availible platoons and squads and gets the first availible Meaning if platoon is taken it will get next not param[out] platoon index param[out] squad index return bool true if succesfully found a callsign *void GetFirstAvailibleCallsign(out int firstAvailiblePlatoon, out int firstAvailibleSquad)
Gets a squad index randomly from availible callsigns return int squad index *int GetRandomSquad()
Removes callsign from availible callsign pool param squad index *bool RemoveSquad(int squadIndex)
Adds callsign back to availible callsign pool param squad index *void AddSquad(int squadIndex)
Init Platoon creating all the squads within param factionCallsignInfo specific callsign info for faction *void Init(SCR_FactionCallsignInfo factionCallsignInfo)
void GetPlatoonArray(notnull array< ref SCR_CallsignInfo > platoonArray)
Definition Types.c:486