class CfgSkeletons
{
    class Default {
        isDiscrete = 1;
        skeletonInherit = "";
        skeletonBones[] = {};
    };
    class NIA_SG550Skeleton: Default
    {
        skeletonBones[]=
        {
			"Magazine", "",
			"Bolt",	"",
			"bolthead", "Bolt",
			"bullet30", "Magazine",
			"bullet29", "Magazine",
			"bullet28", "Magazine",
			"bullet27", "Magazine",
			"bullet26", "Magazine",
			"bullet25", "Magazine",
			"bullet24", "Magazine",
			"bullet23", "Magazine",
			"bullet22", "Magazine",
			"bullet21", "Magazine",
			"bullet20", "Magazine",
			"bullet19", "Magazine",
			"bullet18", "Magazine",
			"bullet17", "Magazine",
			"bullet16", "Magazine",
			"bullet15", "Magazine",
			"bullet14", "Magazine",
			"bullet13", "Magazine",
			"bullet12", "Magazine",
			"bullet11", "Magazine",
			"bullet10", "Magazine",
			"bullet9", "Magazine",
			"bullet8", "Magazine",
			"bullet7", "Magazine",
			"bullet6", "Magazine",
			"bullet5", "Magazine",
			"bullet4", "Magazine",
			"bullet3", "Magazine",
			"bullet2", "Magazine",
			"bullet1", "Magazine",
			"follower","Magazine",
			"Sping_magazine" , "Magazine" ,
			"springland1"	, "Sping_magazine" ,
			"springland2"	, "springland1" ,
			"springland3"	, "springland2" ,
			"springland4"	, "springland3" ,
			"springland5"	, "springland4" ,
			"springland6"	, "springland5" ,
			"springland7"	, "springland6" ,
			"springland8"	, "springland7" ,
			"springland9"	, "springland8" ,
			"springland10"	, "springland9" ,
			"springland11"	, "springland10" ,
			"springland12"	, "springland11" ,
			"springland13"	, "springland12" ,
			"springland14"	, "springland13" ,
			"springland15"	, "springland14" ,
			"elevator","",
			"Diopter","elevator",
			"bipod_leg_l","",
			"bipod_leg_r","",
			"sniper_bipod_mnt", "",
			"sniper_leg_l","sniper_bipod_mnt",
			"sniper_leg_r","sniper_bipod_mnt",
            "GL_tube","",
			"GL_round","GL_tube",
			"GL_warhead","GL_round",
            "GL_sightladder","",
            "GL_sightpost","", 
            "GL_safety" ,"",
			"GL_latch","",
			"rearsight", "",
			"SOWAperture", "rearsight",
			"frontsight","",
			"nightsight", "",
			"magrelease", "",
			"boltcatch", "",
			"Trigger",	"",
			"Selector","",
			"Break","",
			"trilho_frontal", "",
			"optic_rail", "",
			"zasleh",""
        };
    };
};

class CfgModels
{
    class Default {
        selections[] = {};
        selectionsInherit = "";
        skeletonName = "";
    };
    
