#ifndef APPLICATION_H #define APPLICATION_H #include #include #include #include #include #include "game/game.h" #include "gui/state.h" class Application { public: Application(); void run(); void input(); void update(); void draw(); private: std::array, GUIState::Tag::AMOUNT> _states; std::vector> _state_stack; sf::RenderWindow _game_window; std::shared_ptr _game; void exec(); void emplaceState(GUIState::Tag new_state); }; #endif // APPLICATION_H