ELEC2645 (2018/19) / Mbed 2 deprecated el17ebs

Dependencies:   mbed FATFileSystem

Menu/Menu.cpp

Committer:
ellisbhastroud
Date:
2019-03-20
Revision:
2:81cfa8310f55
Parent:
1:6179c2d67d19
Child:
3:a8960004d261

File content as of revision 2:81cfa8310f55:

#include "Menu.h"

// constructor

Menu::Menu()
{

}

//deconstructor

Menu::~Menu()
{

}

//public methods

void Menu::print_welcome(N5110 &lcd)
{
    lcd.clear();
    lcd.printString("Welcome to",0,0);
    lcd.printString("GAME",0,1);
    lcd.printString("by",0,2);
    lcd.printString("Ellis Blackford Stroud",0,3);
    lcd.refresh();
}

void Menu::print_menu(N5110 &lcd)
{
    lcd.clear();
    lcd.printString("Use joystick",0,2);
    lcd.printString("to select !",0,3);
    wait(2);
    lcd.clear();
    lcd.printString("Start Game",10,0);
    lcd.printString("Highscores",10,2);
    lcd.printString("Settings",10,4);
    lcd.refresh();
}

void Menu::print_highscores(N5110 &lcd)
{
    lcd.clear();
    lcd.printString("Highscores",0,2);
    lcd.refresh();
}

void Menu::print_settings(N5110 &lcd)
{
    lcd.clear();
    lcd.printString("Settings",0,2);
    lcd.refresh();
}

void Menu::print_start(N5110 &lcd)
{
    lcd.clear();
    lcd.printString("Start?",0,2);
    lcd.refresh();
}

//Uses joystick direction to select menu option
MenuChoices Menu::menu_choice(MenuChoices menu, Gamepad &pad, N5110 &lcd)
{
    
    int d = pad.get_direction();
    MenuChoices m = menu;

    switch(m) {
        //cursor on start
        case 0:
            lcd.drawRect(0,16,6,8,FILL_WHITE);
            lcd.drawRect(0,32,6,8,FILL_WHITE);
            lcd.drawRect(0,0,6,8,FILL_TRANSPARENT);  

            switch(d) {
                    case 0: //joystick centered
                        m = START;
                        break;
                    case 1: //joystick up
                        m = SETTINGS;
                        break;
                    case 5: //joystick down
                        m = HIGHSCORES;
                        break;
                }
            break;
        //cursor on highscores
        case 1:
            lcd.drawRect(0,0,6,8,FILL_WHITE);
            lcd.drawRect(0,32,6,8,FILL_WHITE);
            lcd.drawRect(0,16,6,8,FILL_TRANSPARENT);

            switch(d) {
                    case 0: //joystick centered
                        m = HIGHSCORES;
                        break;
                    case 1: //joystick up
                        m = START;
                        break;
                    case 5: //joystick down
                        m = SETTINGS;
                        break;
                }
            break;
        //cursor on settings
        case 2:
            lcd.drawRect(0,0,6,8,FILL_WHITE);
            lcd.drawRect(0,16,6,8,FILL_WHITE);
            lcd.drawRect(0,32,6,8,FILL_TRANSPARENT);
        
            switch(d) {
                    case 0: //joystick centered
                        m = SETTINGS;
                        break;
                    case 1: //joystick up
                        m = HIGHSCORES;
                        break;
                    case 5: //joystick down
                        m = START;
                        break;
                }
            break;
    } 
    return m;
}

//private methods