    class NIA_SG550M: Default
    {
        sections[]=
        {
            "zasleh","zasleh2","Magazine","Bolt","Trigger","Break"
        };
        skeletonName="NIA_SG550Skeleton";
		sectionsInherit="";
		htMin = 60;		// Minimum half-cooling time (in seconds)
		htMax = 1800;		// Maximum half-cooling time (in seconds)
		afMax = 200;		// Maximum temperature in case the model is alive (in celsius)
		mfMax = 100;		// Maximum temperature when the model is moving (in celsius)
		mFact = 0;		// Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)).
		tBody = 0;		// Metabolism temperature of the model (in celsius)
        class Animations
        {
			// =================================================
			// Attachment Animations : Does X Slot have gear on it?
			// =================================================
		    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 muzzlebreak_hide
            {
			type="hide";
			source="hasSuppressor";
			selection="Break";
			minValue = 0.0;
			maxvalue = 0.25;
			hideValue = 0.01;
            };
			class backsight_hide
	    	{
			type="rotationZ";
			source="hasOptics";
			selection="rearsight";
			axis="rsgt_axis";
			animPeriod=0;
			minValue=0.0;
			maxValue=1;
			minPhase=0.0;
			maxPhase=1;
			angle0=0;
			angle1=rad -90;
			};
			class frontsight_hide
			{
			type="rotationZ";
			source="hasOptics";
			selection="frontsight";
			axis="frntsgt_axis";
			animPeriod=0;
			minValue=0.0;
			maxValue=1;
			minPhase=0.0;
			maxPhase=1;
			angle0=0;
			angle1=rad 90;
			};
			// =================================================
			// Ammorandom: When in firing, theses animate based on individual RNGs
			// =================================================
			class MuzzleFlashROT
 			{
			type="rotationX";
			source="ammoRandom";            
			sourceAddress="loop";     
			selection="zasleh";      
			axis="barrelaxis";                  
			centerFirstVertex=true;   
			minValue=0;
			maxValue=4;              
			angle0="rad 5";
			angle1="rad -5";
 			};
			class mflash2
            {
			type="hide";
			source="ammoRandom"; 
			selection="zasleh"; 
			sourceAddress="loop"; 
			minValue=0;
			maxValue=1; //10;
			hideValue=0.15;
            };
			// =================================================
			// hasMagazine : is it currently loaded?
			// =================================================
			class unloaded_magazine_hide {
			type = "hide";
			source = "hasMagazine.0";
			selection = "magazine";
			hideValue = 0.1;
			};
			// =================================================
			// Reloadmagazine: Changing mags, Primary muzzle
			// =================================================
            class magazinerelease_rock1
			{
			type= "rotation";
			source= "reloadmagazine.0";
			selection="magrelease";
			axis="magrelease_axis";
			minvalue=(8/124);
			maxvalue=(11/124);
			angle0= "rad 0";
			angle1= "rad 20";
			};
				class magazinerelease_rock2
			{
			type= "rotation";
			source= "reloadmagazine.0";
			selection="magrelease";
			axis="magrelease_axis";
			minvalue=(15/124);
			maxvalue=(16.5/124);
			angle0= "rad 0";
			angle1= "rad -20";
			};
						class magazinerelease_rock3
			{
			type= "rotation";
			source= "reloadmagazine.0";
			selection="magrelease";
			axis="magrelease_axis";
			minvalue=(82/124);
			maxvalue=(83/124);
			angle0= "rad 0";
			angle1= "rad 12";
			};
				class magazinerelease_rock4
			{
			type= "rotation";
			source= "reloadmagazine.0";
			selection="magrelease";
			axis="magrelease_axis";
			minvalue=(83.1/124);
			maxvalue=(84.9/124);
			angle0= "rad 0";
			angle1= "rad -12";
			};

