Files
CGR3D-Eind/Meinkraft/StateHandler.cpp
T
2016-06-08 10:55:07 +02:00

62 lines
933 B
C++

#include "StateHandler.h"
#include "MenuState.h"
#include "WorldState.h"
StateHandler* StateHandler::instance = nullptr;
StateHandler::StateHandler()
{
available = false;
CState = MENU;
CurrentState = new MenuState();
CurrentState->init();
available = true;
}
StateHandler::~StateHandler()
{
delete CurrentState;
}
StateHandler* StateHandler::getInstance()
{
if (instance == nullptr)
instance = new StateHandler();
return instance;
}
void StateHandler::update(float deltaTime)
{
if(available)
CurrentState->update(deltaTime);
}
void StateHandler::draw()
{
if(available)
CurrentState->draw();
}
void StateHandler::changeState(EState newState)
{
if (CState == newState)
return;
available = false;
CurrentState->exit();
switch (newState)
{
case WORLD:
CurrentState = new WorldState();
case MENU:
CurrentState = new MenuState();
}
CState = newState;
CurrentState->init();
available = true;
}