Terminal Games
Simple games that run in the terminal.
Loading...
Searching...
No Matches
MainMenu.hpp
1#pragma once
2
3#include <memory>
4#include <string>
5#include <vector>
6
7#include "games/Game.hpp"
8
13namespace TerminalGames
14{
20 {
21 public:
27 explicit MainMenu(const bool& p_useAnsiEscapeCodes);
28
46 explicit MainMenu(const std::vector<std::string>& p_commandLineArguments);
47
51 ~MainMenu();
52
56 void Run();
57
61 MainMenu() = delete;
62
68 MainMenu(const MainMenu& p_mainMenu) = delete;
69
75 MainMenu(const MainMenu&& p_mainMenu) = delete;
76
82 MainMenu& operator=(const MainMenu& p_mainMenu) = delete;
83
89 MainMenu& operator=(const MainMenu&& p_mainMenu) = delete;
90
91 private:
95 void SetupHomepages();
96
101
105 std::vector<std::unique_ptr<Game>> m_games;
106
110 std::vector<std::string> m_homepages;
111
115 std::vector<std::string> m_mainMenus;
116
121 };
122}
std::vector< std::string > m_mainMenus
Contains the different options available on the main menu page.
Definition MainMenu.hpp:115
MainMenu(const bool &p_useAnsiEscapeCodes)
Constructs a new MainMenu object (for API use).
Definition MainMenu.cpp:19
void SetupHomepages()
Create the option selection home pages.
Definition MainMenu.cpp:91
MainMenu()=delete
Disable constructing a new Main Menu object with no arguments.
MainMenu(const MainMenu &&p_mainMenu)=delete
Disable constructing a new MainMenu object using move constructor.
void SetupMainMenuPagesAndGames()
Create the main menu game selection pages and the game array.
Definition MainMenu.cpp:97
~MainMenu()
Destructs a MainMenu object.
Definition MainMenu.cpp:46
MainMenu & operator=(const MainMenu &&p_mainMenu)=delete
Disable constructing a new MainMenu object using move assignment operator.
bool m_useAnsiEscapeCodes
Whether to use use ANSI escapes codes (true) or only extended ASCII characters (false).
Definition MainMenu.hpp:120
void Run()
Orchestration function which contains the main program loop.
Definition MainMenu.cpp:51
std::vector< std::string > m_homepages
Contains the different options available on the homepage.
Definition MainMenu.hpp:110
MainMenu & operator=(const MainMenu &p_mainMenu)=delete
Disable constructing a new MainMenu object using copy assignment operator.
std::vector< std::unique_ptr< Game > > m_games
Games that can be selected and played.
Definition MainMenu.hpp:105
MainMenu(const MainMenu &p_mainMenu)=delete
Disable constructing a new MainMenu object using copy constructor.
Contains all Terminal-Games objects.