#pragma once #include #include #include "audio/audio.hpp" #include "cursor/animated_cursor.hpp" class Game; class Input; enum class GameState_e { STATE_MODIFY, STATE_PLAYING, STATE_MENU_MAIN }; class GameState { public: virtual ~GameState() = default; virtual bool Init(Game*) = 0; virtual void handle_Events(SDL_Event&, Game*) = 0; virtual void Update(Game*) = 0; virtual void Render(Game*) = 0; bool is_Finished() const { return finished; } protected: Audio* audio = nullptr; AnimatedCursor* cursor = nullptr; bool finished = false; };