summary refs log tree commit diff stats
path: root/hslocal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hslocal.cpp')
-rw-r--r--hslocal.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/hslocal.cpp b/hslocal.cpp new file mode 100644 index 0000000..17cae1b --- /dev/null +++ b/hslocal.cpp
@@ -0,0 +1,84 @@
1#include "includes.h"
2
3LocalHighscoreListState::LocalHighscoreListState(bool fromGame)
4{
5 this->fromGame = fromGame;
6
7 if (fromGame)
8 {
9 LOADIMAGE(options,hlo_paartm)
10 } else {
11 LOADIMAGE(options,hlo_rtm)
12 }
13
14 LOADIMAGE(pointer,pointer)
15
16 LocalHighscoreList* lhl = new LocalHighscoreList();
17 list = lhl->render();
18
19 SDL_Color fontColor = {0, 0, 0, 0};
20 SDL_Surface* title = TTF_RenderText_Blended(loadFont(40), "Highscore List", fontColor);
21 SDL_Rect tSpace = {240-(title->w/2), 0, title->w, title->h};
22 SDL_BlitSurface(title, NULL, list, &tSpace);
23
24 SDL_Rect oSpace = {0, 440, options->w, options->h};
25 SDL_BlitSurface(options, NULL, list, &oSpace);
26
27 selection = 0;
28
29 SDL_WM_SetCaption("Maze Of Life - Highscore List", NULL);
30}
31
32void LocalHighscoreListState::input(SDL_keysym key)
33{
34 if (fromGame)
35 {
36 if ((key.sym == SDLK_LEFT) && (selection != 0))
37 {
38 selection--;
39 } else if ((key.sym == SDLK_RIGHT) && (selection != 1))
40 {
41 selection++;
42 } else if (key.sym == SDLK_RETURN)
43 {
44 switch (selection)
45 {
46 case 0:
47 changeState(new GameState());
48
49 break;
50 case 1:
51 changeState(new TitleState());
52
53 break;
54 }
55 }
56 } else {
57 if (key.sym == SDLK_RETURN)
58 {
59 changeState(new ChooseHighscoreListState());
60 }
61 }
62}
63
64void LocalHighscoreListState::render(SDL_Surface* screen)
65{
66 SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 255, 255, 255));
67
68 SDL_BlitSurface(list, NULL, screen, NULL);
69
70 SDL_Rect pSpace;
71 pSpace.w = pointer->w;
72 pSpace.h = pointer->h;
73
74 if (fromGame)
75 {
76 pSpace.x = (selection==0?52:225);
77 pSpace.y = 447;
78 } else {
79 pSpace.x = 137;
80 pSpace.y = 449;
81 }
82
83 SDL_BlitSurface(pointer, NULL, screen, &pSpace);
84}