Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

Committer:
adambakerwa
Date:
Thu May 09 11:15:15 2019 +0000
Revision:
48:5799f85f8ff2
Parent:
46:69d2d87f78a0
Final Submission. I have read and agreed with Statement of Academic Integrity.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adambakerwa 36:6f452777b9ce 1 #ifndef MENU_H
adambakerwa 36:6f452777b9ce 2 #define MENU_H
adambakerwa 36:6f452777b9ce 3
adambakerwa 36:6f452777b9ce 4 #include "mbed.h"
adambakerwa 36:6f452777b9ce 5 #include "Gamepad.h"
adambakerwa 36:6f452777b9ce 6 #include "N5110.h"
adambakerwa 38:51ed5820ffe5 7
adambakerwa 41:4b20f909bbcb 8 /** Menu Class
adambakerwa 48:5799f85f8ff2 9 * @brief class for containing menu screens
adambakerwa 41:4b20f909bbcb 10 * @author Adam P. Baker
adambakerwa 44:03059810630d 11 * @date 9 May 2019
adambakerwa 41:4b20f909bbcb 12 */
adambakerwa 36:6f452777b9ce 13 class Menu
adambakerwa 36:6f452777b9ce 14 {
adambakerwa 36:6f452777b9ce 15 public:
adambakerwa 43:11c5d098ce9d 16 /** Constructor */
adambakerwa 36:6f452777b9ce 17 Menu();
adambakerwa 43:11c5d098ce9d 18
adambakerwa 43:11c5d098ce9d 19 /** Deconstructor */
adambakerwa 36:6f452777b9ce 20 ~Menu();
adambakerwa 43:11c5d098ce9d 21
adambakerwa 43:11c5d098ce9d 22 /** intialises */
adambakerwa 41:4b20f909bbcb 23 void init();
adambakerwa 43:11c5d098ce9d 24
adambakerwa 43:11c5d098ce9d 25 /** runs the title sequence
adambakerwa 43:11c5d098ce9d 26 *@param N5110 class which controlls lcd screen
adambakerwa 43:11c5d098ce9d 27 *@param Gamepad class for working with the gamepad
adambakerwa 41:4b20f909bbcb 28 */
adambakerwa 37:23b6312c8315 29 void title_intro(N5110 &lcd, Gamepad &pad);
adambakerwa 43:11c5d098ce9d 30
adambakerwa 43:11c5d098ce9d 31 /**holds title screen and flashes 'press start'
adambakerwa 43:11c5d098ce9d 32 *@param N5110 class which controlls lcd screen
adambakerwa 43:11c5d098ce9d 33 *@param Gamepad class for working with the gamepad
adambakerwa 43:11c5d098ce9d 34 *@returns _start (1 when pressed, else 0) (int)
adambakerwa 41:4b20f909bbcb 35 */
adambakerwa 37:23b6312c8315 36 int press_start(N5110 &lcd, Gamepad &pad);
adambakerwa 40:f53c70793975 37
adambakerwa 43:11c5d098ce9d 38 /** displays main menu screen and takes in input to select next state
adambakerwa 43:11c5d098ce9d 39 *@param Gamepad class for working with the gamepad
adambakerwa 43:11c5d098ce9d 40 *@param N5110 class which controlls lcd screen
adambakerwa 43:11c5d098ce9d 41 *@returns _input (1 when pressed, else 0) (int)
adambakerwa 41:4b20f909bbcb 42 */
adambakerwa 40:f53c70793975 43 int select_input_main(Gamepad &pad, N5110 &lcd);
adambakerwa 43:11c5d098ce9d 44
adambakerwa 43:11c5d098ce9d 45 /** displays continue menu screen and takes in input to select next state
adambakerwa 43:11c5d098ce9d 46 *@param Gamepad class for working with the gamepad
adambakerwa 43:11c5d098ce9d 47 *@param N5110 class which controlls lcd screen
adambakerwa 43:11c5d098ce9d 48 *@returns _input (1 when pressed, else 0) (int)
adambakerwa 41:4b20f909bbcb 49 */
adambakerwa 40:f53c70793975 50 int select_input_continue(Gamepad &pad, N5110 &lcd);
adambakerwa 43:11c5d098ce9d 51
adambakerwa 43:11c5d098ce9d 52 /** displays highscore screen
adambakerwa 43:11c5d098ce9d 53 *@param N5110 class which controlls lcd screen
adambakerwa 43:11c5d098ce9d 54 *@param highest level reached by user (int)
adambakerwa 41:4b20f909bbcb 55 */
adambakerwa 40:f53c70793975 56 void print_highscore(N5110 &lcd, int highscore);
adambakerwa 43:11c5d098ce9d 57
adambakerwa 43:11c5d098ce9d 58 /** displays continue menu screen and takes in input to select next state
adambakerwa 43:11c5d098ce9d 59 *@param Gamepad class for working with the gamepad
adambakerwa 43:11c5d098ce9d 60 *@param N5110 class which controlls lcd screen
adambakerwa 43:11c5d098ce9d 61 *@returns contrast level (float)
adambakerwa 41:4b20f909bbcb 62 */
adambakerwa 40:f53c70793975 63 float print_settings(Gamepad &pad, N5110 &lcd);
adambakerwa 36:6f452777b9ce 64 private:
adambakerwa 36:6f452777b9ce 65
adambakerwa 43:11c5d098ce9d 66 void print_main_menu(N5110 &lcd); //prints menu class visuals
adambakerwa 41:4b20f909bbcb 67 void print_continue_menu(N5110 &lcd); //prints continue class visuals
adambakerwa 40:f53c70793975 68
adambakerwa 41:4b20f909bbcb 69 void menu_decoration(N5110 &lcd); //prints menu border decoration
adambakerwa 40:f53c70793975 70
adambakerwa 41:4b20f909bbcb 71 void intro_b(N5110 &lcd, Gamepad &pad); //display b with note
adambakerwa 41:4b20f909bbcb 72 void intro_bl(N5110 &lcd, Gamepad &pad); //display bl with note
adambakerwa 41:4b20f909bbcb 73 void intro_blo(N5110 &lcd, Gamepad &pad); //display blo with note
adambakerwa 41:4b20f909bbcb 74 void intro_bloc(N5110 &lcd, Gamepad &pad); //display bloc with note
adambakerwa 43:11c5d098ce9d 75 void intro_block(N5110 &lcd, Gamepad &pad); //display block with note
adambakerwa 41:4b20f909bbcb 76 void intro_block_h(N5110 &lcd, Gamepad &pad); //display block h with note
adambakerwa 41:4b20f909bbcb 77 void intro_block_he(N5110 &lcd, Gamepad &pad); //display block he with note
adambakerwa 41:4b20f909bbcb 78 void intro_block_hea(N5110 &lcd, Gamepad &pad); //display block hea with note
adambakerwa 41:4b20f909bbcb 79 void intro_block_head(N5110 &lcd, Gamepad &pad); //display block head with note
adambakerwa 36:6f452777b9ce 80
adambakerwa 41:4b20f909bbcb 81 void B(int x, int y, N5110 &lcd); //prints B HEAD sprite
adambakerwa 41:4b20f909bbcb 82 void BL(int x, int y, N5110 &lcd); //prints BL sprite
adambakerwa 41:4b20f909bbcb 83 void BLO(int x, int y, N5110 &lcd); //prints BLO sprite
adambakerwa 41:4b20f909bbcb 84 void BLOC(int x, int y, N5110 &lcd); //prints BLOC sprite
adambakerwa 41:4b20f909bbcb 85 void BLOCK(int x, int y, N5110 &lcd); //prints BLOCK sprite
adambakerwa 41:4b20f909bbcb 86 void BLOCK_H(int x, int y, N5110 &lcd); //prints BLOCK H sprite
adambakerwa 41:4b20f909bbcb 87 void BLOCK_HE(int x, int y, N5110 &lcd); //prints BLOCK HE sprite
adambakerwa 41:4b20f909bbcb 88 void BLOCK_HEA(int x, int y, N5110 &lcd); //prints BLOCK HEA sprite
adambakerwa 41:4b20f909bbcb 89 void BLOCK_HEAD(int x, int y, N5110 &lcd); //prints BLOCK HEAD sprite
adambakerwa 40:f53c70793975 90
adambakerwa 37:23b6312c8315 91 int _start;
adambakerwa 37:23b6312c8315 92 int _count;
adambakerwa 40:f53c70793975 93
adambakerwa 36:6f452777b9ce 94 int _select;
adambakerwa 36:6f452777b9ce 95 int _input;
adambakerwa 36:6f452777b9ce 96 int _stop;
adambakerwa 37:23b6312c8315 97 bool _flash;
adambakerwa 40:f53c70793975 98
adambakerwa 36:6f452777b9ce 99 };
adambakerwa 36:6f452777b9ce 100
adambakerwa 36:6f452777b9ce 101 #endif