summary refs log tree commit diff stats
path: root/hslocal.cpp
blob: c53f3977c4dffd7c453aee113bdb989348840029 (plain) (blame)
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)
	{
		LOADIMAGE(options,hlo_paartm)
	} else {
		LOADIMAGE(options,hlo_rtm)
	}

	LOADIMAGE(pointer,pointer)

	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);
}