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
|
#include "includes.h"
LocalHighscoreListState::LocalHighscoreListState(bool fromGame)
{
this->fromGame = fromGame;
if (fromGame)
{
options = SDL_LoadBMP("resources/hlo_paartm.bmp");
} else {
options = SDL_LoadBMP("resources/hlo_rtm.bmp");
}
pointer = SDL_LoadBMP("resources/pointer.bmp");
LocalHighscoreList* lhl = new LocalHighscoreList();
list = lhl->render();
SDL_Color fontColor = {0, 0, 0, 0};
SDL_Surface* title = TTF_RenderText_Blended(loadFont(40), "Highscore List", fontColor);
SDL_Rect tSpace = {240-(title->w/2), 0, title->w, title->h};
SDL_BlitSurface(title, NULL, list, &tSpace);
SDL_Rect oSpace = {0, 440, options->w, options->h};
SDL_BlitSurface(options, NULL, list, &oSpace);
selection = 0;
}
void LocalHighscoreListState::input(SDL_keysym key)
{
if (fromGame)
{
if ((key.sym == SDLK_LEFT) && (selection != 0))
{
selection--;
} else if ((key.sym == SDLK_RIGHT) && (selection != 1))
{
selection++;
} else if (key.sym == SDLK_RETURN)
{
switch (selection)
{
case 0:
changeState(new GameState());
break;
case 1:
changeState(new TitleState());
break;
}
}
} else {
if (key.sym == SDLK_RETURN)
{
changeState(new ChooseHighscoreListState());
}
}
}
void LocalHighscoreListState::render(SDL_Surface* screen)
{
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 255, 255, 255));
SDL_BlitSurface(list, NULL, screen, NULL);
SDL_Rect pSpace;
pSpace.w = pointer->w;
pSpace.h = pointer->h;
if (fromGame)
{
pSpace.x = (selection==0?52:225);
pSpace.y = 447;
} else {
pSpace.x = 137;
pSpace.y = 449;
}
SDL_BlitSurface(pointer, NULL, screen, &pSpace);
}
|