40 lines
2.5 KiB
C++
40 lines
2.5 KiB
C++
#ifndef STARTMENUVISUALIZER_H
|
|
#define STARTMENUVISUALIZER_H
|
|
|
|
#include "BaseVisualizer.hpp"
|
|
|
|
class StartMenuVisualizer : public BaseVisualizer {
|
|
private:
|
|
inline static const std::vector<std::string> ACSII_ART_TURBO_SCHACH = {
|
|
"████████╗██╗░░░██╗██████╗░██████╗░░█████╗░░██████╗░█████╗░██╗░░██╗░█████╗░░█████╗░██╗░░██╗",
|
|
"╚══██╔══╝██║░░░██║██╔══██╗██╔══██╗██╔══██╗██╔════╝██╔══██╗██║░░██║██╔══██╗██╔══██╗██║░░██║",
|
|
"░░░██║░░░██║░░░██║██████╔╝██████╦╝██║░░██║╚█████╗░██║░░╚═╝███████║███████║██║░░╚═╝███████║",
|
|
"░░░██║░░░██║░░░██║██╔══██╗██╔══██╗██║░░██║░╚═══██╗██║░░██╗██╔══██║██╔══██║██║░░██╗██╔══██║",
|
|
"░░░██║░░░╚██████╔╝██║░░██║██████╦╝╚█████╔╝██████╔╝╚█████╔╝██║░░██║██║░░██║╚█████╔╝██║░░██║",
|
|
"░░░╚═╝░░░░╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═════╝░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝░╚════╝░╚═╝░░╚═╝"
|
|
};
|
|
|
|
inline static const std::vector<std::string> MENU_OPTIONS = {
|
|
"1 - New Game",
|
|
"2 - Load Save",
|
|
"3 - Instructions",
|
|
"",
|
|
"0 - Exit"
|
|
};
|
|
|
|
int selectedOption = -1;
|
|
|
|
void GenerateElement() override;
|
|
|
|
public:
|
|
StartMenuVisualizer(size_t padding) : BaseVisualizer(BaseVisualizer::CountVisibleCharacters(StartMenuVisualizer::ACSII_ART_TURBO_SCHACH[0]), padding) {
|
|
StartMenuVisualizer::GenerateElement();
|
|
}
|
|
int GetSelectedOption();
|
|
void SetSelectedOption(int selectedOption);
|
|
void DisplayElement1();
|
|
|
|
};
|
|
|
|
#endif //STARTMENUVISUALIZER_H
|