class CfgSkeletons
{
    class Default {
        isDiscrete = 1;
        skeletonInherit = "";
        skeletonBones[] = {};
    };
    class HK33Skeleton: Default
    {
        skeletonBones[]=
        {
			"Magazine", "",
			"Diopter", "",
			"bolt_oprod", "",
			"Bolt",	"bolt_oprod",
			"Bolthandle", "bolt_oprod",
			"magrelease", "",
			"laddersight", "",
			"M203_tube","",
			"M203_round","M203_tube",
			"M203_warhead","M203_round",
			"Trigger",	"",
			"rail", "",
			"Selector","",
			"Break","",
			"zasleh","",
			"optic_rail", "",
			"trilho_frontal", ""
        };
    };
};

class CfgModels
{
    class Default {
        selections[] = {};
        selectionsInherit = "";
        skeletonName = "";
    };
    
    class HK33M: Default
    {
        sections[]=
        {
            "zasleh","Magazine","Bolt","Trigger","Break","Diopter","Main","Stock","FCG","M203"
        };
        skeletonName="HK33Skeleton";
	sectionsInherit = "";
        class Animations
        {
		    class optic_rail
           	{
               	type="hide";
               	source="hasOptics";
               	selection="optic_rail";
               	minValue=0;
               	maxValue=1;
				hideValue=-1.0;
				unhideValue = 0.5;


            };
		    class acessory_rail
           	{
               	type="hide";
               	source="hasAccessory";
               	selection="trilho_frontal";
               	minValue=0;
               	maxValue=1;
				hideValue=-1.0;
				unhideValue = 0.5;


            };
			class muzzlebrake_hide
            {
                type="hide";
                source="hasSuppressor";
                selection="break";
                minValue = 0.0;
                maxvalue = 0.25;
                hideValue = 0.01;
            };
            class Zeroing100m
            {
                type = "rotation";
                source="zeroing1";
                selection="Diopter";
                axis = "drum_rot";
                minValue = 0;
                maxValue = 1;
                angle0=rad 0;
                angle1=rad -270;
            };

            class magazine_hide
            {
                type="hide";
                source="reloadMagazine";
                selection="Magazine";
                minValue=0.0;
                maxValue=1;
                hideValue=0.23;
                unhideValue=0.65;
            };
            class magazine_move1
            {
                type = "translation";
                source="reloadMagazine";
                selection="Magazine";
                axis = "Magazine_axis";
                minValue = 0.2138;
                maxValue = 0.225; //0.09; //"1";
                offset0 = "0";
                offset1 = "1";
            };
            class magazine_move2
            {
                type = "translation";
                source="reloadMagazine";
                selection="Magazine";
                axis = "Magazine_axis";
                minValue = 0.664;
                maxValue = 0.693; //0.09; //"1";
                offset0 = "0";
                offset1 = "-1";
            };
            class bolthandle_rot1
            {
                type = "rotation";
                source="reloadMagazine";
                selection="Bolthandle";
                axis = "bhaxis";
                minValue = 0.034;
                maxValue = 0.046; //0.09; //"1";
                angle1=rad 90;
                angle0=rad 0;
            };
            class bolthandle_rot2
            {
                type = "rotation";
                source="reloadMagazine";
                selection="Bolthandle";
                axis = "bhaxis";
                minValue = 0.87;
                maxValue = 0.895; //0.09; //"1";
                angle1=rad -90;
                angle0=rad 0;
            };
            class bolthandle_rot3
            {
                type = "rotation";
                source="reloadMagazine";
                selection="bolt_oprod";
                axis = "bolt_axis";
                minValue = 0.0924;
                maxValue = 0.104; //0.09; //"1";
                angle1=rad 45;
                angle0=rad 0;
            };
            class bolthandle_rot4
            {
                type = "rotation";
                source="reloadMagazine";
                selection="bolt_oprod";
                axis = "bolt_axis";
                minValue = 0.821;
                maxValue = 0.8497;
                angle1=rad -45;
                angle0=rad 0;
            };
//moves charging handle back to rear
                      class bolthandle_move1
            {
                type = "translation";
                source = "reloadMagazine";
                selection = "bolt_oprod";
                axis = "bolt_axis";
                begin = "bolt_axis_end";
                end = "bolt_axis_begin";
                minValue = 0.052;
                maxValue = 0.075; //0.09; //"1";
                offset0 = "0";
                offset1 = "1";
            };
                        class bolthandle_move2
            {
                type = "translation";
                source = "reloadMagazine";
                selection = "bolt_oprod";
                axis = "bolt_axis";
                begin = "bolt_axis_end";
                end = "bolt_axis_begin";
                minValue = 0.867;
                maxValue = 0.878;
                offset0 = "0";
                offset1 = "-1";
            };
            class magrelease_rot1
            {
                type = "rotation";
                source="reloadMagazine";
                selection="Magrelease";
                axis = "Magrelease_axis";
                minValue = 0.1888;
                maxValue = 0.2; //0.09; //"1";
                angle1=rad 10;
                angle0=rad 0;
            };
            class magrelease_rot2
            {
                type ="rotation";
                source="reloadMagazine";
                selection="Magrelease";
                axis = "Magrelease_axis";
                minValue = 0.2111111;
                maxValue = 0.22222222; //0.09; //"1";
                angle1=rad -10;
                angle0=rad 0;
            };
                        class bolt
            {
                type = "translation";
                source = "reload";
                selection = "Bolt";
                axis = "bolt_axis";
                begin = "bolt_axis_end";
                end = "bolt_axis_begin";
                minValue = 0;
                maxValue = 0.5; //0.09; //"1";
                offset0 = "0";
                offset1 = "1";
            };
                        class bolt1
            {
                type = "translation";
                source = "reload";
                selection = "Bolt";
                axis = "bolt_axis";
                begin = "bolt_axis_end";
                end = "bolt_axis_begin";
                minValue = 0.5;
                maxValue = 1; //0.09; //"1";
                offset0 = "0";
                offset1 = "-1";
            };


