#include <Structs/AnimationGraphDescriptorManager.h>
#include <Structs/Skyrim/AnimationGraphDescriptor_WerewolfBehavior.h>

AnimationGraphDescriptor_WerewolfBehavior::AnimationGraphDescriptor_WerewolfBehavior(AnimationGraphDescriptorManager& aManager)
{
    enum Variables
    {
        kiSyncTurnState = 0,
        kTurnDelta = 1,
        kDirection = 2,
        kSpeed = 3,
        kbAnimationDriven = 4,
        kbIsSynced = 5,
        kIsRecoiling = 6,
        kIsStaggering = 7,
        kSpeedStartVar = 8,
        kTurnDeltaDamped = 9,
        kTurnMin = 10,
        kIsAttackReady = 11,
        kIntDirection = 12,
        kSpeedDamped = 13,
        kIsAttacking = 14,
        kbAllowRotation = 15,
        kFootIKEnable = 16,
        kbHeadTrackingOff = 17,
        kstaggerMagnitude = 18,
        kbEquipOk = 19,
        kcurrentDefaultState = 20,
        kiState = 21,
        kiState_WerewolfBeastDefault = 22,
        kSampledSpeed = 23,
        kIsCrouching = 24,
        kiSyncIdleLocomotion = 25,
        kblendShort = 26,
        kblendNormal = 27,
        kisMoving = 28,
        kDirectionOffset = 29,
        kDirDamped = 30,
        kTimeDelta = 31,
        kDirAcc = 32,
        kDirectionBlendA = 33,
        kDirectionBlendB = 34,
        kActiveBlend = 35,
        kbDirBlendA = 36,
        kbDirBlendB = 37,
        kblendThresh = 38,
        kblendAttack = 39,
        kbHeadTracking = 40,
        kTargetLocation = 41,
        kcamerafromx = 42,
        kcamerafromy = 43,
        kcamerafromz = 44,
        kiGetUpType = 45,
        kPitch = 46,
        kweaponSpeedMult = 47,
        kiWantBlock = 48,
        kiAttackState = 49,
        kiState_WerewolfBeastSprint = 50,
        kIsSprinting = 51,
        kiSyncSprintState = 52,
        kbVoiceReady = 53,
        kbWantCastVoice = 54,
        kSpeedSampled = 55,
        kFootIKDisable = 56,
        kblendDefault = 57,
        kbInJumpState = 58,
        kVelocityZ = 59,
        kiIsInSneak = 60,
        kIsSneaking = 61,
        kbFailMoveStart = 62,
        kBeginCastVoice = 63,
        kbNoStagger = 64,
        kbDelayMoveStart = 65,
        kisHowling = 66,
        kIsNPC = 67,
    };

    AnimationGraphDescriptorManager::Builder s_builder(
        aManager, m_key,
        AnimationGraphDescriptor(
            {
                kbEquipOk,
                kbAnimationDriven,
                kIsAttackReady,
                kbAllowRotation,
                kIsRecoiling,
                kIsStaggering,
                kIsAttacking,
                kbHeadTracking,
                kbDelayMoveStart,
                kbFailMoveStart,
                kbVoiceReady,
                kbNoStagger,
            },
            {
                kSpeed,
                kTurnDelta,
                kDirection,
                kSpeedSampled,
                kSampledSpeed,
            },
            {
                kiSyncIdleLocomotion,
                kiSyncTurnState,
                kiAttackState,
            }));
}
