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

AnimationGraphDescriptor_DwarvenSpider::AnimationGraphDescriptor_DwarvenSpider(AnimationGraphDescriptorManager& aManager)
{
    enum Variables
    {
        kblendDefault = 0,
        kblendFast = 1,
        kblendSlow = 2,
        kDirection = 3,
        kIsBlocking = 4,
        kSpeed = 5,
        kstaggerMagnitude = 6,
        kTurnDelta = 7,
        kIsAttackReady = 8,
        kweaponSpeedMult = 9,
        kFootIKEnable = 10,
        km_onOffGain = 11,
        km_groundAscendingGain = 12,
        km_groundDescendingGain = 13,
        km_footPlantedGain = 14,
        km_footRaisedGain = 15,
        km_footUnlockGain = 16,
        km_worldFromModelFeedbackGain = 17,
        km_errorUpDownBias = 18,
        km_alignWorldFromModelGain = 19,
        km_hipOrientationGain = 20,
        km_footPlantedAnkleHeightMS = 21,
        km_footRaisedAnkleHeightMS = 22,
        km_maxAnkleHeightMS = 23,
        km_minAnkleHeightMS = 24,
        kbAllowRotation = 25,
        kturnSpeedMult = 26,
        kiCombatStance = 27,
        kiSyncTurnState = 28,
        kIntDirection = 29,
        kbMotionDriven = 30,
        kiSyncIdleLocomotion = 31,
        kfMinTurnDelta = 32,
        kbAnimationDriven = 33,
        kBoolVariable00 = 34,
        kIsAttacking = 35,
        kiLeftHandType = 36,
        kiWeapCategory = 37,
        kbWantCastLeft = 38,
        kbMLh_Ready = 39,
        kiState_CombatSpider_MT = 40,
        kiState_DefaultSpider_MT = 41,
        kiState = 42,
        kIsBashing = 43,
        kbEquipOk = 44,
        kIsStaggering = 45,
        kIsRecoiling = 46,
        km_state = 47,
        km_direction = 48,
        km_goalSpeed = 49,
        km_speedOut = 50,
        kSpeedDamped = 51,
        km_enable = 52,
        km_limitAngleDegrees = 53,
        km_startBoneIndex = 54,
        km_gain = 55,
        km_boneRadius = 56,
        km_endBoneIndex = 57,
        km_castOffset = 58,
        kSpeedSampled = 59,
        kiCurrentStateID = 60,
        kspeedMultForward = 61,
        kspeedMultBackward = 62,
        kspeedMultLeft = 63,
        kspeedMultRight = 64,
        kspeedForward = 65,
        kspeedBackward = 66,
        kspeedLeft = 67,
        kspeedRight = 68,
        kIsSideAttacking = 69,
        kbFootIKDisable = 70,
        kiGetUpType = 71,
    };

    uint64_t key = 15924684633707834553;

    AnimationGraphDescriptorManager::Builder s_builder(
        aManager, key,
        AnimationGraphDescriptor(
            {
                kbAnimationDriven,
                kbAllowRotation,
                kIsRecoiling,
                kIsStaggering,
                kIsAttacking,
                kbMLh_Ready,
                kbEquipOk,
                kIsAttackReady,
            },
            {
                kSpeed,
                kTurnDelta,
                kturnSpeedMult,
                kDirection,
                kSpeedSampled,
                kspeedMultBackward,
                kspeedMultRight,
                kspeedMultForward,
                kspeedMultLeft,
            },
            {
                kiSyncIdleLocomotion,
                kiSyncTurnState,
                kiCombatStance,
                kiCurrentStateID,
            }));
}
