#include "ActionContext.h" #include #include "AMFFormat.h" ActionContext::ActionContext() { stripId = 0; stateId = BehaviorState::HOME_STATE; } ActionContext::ActionContext(AMFArrayValue* arguments, std::string customStateKey, std::string customStripKey) { stripId = 0; stateId = BehaviorState::HOME_STATE; stripId = GetStripIdFromArgument(arguments, customStripKey); stateId = GetBehaviorStateFromArgument(arguments, customStateKey); } BehaviorState ActionContext::GetBehaviorStateFromArgument(AMFArrayValue* arguments, const std::string& key) { auto* stateIDValue = arguments->FindValue(key); if (!stateIDValue) throw std::invalid_argument("Unable to find behavior state from argument \"" + key + "\""); return static_cast(stateIDValue->GetDoubleValue()); } StripId ActionContext::GetStripIdFromArgument(AMFArrayValue* arguments, const std::string& key) { auto* stripIdValue = arguments->FindValue(key); if (!stripIdValue) throw std::invalid_argument("Unable to find strip ID from argument \"" + key + "\""); return static_cast(stripIdValue->GetDoubleValue()); }