nsnake
Classic snake game for the terminal
GameStateMainMenu.hpp
1 #ifndef GAMESTATEMAINMENU_H_DEFINED
2 #define GAMESTATEMAINMENU_H_DEFINED
3 
4 #include <Engine/Flow/GameState.hpp>
5 #include <Display/Layouts/LayoutMainMenu.hpp>
6 #include <Engine/Graphics/Widgets/Menu.hpp>
7 #include <Engine/Graphics/Widgets/Menu/MenuAlphabetic.hpp>
8 #include <Display/WindowGameHelp.hpp>
9 
12 class GameStateMainMenu: public GameState
13 {
14  friend class LayoutMainMenu;
15 
16 public:
18  virtual ~GameStateMainMenu() { };
19 
20  void load();
21  void unload();
22 
23  void update();
24  void draw();
25 
26 private:
27  LayoutMainMenu* layout;
28 
30  Menu* menu;
31 
32  MenuAlphabetic* menuLevels;
33  bool menuLevelsActivated;
34 
35  Menu* menuGameSettings;
36  bool menuGameSettingsActivated;
37 
38  Menu* menuGUIOptions;
39  bool menuGUIOptionsActivated;
40 
41  Menu* menuControls;
42  bool menuControlsActivated;
43 
44  WindowGameHelp* helpWindows;
45 
46  // easily create internal menus
47  void createMainMenu();
48  void createGameSettingsMenu();
49  void createLevelsMenu();
50  void createGUIOptionsMenu();
51  void createControlsMenu();
52  void saveSettingsMenuGUIOptions();
53  void saveSettingsMenuGameSettings();
54 };
55 
56 #endif //GAMESTATEMAINMENU_H_DEFINED
57 
Specific Window that shows Help and other info during Game.
How we show the screen at GameStateMainMenu.
void draw(Menu *menu)
Shows the Main Menu screen, along with drawing #menu.