class CfgSkeletons {
    class Default {
        isDiscrete = 0;
        skeletonInherit = "";
        skeletonBones[] = {};
    };

    class tbd_M119_skeleton : Default {
        pivotsModel = "";
        isDiscrete = 0;
        skeletonInherit = "";
        skeletonBones[] = {
            "plate_front", "",
            "rest", "",
            "plate_back", "rest",
            "rightwheel", "rest",
            "leftwheel", "rest",
            "otocvez", "rest",
            "handle_horizontal", "rest",
            "otochlaven", "otocvez",
            "small_wheel", "otocvez",
            "handle_vertical", "otocvez",
            "barrel", "otochlaven",
            "trigger", "otochlaven",
            "magazine_translation_bone", "otochlaven",
            "magazine", "magazine_translation_bone",
            "hydraulics", "otocvez",
            "breech", "barrel",
            "handle_breech", "barrel"};
    };
};

class CfgModels {
    class Default {
        sectionsInherit = "";
        sections[] = {};
        skeletonName = "";
    };

    class tbd_M119 : Default {
        sectionsInherit = "";
        sections[] = {};
        skeletonName = "tbd_M119_skeleton";

        class Animations {
            class leftwheel {
                type = "rotation";
                source = "recoil_rest_source";
                selection = "leftwheel";
                axis = "axis_wheels";
                minValue = 0.0;
                maxValue = 10.0;
                angle0 = "rad +360";
                angle1 = "rad -360";
            };

            class rightwheel {
                type = "rotation";
                source = "recoil_rest_source";
                selection = "rightwheel";
                axis = "axis_wheels";
                minValue = 0.0;
                maxValue = 10.0;
                angle0 = "rad +360";
                angle1 = "rad -360";
            };

            class leftwheel_rot {
                type = "rotation";
                source = "howitzer_rotation_source";
                selection = "leftwheel";
                axis = "axis_wheels";
                minValue = -1440;
                maxValue = 1440;
                angle0 = "rad -2880";
                angle1 = "rad +2880";
            };

            class rightwheel_rot {
                type = "rotation";
                source = "howitzer_rotation_source";
                selection = "rightwheel";
                axis = "axis_wheels";
                minValue = -1440;
                maxValue = 1440;
                angle0 = "rad +2880";
                angle1 = "rad -2880";
            };

            class howitzer_rotation {
                type = "rotationY";
                source = "howitzer_rotation_source";
                selection = "rest";
                axis = "axis_howitzer";
                minValue = -1440;
                maxValue = 1440;
                angle0 = "rad +1440";
                angle1 = "rad -1440";
            };

            class rest {
                type = "rotation";
                source = "rest_rotation_source";
                selection = "rest";
                axis = "axis_wheels";
                minValue = "rad -360";
                maxValue = "rad +360";
                angle0 = "rad +360";
                angle1 = "rad -360";
            };

            class MainTurret {
                type = "rotationY";
                source = "mainTurret";
                selection = "OtocVez";
                axis = "OsaVeze";
                minValue = "rad -360";
                maxValue = "rad +360";
                angle0 = "rad -360";
                angle1 = "rad +360";
                memory = 1;
            };

            class MainTurretT : MainTurret {
                source = "mainTurretT_source";
            };

            class rotation_handle_horizontal {
                type = "rotation";
                source = "mainTurret";
                sourceAddress = "loop";
                selection = "handle_horizontal";
                axis = "axis_handle_horizontal";
                minValue = "0";
                maxValue = "1";
                angle0 = "rad 0";
                angle1 = "rad +5760";
                memory = 1;
            };

            class trigger_rotation {
                type = "rotation";
                source = "trigger_rotation_source";
                selection = "trigger";
                axis = "axis_trigger";
                minValue = "0";
                maxValue = "1";
                angle0 = "rad 0";
                angle1 = "rad +30";
                memory = 1;
            };

            class rotation_handle_vertical {
                type = "rotation";
                source = "mainGun";
                sourceAddress = "loop";
                selection = "handle_vertical";
                axis = "axis_handle_vertical";
                minValue = "0";
                maxValue = "1";
                angle0 = "rad 0";
                angle1 = "rad +11520";
                memory = 1;
            };

            class MainGun : MainTurret {
                type = "rotationX";
                source = "mainGun";
                selection = "OtocHlaven";
                axis = "OsaHlaven";
                minValue = "rad -360";
                maxValue = "rad +360";
                angle0 = "rad -360";
                angle1 = "rad +360";
            };

            class MainGunT : MainGun {
                source = "mainGunT_source";
            };

            class recoil_rest {
                type = "translation";
                source = "recoil_rest_source";
                selection = "rest";
                axis = "axis_rest";
                minValue = 0.0;
                maxValue = 20;
                offset0 = "0.0";
                offset1 = "-2";
                animPeriod = 10;
            };

            class recoil_barrel {
                type = "translation";
                source = "recoil_barrel_source";
                selection = "barrel";
                axis = "axis_barrel";
                minValue = 0.0;
                maxValue = 20;
                offset0 = "0.0";
                offset1 = "-1";
                animPeriod = 10;
            };

            class open_breech {
                type = "translation";
                source = "open_breech_source";
                selection = "breech";
                axis = "axis_breech";
                minValue = 0.0;
                maxValue = 20;
                offset0 = "0.0";
                offset1 = "-2";
                animPeriod = 10;
            };

            class handle_breech {
                type = "rotation";
                source = "handle_breech_source";
                selection = "handle_breech";
                axis = "axis_handle";
                minValue = 0.0;
                maxValue = 1;
                angle0 = "rad 0";
                angle1 = "rad 80";
                animPeriod = 10;
                memory = 1;
            };

            class hydraulics {
                type = "rotation";
                source = "mainGun";
                sourceAddress = "loop";
                selection = "hydraulics";
                axis = "axis_hydraulics";
                minValue = "rad -309";
                maxValue = "rad +309";
                angle0 = "rad +360";
                angle1 = "rad -360";
                memory = 1;
            };

            class hydraulicsT : hydraulics {
                source = "hydraulicsT_source";
            }

            class rotation_small_wheel {
                type = "rotation";
                source = "mainGun";
                sourceAddress = "loop";
                selection = "small_wheel";
                axis = "axis_small_wheel";
                minValue = "rad -180";
                maxValue = "rad +180";
                angle0 = "rad -360";
                angle1 = "rad +360";
                memory = 1;
            };

            class MainGunOptics : MainGun {
                selection = "gunnerview";
                axis = "gunnerview";
            };

            class magazine_load {
                type = "translation";
                source = "magazine_load_source";
                selection = "magazine_translation_bone";
                axis = "axis_magazine";
                minValue = 0.0;
                maxValue = 1;
                offset0 = "0.0";
                offset1 = "-0.515";
                animPeriod = 10;
            };

            class magazine_hide {
                type = "hide";
                source = "magazine_hide_source";
                selection = "magazine";
                hideValue = 1;
            };

            class plate_front_hide {
                type = "hide";
                source = "plate_front_source";
                selection = "plate_front";
                hideValue = 1;
            };

            class plate_back_hide {
                type = "hide";
                source = "plate_back_source";
                selection = "plate_back";
                hideValue = 1;
            };
        };
    };
};
