#pragma once #include "levelmanager.hpp" #include #include #include "stats.hpp" #include "overlay_ui.hpp" #include "raycaster.hpp" #include "camera.hpp" #include namespace gui { class MainUI { public: int $compass_dir = 0; std::array $compass{ "E", "SE", "S", "SW", "W", "NW", "N", "NE" }; bool $show_level = false; bool $needs_render = true; Stats $stats; sf::Clock $clock; sf::RenderWindow& $window; GameLevel $level; OverlayUI $overlay_ui; Raycaster $rayview; CameraLOL $camera; MainUI(sf::RenderWindow& window); void mouse(int x, int y); void debug(); void draw_stats(); void draw_blood(); void plan_rotate(int dir); bool play_rotate(); std::optional play_move(); Point plan_move(int dir, bool strafe); void abort_plan(); void update_level(GameLevel level); void init(); void render(); void dirty(); void show_level(); void dead_entity(DinkyECS::Entity entity); }; }