-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCredits.cpp
88 lines (73 loc) · 2.51 KB
/
Credits.cpp
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
80
81
82
83
84
85
86
87
88
/////////////////////////////////////////////////////////////////////
///////////////Original file by:Fyodor Zagumennov aka Sgw32//////////
///////////////Copyright(c) 2010 Fyodor Zagumennov //////////
/////////////////////////////////////////////////////////////////////
#include "Credits.h"
template<> Credits *Singleton<Credits>::ms_Singleton=0;
Credits::Credits()
{
timeElapsed=0;
started=false;
}
Credits::~Credits()
{
}
void Credits::init()
{
lua_register(global::getSingleton().getLuaState(), "startCredits",startCredits);
}
void Credits::start(String fileName)
{
cf.load(fileName);
String overlayName = cf.getSetting("OverlayName");
String datafile = cf.getSetting("FileName");
speed = StringConverter::parseReal(cf.getSetting("Speed"))*2.66*global::getSingleton().getWindow()->getHeight()/1024;
cf.load(datafile);
ConfigFile::SettingsMultiMap *settings = cf.getSectionIterator().getNext();
ConfigFile::SettingsMultiMap::iterator b;
// String curN;
cred_data="";
for (b = settings->begin(); b != settings->end(); ++b)
{
cred_data=cred_data+"\n"+b->second;
LogManager::getSingleton().logMessage(b->second);
}
started=true;
credOv=OverlayManager::getSingleton().getByName(overlayName);
credOv->show();
creditTextItem=credOv->getChild("Run3/Credits01Panel")->getChild("Run3/CreditsCredits");
creditTextItem->setCaption(cred_data);
creditTextItem->setMetricsMode(GMM_PIXELS);
creditTextItem->setTop(0);
creditTextItem->setLeft(0);
creditTextItem->setHeight(global::getSingleton().getWindow()->getHeight());
creditTextItem->setWidth(global::getSingleton().getWindow()->getWidth());
//((TextAreaOverlayElement*)creditTextItem)->setCharHeight(((TextAreaOverlayElement*)creditTextItem)->getCharHeight()*1024/global::getSingleton().getWindow()->getHeight());
char_height=0.03*global::getSingleton().getWindow()->getHeight()*(settings->size()+1)+StringConverter::parseReal(cf.getSetting("Delta"));
LogManager::getSingleton().logMessage(StringConverter::toString(char_height));
}
void Credits::pause()
{
}
void Credits::stop()
{
}
void Credits::update(const Ogre::FrameEvent &evt)
{
if (started)
{
timeElapsed+=evt.timeSinceLastFrame;
//LogManager::getSingleton().logMessage(StringConverter::toString(creditTextItem->getTop()));
creditTextItem->setTop(creditTextItem->getTop()-evt.timeSinceLastFrame*speed*TIME_SHIFT);
if (abs(creditTextItem->getTop())>char_height)
started=false;
}
}
void Credits::cleanup()
{
if (started)
{
creditTextItem->setTop(0);
started=false;
}
}