TurboSchach/Visualizer/StartMenuVisualizer.hpp

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