Menu class used as basis for program; running the game and allowing the user to change the style and difficulty of the game via an interface.

Menu.h

Committer:
el15mh
Date:
2017-04-07
Revision:
2:917211a4551b
Parent:
1:21b7a5edb9c2
Child:
3:a79daa7c2b55

File content as of revision 2:917211a4551b:

/*
 
 @file Menu.h
 
 (c) Max Houghton 02.14.17
 Roller Maze Project, ELEC2645, Univeristy of Leeds
 
 */

#ifndef MENU_H
#define MENU_H

#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "MazeEngine.h"
#include "Maze.h"
#include "Ball.h"

class Menu
{
    
public:
    
    Menu();
    ~Menu();
    
    void init(int mazeIndex);
    void main(N5110 &lcd, Gamepad &pad, FXOS8700CQ &device);
    void intro(N5110 &lcd, Gamepad &pad);
    void playGame(int mazeIndex, N5110 &lcd, Gamepad &pad, FXOS8700CQ &device);
    void options(N5110 &lcd, Gamepad &pad);
    void lcdSettings(N5110 &lcd, Gamepad &pad);
    void soundSettings(N5110 &lcd, Gamepad &pad);
    void controlOptions(N5110 &lcd, Gamepad &pad);
    void difficultyOptions(N5110 &lcd, Gamepad &pad);
    void lcdColourOptions(N5110 &lcd, Gamepad &pad);
    void lcdInverseColour(N5110 &lcd, Gamepad &pad);
    void lcdBackgroundColour(N5110 &lcd, Gamepad &pad);
    
private:
    
    MazeEngine _engine;
    
    void animateJoystick(N5110 &lcd);
    void animateGamepad(N5110 &lcd);
    
    void drawVerticalJoystick(N5110 &lcd);
    
    bool CONTROL;
    
    int _mazeIndex;
    
};

#endif /* MENU_H */