            class magazine_hide
            {
			type="hide";
			source="reloadmagazine.0";
			selection="Magazine";
			minValue=0.0;
			maxValue=1;
			hideValue=(20/124);
			unhideValue=(75/124);
            };
			class magazine_rock1
			{
			type= "rotation";
			source= "reloadmagazine.0";
			selection="magazine";
			axis="magazineaxis";
			minvalue=(12/124);
			maxvalue=(15/124);
			angle0= "rad 0";
			angle1= "rad 25";
			};
				class magazine_rock2
			{
			type= "rotation";
			source= "reloadmagazine.0";
			selection="magazine";
			axis="magazineaxis";
			minvalue=(82/124);
			maxvalue=(84/124);
			angle0= "rad 0";
			angle1= "rad -25";
			};
			class magazine_move1
			{
			type = "translation";
			source= "reloadmagazine.0";
			selection="magazine";
			axis = "magazine_axis";
			minvalue=(16/124);
			maxvalue=(19/124);
			offset0 = "0";
			offset1 = "1";
			};
    		class magazine_move2
            {
			type = "translation";
			source= "reloadmagazine.0";
			selection="magazine";
			axis = "magazine_axis";
			minvalue=(76/124);
			maxvalue=(81/124);
			offset0 = "0";
			offset1 = "-1";
            };
    		class bolt_reload1
            {
			type = "translation";
			source = "reloadmagazine.0";
			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_reload2
            {
			type = "translation";
			source = "reloadmagazine.0";
			selection = "Bolt";
			axis = "bolt_axis";
			begin = "bolt_axis_end";
			end = "bolt_axis_begin";
			minvalue=(99/124);
			maxvalue=(101/124);
			offset0 = "0";
			offset1 = "-1";
            };       
    		class bolthead_reload2
            {
			type = "translation";
			source = "reloadmagazine.0";
			selection = "Bolthead";
			axis = "bolt_axis";
			begin = "bolt_axis_end";
			end = "bolt_axis_begin";
			minValue = 0;
			maxValue = 0.0001;
			offset0 = "0";
			offset1 = "-0.175";
            };
    		class bolthead2_reload2
            {
			type = "translation";
			source = "reloadmagazine.0";
			selection = "Bolthead";
			axis = "bolt_axis";
			begin = "bolt_axis_end";
			end = "bolt_axis_begin";
			minvalue=(100.5/124);
			maxvalue=(101/124);
			offset0 = "0";
			offset1 = "0.175";
            };       
    		class boltheadrot_reload2
            {
			type = "rotation";
			source = "reloadmagazine.0";
			selection = "Bolthead";
			axis = "barrelaxis";
			minValue = 0;
			maxValue = 0.0001;
			angle0=0;
			angle1=rad-45;
            };

    		class boltheadrot2_reload2
            {
			type = "rotation";
			source = "reloadmagazine.0";
			selection = "Bolthead";
			axis = "barrelaxis";
			minvalue=(100.5/124);
			maxvalue=(101/124);
			angle0=0;
			angle1=rad 45;
            };       
     		class boltlock_reload
            {
			type="rotation";
			source="reloadmagazine.0";
			selection="Boltcatch";
			axis="boltcatch_axis";
			animPeriod=0;
			minValue = 0;
			maxValue = 0.0001;
			angle1=rad -12;
			angle0=0;
            };
			class boltlock_reload2
            {
			type="rotation";
			source="reloadmagazine.0";
			selection="Boltcatch";
			axis="boltcatch_axis";
			animPeriod=0;
			minvalue=(98/124);
			maxvalue=(99/124);
			angle1=rad 12;
			angle0=0;
            };
			// =================================================
			// Zeroing: Primary Muzzle based zeroing animation
			// =================================================
            class Zeroing100m
            {
			type = "rotation";
			source="zeroing.0";
			selection="Diopter";
			axis = "drum_rot";
			minValue = 0;
			maxValue = 1;
			angle0=rad 0;
			angle1=rad 360;
            };
            class Elevator_tweak1
            {
			type = "rotation";
			source="zeroing.0";
			selection="elevator";
			axis = "elevator_axis";
			minValue = 0;
			maxValue = 0.25;
			angle0=rad -4.5;
			angle1=rad 0;
            };
            class Elevator_tweak2
            {
			type = "rotation";
			source="zeroing.0";
			selection="elevator";
			axis = "elevator_axis";
			minValue = 0.26;
			maxValue = 0.5;
			angle0=rad 0;
			angle1=rad 0;
            };
            class Elevator_tweak3
            {
			type = "rotation";
			source="zeroing.0";
			selection="elevator";
			axis = "elevator_axis";
			minValue = 0.51;
			maxValue = 0.75;
			angle0=rad 0;
			angle1=rad 0;
            };
            class Elevator_tweak4
            {
			type = "rotation";
			source="zeroing.0";
			selection="elevator";
			axis = "elevator_axis";
			minValue = 0.76;
			maxValue = 1;
			angle0=rad 0;
			angle1=rad 0;
            };
            class SOW_Tweak
            {
			type = "translation";
			source="zeroing.0";
			selection="SOWAperture";
			axis = "SOW_axis";
			minValue = 0;
			maxValue = 0.5;
			offset0 = "0";
			offset1 = "1";
            };
            class SOW_Tweak2
            {
			type = "translation";
			source="zeroing.0";
			selection="SOWAperture";
			axis = "SOW_axis";
			minValue = 0.5;
			maxValue = 1;
			offset0 = "0";
			offset1 = "1";
            };
            class Zeroing100m_night
            {
			type = "rotation";
			source="zeroing.0";
			selection="nightsight";
			axis = "frntsgt_axis";
			minValue = 0.8;
			maxValue = 1;
			angle0=rad 0;
			angle1=rad 125;
            };
			// =================================================
			// Reload: Primary muzzle- The actual cycling between shots. 
			// =================================================
			class bolt
            {
			type = "translation";
			source = "reload.0";
			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.0";
			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 bolthead
            {
			type = "translation";
			source = "reload.0";
			selection = "Bolthead";
			axis = "bolt_axis";
			begin = "bolt_axis_end";
			end = "bolt_axis_begin";
			minValue = 0;
			maxValue = 0.15; //0.09; //"1";
			offset0 = "0";
			offset1 = "-0.175";
            };
           	class bolthead2
            {
                type = "translation";
                source = "reload.0";
                selection = "Bolthead";
                axis = "bolt_axis";
                begin = "bolt_axis_end";
                end = "bolt_axis_begin";
                minValue = 0.85;
                maxValue = 1; //0.09; //"1";
                offset0 = "0";
                offset1 = "0.175";
            };       
            class boltheadrot
            {
                type = "rotation";
                source = "reload.0";
                selection = "Bolthead";
                axis = "barrelaxis";
                minValue = 0;
                maxValue = 0.1; //0.09; //"1";
				angle0=rad 45;
				angle1=0;
            };

