class CfgSkeletons
{
    class Default {
        isDiscrete = 1;
        skeletonInherit = "";
        skeletonBones[] = {};
    };
    class lapaSkeleton: Default
    {
        skeletonBones[]=
        {
			"Magazine", "",
			"topround", "Magazine",
			"Aperture", "",
			"Rear_adjust", "",
			"Bolt",	"",
			"Bolt_lmg",	"",
			"laddersight", "",
			"mount","",
			"magrelease", "",
			"boltcatch", "",
			"Trigger",	"",
			"safety","",
			"zarelho", "",
			"zarelho_2", "",
			"alsa"  ,"",
			"upper", "",
			"trilho_frontal", "",
			"Break","",
			"zasleh","",
			"moyeu", "",
			"optc", "",
			"alca_transp", "",
			
			"branch_l", "moyeu",
			"branch_r", "moyeu"
        };
    };
};

class CfgModels
{
    class Default {
        selections[] = {};
        selectionsInherit = "";
        skeletonName = "";
    };
    
    class lapa: Default
    {
        sections[]=
        {
            "zasleh","Magazine","Bolt","Trigger","Break","mount","trilho_frontal","upper","lower","Barrel","Stock","Camo","Camo1","Camo2","Camo3"
        };
        skeletonName="lapaSkeleton";
		sectionsInherit="";
        class Animations
        {

            class toprail_hide
            {
                type="hide";
                source="hasOptics";
                selection="mount";
                minValue = 0;
                maxvalue = 1;
                hideValue = 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 muzzlebreak_hide
            {
                type="hide";
                source="hasSuppressor";
                selection="Break";
                minValue = 0.0;
                maxvalue = 0.25;
                hideValue = 0.01;
            };
            class magazine_hide
            {
                type="hide";
                source="reloadMagazine";
                selection="Magazine";
                minValue=0.0;
                maxValue=1;
                hideValue=0.15;
                unhideValue=0.49;
            };
            class Aperture_knob_adjust
            {
                type = "rotation";
                source="zeroing1";
                selection="rear_adjust";
                axis = "apadjust_axis";
                minValue = 0.333;
                maxValue = 1; 
		        angle1=rad 180;
                angle0=0;
            };
            //All the angles in here are all Reyhards work
			// define RANGE_CH_100 minValue = 0.166-0.01; maxValue = 0.166*1;
			// define RANGE_CH_200 minValue = 0.166*2-0.01; maxValue = 0.166*2;
			// define RANGE_CH_300 minValue = 0.166*3-0.01; maxValue = 0.166*3;
			// define RANGE_CH_400 minValue = 0.166*4-0.01; maxValue = 0.166*4;
			// define RANGE_CH_500 minValue = 0.166*5-0.01; maxValue = 0.166*5;
			// define RANGE_CH_600 minValue = 0.166*6-0.01; maxValue = 0.166*6;
			class Range_100_move: Aperture_knob_adjust
			{
				type			= translation;
				selection		= "aperture";
				axis = "aperture_axis";
				minValue = 0.166-0.01;
                maxValue = 0.166*1;
				offset0 = 0.02;
				offset1 = -0.005;
			};
			class Range_200_move: Range_100_move
			{
				minValue = 0.166*2-0.01;
                maxValue = 0.166*2;
				offset1 = 0.009;
			};
			class Range_300_move: Range_200_move
			{
				minValue = 0.166*3-0.01;
                maxValue = 0.166*3;
				offset1 = -0.012;
			};
			class Range_400_move: Range_200_move
			{
				minValue = 0.166*4-0.01;
                maxValue = 0.166*4;
				offset1 = -0.035;
			};
			class Range_500_move: Range_200_move
			{
				minValue = 0.166*5-0.01;
                maxValue = 0.166*5;
				offset1 = -0.055;
			};
			class Range_600_move: Range_400_move
			{
				minValue = 0.166*6-0.01;
                maxValue = 0.166*6;
				offset1 = -0.06;
			};


