Ndk/StateMachine: Add constructor/destructor, should be usable now

Former-commit-id: fab76ba97470e8d7a2f4a01a9d1746a8e213892f
This commit is contained in:
Lynix 2016-03-25 21:34:17 +01:00
parent 8d6c8e8a79
commit 11fe78f7e0
2 changed files with 14 additions and 1 deletions

View File

@ -16,7 +16,7 @@ namespace Ndk
class StateMachine
{
public:
inline StateMachine();
inline StateMachine(std::shared_ptr<State> originalState);
StateMachine(const StateMachine&) = delete;
inline StateMachine(StateMachine&& fsm) = default;
inline ~StateMachine();

View File

@ -2,11 +2,24 @@
// This file is part of the "Nazara Development Kit"
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp
#include <Nazara/Core/Error.hpp>
#include <NDK/StateMachine.hpp>
#include <utility>
namespace Ndk
{
inline StateMachine::StateMachine(std::shared_ptr<State> originalState) :
m_currentState(std::move(originalState))
{
NazaraAssert(m_currentState, "StateMachine must have a state to begin with");
}
inline StateMachine::~StateMachine()
{
m_currentState->Leave(*this);
}
inline void StateMachine::ChangeState(std::shared_ptr<State> state)
{
m_nextState = std::move(state);