1
#include <screen_score.h>
3
CScreenScore::CScreenScore(std::string const& name, unsigned int width, unsigned int height):
4
CScreen(name, width, height)
7
CScreenScore::~CScreenScore() {}
9
void CScreenScore::enter() {
10
CScreenManager* sm = CScreenManager::getSingletonPtr();
11
theme = new CThemeScore(m_width, m_height);
12
bg_texture = sm->getVideoDriver()->initSurface(theme->bg->getSDLSurface());
15
void CScreenScore::exit() {
19
void CScreenScore::manageEvent(SDL_Event event) {
20
if (event.type == SDL_KEYDOWN) CScreenManager::getSingletonPtr()->activateScreen("Songs");
23
void CScreenScore::draw() {
24
CScreenManager* sm = CScreenManager::getSingletonPtr();
25
Song& song = sm->getSongs()->current();
26
theme->theme->clear();
28
int score = song.getScore();
32
sprintf(scoreStr,"%4d",score);
33
theme->normal_score.text = scoreStr;
34
if (score < 2000) sprintf(rankStr,"Tone deaf");
35
else if (score < 4000) sprintf(rankStr,"Amateur");
36
else if (score < 6000) sprintf(rankStr,"Rising star");
37
else if (score < 8000) sprintf(rankStr,"Lead singer");
38
else sprintf(rankStr,"Hit singer");
39
double oldY = theme->level.y;
40
scorePercent = score/10000.;
41
theme->level.y = theme->level.y + theme->level.final_height * (1.-scorePercent);
42
theme->level.height = theme->level.final_height* scorePercent;
43
theme->rank.text = rankStr;
44
theme->theme->PrintText(&theme->normal_score);
45
theme->theme->PrintText(&theme->rank);
46
theme->theme->DrawRect(theme->level);
47
theme->level.y = oldY;
48
sm->getVideoDriver()->drawSurface(bg_texture);
49
sm->getVideoDriver()->drawSurface(theme->theme->getCurrent());