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_FireModeManagerComponent.c
Go to the documentation of this file.
1
//------------------------------------------------------------------------------------------------
2
void
OnTurretFireModeValuesChanged
(
EWeaponGroupFireMode
fireMode,
int
quantity,
int
weaponGroupId);
3
typedef
func
OnTurretFireModeValuesChanged
;
4
typedef
ScriptInvokerBase<OnTurretFireModeValuesChanged>
OnTurretFireModeValuesChangedInvoker
;
5
6
class
SCR_FireModeManagerComponentClass
:
FireModeManagerComponentClass
7
{
8
}
9
10
class
SCR_FireModeManagerComponent :
FireModeManagerComponent
11
{
12
protected
ChimeraCharacter
m_ControllingCharacter
;
13
protected
ref
OnTurretFireModeValuesChangedInvoker
m_OnTurretFireModeValuesChanged
;
14
15
protected
int
m_iCurrentWeaponGroup
;
16
protected
int
m_iCurrentRippleIndex
;
17
18
EWeaponGroupFireMode
m_eFireMode
;
19
protected
int
m_iRippleQuantity
= 0;
20
protected
float
m_fRippleInterval
= 100.0;
21
22
protected
const
string
EVENT_NAME_ENTER_COMPARTMENT
=
"OnCompartmentEntered"
;
23
24
protected
const
string
ACTION_NAME_RIPPLE_QUANTITY
=
"TurretWeaponNextRippleQuantity"
;
25
protected
const
string
ACTION_NAME_FIRE_MODE
=
"TurretWeaponNextFireMode"
;
26
protected
const
string
ACTION_NAME_WEAPON_GROUP
=
"TurretNextWeapon"
;
27
28
//------------------------------------------------------------------------------------------------
30
OnTurretFireModeValuesChangedInvoker
GetOnTurretFireModeValuesChanged
()
31
{
32
if
(!
m_OnTurretFireModeValuesChanged
)
33
m_OnTurretFireModeValuesChanged
=
new
OnTurretFireModeValuesChangedInvoker
();
34
35
return
m_OnTurretFireModeValuesChanged
;
36
}
37
38
//------------------------------------------------------------------------------------------------
40
protected
override
void
OnWeaponsGroupChanged
(
int
weaponsGroupIndex,
int
rippleModeIndex)
41
{
42
m_iCurrentWeaponGroup
= weaponsGroupIndex;
43
m_iCurrentRippleIndex
= rippleModeIndex;
44
45
FireModeManagerComponentClass
prefab =
GetPrefabData
();
46
47
array<int> ripples = {};
48
if
(prefab.GetAvailableRippleQuantities(
m_iCurrentWeaponGroup
, ripples))
49
{
50
m_iRippleQuantity
= ripples[rippleModeIndex];
51
}
52
m_eFireMode
= prefab.GetFireMode(
m_iCurrentWeaponGroup
);
53
54
if
(
m_OnTurretFireModeValuesChanged
)
55
m_OnTurretFireModeValuesChanged
.Invoke(
m_eFireMode
,
m_iRippleQuantity
,
m_iCurrentWeaponGroup
);
56
}
57
58
//------------------------------------------------------------------------------------------------
59
FireModeManagerComponentClass
GetPrefabData
()
60
{
61
IEntity
owner =
GetOwner
();
62
63
EntityPrefabData
prefab = owner.
GetPrefabData
();
64
65
return
FireModeManagerComponentClass
.Cast(prefab.FindComponentData(
FireModeManagerComponentClass
));
66
}
67
//------------------------------------------------------------------------------------------------
69
int
GetNumberOfAvailableWeaponGroups
()
70
{
71
FireModeManagerComponentClass
prefab =
GetPrefabData
();
72
return
prefab.GetNumberOfWeaponsGroups();
73
}
74
//------------------------------------------------------------------------------------------------
76
int
GetNumberOfAvailableRippleQuantities
()
77
{
78
FireModeManagerComponentClass
prefab =
GetPrefabData
();
79
return
prefab.GetNumberOfRippleCounts(
m_iCurrentWeaponGroup
);
80
}
81
//------------------------------------------------------------------------------------------------
83
int
GetNumberOfAvailableFireModes
()
84
{
85
FireModeManagerComponentClass
prefab =
GetPrefabData
();
86
array<int> ints = {};
87
return
SCR_Enum
.BitToIntArray(prefab.GetFireMode(
m_iCurrentWeaponGroup
), ints);
88
}
89
90
//------------------------------------------------------------------------------------------------
92
void
GetAvailableFireModes
(notnull out array<int> availableFireModes)
93
{
94
availableFireModes.Clear();
95
FireModeManagerComponentClass
prefab =
GetPrefabData
();
96
prefab.GetAvailableFireModes(availableFireModes);
97
}
98
99
//------------------------------------------------------------------------------------------------
100
int
GetAvailableRippleQuantities
(notnull out array<int> availableRippleQuantities)
101
{
102
availableRippleQuantities.Clear();
103
FireModeManagerComponentClass
prefab =
GetPrefabData
();
104
return
prefab.GetAvailableRippleQuantities(
m_iCurrentWeaponGroup
, availableRippleQuantities);
105
}
106
107
//------------------------------------------------------------------------------------------------
110
int
GetWeaponGroupID
(out
string
name)
111
{
112
FireModeManagerComponentClass
prefab =
GetPrefabData
();
113
if
(prefab)
114
name = prefab.GetWeaponsGroupName(
m_iCurrentWeaponGroup
);
115
116
return
m_iCurrentWeaponGroup
;
117
}
118
119
//------------------------------------------------------------------------------------------------
120
121
int
GetCurrentWeaponIndices
(notnull out array<int> weaponIndices)
122
{
123
weaponIndices.Clear();
124
FireModeManagerComponentClass
prefab =
GetPrefabData
();
125
return
prefab.GetWeaponIndices(
m_iCurrentWeaponGroup
, weaponIndices);
126
}
127
128
//------------------------------------------------------------------------------------------------
131
EWeaponGroupFireMode
GetFireMode
(out
string
name =
string
.Empty)
132
{
133
name =
SCR_Enum
.GetEnumName(
EWeaponGroupFireMode
,
m_eFireMode
);
134
return
m_eFireMode
;
135
}
136
137
//------------------------------------------------------------------------------------------------
139
int
GetRippleQuantity
()
140
{
141
return
m_iRippleQuantity
;
142
}
143
144
//------------------------------------------------------------------------------------------------
146
int
GetRippleInterval
()
147
{
148
return
m_fRippleInterval
;
149
}
150
151
//------------------------------------------------------------------------------------------------
156
protected
void
ReplicatedNextWeaponGroup
(
float
value = 0.0,
EActionTrigger
reason
= 0,
string
actionName =
string
.Empty)
157
{
158
if
(!
m_ControllingCharacter
)
159
{
160
RemoveActionListeners
();
161
return
;
162
}
163
164
NextWeaponsGroup();
165
}
166
//------------------------------------------------------------------------------------------------
171
protected
void
ReplicatedNextFireMode
(
float
value = 0.0,
EActionTrigger
reason
= 0,
string
actionName =
string
.Empty)
172
{
173
if
(!
m_ControllingCharacter
)
174
{
175
RemoveActionListeners
();
176
return
;
177
}
178
179
NextFireMode();
180
}
181
182
//------------------------------------------------------------------------------------------------
187
protected
void
ReplicatedNextRippleQuantity
(
float
value = 0.0,
EActionTrigger
reason
= 0,
string
actionName =
string
.Empty)
188
{
189
if
(!
m_ControllingCharacter
)
190
{
191
RemoveActionListeners
();
192
return
;
193
}
194
195
NextRippleCount();
196
}
197
198
//------------------------------------------------------------------------------------------------
200
void
SetUpAllActionListeners
(notnull
ChimeraCharacter
controllingCharacter)
201
{
202
m_ControllingCharacter
= controllingCharacter;
203
SetUpWeaponGroupActionListeners
();
204
SetUpFireModeActionListeners
();
205
SetUpRippleQuantityActionListeners
();
206
}
207
208
//------------------------------------------------------------------------------------------------
209
void
SetRippleInterval
(
float
value)
210
{
211
}
212
213
//------------------------------------------------------------------------------------------------
214
protected
void
SetUpWeaponGroupActionListeners
()
215
{
216
InputManager
inputMgr =
GetGame
().GetInputManager();
217
inputMgr.AddActionListener(
ACTION_NAME_WEAPON_GROUP
,
EActionTrigger
.DOWN,
ReplicatedNextWeaponGroup
);
218
}
219
220
//------------------------------------------------------------------------------------------------
221
protected
void
SetUpFireModeActionListeners
()
222
{
223
InputManager
inputMgr =
GetGame
().GetInputManager();
224
array<int> intValues = {};
225
inputMgr.AddActionListener(
ACTION_NAME_FIRE_MODE
,
EActionTrigger
.DOWN,
ReplicatedNextFireMode
);
226
}
227
228
//------------------------------------------------------------------------------------------------
229
protected
void
SetUpRippleQuantityActionListeners
()
230
{
231
InputManager
inputMgr =
GetGame
().GetInputManager();
232
inputMgr.AddActionListener(
ACTION_NAME_RIPPLE_QUANTITY
,
EActionTrigger
.DOWN,
ReplicatedNextRippleQuantity
);
233
}
234
235
//------------------------------------------------------------------------------------------------
237
void
RemoveActionListeners
()
238
{
239
m_ControllingCharacter
= null;
240
InputManager
inputMgr =
GetGame
().GetInputManager();
241
inputMgr.RemoveActionListener(
ACTION_NAME_WEAPON_GROUP
,
EActionTrigger
.DOWN,
ReplicatedNextWeaponGroup
);
242
inputMgr.RemoveActionListener(
ACTION_NAME_FIRE_MODE
,
EActionTrigger
.DOWN,
ReplicatedNextFireMode
);
243
inputMgr.RemoveActionListener(
ACTION_NAME_RIPPLE_QUANTITY
,
EActionTrigger
.DOWN,
ReplicatedNextRippleQuantity
);
244
}
245
246
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
func
func
Definition
SCR_AIThreatSystem.c:6
GetWeaponGroupID
int GetWeaponGroupID(out string name)
Definition
SCR_FireModeManagerComponent.c:110
ACTION_NAME_FIRE_MODE
const string ACTION_NAME_FIRE_MODE
Definition
SCR_FireModeManagerComponent.c:25
m_iCurrentWeaponGroup
int m_iCurrentWeaponGroup
Definition
SCR_FireModeManagerComponent.c:15
m_ControllingCharacter
SCR_FireModeManagerComponentClass m_ControllingCharacter
GetNumberOfAvailableFireModes
int GetNumberOfAvailableFireModes()
Definition
SCR_FireModeManagerComponent.c:83
OnTurretFireModeValuesChanged
func OnTurretFireModeValuesChanged
Definition
SCR_FireModeManagerComponent.c:3
ReplicatedNextWeaponGroup
void ReplicatedNextWeaponGroup(float value=0.0, EActionTrigger reason=0, string actionName=string.Empty)
Definition
SCR_FireModeManagerComponent.c:156
m_iRippleQuantity
int m_iRippleQuantity
Definition
SCR_FireModeManagerComponent.c:19
GetCurrentWeaponIndices
int GetCurrentWeaponIndices(notnull out array< int > weaponIndices)
Definition
SCR_FireModeManagerComponent.c:121
GetRippleInterval
int GetRippleInterval()
Definition
SCR_FireModeManagerComponent.c:146
GetRippleQuantity
int GetRippleQuantity()
Definition
SCR_FireModeManagerComponent.c:139
ACTION_NAME_WEAPON_GROUP
const string ACTION_NAME_WEAPON_GROUP
Definition
SCR_FireModeManagerComponent.c:26
GetAvailableFireModes
void GetAvailableFireModes(notnull out array< int > availableFireModes)
Definition
SCR_FireModeManagerComponent.c:92
RemoveActionListeners
void RemoveActionListeners()
Definition
SCR_FireModeManagerComponent.c:237
SetUpRippleQuantityActionListeners
void SetUpRippleQuantityActionListeners()
Definition
SCR_FireModeManagerComponent.c:229
m_fRippleInterval
float m_fRippleInterval
Definition
SCR_FireModeManagerComponent.c:20
SetUpAllActionListeners
void SetUpAllActionListeners(notnull ChimeraCharacter controllingCharacter)
Definition
SCR_FireModeManagerComponent.c:200
GetFireMode
EWeaponGroupFireMode GetFireMode(out string name=string.Empty)
Definition
SCR_FireModeManagerComponent.c:131
ACTION_NAME_RIPPLE_QUANTITY
const string ACTION_NAME_RIPPLE_QUANTITY
Definition
SCR_FireModeManagerComponent.c:24
SetRippleInterval
void SetRippleInterval(float value)
Definition
SCR_FireModeManagerComponent.c:209
EVENT_NAME_ENTER_COMPARTMENT
const string EVENT_NAME_ENTER_COMPARTMENT
Definition
SCR_FireModeManagerComponent.c:22
ReplicatedNextRippleQuantity
void ReplicatedNextRippleQuantity(float value=0.0, EActionTrigger reason=0, string actionName=string.Empty)
Definition
SCR_FireModeManagerComponent.c:187
m_iCurrentRippleIndex
int m_iCurrentRippleIndex
Definition
SCR_FireModeManagerComponent.c:16
m_eFireMode
EWeaponGroupFireMode m_eFireMode
Definition
SCR_FireModeManagerComponent.c:18
SetUpWeaponGroupActionListeners
void SetUpWeaponGroupActionListeners()
Definition
SCR_FireModeManagerComponent.c:214
GetNumberOfAvailableRippleQuantities
int GetNumberOfAvailableRippleQuantities()
Definition
SCR_FireModeManagerComponent.c:76
SetUpFireModeActionListeners
void SetUpFireModeActionListeners()
Definition
SCR_FireModeManagerComponent.c:221
m_OnTurretFireModeValuesChanged
ref OnTurretFireModeValuesChangedInvoker m_OnTurretFireModeValuesChanged
Definition
SCR_FireModeManagerComponent.c:13
OnTurretFireModeValuesChangedInvoker
ScriptInvokerBase< OnTurretFireModeValuesChanged > OnTurretFireModeValuesChangedInvoker
Definition
SCR_FireModeManagerComponent.c:4
GetOnTurretFireModeValuesChanged
OnTurretFireModeValuesChangedInvoker GetOnTurretFireModeValuesChanged()
Definition
SCR_FireModeManagerComponent.c:30
GetNumberOfAvailableWeaponGroups
int GetNumberOfAvailableWeaponGroups()
Definition
SCR_FireModeManagerComponent.c:69
ReplicatedNextFireMode
void ReplicatedNextFireMode(float value=0.0, EActionTrigger reason=0, string actionName=string.Empty)
Definition
SCR_FireModeManagerComponent.c:171
GetAvailableRippleQuantities
int GetAvailableRippleQuantities(notnull out array< int > availableRippleQuantities)
Definition
SCR_FireModeManagerComponent.c:100
GetPrefabData
SCR_VehicleDamageManagerComponentClass GetPrefabData()
Definition
SCR_VehicleDamageManagerComponent.c:393
reason
string reason
Definition
ServerBrowserMenuCallbacks.c:41
ChimeraCharacter
Definition
ChimeraCharacter.c:13
EntityPrefabData
Definition
EntityPrefabData.c:19
FireModeManagerComponentClass
Definition
FireModeManagerComponentClass.c:13
FireModeManagerComponent
Definition
FireModeManagerComponent.c:13
FireModeManagerComponent::OnWeaponsGroupChanged
void OnWeaponsGroupChanged(int weaponsGroupIndex, int rippleModeIndex)
IEntity
Definition
IEntity.c:13
IEntity::GetPrefabData
proto external EntityPrefabData GetPrefabData()
InputManager
Input management system for user interactions.
Definition
InputManager.c:20
SCR_Enum
Definition
SCR_Enum.c:2
SCR_FireModeManagerComponentClass
Definition
SCR_FireModeManagerComponent.c:7
GetOwner
IEntity GetOwner()
Owner entity of the fuel tank.
Definition
SCR_FuelNode.c:128
EActionTrigger
EActionTrigger
Definition
EActionTrigger.c:13
EWeaponGroupFireMode
EWeaponGroupFireMode
Definition
EWeaponGroupFireMode.c:13
scripts
Game
Components
SCR_FireModeManagerComponent.c
Generated by
1.17.0