#pragma once #include class State { public: virtual ~State() {} virtual void onEvent(sf::Event event) {}; virtual void onUpdate(float dt) {}; virtual void onRender() {}; virtual State* next() const = 0; bool isReady() const { return m_ready; } bool isFin() const { return m_fin; } bool isDead() const { return m_dead; } protected: void stateReady(); void stateFin(); void stateDie(); private: bool m_ready{ false }; bool m_fin{ false }; bool m_dead{ false }; };