24 lines
507 B
C
Raw Normal View History

2023-10-05 01:35:31 -05:00
#pragma once
class Crawler;
class State_GameRun;
namespace States{
enum State{
GAME_RUN
};
};
class GameState{
public:
inline static GameState*STATE=nullptr;
inline static std::map<States::State,GameState*>states;
virtual void OnStateChange(GameState*prevState)=0;
virtual void OnUserUpdate(Crawler*game)=0;
virtual void Draw(Crawler*game)=0;
static inline void ChangeState(States::State newState){
GameState*prevState=STATE;
STATE=states[newState];
STATE->OnStateChange(prevState);
}
};