rendered paste body#include "TetrisMenu.h"
TetrisMenu::TetrisMenu(): back("images/menu/background.bmp"),
scores_on("images/menu/highscores_on.bmp"),
scores_off("images/menu/highscores_off.bmp"),
credits_on("images/menu/credits_on.bmp"),
credits_off("images/menu/credits_off.bmp"),
new_on("images/menu/newgame_on.bmp"),
new_off("images/menu/newgame_off.bmp"),
arrow("images/menu/arrow.bmp", 100, 50, 50) {
selected = 0;
}
void TetrisMenu::on_keychange(Uint8 type, SDLKey sym) {
SDL_Event event;
if (type == SDL_KEYDOWN) {
switch (sym) {
case SDLK_DOWN:
if (selected < 2)
selected ++;
else
selected = 0;
break;
case SDLK_UP:
if (selected > 0)
selected --;
else
selected = 2;
break;
case SDLK_RETURN:
if (selected == 0) {
push_screen(&game);
}
}
}
}
void TetrisMenu::draw(void) {
SDL_Rect pos;
SDL_BlitSurface(back.get_surface(), NULL, screen, NULL);
pos.x = 164;
pos.y = 140;
if (selected == 0)
SDL_BlitSurface(new_on.get_surface(), NULL, screen, &pos);
else
SDL_BlitSurface(new_off.get_surface(), NULL, screen, &pos);
pos.y += 50;
if (selected == 1)
SDL_BlitSurface(scores_on.get_surface(), NULL, screen, &pos);
else
SDL_BlitSurface(scores_off.get_surface(), NULL, screen, &pos);
pos.y += 50;
if (selected == 2)
SDL_BlitSurface(credits_on.get_surface(), NULL, screen, &pos);
else
SDL_BlitSurface(credits_off.get_surface(), NULL, screen, &pos);
arrow.BlitItTo(screen, 170, 140 + 50*selected);
}