Debugging linkage stuff
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#include "GameStateManager.h"
|
||||
#include "StateFactories.h"
|
||||
|
||||
GameStateManager& GameStateManager::Instance() {
|
||||
static GameStateManager instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
void GameStateManager::RequestStateChange(StateID id) {
|
||||
hasPendingChange = true;
|
||||
pendingState = id;
|
||||
}
|
||||
|
||||
void GameStateManager::Update() {
|
||||
if (hasPendingChange) {
|
||||
hasPendingChange = false;
|
||||
|
||||
if (currentState) {
|
||||
currentState->Exit();
|
||||
}
|
||||
|
||||
switch (pendingState) {
|
||||
case StateID::MainMenu: currentState = CreateMainMenuState(); break;
|
||||
case StateID::Settings: currentState = CreateSettingsState(); break;
|
||||
case StateID::Menu1: currentState = CreateMenu1State(); break;
|
||||
case StateID::Menu2: currentState = CreateMenu2State(); break;
|
||||
case StateID::Menu3: currentState = CreateMenu3State(); break;
|
||||
}
|
||||
|
||||
currentState->Enter();
|
||||
}
|
||||
|
||||
if (currentState) {
|
||||
currentState->Update();
|
||||
}
|
||||
}
|
||||
|
||||
void GameStateManager::Render() {
|
||||
if (currentState) {
|
||||
currentState->Render();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user