#include "ChainBehavior.h" #include "BehaviorBranchContext.h" #include "Game.h" #include "dLogger.h" void ChainBehavior::Handle(BehaviorContext* context, RakNet::BitStream* bitStream, const BehaviorBranchContext branch) { uint32_t chain_index; bitStream->Read(chain_index); chain_index--; if (chain_index < this->m_behaviors.size()) { this->m_behaviors.at(chain_index)->Handle(context, bitStream, branch); } } void ChainBehavior::Calculate(BehaviorContext* context, RakNet::BitStream* bitStream, const BehaviorBranchContext branch) { bitStream->Write(1); this->m_behaviors.at(0)->Calculate(context, bitStream, branch); } void ChainBehavior::Load() { const auto parameters = GetParameterNames(); for (const auto& parameter : parameters) { if (parameter.first.rfind("behavior", 0) == 0) { auto* action = GetAction(parameter.second); this->m_behaviors.push_back(action); } } }