blob: e97a8085a8d81600e77727669560470af7787481 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#include "m/m_fader_base.h"
mFaderBase_c::mFaderBase_c(const mColor &color, EStatus status) : mFlag(0), mFrame(20), mElapsed(0) {
setColor(color);
mFlag |= FLAG_2;
switch (status) {
case FADED_OUT: mStatus = FADED_OUT; break;
case FADED_IN: mStatus = FADED_IN; break;
}
}
mFaderBase_c::~mFaderBase_c() {}
void mFaderBase_c::setFrame(u16 frame) {
mFrame = frame;
}
void mFaderBase_c::setColor(const mColor &newColor) {
mFaderColor.r = newColor.r;
mFaderColor.g = newColor.g;
mFaderColor.b = newColor.b;
}
mFaderBase_c::EStatus mFaderBase_c::getStatus() const {
return mStatus;
}
bool mFaderBase_c::fadeIn() {
bool canFadeIn = mStatus == FADED_OUT;
if (canFadeIn) {
mStatus = FADING_IN;
mElapsed = 0;
}
return canFadeIn;
}
bool mFaderBase_c::fadeOut() {
bool canFadeOut = mStatus == FADED_IN;
if (canFadeOut) {
mStatus = FADING_OUT;
mElapsed = 0;
}
return canFadeOut;
}
bool mFaderBase_c::calc() {
bool result = 0;
if (mStatus == FADING_IN) {
if (mElapsed++ > mFrame) {
mStatus = FADED_IN;
result = (mFlag & FLAG_1) != 0;
}
} else if (mStatus == FADING_OUT) {
if (++mElapsed > mFrame + 1) {
mStatus = FADED_OUT;
result = (mFlag & FLAG_2) != 0;
}
}
return result;
}
|