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_NoisyCameraShakeProgress.c
Go to the documentation of this file.
1
4
class
SCR_NoisyCameraShakeProgress
:
SCR_GenericCameraShakeProgress
5
{
6
protected
float
m_fCurrent
;
7
protected
float
m_fVelocity
;
8
protected
float
m_fMaxVelocity
;
9
10
protected
float
m_fLinearMagnitude
;
11
protected
float
m_fAngularMagnitude
;
12
13
protected
float
m_fInTime
;
14
protected
float
m_fSustainTime
;
15
protected
float
m_fOutTime
;
16
17
protected
float
m_fElapsedTime
;
18
protected
float
m_fDuration
;
19
20
override
void
Update
(
IEntity
owner,
float
timeSlice)
21
{
22
if
(!
IsRunning
())
23
return
;
24
25
float
smoothTime;
26
float
targetValue;
27
// Check which state of transition this shake is in
28
if
(
m_fElapsedTime
<=
m_fInTime
)
29
{
30
// Blend in
31
targetValue = 1.0;
32
smoothTime =
m_fInTime
;
33
}
34
else
if
(
m_fElapsedTime
<=
m_fInTime
+
m_fSustainTime
)
35
{
36
// Sustain
37
targetValue = 1.0;
38
smoothTime =
m_fSustainTime
;
39
}
40
else
41
{
42
// Blend out
43
targetValue = 0.0;
44
smoothTime =
m_fOutTime
;
45
}
46
47
// Update elapsed time
48
m_fElapsedTime
+= timeSlice;
49
50
// Interpolate progress
51
m_fCurrent
=
Math
.SmoothCD(
m_fCurrent
, targetValue,
m_fVelocity
, smoothTime,
m_fMaxVelocity
, timeSlice);
52
53
// Calculate new state
54
m_vTranslation
=
m_fLinearMagnitude
*
m_fCurrent
*
55
Vector
(
56
Math
.RandomFloat(-0.005, 0.005),
57
Math
.RandomFloat(-0.005, 0.005),
58
0.0
59
);
60
m_vRotation
=
m_fAngularMagnitude
*
m_fCurrent
*
61
Vector
(
62
Math
.RandomFloat(-0.25, 0.25),
63
Math
.RandomFloat(-0.25, 0.25),
64
Math
.RandomFloat(-1, 1)
65
);
66
67
m_fFovScale
= 1.0;
68
69
// Finished, clear state
70
if
(targetValue <= 0 &&
m_fCurrent
<= 0.0001)
71
{
72
m_bIsRunning
=
false
;
73
m_fCurrent
= 0.0;
74
m_fVelocity
= 0.0;
75
m_vTranslation
=
vector
.Zero;
76
m_vRotation
=
vector
.Zero;
77
m_fFovScale
= 1.0;
78
}
79
}
80
81
void
SetParams
(
float
linearMagnitude,
float
angularMagnitude,
float
inTime,
float
sustainTime,
float
outTime)
82
{
83
m_fLinearMagnitude
= linearMagnitude;
84
m_fAngularMagnitude
= angularMagnitude;
85
m_fInTime
= inTime;
86
m_fSustainTime
= sustainTime;
87
m_fOutTime
= outTime;
88
}
89
90
override
void
Start
()
91
{
92
if
(
m_fInTime
<= 0.0 ||
m_fOutTime
<= 0.0)
93
{
94
Print
(
"Camera Shake: In and out time can not be less or equal to zero!"
,
LogLevel
.ERROR);
95
m_bIsRunning
=
false
;
96
return
;
97
}
98
99
// Immediate values
100
m_fCurrent
= 0.0;
101
m_fMaxVelocity
= 10.0;
102
m_fElapsedTime
= 0.0;
103
m_fDuration
=
m_fInTime
+
m_fSustainTime
+
m_fOutTime
;
104
105
// Start progress
106
m_bIsRunning
=
true
;
107
}
108
109
override
void
Clear
()
110
{
111
super.Clear();
112
m_bIsRunning
=
false
;
113
}
114
};
IEntity
Definition
IEntity.c:13
Math
Definition
Math.c:13
SCR_GenericCameraShakeProgress
Definition
SCR_GenericCameraShakeProgress.c:6
SCR_GenericCameraShakeProgress::m_bIsRunning
bool m_bIsRunning
Definition
SCR_GenericCameraShakeProgress.c:10
SCR_GenericCameraShakeProgress::IsRunning
override bool IsRunning()
Definition
SCR_GenericCameraShakeProgress.c:12
SCR_GenericCameraShakeProgress::m_vTranslation
vector m_vTranslation
Definition
SCR_GenericCameraShakeProgress.c:7
SCR_GenericCameraShakeProgress::m_fFovScale
float m_fFovScale
Definition
SCR_GenericCameraShakeProgress.c:9
SCR_GenericCameraShakeProgress::m_vRotation
vector m_vRotation
Definition
SCR_GenericCameraShakeProgress.c:8
SCR_NoisyCameraShakeProgress
Definition
SCR_NoisyCameraShakeProgress.c:5
SCR_NoisyCameraShakeProgress::m_fCurrent
float m_fCurrent
Definition
SCR_NoisyCameraShakeProgress.c:6
SCR_NoisyCameraShakeProgress::m_fAngularMagnitude
float m_fAngularMagnitude
Definition
SCR_NoisyCameraShakeProgress.c:11
SCR_NoisyCameraShakeProgress::m_fInTime
float m_fInTime
Definition
SCR_NoisyCameraShakeProgress.c:13
SCR_NoisyCameraShakeProgress::m_fMaxVelocity
float m_fMaxVelocity
Definition
SCR_NoisyCameraShakeProgress.c:8
SCR_NoisyCameraShakeProgress::m_fLinearMagnitude
float m_fLinearMagnitude
Definition
SCR_NoisyCameraShakeProgress.c:10
SCR_NoisyCameraShakeProgress::m_fDuration
float m_fDuration
Definition
SCR_NoisyCameraShakeProgress.c:18
SCR_NoisyCameraShakeProgress::Start
override void Start()
Definition
SCR_NoisyCameraShakeProgress.c:90
SCR_NoisyCameraShakeProgress::SetParams
void SetParams(float linearMagnitude, float angularMagnitude, float inTime, float sustainTime, float outTime)
Definition
SCR_NoisyCameraShakeProgress.c:81
SCR_NoisyCameraShakeProgress::m_fElapsedTime
float m_fElapsedTime
Definition
SCR_NoisyCameraShakeProgress.c:17
SCR_NoisyCameraShakeProgress::Clear
override void Clear()
Definition
SCR_NoisyCameraShakeProgress.c:109
SCR_NoisyCameraShakeProgress::m_fVelocity
float m_fVelocity
Definition
SCR_NoisyCameraShakeProgress.c:7
SCR_NoisyCameraShakeProgress::m_fSustainTime
float m_fSustainTime
Definition
SCR_NoisyCameraShakeProgress.c:14
SCR_NoisyCameraShakeProgress::Update
override void Update(IEntity owner, float timeSlice)
Definition
SCR_NoisyCameraShakeProgress.c:20
SCR_NoisyCameraShakeProgress::m_fOutTime
float m_fOutTime
Definition
SCR_NoisyCameraShakeProgress.c:15
vector
Definition
vector.c:13
Print
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
LogLevel
Enum with severity of the logging message.
Definition
LogLevel.c:14
Vector
proto native vector Vector(float x, float y, float z)
scripts
Game
Camera
Shake
SCR_NoisyCameraShakeProgress.c
Generated by
1.17.0