            class magazine_move1
            {
                type = "translation";
                source="reloadMagazine";
                selection="Magazine";
                axis = "Magazine_axis";
                minValue = 0.12;
                maxValue = 0.15; //0.09; //"1";
                offset0 = "0";
                offset1 = "1";
            };
            class magazine_move2
            {
                type = "translation";
                source="reloadMagazine";
                selection="Magazine";
                axis = "Magazine_axis";
                minValue = 0.51666;
                maxValue = 0.57; //0.09; //"1";
                offset0 = "0";
                offset1 = "-1";
            };
            class magrelease_move1
            {
                type = "translation";
                source="reloadMagazine";
                selection="Magrelease";
                axis = "Magrelease_axis";
                minValue = 0.1;
                maxValue = 0.11; //0.09; //"1";
                offset0 = "0";
                offset1 = "1";
            };
            class magrelease_move2
            {
                type = "translation";
                source="reloadMagazine";
                selection="Magrelease";
                axis = "Magrelease_axis";
                minValue = 0.15;
                maxValue = 0.17; //0.09; //"1";
                offset0 = "0";
                offset1 = "-1";
            };
            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 bolt2
            {
                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 bolt_reload1
            {
                type = "translation";
                source = "reloadmagazine";
                selection = "Bolt";
                axis = "bolt_axis";
                begin = "bolt_axis_end";
                end = "bolt_axis_begin";
                minValue = 0;
                maxValue = 0.0001; //0.09; //"1";
                offset0 = "0";
                offset1 = "1";
            };
			class bolt2_reload
            {
                type = "translation";
                source = "reloadmagazine";
                selection = "Bolt";
                axis = "bolt_axis";
                begin = "bolt_axis_end";
                end = "bolt_axis_begin";
                minValue = 0.7333;
                maxValue = 0.75;
                offset0 = "0";
                offset1 = "-1";
            };       
            class bolt_empty
            {
                type="translationx";
				source = "isEmptyNoReload";
                selection="Bolt";
                axis="";
                animPeriod=0;
                minValue=0;
                maxValue=0.09; //10;
                offset0 = "0";
                offset1 = "1";
            };
			class boltlock_empty
            {
                type="rotation";
                source="isEmpty";
                selection="Boltcatch";
                axis="boltcatch_axis";
                animPeriod=0;
                minValue=0;
                maxValue=1; //10;
				angle1=rad 12;
                angle0=0;
            };
            class bolt_Lmg
            {
                type = "translation";
                source = "reload";
                selection = "Bolt_lmg";
                axis = "bolt_axis";
                begin = "bolt_axis_end";
                end = "bolt_axis_begin";
                minValue = 0;
                maxValue = 0.5; //0.09; //"1";
                offset0 = "1";
                offset1 = "0";
				
				//minValue = 0;
                //maxValue = 0.5; //0.09; //"1";
                //offset0 = "0";
                //offset1 = "1";
            };
           class bolt2_Lmg
            {
                type = "translation";
                source = "reload";
                selection = "Bolt_lmg";
                axis = "bolt_axis";
                begin = "bolt_axis_end";
                end = "bolt_axis_begin";
                minValue = 0.5;
                maxValue = 1; //0.09; //"1";
                offset0 = "-1";
                offset1 = "0";
				
                //minValue = 0.5;
                //maxValue = 1; //0.09; //"1";
                //offset0 = "0";
                //offset1 = "-1";
            };       
            //class bolt_reload1_Lmg
            //{
            //    type = "translation";
            //    source = "reloadmagazine";
            //    selection = "Bolt_lmg";
            //    axis = "bolt_axis";
            //    begin = "bolt_axis_end";
            //    end = "bolt_axis_begin";
            //    minValue = 0;
            //    maxValue = 0.0001; //0.09; //"1";
            //    offset0 = "1";
            //    offset1 = "0";
            //};
			//class bolt2_reload_Lmg
            //{
            //    type = "translation";
            //    source = "reloadmagazine";
            //    selection = "Bolt_lmg";
            //    axis = "bolt_axis";
            //    begin = "bolt_axis_end";
            //    end = "bolt_axis_begin";
            //    minValue = 0.7333;
            //    maxValue = 0.75;
            //    offset0 = "-1";
            //    offset1 = "0";
            //};       
            //class bolt_empty_Lmg
            //{
            //    type="translationx";
			//	source = "isEmptyNoReload";
            //    selection="Bolt_lmg";
            //    axis="";
            //    animPeriod=0;
            //    minValue=-0.07;
            //    maxValue=0; //10;
            //    offset0 = "1";
            //    offset1 = "0";
            //};
			class bolt_empty_Lmg
            {
                type="translation";
                source="isEmpty";
                selection="Bolt_lmg";
                axis="bolt_axis";
                minValue = 0.5;
                maxValue = 1; //0.09; //"1";
                offset0 = "0";
                offset1 = "-1";
                //minValue=-0.07;
				//maxValue=0; //10;
                //offset0 = "1";
                //offset1 = "0";
            };
	        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 unloaded_magazine_hide
            {
                type = "hide";
                source = "hasMagazine";
                selection = "Magazine";
                hideValue = 0.1;
			};
            class FireModeSwitch {
                type = "rotation";
                source = "weaponMode";
                memory = true;
                selection = "safety";
                animPeriod = 0;
                axis = "safety_axis";
                minValue = 0.0;
                maxValue = 1;
                minPhase = 0.0;
                maxPhase = 1.0;
                angle1 = rad -90;
                angle0 = rad 90;
            };
			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="";                  //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 0";
				angle1="rad 360";
			};
            class rounds_empty
            {
	            type="hide";
                source="isEmpty";
                selection="topround";
                animPeriod=0;
                minValue=0;
                maxValue=1; //10;
                	hideValue=0.1;
            };
		    class optic_rail
           	{
               	type="hide";
               	source="hasOptics";
               	selection="optc";
               	minValue=0;
               	maxValue=1;
				hideValue=-1.0;
				unhideValue = 0.5;						
            };
		    class alca_transp_rail
           	{
               	type="hide";
               	source="hasOptics";
               	selection="alca_transp";
               	minValue=0;
               	maxValue=1;
				hideValue=1.0;
				unhideValue = -0.5;						
            };
            class upper_shake
            {
                type="rotationX";
                source="reload";
                selection="upper";
                sourceAddress="mirror";
                axis="upper_axis";
                minPhase=0;
                maxPhase=0.5;
                minValue=0;
                maxValue=0.5;
                memory=0;
                angle0=-0.008726646;
                angle1=0.2;
            };
			class bipod_hide
			{
				type="hide";
				source="hasUnderbarrel";
				selection="bipod";
				minValue = 0;
				maxValue = 1;
				hideValue = 1;
				// unHideValue = 0.5;
				animPeriod = 0.0;
				initPhase = 0.0;
			};				
			class bipod_set
			{
				type="rotation";
				source="bipod";
				selection="moyeu";
				sourceAddress="clamp";
				axis="axis_moyeu";//*probably*
				minValue = 0.0;
				maxValue = 0.9;
				angle0 = 0;
				angle1 = "rad 90";
				animPeriod = 0.0;
				initPhase = 0.0;
				memory = 0;//(default assumed)
			};
			class bipod_set2
			{
				type="rotationy";
				source="bipod";
				selection="branch_l";
				sourceAddress="clamp";
				axis="branch_axis";//*probably*
				minValue = 0.9;//rad 0.0
				maxValue = 1.0;//rad 57.29578
				angle0 = 0;
				angle1 = "rad -35";
				animPeriod = 0.0;
				initPhase = 0.0;
				memory = 0;//(default assumed)
			};
			class bipod_set3
			{
				type="rotationy";
				source="bipod";
				selection="branch_r";
				sourceAddress="clamp";
				axis="branch_axis";
				minValue = 0.9;
				maxValue = 1.0;
				angle0 = 0;
				angle1 = "rad 35";
				animPeriod = 0.0;
				initPhase = 0.0;
				memory = 0;//(default assumed)
			};
	       	//class zarelho
			//{
			//	type="rotation";
			//	source="reload";
			//	selection="zarelho";
			//	axis="zarelho_axis";
			//	minValue=-1;
			//	maxValue="1";
			//	angle0="rad -50";
			//	angle1="rad 50";
			//};
	       	class zarelho_2
			{
				type="rotation";
				source="reload";
				selection="zarelho_2";
				axis="zarelho_2_axis";
				minValue=-1;
				maxValue="1";
				angle0="rad -50";
				angle1="rad 50";
			};
            class alsa_shake
            {
                type="rotationX";
                source="reload";
                selection="alsa";
                sourceAddress="mirror";
                axis="alsa_axis";
                minPhase=0;
                maxPhase=0.5;
                minValue=0;
                maxValue=0.5;
                memory=0;
                angle0=-0.05;
                angle1=0.05;
            };
        };
    };	
};