Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_FadeInOutAnimator.c
Go to the documentation of this file.
1
7
9{
10 // Member variables
11 protected Widget m_Widget;
12 protected int m_iState;
13 protected int m_iFormerState
14 protected float m_fFadeOutWaitTime;
15 protected float m_fFadeInSpeed;
16 protected float m_fFadeOutSpeed;
17 protected bool m_bForceVisible;
18 protected float m_fTimer;
19 protected bool m_bFadeOutSetVisibleFalse; // When fade out is done, widget will be SetVisible(false)
20 protected bool m_bAutoFadeOut; // Should it fade out after the 'fadeOutWaitTime' or not (default: true)
21
22 // States
23 const int STATE_FADE_IN = 0;
24 const int STATE_FADE_OUT_WAIT = 1;
25 const int STATE_FADE_OUT = 2;
26 const int STATE_FADING_DONE = 3;
27
28 //invokers
30
31 //-----------------------------------------------------
32 void SCR_FadeInOutAnimator(Widget w, float fadeInSpeed, float fadeOutSpeed, float fadeOutWaitTime, bool fadeOutSetVisibleFalse = false)
33 {
34 m_Widget = w;
35 m_fFadeOutSpeed = fadeOutSpeed;
36 m_fFadeInSpeed = fadeInSpeed;
37 m_fFadeOutWaitTime = fadeOutWaitTime;
38 m_bFadeOutSetVisibleFalse = fadeOutSetVisibleFalse;
39 m_bAutoFadeOut = true;
40
42 m_bForceVisible = false;
43 }
44
45 //-----------------------------------------------------
46 void Update(float timeSlice)
47 {
48 switch (m_iState)
49 {
51
52 if (m_bForceVisible && m_Widget.GetOpacity() < 1)
53 {
57 }
58
59 break;
60
61 case STATE_FADE_IN:
62
63 float opacity = Math.Clamp(m_Widget.GetOpacity() + timeSlice * m_fFadeInSpeed, 0 ,1);
64 m_Widget.SetOpacity(opacity);
65 m_Widget.SetVisible(true);
66
67 if (opacity >= 1)
68 {
70 {
75 }
76 else
77 {
81 }
82 }
83
84 break;
85
87
89 {
91 }
92 else
93 {
94 m_fTimer -= timeSlice;
95
96 if (m_fTimer <= 0)
97 {
101 }
102 }
103 break;
104
105 case STATE_FADE_OUT:
106
107 if (m_bForceVisible)
108 {
112 }
113 else
114 {
115 float opacity = Math.Clamp(m_Widget.GetOpacity() - m_fFadeOutSpeed*timeSlice, 0, 1);
116 m_Widget.SetOpacity(opacity);
117
118 if (opacity <= 0)
119 {
121 m_Widget.SetVisible(false);
122
126 }
127 }
128 break;
129 }
130 }
131
132 //-----------------------------------------------------
133 void FadeIn(bool fadeOut = true)
134 {
135 m_bAutoFadeOut = fadeOut;
136 m_iFormerState = m_iState;
138 if (m_OnStateChanged)
139 m_OnStateChanged.Invoke(m_iFormerState, m_iState);
140 }
141
142 //-----------------------------------------------------
143 void FadeOut()
144 {
145 m_iFormerState = m_iState;
148 m_OnStateChanged.Invoke(m_iFormerState, m_iState);
149 }
150
151 //-----------------------------------------------------
153 {
154 m_Widget.SetOpacity(0);
155 m_iFormerState = m_iState;
158 m_OnStateChanged.Invoke(m_iFormerState, m_iState);
159 Update(0);
160 }
161
162 //-----------------------------------------------------
163 void ForceVisible(bool force)
164 {
165 m_bForceVisible = force;
166 }
167
168 //-----------------------------------------------------
171 {
172 return m_iState;
173 }
174
175 //-----------------------------------------------------
178 {
179 return m_iState != STATE_FADING_DONE;
180 }
181
188};
Definition Math.c:13
bool IsRunning()
Returns TRUE if animation is running.
int GetState()
Returns state. See STATE_ constants.
void SCR_FadeInOutAnimator(Widget w, float fadeInSpeed, float fadeOutSpeed, float fadeOutWaitTime, bool fadeOutSetVisibleFalse=false)
ref ScriptInvoker< int, int > m_OnStateChanged
void Update(float timeSlice)
void FadeIn(bool fadeOut=true)
ScriptInvokerBase< func > ScriptInvoker
Definition tools.c:134