Program Listing for File state_manager.h¶
↰ Return to documentation for file (rootex/core/state_manager.h
)
#pragma once
#include "common/common.h"
class StateManager;
class State
{
public:
virtual ~State() = default;
virtual void update(StateManager& manager, float deltaMilliseconds) {};
virtual void enter(StateManager& manager) { }
virtual Ptr<State> exit(StateManager& manager, float deltaMilliseconds) = 0;
};
class StateManager
{
protected:
Ptr<State> m_CurrentState;
StateManager(Ptr<State>&& currentState);
virtual ~StateManager() = default;
public:
virtual void update(float deltaMilliseconds);
void transition(Ptr<State> newState);
};