All pastes #546830 Raw Edit

Stuff

public text v1 · immutable
·published 2007-06-07 05:26 UTC
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);
}