The open source repository for the action RPG game in development by Sig Productions titled 'Adventures in Lestoria'!
https://forums.lestoria.net
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
507 B
24 lines
507 B
#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);
|
|
}
|
|
}; |