Ndk/StateMachine: Add constructor/destructor, should be usable now
Former-commit-id: fab76ba97470e8d7a2f4a01a9d1746a8e213892f
This commit is contained in:
parent
8d6c8e8a79
commit
11fe78f7e0
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue