#pragma once #include #include #include #include #include #include #include #include #include "core/game.h" #include "state.h" #include "tools/music.h" #include "tools/resourceholder.h" class Application { public: explicit Application(); void run(); void input(); void update(const sf::Time& dt); void draw(); private: std::array, GUIState::Tag::AMOUNT> _states; std::vector> _state_stack; std::shared_ptr _game_window; Music _music; void exec(); void pushState(GUIState::Tag new_state); void popState(); FontHolder _font_holder; };