1234567891011121314151617181920212223242526272829303132333435363738 |
- #pragma once
- #ifndef SNAKE_GAMESTATEMANAGER_HXX
- #define SNAKE_GAMESTATEMANAGER_HXX
- #include "LoadingState.hxx"
- #include <stack>
- 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<GameStates> states_;
- LoadingState loading_;
- };
- #endif // SNAKE_GAMESTATEMANAGER_HXX
|