#pragma once #ifndef SNAKE_GAMESTATEMANAGER_HXX #define SNAKE_GAMESTATEMANAGER_HXX #include "LoadingState.hxx" #include enum class GameStates { Loading, Splash, MainMenu, Game, GameOver, }; class GameStateManager final { public: GameStateManager(); ~GameStateManager(); GameState* current(); void push_state(GameStates new_state); void pop_state(); void replace_state(GameStates new_state); private: std::stack states_; LoadingState loading_; }; #endif // SNAKE_GAMESTATEMANAGER_HXX