		class unloaded_magazine_hide {
		type = "hide";
		source = "hasMagazine";
		selection = "Magazine";
		hideValue = 0.1;
			};


    class FireModeSwitch {
                type="rotationZ";
                source="weaponMode";
                memory=1;
                selection="Selector";
                animPeriod=0;
                axis="Selector_axis";
                minValue=0.0;
                maxValue=0.42;
                angle1=rad 45;
                angle0=rad -60;
            };

class MuzzleFlashROT
 			{
 				type="rotationX";
 				source="ammoRandom";            //use ammo count as phase for animation
 				sourceAddress="loop";     //loop when phase out of bounds
 				selection="zasleh";       //selection we want to rotate
 				axis="barrelaxis";                  //no own axis - center of rotation is computed from selection
 				centerFirstVertex=true;   //use first vertex of selection as center of rotation
 				minValue=0;
 				maxValue=4;               //rotation angle will be 360/4 = 90 degrees
 				angle0="rad 7";
 				angle1="rad -7";
 			};
            class mflash2
            {
	            type="hide";
 				source="ammoRandom"; 
 				selection="zasleh"; 
 				sourceAddress="loop"; 
                minValue=0;
                maxValue=1; 
                hideValue=0.25;
            };
	    class backsight_hide
	    	{
		 type="rotationZ";
		 source="weaponMuzzle";
		 selection="Laddersight";
		axis="ladder_axis";
		 animPeriod=0;
		 minValue=0.0;
		 maxValue=1;
		 minPhase=0.0;
		 maxPhase=1;
                		angle0=0;
		angle1=rad 90;
		};
class magazine_gl_reload_move_1
			{
				type="translation";
				source="reloadMagazine.1";
				selection="M203_TUBE";
				axis = "bolt_axis";
				minValue = 0.099291;//rad 5.688955
				maxValue = 0.141844;//rad 8.127063
				offset0 = 0.0;
				offset1 = -1.0;
				animPeriod = 0.0;
				initPhase = 0.0;
			};
			class magazine_gl_reload_move_2: magazine_gl_reload_move_1
			{
				minValue = 0.758511;
				maxValue = 0.786879;
				offset1 = 1.0;
			};
			class grenade_reload_move_1_h
			{
				type="translation";
				source="reloadMagazine.1";
				selection="m203_round";
				axis="bolt_axis";
				minValue = 0.205674;//rad 11.784252
				maxValue = 0.22695;//rad 13.003278
				offset0 = -0.02;
				offset1 = 2.0;
			};
			class grenade_reload_move_1_v: grenade_reload_move_1_h
			{
				type="translation";
				axis="gl_vert_axis";
				minValue = 0.212766;//rad 12.190595
				maxValue = 0.22695;//rad 13.003278
				offset0 = 0.0;
				offset1 = 6.3;
			};
			class grenade_reload_move_2: grenade_reload_move_1_h
			{
				minValue = 0.333333;//rad 19.098574
				maxValue = 0.496454;//rad 28.44472
				offset0 = 0.0;
				offset1 = -1.3;
			};
			class grenade_reload_move_3: grenade_reload_move_2
			{
				type="translation";
				axis="gl_vert_axis";
				minValue = 0.503546;//rad 28.85106
				maxValue = 0.553191;//rad 31.69551
				offset0 = 0.0;
				offset1 = -6.3;
			};
			class grenade_reload_move_4: grenade_reload_move_2
			{
				minValue = 0.595745;//rad 34.133675
				maxValue = 0.64539;//rad 36.978123
				offset0 = 0.0;
				offset1 = -0.68;
			};
			class magazine_gl_reload_hide
			{
				type="hide";
				source="reloadMagazine.1";
				selection="m203_round";
				minValue = 0.0;//rad 0.0
				maxValue = 1.0;//rad 57.29578
				hideValue = 0.22695;
				unHideValue = 0.496454;
			};
			class grenade_fired
			{
				type="hide";
				source="revolving.1";
				selection="m203_warhead";
				minValue=0.0;
				maxValue=1.0;
				hideValue=-1.0;
				unhideValue=0.5;
			};
        };
    };

    class hk33: HK33M {
                class Animations: Animations
        {
                class FireModeSwitch {
                type="rotationZ";
                source="weaponMode";
                memory=1;
                selection="Selector";
                animPeriod=0;
                axis="Selector_axis";
                minValue=0.0;
                maxValue=0.33;
                angle1=rad 100;
                angle0=rad 30;
            };
        };
        };

    class hk33a2: HK33M {};
    class hk33ka3: HK33M {
        class Animations : Animations
        {
                class FireModeSwitch {
                type="rotationZ";
                source="weaponMode";
                memory=1;
                selection="Selector";
                animPeriod=0;
                axis="Selector_axis";
                minValue=0.0;
                maxValue=0.33;
                angle1=rad 100;
                angle0=rad 30;
            };
        };
        };
     class hk33_rails: HK33M {};
     class hk33_rails_GL: HK33M {};
};