#pragma once #include #include #include #include #include #include #include #include #include #include #include #include "entity.hpp" #include "map.hpp" using std::string; using ftxui::Canvas, ftxui::Component, ftxui::Screen; constexpr int GAME_MAP_X = 60; constexpr int GAME_MAP_Y = 30; constexpr int SCREEN_X = 106; constexpr int SCREEN_Y = 30; constexpr int VIDEO_X = 1600; constexpr int VIDEO_Y = 900; enum class Value { BLACK=0, DARK_DARK, DARK_MID, DARK_LIGHT, MID, LIGHT_DARK, LIGHT_MID, LIGHT_LIGHT, WHITE, TRANSPARENT }; class GUI { sf::Color color(Value val); Map $game_map; sf::SoundBuffer $hit_buf; sf::Sound $hit_sound; bool $show_paths = false; string $status_text = "NOT DEAD"; Entity $player; Entity $enemy; Point $goal; Component $document; Component $map_view; Canvas $canvas; sf::Font $font; sf::Text $text; std::wstring_convert> $converter; sf::RenderWindow $window; Screen $screen; public: GUI(); // disable copying GUI(GUI &gui) = delete; void create_renderer(); void render_scene(); void handle_events(); int main(); };