           class boltheadrot2
            {
                type = "rotation";
                source = "reload.0";
                selection = "Bolthead";
                axis = "barrelaxis";
                minValue = 0.9;
                maxValue = 1; //0.09; //"1";
				angle0=0;
				angle1=rad 45;
            };       
           	// =================================================
			// isEmptyNoreload: When gun is empty, but animation pose doesnt interp to reloadmagazine
			// =================================================                          
            class bolt_empty
            {
                type="translationx";
				source = "isEmptyNoreload.0";
                selection="Bolt";
                axis="";
                animPeriod=0;
                minValue=0;
                maxValue=0.09; //10;
                offset0 = "0";
                offset1 = "1";
            };
     		class boltlock_empty
            {
                type="rotation";
                source="isEmptyNoreload.0";
                selection="Boltcatch";
                axis="boltcatch_axis";
                animPeriod=0;
                minValue=0;
                maxValue=1; //10;
	            angle1=rad -12;
                	angle0=0;
            };
			// =================================================
			// weaponMode: PrimaryMuzzle Fire mode
			// =================================================   
            class FireModeSwitch {
                type="rotationZ";
                source="weaponMode.0";
                memory=1;
                selection="Selector";
                animPeriod=0;
                axis="Selector_axis";
                minValue=0.0;
                maxValue=(3/6);
                minPhase=0.0;
                maxPhase=1.0;
                angle1=rad 120;
                angle0=rad 20;
            };
			// =================================================
			// revolving: basically too indicate how much ammo is in a magazine. 
			//	Hold onto your butts, this section is massive for this weapon.
			// =================================================  
			// For starters: Hide bullets
			class bullet30_hide
			{
			type="hide";
			hideValue=(0.5/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet30";
			};
			class bullet29_hide
			{
			type="hide";
			hideValue=(1/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet29";
			};
			class bullet28_hide
			{
			type="hide";
			hideValue=(2/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet28";
			};
			class bullet27_hide
			{
			type="hide";
			hideValue=(3/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet27";
			};
			class bullet26_hide
			{
			type="hide";
			hideValue=(4/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet26";
			};
			class bullet25_hide
			{
			type="hide";
			source="revolving.0";
			selection="Bullet25";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			hideValue=(5/30);
			};
			class bullet24_hide
			{
			type="hide";
			hideValue=(6/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet24";
			};
			class bullet23_hide
			{
			type="hide";
			hideValue=(7/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet23";
			};
			class bullet22_hide
			{
			type="hide";
			hideValue=(8/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet22";
			};
			class bullet21_hide
			{
			type="hide";
			hideValue=(9/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet21";
			};
			class bullet20_hide
			{
			type="hide";
			hideValue=(10/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet20";
			};
			class bullet19_hide
			{
			type="hide";
			hideValue=(11/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet19";
			};
			class bullet18_hide
			{
			type="hide";
			hideValue=(12/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet18";
			};
			class bullet17_hide
			{
			type="hide";
			hideValue=(13/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet17";
			};
			class bullet16_hide
			{
			type="hide";
			hideValue=(14/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet16";
			};
			class bullet15_hide
			{
			type="hide";
			hideValue=(15/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet15";
			};
			class bullet14_hide
			{
			type="hide";
			hideValue=(16/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet14";
			};
			class bullet13_hide
			{
			type="hide";
			hideValue=(17/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet13";
			};
			class bullet12_hide
			{
			type="hide";
			hideValue=(18/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet12";
			};
			class bullet11_hide
			{
			type="hide";
			hideValue=(19/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet11";
			};
			class bullet10_hide
			{
			type="hide";
			hideValue=(20/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet10";
			};
			class bullet9_hide
			{
			type="hide";
			hideValue=(21/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet9";
			};
			class bullet8_hide
			{
			type="hide";
			hideValue=(22/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet8";
			};
			class bullet7_hide
			{
			type="hide";
			hideValue=(23/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet7";
			};
			class bullet6_hide
			{
			type="hide";
			hideValue=(24/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet6";
			};
			class bullet5_hide
			{
			type="hide";
			hideValue=(25/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet5";
			};
			class bullet4_hide
			{
			type="hide";
			hideValue=(26/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet4";
			};
			class bullet3_hide
			{
			type="hide";
			hideValue=(27/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet3";
			};
			class bullet2_hide
			{
			type="hide";
			hideValue=(28/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet2";
			};
			class bullet1_hide
			{
			type="hide";
			hideValue=(29/30);
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="bullet1";
			};
			//Next- Animate the magazine spring. 
			class magspring_tensioner1
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland1";
			axis="Spring_axis";
			angle0=0;
			angle1=rad 1.7;
			};
			class magspring_tensioner2
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland2";
			axis="Spring_axis";
			angle0=0;
			angle1=rad 1.7;
			};
			class magspring_tensioner3
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland3";
			axis="Spring_axis";
			angle0=0;
			angle1=rad 1.7;
			};
			class magspring_tensioner4
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland4";
			axis="Spring_axis";
			angle0=0;
			angle1=rad 1.7;
			};
			class magspring_tensioner5
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland5";
			axis="Spring_axis";
			angle0=0;
			angle1=rad 1.7;
			};
			class magspring_tensioner6
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland6";
			axis="Spring_axis";
			angle0=0;
			angle1=rad 1.7;
			};
			class magspring_tensioner7
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland7";
			axis="Spring_axis";
			angle0=0;
			angle1=rad 1.7;
			};
			class magspring_tensioner8
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland8";
			axis="Spring_axis";
			angle0=0;
			angle1=rad 1.7;
			};
			class magspring_tensioner9
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland9";
			axis="Spring_axis";
			angle0=0;
			angle1=rad 1.7;
			};
			class magspring_tensioner10
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland10";
			axis="Spring_axis2";
			angle0=0;
			angle1=rad 2.3;
			};
			class magspring_tensioner11
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland11";
			axis="Spring_axis2";
			angle0=0;
			angle1=rad 2.3;
			};
			class magspring_tensioner12
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland12";
			axis="Spring_axis2";
			angle0=0;
			angle1=rad 2.3;
			};
			class magspring_tensioner13
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland13";
			axis="Spring_axis2";
			angle0=0;
			angle1=rad 2.3;
			};
			class magspring_tensioner14
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland14";
			axis="Spring_axis2";
			angle0=0;
			angle1=rad 2.3;
			};
			class magspring_tensioner15
			{
			type="rotation";
			sourceAddress="mirror";
			minValue = -1;
			maxValue = 0;
			minphase = -1;
			maxphase = 0;
			source="revolving.0";
			selection="springland15";
			axis="Spring_axis2";
			angle0=0;
			angle1=rad 2;
			};
			//Lastly- Move the magazine follower
			class follower_revolving1
			{
			type = "translation";
			source="revolving.0";
			selection = "follower";
			axis = "follower_axis1";
			minValue = 0.0;
			maxValue = 0.5;
			offset0 = "0";
			offset1 = "1";
			}; 
			class follower_revolving2
			{
			type = "translation";
			source="revolving.0";
			selection = "follower";
			axis = "follower_axis2";
			minValue = 0.5;
			maxValue = 1;
			offset0 = "0";
			offset1 = "1";
			};       
			class follower_revolving3
			{
			type = "rotation";
			source="revolving.0";
			selection = "follower";
			axis = "bullets_axis_correct";
			minValue = 0.033;
			maxValue = 1;
			angle0="rad 0";
			angle1="rad -15";
			};           
			// =================================================
			// bipod: Animate the goddamn bipod. 
			//	Two separate bipods to animations in 1 config, be aware.
			// =================================================  
		   class legsL
           {
               type            = rotation;
               source          = bipod;        /// this one is for an attachment, weapon itself would have just bipod
               sourceAddress   = clamp;
               selection       = "bipod_leg_l";
               axis            = "bipod_legaxis_l";
               minValue        = 0;
               maxValue        = 1;
               angle0          = (rad 0);
               angle1          = (rad 90);
           };
		   		   class legsR
           {
               type            = rotation;
               source          = bipod;        /// this one is for an attachment, weapon itself would have just bipod
               sourceAddress   = clamp;
               selection       = "bipod_leg_R";
               axis            = "bipod_legaxis_r";
               minValue        = 0;
               maxValue        = 1;
               angle0          = (rad 0);
               angle1          = (rad -90);
           };
		   class sniper_bipod_depl
           {
               type            = rotation;
               source          = bipod;        /// this one is for an attachment, weapon itself would have just bipod
               sourceAddress   = clamp;
               selection       = "sniper_bipod_mnt";
               axis            = "bipod_axis1";
               minValue        = 0;
               maxValue        = 1;
               angle1          = (rad 0);
               angle0          = (rad 90);
           };
		   class sniper_legsL
           {
               type            = rotation;
               source          = bipod;        /// this one is for an attachment, weapon itself would have just bipod
               sourceAddress   = clamp;
               selection       = "sniper_leg_l";
               axis            = "bipod_feet_axis";
               minValue        = 0;
               maxValue        = 1;
               angle1          = (rad 0);
               angle0          = (rad 25);
           };
		class   sniper_legsR
           {
               type            = rotation;
               source          = bipod;        /// this one is for an attachment, weapon itself would have just bipod
               sourceAddress   = clamp;
               selection       = "sniper_leg_R";
               axis            = "bipod_feet_axis";
               minValue        = 0;
               maxValue        = 1;
               angle1          = (rad 0);
               angle0          = (rad -25);
           };
			// =================================================
			// weaponMuzzle: Animate based on which weapon muzzle is active. 
			//	Safeties off GL, safeties on Main rifle, GL sights flip up.
			// =================================================  
        	class GL_sight
	    	{
			type="rotationZ";
			source="weaponMuzzle";
			selection="GL_sightladder";
			axis="ladder_axis";
			animPeriod=0;
			minValue=0.0;
			maxValue=1;
			minPhase=0.0;
			maxPhase=1;
			angle0=rad -90;
			angle1=0;
			};
			class GL_post
			{
			type="rotation";
			source="weaponMuzzle";
			selection="GL_sightpost";
			axis="GL_postaxis";
			animPeriod=0;
			minValue=0.0;
			maxValue=1;
			minPhase=0.0;
			maxPhase=1;
			angle1=0;
			angle0=rad -90;
			};
        	class safety_mode_safe_rot: FireModeSwitch
			{
			source="weaponMuzzle";
			minValue=0.99;
			maxValue=1;
			angle0=0;
			angle1=(rad -20);
			};
			class GLsafety_mode_safe_rot: safety_mode_safe_rot
			{
			source="weaponMuzzle";
			selection="GL_safety";
			axis="GL_safety_axis";
			minValue=0.99;
			maxValue=1;
			angle0=0;
			angle1=(rad 45);
			};
			// =================================================
			// reloadMagazine.1: Animate Second muzzle on mag change.
			//	GL. 
			// =================================================  
           	class magazine_gl_reload_move_1
			{
			type="translation";
			source="reloadMagazine.1";
			selection="GL_TUBE";
			axis = "bolt_axis";
			minValue = (9/107);
			maxValue = (12/107);
			offset0 = 0.0;
			offset1 = -1.0;
			animPeriod = 0.0;
			initPhase = 0.0;
			};
			class magazine_gl_reload_move_2: magazine_gl_reload_move_1
			{
				minValue = (73/107);
				maxValue = (76/107);
				offset1 = 1.0;
			};
			class grenade_reload_move_1
			{
				type="translation";
				source="reloadMagazine.1";
				selection="GL_round";
				memory=1;
				axis="bolt_axis";
				minValue = (9/107);//rad 11.784252
				maxValue = (12/107);//rad 13.003278
				offset0 = 0;
				offset1 = 1.0;
			};
			class grenade_reload_move_2: grenade_reload_move_1
			{
				type="translation";
				axis="gl_vert_axis";
				minValue = (14/107);//rad 12.190595
				maxValue = (17/107);//rad 13.003278
				offset0 = 0.0;
				offset1 = 1;
			};
			class grenade_reload_move_3: grenade_reload_move_2
			{
				type="translation";
				axis="gl_vert_axis2";
				minValue = (48/107);//rad 12.190595
				maxValue = (51/107);//rad 13.003278
				offset0 = 0.0;
				offset1 = 1;
			};
			class grenade_reload_move_4
			{
				type="translation";
				source="reloadMagazine.1";
				selection="GL_round";
				axis="bolt_axis";
				memory=1;
				minValue = (55/107);//rad 11.784252
				maxValue = (62/107);//rad 13.003278
				offset0 = 0;
				offset1 = -0.7;
			};
			class LGlatch_reload_rot_1: safety_mode_safe_rot
			{
				type="rotation";
				source="reloadMagazine.1";
				selection="GL_latch";
                axis="GL_latch_axis";
				memory=1;
				minValue=(7/107);
				maxValue=(10/107);
				angle0=0;
				angle1=(rad 7);
			};
			class LGlatch_reload_rot_2: LGlatch_reload_rot_1
			{
                axis="GL_latch_axis";
				memory=1;
				minValue=(13/107);
				maxValue=(15/107);
				angle0=0;
				angle1=(rad -7);
			};
			class grenade_reload_rot_1: safety_mode_safe_rot
			{
				source="reloadMagazine.1";
				selection="GL_round";
                axis="GL_rot_axis";
				memory=1;
				minValue=(11.5/107);
				maxValue=(17/107);
				angle0=0;
				angle1=(rad -45);
			};
			class grenade_reload_rot_3: grenade_reload_rot_1
			{
                axis="GL_recorrect_axis";
				minValue=(30/107);
				maxValue=(49/107);
				angle0=0;
				angle1=(rad 100);
			};
			class grenade_reload_rot_4: grenade_reload_rot_1
			{
                axis="GL_rot_axis2";
				minValue=(50/107);
				maxValue=(54/107);
				angle0=0;
				angle1=(rad -25);
			};
			class grenade_reload_rot_4a: grenade_reload_rot_1
			{
                axis="GL_rot_axis2";
				minValue=(55/107);
				maxValue=(58/107);
				angle0=0;
				angle1=(rad -30);
			}; 
			
