Initial publish

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Tue May 07 15:22:35 2019 +0000
Revision:
40:e3bbda7444fa
Parent:
32:5403bb974294
The Final, Submission Version. I have read and agreed to the academic integrity. SID:201160286

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Noximilien 4:02c63aaa2df9 1 #ifndef MENU_H
Noximilien 4:02c63aaa2df9 2 #define MENU_H
Noximilien 4:02c63aaa2df9 3
Noximilien 31:becb8f6bf7b7 4
Noximilien 32:5403bb974294 5 /**
Noximilien 32:5403bb974294 6 * The enumeration of available options in the menu.
Noximilien 32:5403bb974294 7 */
Noximilien 31:becb8f6bf7b7 8 enum ScreenOption {
Noximilien 32:5403bb974294 9 ScreenOption_Menu, /**< The menu option - Choosing other options */
Noximilien 32:5403bb974294 10 ScreenOption_Game, /**< The game option - To start the game */
Noximilien 32:5403bb974294 11 ScreenOption_Tutorial, /**< The tutorial option - To open tutorial */
Noximilien 32:5403bb974294 12 ScreenOption_Settings /**< The settings option - To open settings */
Noximilien 4:02c63aaa2df9 13 };
Noximilien 4:02c63aaa2df9 14
Noximilien 31:becb8f6bf7b7 15 /**
Noximilien 31:becb8f6bf7b7 16 * Menu Class
Noximilien 31:becb8f6bf7b7 17 * @brief Describes the menu.
Noximilien 30:d454d0cb72bc 18 * @author Dmitrijs Griskovs
Noximilien 30:d454d0cb72bc 19 * @date 15/04/2019
Noximilien 30:d454d0cb72bc 20 */
Noximilien 4:02c63aaa2df9 21 class Menu {
Noximilien 31:becb8f6bf7b7 22 public:
Noximilien 31:becb8f6bf7b7 23 /** A constructor */
Noximilien 31:becb8f6bf7b7 24 Menu();
Noximilien 31:becb8f6bf7b7 25 /**
Noximilien 31:becb8f6bf7b7 26 * @brief Updates and Draws menu.
Noximilien 31:becb8f6bf7b7 27 * @details Updates and draws menu options. Also, allows to select an option availabe
Noximilien 31:becb8f6bf7b7 28 * from the enum. It return "true" statment if the user picked a menu option.
Noximilien 31:becb8f6bf7b7 29 */
Noximilien 31:becb8f6bf7b7 30 bool updateAndDraw();
Noximilien 31:becb8f6bf7b7 31
Noximilien 31:becb8f6bf7b7 32 /** Returns currently selected meny option */
Noximilien 31:becb8f6bf7b7 33 ScreenOption getCurrentScreenSelection();
Noximilien 4:02c63aaa2df9 34
Noximilien 31:becb8f6bf7b7 35 private:
Noximilien 32:5403bb974294 36 int current_option;
Noximilien 32:5403bb974294 37 static const int total_options = 3;
Noximilien 32:5403bb974294 38 static const float time_delay = 50;
Noximilien 31:becb8f6bf7b7 39 void pointerPosition(int menu_number);
Noximilien 31:becb8f6bf7b7 40 void drawPointer();
Noximilien 32:5403bb974294 41 void DrawPressAIcon();
Noximilien 32:5403bb974294 42 void checkJoystick();
Noximilien 4:02c63aaa2df9 43 };
Noximilien 4:02c63aaa2df9 44
Noximilien 4:02c63aaa2df9 45
Noximilien 4:02c63aaa2df9 46 #endif