123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #pragma once
- #ifndef SNAKE_GAMESTATEMANAGER_HXX
- #define SNAKE_GAMESTATEMANAGER_HXX
- #include "LoadingState.hxx"
- #include "SplashState.hxx"
- #include "DummyState.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_;
- SplashState splash_;
- DummyState dummy_;
- };
- #endif // SNAKE_GAMESTATEMANAGER_HXX
|