summary refs log tree commit diff stats
path: root/titlestate.cpp
blob: 87a1fafe91ce4c529f9b62fb44666cbc0dc12b5f (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
#include "titlestate.h"
#include "util.h"
#include "gamestate.h"

State* TitleState::operator() (SDL_Renderer* renderer)
{
	SDL_Texture* background = loadImage(renderer, "resources/title.bmp");
	SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp");
	int selection = 0;
	SDL_Event e;
	
	for (;;)
	{
		SDL_RenderClear(renderer);
		SDL_RenderCopy(renderer, background, NULL, NULL);
		applyTexture(renderer, pointer, 136, selection==0?316:(selection==1?350:(selection==2?381:417)));
		SDL_RenderPresent(renderer);
		
		while (SDL_PollEvent(&e))
		{
			if (e.type == SDL_QUIT)
			{
				return NULL;
			} else if (e.type == SDL_KEYDOWN)
			{
				if ((e.key.keysym.sym == SDLK_UP) && (selection != 0))
				{
					selection--;
				} else if ((e.key.keysym.sym == SDLK_DOWN) && (selection != 3))
				{
					selection++;
				} else if (e.key.keysym.sym == SDLK_RETURN)
				{
					switch (selection)
					{
						case 0: return new GameState();
						//case 1: return new HowToPlayState();
						//case 2: return new ChooseHighscoreListState();
						case 3:	return NULL;
					}
				}
			}
		}
	}
}