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_BuildingDestructionManagerComponent.c
Go to the documentation of this file.
1
[
EntityEditorProps
(
category
:
"GameScripted/Destruction"
, description:
"Building destruction manager, stores data for destroyed buildings."
)]
2
class
SCR_BuildingDestructionManagerComponentClass
:
ScriptComponentClass
3
{
4
}
5
6
class
SCR_BuildingDestructionData
7
{
8
int
m_iNextFreeIndex
= -1;
9
vector
m_vTargetOrigin
;
10
vector
m_vStartAngles
;
11
vector
m_vStartMatrix
[4];
12
vector
m_vTargetAngles
;
13
int
m_iRotatedTimes
;
14
int
m_iRotationTime
;
15
int
m_iRotationMultiplier
= -1;
16
int
m_iChecksThisFrame
;
17
int
m_iPauseTime
;
18
float
m_fRotationSpeedMultiplier
= 1;
19
int
m_iRotationStart
;
20
float
m_fSpeedMultiplier
= 1;
21
ref
RandomGenerator
m_RandomGenerator
=
new
RandomGenerator
();
22
ref array<IEntity>
m_aQueriedEntities
;
23
ref set<int>
m_aExecutedEffectIndices
;
24
ref array<IEntity>
m_aExcludeList
;
25
ref array<ref Tuple2<vector, vector>>
m_aNavmeshAreas
;
26
ref array<bool>
m_aRedoRoads
;
27
ref SCR_BuildingDestructionCameraShakeProgress
m_CameraShake
= InitCameraShake();
28
SCR_AudioSource
m_AudioSource
;
29
float
m_fBuildingVolume
;
30
float
m_fSizeMultiplier
;
31
32
//------------------------------------------------------------------------------------------------
34
void
Reset
()
35
{
36
m_vTargetOrigin
=
vector
.Zero;
37
m_vStartAngles
=
vector
.Zero;
38
Math3D
.MatrixIdentity4(
m_vStartMatrix
);
39
m_vTargetAngles
=
vector
.Zero;
40
m_iRotatedTimes
= 0;
41
m_iRotationTime
= 0;
42
m_iRotationMultiplier
= -1;
43
m_iChecksThisFrame
= 0;
44
m_iPauseTime
= 0;
45
m_fRotationSpeedMultiplier
= 1;
46
m_iRotationStart
= 0;
47
m_fSpeedMultiplier
= 1;
48
m_RandomGenerator
=
new
RandomGenerator
();
49
m_aQueriedEntities
= null;
50
m_aExecutedEffectIndices
= null;
51
m_aExcludeList
= null;
52
m_aNavmeshAreas
= null;
53
m_aRedoRoads
= null;
54
m_CameraShake
= InitCameraShake();
55
m_AudioSource
= null;
56
m_fBuildingVolume
= 0;
57
}
58
59
static
SCR_BuildingDestructionCameraShakeProgress InitCameraShake()
60
{
61
// No camera shake for headless
62
if
(System.IsConsoleApp())
63
return
null;
64
65
return
new
SCR_BuildingDestructionCameraShakeProgress();
66
}
67
}
68
69
class
SCR_BuildingDestructionManagerComponent :
ScriptComponent
70
{
71
[
Attribute
()]
72
protected
ref
SCR_BuildingDestructionConfig
m_BuildingDestructionConfig
;
73
74
private
int
m_iFirstFreeData = -1;
75
private
ref array<ref SCR_BuildingDestructionData> m_aBuildingDestructionData = {};
76
77
protected
ref array<SCR_DestructibleBuildingComponent>
m_aDestroyedBuildings
= {};
78
protected
static
int
s_iHighestId
;
79
protected
static
ref
map<int, SCR_DestructibleBuildingComponent>
s_mBuildingIds
=
new
map<int, SCR_DestructibleBuildingComponent>
();
80
81
//------------------------------------------------------------------------------------------------
84
notnull SCR_BuildingDestructionData
GetData
(inout
int
index
)
85
{
86
if
(
index
== -1)
87
index
= AllocateData();
88
89
return
m_aBuildingDestructionData[
index
];
90
}
91
92
//------------------------------------------------------------------------------------------------
95
private
int
AllocateData()
96
{
97
if
(m_iFirstFreeData == -1)
98
return
m_aBuildingDestructionData.Insert(
new
SCR_BuildingDestructionData());
99
100
int
returnIndex = m_iFirstFreeData;
101
SCR_BuildingDestructionData
data
= m_aBuildingDestructionData[returnIndex];
102
m_iFirstFreeData =
data
.m_iNextFreeIndex;
103
data
.m_iNextFreeIndex = -1;
104
return
returnIndex;
105
}
106
107
//------------------------------------------------------------------------------------------------
110
void
FreeData(
int
index
)
111
{
112
// If you got a VME here, please report it only if you didn't touch the array/index
113
// Otherwise no guarantees
114
m_aBuildingDestructionData[
index
].Reset();
115
m_aBuildingDestructionData[
index
].m_iNextFreeIndex = m_iFirstFreeData;
116
m_iFirstFreeData =
index
;
117
}
118
119
//------------------------------------------------------------------------------------------------
121
array<typename> GetExcludedQueryTypes()
122
{
123
array<typename> outArray = {};
124
if
(!
m_BuildingDestructionConfig
)
125
return
outArray;
126
else
127
outArray.Copy(
m_BuildingDestructionConfig
.m_aExcludedEntityQueryTypenames);
128
129
return
outArray;
130
}
131
132
//------------------------------------------------------------------------------------------------
133
void
SCR_BuildingDestructionManagerComponent(IEntityComponentSource src,
IEntity
ent,
IEntity
parent)
134
{
135
GetGame
().RegisterBuildingDestructionManager(
this
);
136
}
137
138
//------------------------------------------------------------------------------------------------
139
// destructor
140
void
~SCR_BuildingDestructionManagerComponent()
141
{
142
GetGame
().UnregisterBuildingDestructionManager(
this
);
143
}
144
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_AudioSource
void SCR_AudioSource(SCR_AudioSourceConfiguration audioSourceConfiguration, vector mat[4])
Definition
SCR_AudioSource.c:139
m_aExcludeList
ref array< IEntity > m_aExcludeList
Definition
SCR_BuildingDestructionManagerComponent.c:24
m_vTargetAngles
vector m_vTargetAngles
Definition
SCR_BuildingDestructionManagerComponent.c:12
m_iRotationTime
int m_iRotationTime
Definition
SCR_BuildingDestructionManagerComponent.c:14
m_AudioSource
SCR_AudioSource m_AudioSource
Definition
SCR_BuildingDestructionManagerComponent.c:28
m_iRotatedTimes
int m_iRotatedTimes
Definition
SCR_BuildingDestructionManagerComponent.c:13
m_iRotationMultiplier
int m_iRotationMultiplier
Definition
SCR_BuildingDestructionManagerComponent.c:15
m_CameraShake
ref SCR_BuildingDestructionCameraShakeProgress m_CameraShake
Definition
SCR_BuildingDestructionManagerComponent.c:27
m_fBuildingVolume
float m_fBuildingVolume
Definition
SCR_BuildingDestructionManagerComponent.c:29
m_fRotationSpeedMultiplier
float m_fRotationSpeedMultiplier
Definition
SCR_BuildingDestructionManagerComponent.c:18
m_iChecksThisFrame
int m_iChecksThisFrame
Definition
SCR_BuildingDestructionManagerComponent.c:16
m_aNavmeshAreas
ref array< ref Tuple2< vector, vector > > m_aNavmeshAreas
Definition
SCR_BuildingDestructionManagerComponent.c:25
m_fSpeedMultiplier
float m_fSpeedMultiplier
Definition
SCR_BuildingDestructionManagerComponent.c:20
m_aExecutedEffectIndices
ref set< int > m_aExecutedEffectIndices
Definition
SCR_BuildingDestructionManagerComponent.c:23
m_iRotationStart
int m_iRotationStart
Definition
SCR_BuildingDestructionManagerComponent.c:19
m_vStartMatrix
vector m_vStartMatrix[4]
Definition
SCR_BuildingDestructionManagerComponent.c:11
m_aRedoRoads
ref array< bool > m_aRedoRoads
Definition
SCR_BuildingDestructionManagerComponent.c:26
m_vTargetOrigin
vector m_vTargetOrigin
Definition
SCR_BuildingDestructionManagerComponent.c:9
m_iPauseTime
int m_iPauseTime
Definition
SCR_BuildingDestructionManagerComponent.c:17
m_vStartAngles
vector m_vStartAngles
Definition
SCR_BuildingDestructionManagerComponent.c:10
m_fSizeMultiplier
float m_fSizeMultiplier
Definition
SCR_BuildingDestructionManagerComponent.c:30
m_iNextFreeIndex
SCR_BuildingDestructionManagerComponentClass m_iNextFreeIndex
m_RandomGenerator
ref RandomGenerator m_RandomGenerator
Definition
SCR_BuildingDestructionManagerComponent.c:21
EntityEditorProps
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
Definition
SCR_CompassComponent.c:10
m_aQueriedEntities
ref array< IEntity > m_aQueriedEntities
Definition
SCR_CompositionSlotManagerComponent.c:14
index
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
Definition
SCR_DestructionSynchronizationComponent.c:17
data
Get all prefabs that have the spawner data
Definition
SCR_EntityCatalogManagerComponent.c:320
category
params category
Definition
SCR_VehicleDamageManagerComponent.c:302
IEntity
enum EVehicleType IEntity
Math3D
Definition
Math3D.c:13
RandomGenerator
Definition
RandomGenerator.c:13
SCR_BuildingDestructionConfig
Definition
SCR_BuildingDestructionConfig.c:3
SCR_BuildingDestructionManagerComponentClass
Definition
SCR_BuildingDestructionManagerComponent.c:3
SCR_BuildingDestructionManagerComponent::m_BuildingDestructionConfig
ref SCR_BuildingDestructionConfig m_BuildingDestructionConfig
Definition
SCR_BuildingDestructionManagerComponent.c:72
SCR_BuildingDestructionManagerComponent::m_aDestroyedBuildings
ref array< SCR_DestructibleBuildingComponent > m_aDestroyedBuildings
Definition
SCR_BuildingDestructionManagerComponent.c:77
SCR_BuildingDestructionManagerComponent::s_mBuildingIds
static ref map< int, SCR_DestructibleBuildingComponent > s_mBuildingIds
Definition
SCR_BuildingDestructionManagerComponent.c:79
SCR_BuildingDestructionManagerComponent::s_iHighestId
static int s_iHighestId
Definition
SCR_BuildingDestructionManagerComponent.c:78
SCR_BuildingDestructionManagerComponent::GetData
notnull SCR_BuildingDestructionData GetData(inout int index)
Definition
SCR_BuildingDestructionManagerComponent.c:84
ScriptComponentClass
Definition
ScriptComponentClass.c:8
ScriptComponent
Definition
ScriptComponent.c:24
map
Definition
Types.c:486
vector
Definition
vector.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
Reset
void Reset()
Definition
SCR_AISectorThreatFilter.c:39
scripts
Game
Destruction
SCR_BuildingDestructionManagerComponent.c
Generated by
1.17.0