-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathFadeListener.cpp
More file actions
79 lines (68 loc) · 2.07 KB
/
FadeListener.cpp
File metadata and controls
79 lines (68 loc) · 2.07 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/////////////////////////////////////////////////////////////////////
///////////////Original file by:Fyodor Zagumennov aka Sgw32//////////
///////////////Copyright(c) 2010 Fyodor Zagumennov //////////
/////////////////////////////////////////////////////////////////////
#include "FadeListener.h"
template <> FadeListener *Singleton<FadeListener>::ms_Singleton = 0;
FadeListener::FadeListener() {
inited = false;
fadeb = false;
wait = 0;
returnafter = false;
}
FadeListener::~FadeListener() {}
void FadeListener::init(Ogre::Root *_root) {
root = _root;
root->addFrameListener(this);
fader = new Fader("Overlays/FadeInOut", "Materials/OverlayMaterial");
inited = true;
}
void FadeListener::rebuild() {
if (inited && !fadeb) {
delete fader;
OverlayManager::getSingleton()
.getByName("Overlays/FadeInOut")
->getChild("FadeInOutPanel")
->setMaterialName("Materials/OverlayMaterial");
fader = new Fader("Overlays/FadeInOut", "Materials/OverlayMaterial");
}
}
void FadeListener::rebuild(String mat, bool return1) {
if (inited && !fadeb) {
delete fader;
OverlayManager::getSingleton()
.getByName("Overlays/FadeInOut")
->getChild("FadeInOutPanel")
->setMaterialName(mat);
fader = new Fader("Overlays/FadeInOut", mat.c_str());
}
returnafter = return1;
}
void FadeListener::setDuration(Real dur) { duration = dur; }
void FadeListener::setDurationF(Real durf) { durationf = durf; }
void FadeListener::startIN() {
LogManager::getSingleton().logMessage("Fader:Fading in!");
if (returnafter) {
rebuild();
returnafter = false;
}
fadeb = true;
fader->startFadeIn(duration);
}
void FadeListener::startOUT() {
LogManager::getSingleton().logMessage("Fader:Fading out!");
if (returnafter) {
rebuild();
returnafter = false;
}
fadeb = true;
fader->startFadeOut(duration);
}
bool FadeListener::frameStarted(const Ogre::FrameEvent &evt) {
if (fadeb && (wait > 0))
wait -= evt.timeSinceLastFrame;
if (fadeb && (wait <= 0)) {
fader->fade(evt.timeSinceLastFrame);
}
return true;
}