-
Печенин Данила Михайлович authored68f7927a
#pragma once
// ReSharper disable once CppUnusedIncludeDirective
#include <memory>
class IState;
struct IStateManager {
virtual void set_next_state(std::unique_ptr<IState> state) = 0;
virtual ~IStateManager() = default;
};
class IState {
public:
explicit IState(IStateManager& state_manager) : m_state_manager(state_manager) {}
virtual bool do_step() = 0;
virtual ~IState() = default;
protected:
IStateManager& m_state_manager;
};