			class magazine_gl_reload_hide
			{
				type="hide";
				source="reloadMagazine.1";
				selection="GL_round";
				minValue = 0.0;//rad 0.0
				maxValue = 1.0;//rad 57.29578
				hideValue = (18/107);
				unHideValue = (49/107);
			};
			class AG36_RL_warhead
            {
                type="hide";
				source = "reloadMagazine.1";
                selection="GL_warhead";
                animPeriod=0;
                minValue=0;
                maxValue=1; 
				hidevalue=0.0001;
				unhidevalue=(45/107);
            };
			/*			
			class grenade_fired
			{
				type="hide";
				source="isEmpty.1";
				selection="GL_warhead";
				sourceAddress="mirror";
				hideValue=0.5;
			};
			class AG36_mag_warhead
						{
				type="hide";
				source="hasMagazine.1";
				selection="GL_round";
				sourceAddress="mirror";
				hideValue=0.1;
			}; 
			*/
        };
    };
			// =================================================
			// Delcare weapons and conditional alterations.
			// =================================================  
		class sg550: NIA_SG550M {};
		class sg550_RIS: NIA_SG550M {};
		class sg550_TAC: NIA_SG550M {};
		class sg5501: NIA_SG550M {};
		class sg5501_RIS: NIA_SG550M {};
		class sg551_LB: NIA_SG550M {};
		class sg551_LB_RIS: sg551_LB {};
		class sg551_LB_TAC: sg551_LB {};
		class sg551: NIA_SG550M {
			class Animations:Animations
			{
				class mflash2:mflash2
				{
					type="hide";
					source="ammoRandom"; 
					selection="zasleh"; 
					sourceAddress="loop"; 
					minValue=0;
					maxValue=1; 
						hideValue=0.25;
				};
			};
		};
		class sg551_RIS: NIA_SG550M {
			class Animations:Animations
			{
				class mflash2:mflash2
				{
					type="hide";
					source="ammoRandom"; 
					selection="zasleh"; 
					sourceAddress="loop"; 
					minValue=0;
					maxValue=1; 
						hideValue=0.25;
				};
			};
		};
		class sg551_TAC: NIA_SG550M {
			class Animations:Animations
			{
				class mflash2:mflash2
				{
					type="hide";
					source="ammoRandom"; 
					selection="zasleh"; 
					sourceAddress="loop"; 
					minValue=0;
					maxValue=1; 
						hideValue=0.25;
				};
			};
		};
		class sg553_LB: sg551 {};
		class sg553_LB_RIS: sg551 {};
		class sg553_LB_TAC: sg551 {};
		class sg553: NIA_SG550M {
			class Animations:Animations
			{
				class mflash2:mflash2
				{
					type="hide";
					source="ammoRandom"; 
					selection="zasleh"; 
					sourceAddress="loop"; 
					minValue=0;
					maxValue=1; 
						hideValue=0.4;
				};
			};
		};
		class sg553_RIS: NIA_SG550M {
			class Animations:Animations
			{
				class mflash2:mflash2
				{
					type="hide";
					source="ammoRandom"; 
					selection="zasleh"; 
					sourceAddress="loop"; 
					minValue=0;
					maxValue=1; 
						hideValue=0.4;
				};
			};
		};
		class sg553_TAC: NIA_SG550M {
			class Animations:Animations
			{
				class mflash2:mflash2
				{
					type="hide";
					source="ammoRandom"; 
					selection="zasleh"; 
					sourceAddress="loop"; 
					minValue=0;
					maxValue=1; 
						hideValue=0.4;
				};
			};
		};
		class sg550_GL:NIA_SG550M {};
		class sg550_TAC_GL: NIA_SG550M {};
		class sg551_tac_GL : sg551_TAC {};
		class sg551_LB_tac_GL : sg551_TAC {};
};
