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_AIGroupFireteam.c
Go to the documentation of this file.
1
3
class
SCR_AIGroupFireteam
: Managed
4
{
5
protected
ref array<AIAgent>
m_aAgents
= {};
6
7
protected
bool
m_bLocked
=
false
;
8
9
//--------------------------------------------------------------------------
10
void
AddMember
(AIAgent agent)
11
{
12
if
(!
m_aAgents
.Contains(agent))
13
m_aAgents
.Insert(agent);
14
}
15
16
//--------------------------------------------------------------------------
17
void
RemoveMember
(AIAgent agent)
18
{
19
int
id
=
m_aAgents
.Find(agent);
20
if
(
id
== -1)
21
return
;
22
m_aAgents
.Remove(
id
);
23
}
24
25
//--------------------------------------------------------------------------
26
protected
void
RemoveMember
(
int
id
, out AIAgent outAgent)
27
{
28
outAgent =
m_aAgents
[
id
];
29
30
m_aAgents
.Remove(
id
);
31
}
32
33
//--------------------------------------------------------------------------
34
AIAgent
GetMember
(
int
id
)
35
{
36
if
(!
m_aAgents
.IsIndexValid(
id
))
37
return
null;
38
39
return
m_aAgents
[
id
];
40
}
41
42
//--------------------------------------------------------------------------
43
IEntity
GetFirstMemberEntity
()
44
{
45
if
(
m_aAgents
.IsEmpty())
46
return
null;
47
foreach
(AIAgent agent :
m_aAgents
)
48
{
49
if
(!agent)
50
continue
;
51
IEntity
controlledEntity = agent.GetControlledEntity();
52
return
controlledEntity;
53
}
54
return
null;
55
}
56
57
//--------------------------------------------------------------------------
58
void
GetMembers
(notnull array<AIAgent> outAgents)
59
{
60
outAgents.Clear();
61
foreach
(
auto
a :
m_aAgents
)
62
outAgents.Insert(a);
63
}
64
65
//--------------------------------------------------------------------------
67
void
MoveMembersFrom
(notnull
SCR_AIGroupFireteam
otherFt,
int
count)
68
{
69
// Bail if wrong count
70
if
(count <= 0)
71
return
;
72
73
// Clamp count
74
count =
Math
.ClampInt(count, 0, otherFt.m_aAgents.Count());
75
76
// Remove the required amount of members
77
for
(
int
i = 0; i < count; i++)
78
{
79
// Remove last member from other fireteam
80
int
lastId = otherFt.m_aAgents.Count() - 1;
81
AIAgent agent;
82
otherFt.RemoveMember(lastId, agent);
83
84
// Add the member to our fireteam
85
AddMember
(agent);
86
}
87
}
88
89
//--------------------------------------------------------------------------
90
bool
HasMember
(AIAgent agent)
91
{
92
return
m_aAgents
.Find(agent) != -1;
93
}
94
95
//--------------------------------------------------------------------------
96
int
GetMemberCount
()
97
{
98
return
m_aAgents
.Count();
99
}
100
101
//--------------------------------------------------------------------------
103
void
Internal_OnLockDestroyed
()
104
{
105
m_bLocked
=
false
;
106
}
107
108
//------------------------------------------------------------------------------------------------
109
// Acquiring fireteams
110
111
//--------------------------------------------------------------------------
112
bool
IsLocked
()
113
{
114
return
m_bLocked
;
115
}
116
117
//--------------------------------------------------------------------------
120
SCR_AIGroupFireteamLock
TryLock
()
121
{
122
if
(
m_bLocked
)
123
return
null;
124
125
m_bLocked
=
true
;
126
127
SCR_AIGroupFireteamLock
lock =
new
SCR_AIGroupFireteamLock
(
this
);
128
return
lock;
129
}
130
};
131
134
class
SCR_AIGroupFireteamVehicleBase
:
SCR_AIGroupFireteam
135
{
136
protected
SCR_AIVehicleUsageComponent
m_VehicleUsageComponent
;
137
138
void
SetVehicle
(notnull
SCR_AIVehicleUsageComponent
vehicleComp)
139
{
140
if
(
m_VehicleUsageComponent
)
141
return
;
142
143
m_VehicleUsageComponent
= vehicleComp;
144
}
145
146
SCR_AIVehicleUsageComponent
GetVehicle
()
147
{
148
return
m_VehicleUsageComponent
;
149
}
150
}
151
153
class
SCR_AIGroupFireteamVehicleCrew :
SCR_AIGroupFireteamVehicleBase
154
{
155
156
}
157
159
class
SCR_AIGroupFireteamVehicleCargo :
SCR_AIGroupFireteamVehicleBase
160
{
161
162
}
id
AddonBuildInfoTool id
IEntity
Definition
IEntity.c:13
Math
Definition
Math.c:13
SCR_AIGroupFireteam
Definition
SCR_AIGroupFireteam.c:4
SCR_AIGroupFireteam::GetMember
AIAgent GetMember(int id)
Definition
SCR_AIGroupFireteam.c:34
SCR_AIGroupFireteam::AddMember
void AddMember(AIAgent agent)
Definition
SCR_AIGroupFireteam.c:10
SCR_AIGroupFireteam::MoveMembersFrom
void MoveMembersFrom(notnull SCR_AIGroupFireteam otherFt, int count)
Moves 'count' members from other fireteam to this one.
Definition
SCR_AIGroupFireteam.c:67
SCR_AIGroupFireteam::GetMembers
void GetMembers(notnull array< AIAgent > outAgents)
Definition
SCR_AIGroupFireteam.c:58
SCR_AIGroupFireteam::IsLocked
bool IsLocked()
Definition
SCR_AIGroupFireteam.c:112
SCR_AIGroupFireteam::m_aAgents
ref array< AIAgent > m_aAgents
Definition
SCR_AIGroupFireteam.c:5
SCR_AIGroupFireteam::GetMemberCount
int GetMemberCount()
Definition
SCR_AIGroupFireteam.c:96
SCR_AIGroupFireteam::HasMember
bool HasMember(AIAgent agent)
Definition
SCR_AIGroupFireteam.c:90
SCR_AIGroupFireteam::TryLock
SCR_AIGroupFireteamLock TryLock()
Definition
SCR_AIGroupFireteam.c:120
SCR_AIGroupFireteam::RemoveMember
void RemoveMember(int id, out AIAgent outAgent)
Definition
SCR_AIGroupFireteam.c:26
SCR_AIGroupFireteam::GetFirstMemberEntity
IEntity GetFirstMemberEntity()
Definition
SCR_AIGroupFireteam.c:43
SCR_AIGroupFireteam::m_bLocked
bool m_bLocked
Definition
SCR_AIGroupFireteam.c:7
SCR_AIGroupFireteam::RemoveMember
void RemoveMember(AIAgent agent)
Definition
SCR_AIGroupFireteam.c:17
SCR_AIGroupFireteam::Internal_OnLockDestroyed
void Internal_OnLockDestroyed()
Don't ever try to free a fireteam yourself, use SCR_AIGroupFireteamLock instead.
Definition
SCR_AIGroupFireteam.c:103
SCR_AIGroupFireteamLock
Definition
SCR_AIGroupFireteamLock.c:10
SCR_AIGroupFireteamVehicleBase
Definition
SCR_AIGroupFireteam.c:135
SCR_AIGroupFireteamVehicleBase::GetVehicle
SCR_AIVehicleUsageComponent GetVehicle()
Definition
SCR_AIGroupFireteam.c:146
SCR_AIGroupFireteamVehicleBase::SetVehicle
void SetVehicle(notnull SCR_AIVehicleUsageComponent vehicleComp)
Definition
SCR_AIGroupFireteam.c:138
SCR_AIGroupFireteamVehicleBase::m_VehicleUsageComponent
SCR_AIVehicleUsageComponent m_VehicleUsageComponent
Definition
SCR_AIGroupFireteam.c:136
SCR_AIVehicleUsageComponent
Definition
SCR_AIVehicleUsageComponent.c:30
scripts
Game
AI
Group
SCR_AIGroupFireteam.c
Generated by
1.17.0