#pragma once #include "state.h" #include class Group; class Game; class GameState : public GUIState { public: struct Callbacks { std::function onLeaveGame; }; explicit GameState(sf::RenderWindow& game_window, const std::shared_ptr& game, Callbacks&& callbacks); virtual void input(const sf::Event& event) override; virtual void update(const sf::Time& dt) override; virtual void draw() const override; virtual void enter() override; virtual void leave() override; private: std::shared_ptr _game; sf::RenderWindow& _game_window; std::function _onEnterGameCallback; std::function _onLeaveGameCallback; };