#pragma once #include #include #include #include class GUIState { public: enum Tag { SPLASH_SCREEN, MAIN_MENU, GAME_PICKER, GAME, EDITOR_PICKER, EDITOR, SETTINGS, AMOUNT }; virtual ~GUIState() = default; virtual void input(const sf::Event& event) = 0; virtual void update(const sf::Time& dt) = 0; virtual void draw() const = 0; virtual void enter() = 0; virtual void leave() = 0; };