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-16
Revision:
3:a79daa7c2b55
Parent:
2:917211a4551b
Child:
4:4f20bcef2c0c

File content as of revision 3:a79daa7c2b55:

/*
 
 @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 "Animations.h"
#include "Maze.h"
#include "Ball.h"
#include "Sound.h"

class Menu
{
    
public:
    
    Menu();
    ~Menu();
    
    void init();
    void main(N5110 &lcd, Gamepad &pad, FXOS8700CQ &device, Sound &tune, Animations &animate);
    void intro(N5110 &lcd, Gamepad &pad, Sound &tune, Animations &animate);
    void playGame(N5110 &lcd, Gamepad &pad, FXOS8700CQ &device, Sound &tune, int mazeIndex);
    void options(N5110 &lcd, Gamepad &pad, Animations &animate);
    void lcdSettings(N5110 &lcd, Gamepad &pad);
    void soundSettings(N5110 &lcd, Gamepad &pad);
    void controlOptions(N5110 &lcd, Gamepad &pad, Animations &animate);
    void difficultyOptions(N5110 &lcd, Gamepad &pad);
    void lcdColourOptions(N5110 &lcd, Gamepad &pad);
    void lcdInverseColour(N5110 &lcd, Gamepad &pad);
    void lcdBackgroundColour(N5110 &lcd, Gamepad &pad);
    void animateJoystick(N5110 &lcd, Gamepad &pad, Animations &animate);
    void animateGamepad(N5110 &lcd, Gamepad &pad, Animations &animate);
    void soundEffects(N5110 &lcd, Gamepad &pad);
    void musicSettings(N5110 &lcd, Gamepad &pad);
    
private:
    
    MazeEngine _engine;
    Sound _tune;
    
    int _mazeIndex;
    bool _control;
    bool _colour;
    
};

#endif /* MENU_H */