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-05-01
Revision:
4:4f20bcef2c0c
Parent:
3:a79daa7c2b55
Child:
5:56f13954666e

File content as of revision 4:4f20bcef2c0c:

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

#ifndef MENU_H
#define MENU_H

#include <stdlib.h>    // used to generate random number values

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

class Menu
{
    
public:
    
    Menu();
    ~Menu();
    
    void init();
    void main(N5110 &lcd,
              Gamepad &pad,
              FXOS8700CQ &device,
              Animations &animate);
    
    void intro(N5110 &lcd, Gamepad &pad, Animations &animate);
    
private:
    
    void printGameParameters(int mazeIndex,
                             int x,
                             int y,
                             int radius,
                             bool control,
                             bool colour,
                             float FPS);
    
    void playGame(N5110 &lcd,
                  Gamepad &pad,
                  FXOS8700CQ &device,
                  Animations &animate,
                  int mazeIndex,
                  bool tone,
                  float FPS);
    
    void options(N5110 &lcd, Gamepad &pad, Animations &animate, bool tone);
    void lcdSettings(N5110 &lcd, Gamepad &pad, Animations &animate);
    void soundSettings(N5110 &lcd, Gamepad &pad, Animations &animate);
    void controlOptions(N5110 &lcd, Gamepad &pad, Animations &animate);
    void difficultyOptions(N5110 &lcd, Gamepad &pad);
    void ballColourOptions(N5110 &lcd, Gamepad &pad, Animations &animate);
    void lcdInverseColour(N5110 &lcd, Gamepad &pad);
    void lcdBackgroundColour(N5110 &lcd, Gamepad &pad, Animations &animate);
    
    void animateJoystick(N5110 &lcd, Animations &animate);
    void animateGamepad(N5110 &lcd, Animations &animate);
    void animateStickman(N5110 &lcd, Gamepad &pad, Animations &animate);
    
    void soundEffects(N5110 &lcd, Gamepad &pad, Animations &animate);
    void speedSettings(N5110 &lcd, Gamepad &pad);
    
    int randomMazeIndexGenerator(int mazeIndex);

    MazeEngine _engine;
    
    int _mazeIndex;
    
    float _FPS;
    
    bool _control;
    bool _colour;
    bool _goal;
    bool _tone;
    
};

#endif /* MENU_H */