#pragma once #include "Behavior.h" class MovementSwitchBehavior final : public Behavior { private: /* * Members */ Behavior* m_airAction; Behavior* m_doubleJumpAction; Behavior* m_fallingAction; Behavior* m_groundAction; Behavior* m_jetpackAction; Behavior* m_jumpAction; Behavior* m_movingAction; /** * @brief Loads a movement type from the database into a behavior * * @param movementType The movement type to lookup in the database * @param behaviorToLoad The Behavior where the result will be stored */ Behavior* LoadMovementType(std::string movementType); public: /* * Inherited */ explicit MovementSwitchBehavior(const uint32_t behavior_id) : Behavior(behavior_id) { } void Handle(BehaviorContext* context, RakNet::BitStream& bitStream, BehaviorBranchContext branch) override; void Load() override; };