#include "basicdefines_A3.hpp"

#include "CfgAmmo.hpp"
#include "CfgMagazines.hpp"
#define Grip_Macro(numb,name) \
    handAnim[] = {"OFP2_ManSkeleton",\A3\Weapons_F\Rifles\MX\data\Anim\##name##.rtm};\
    class LinkedItems\
    {\
        class LinkedItemsUnder\
        {\
            item = "amf_acc_714_long_grip##numb##";\
            slot = "UnderBarrelSlot";\
        };\
    };

//(13 Enums)
enum {
	destructengine = 2,
	destructdefault = 6,
	destructwreck = 7,
	destructtree = 3,
	destructtent = 4,
	stabilizedinaxisx = 1,
	stabilizedinaxesxyz = 4,
	stabilizedinaxisy = 2,
	stabilizedinaxesboth = 3,
	destructno = 0,
	stabilizedinaxesnone = 0,
	destructman = 5,
	destructbuilding = 1
};
class CfgPatches
{
	class AMF_weapon_F
	{
		units[]={};
		weapons[]={"AMF_714_long_01_F","AMF_714_long_tan_f","amf_714_long_gripv_01_f","amf_714_long_gript_01_f","amf_714_long_gripv_tan_f","amf_714_long_gript_tan_f","20Rnd_762x51_HK417_mag","20Rnd_762x51_HK417_Tracer_yellow_mag","20Rnd_762x51_HK417_Tracer_green_mag","20Rnd_762x51_HK417_Tracer_red_mag"};
		requiredVersion=0.1;
		requiredAddons[]={
			"A3_Weapons_F",
			"cba_xeh",
			"cba_jr"
		};
	};
};
/// All firemodes, to be sure
class Mode_SemiAuto;
class Mode_FullAuto;
class Safety;

/// Weapon slots
class SlotInfo;
class MuzzleSlot;
class CowsSlot;
class PointerSlot;
class UnderBarrelSlot;
class ItemCore;
class Item_Base_F;
class asdg_SlotInfo;
class asdg_OpticRail;
class asdg_OpticRail1913: asdg_OpticRail
{
	class compatibleItems
	{
		optic_Nightstalker = 1;
		optic_tws = 1;
		optic_tws_mg = 1;
		optic_NVS = 1;
		optic_SOS = 1;
		optic_SOS_khk_F = 1;
		optic_MRCO = 1;
		optic_Arco = 1;
		optic_Arco_ghex_F = 1;
		optic_Arco_blk_F = 1;
		optic_aco = 1;
		optic_ACO_grn = 1;
		optic_aco_smg = 1;
		optic_ACO_grn_smg = 1;
		optic_hamr = 1;
		optic_Hamr_khk_F = 1;
		optic_Holosight = 1;
		optic_Holosight_smg = 1;
		optic_Holosight_blk_F = 1;
		optic_Holosight_khk_F = 1;
		optic_Holosight_smg_blk_F = 1;
		optic_DMS = 1;
		optic_DMS_ghex_F = 1;
		optic_LRPS = 1;
		optic_LRPS_ghex_F = 1;
		optic_LRPS_tna_F = 1;
		optic_AMS = 1;
		optic_AMS_khk = 1;
		optic_AMS_snd = 1;
		optic_KHS_blk = 1;
		optic_KHS_hex = 1;
		optic_KHS_old = 1;
		optic_KHS_tan = 1;
		optic_ERCO_blk_F = 1;
		optic_ERCO_khk_F = 1;
		optic_ERCO_snd_F = 1;
		//AMF optics
		AMF_Red_Dot_Sight=1;
		AMF_EOTECH_553=1;
		AMF_EOTECH_553_tan=1;
		AMF_Eotech_552=1;
		AMF_Scrome_J8=1;
		AMF_Aimpoint_Pro_Patrol=1;
		AMF_Aimpoint_CompM5=1;
		AMF_EOTECH_553_magnifier_side=1;
		AMF_EOTECH_553_magnifier_up=1;
		AMF_EOTECH_553_magnifier_side_tan=1;
		AMF_EOTECH_553_magnifier_up_tan=1;
		AMF_xps3=1;
		AMF_xps3_tan=1;
		AMF_schmidt_benderx4=1;
		AMF_schmidt_benderx4_tan=1;
		AMF_xps3_magnifier_side=1;
		AMF_xps3_magnifier_up=1;
		AMF_xps3_magnifier_side_tan=1;
		AMF_xps3_magnifier_up_tan=1;
		AMF_exps3=1;
		AMF_exps3_tan=1;
		AMF_exps3_painted=1;
		AMF_AIMPOINT_MICRO_T1=1;
		AMF_AIMPOINT_MICRO_T2=1;
	};
};
class asdg_OpticRail1913_short: asdg_OpticRail1913
{
	class compatibleItems;
};
class asdg_OpticRail1913_long: asdg_OpticRail1913
{
	class compatibleItems;
};
class asdg_FrontSideRail: asdg_SlotInfo
{
	class compatibleItems
	{
		AMF_AN_PEQ_15_black=1;
		AMF_AN_PEQ_15_green=1;
		AMF_AN_PEQ_15_tan=1;
		AMF_AN_PEQ_15_painted=1;
	};
};

class amf_714_long_gripod_slot: UnderBarrelSlot 
{
	displayName = "Gripod slot";
	class compatibleItems
	{
		amf_acc_714_long_grip2 = 1;
		amf_acc_714_long_grip3 = 1;
		amf_acc_714_long_grip4 = 1;
		amf_acc_714_long_grip5 = 1;
	};
};
class amf_western_714_long_gripod_slot: amf_714_long_gripod_slot
{
	linkProxy = "\A3\Data_f_Mark\proxies\weapon_slots\UNDERBARREL";
};

class Safety_base;
class InventoryItem_Base_F;
class InventoryUnderItem_Base_F: InventoryItem_Base_F
{
	type = 302;
	mass = 2;
	mountAction = "GestureMountMuzzle";
	unmountAction = "GestureDismountMuzzle";
};
class RscInGameUI
{
	class RHS_Gripod1
	{
		idd=3006;
		onLoad="['onLoad',_this,'RscUnitInfo','IGUI'] call (uinamespace getvariable 'BIS_fnc_initDisplay'); _this call AMF_fnc_rhs_gripod";
	};			
	class amf_714_long_grip2: RHS_Gripod1 {};
	class amf_714_long_grip3: RHS_Gripod1 {};
	class amf_714_long_grip4: RHS_Gripod1 {};
	class amf_714_long_grip5: RHS_Gripod1 {};
};
class CfgFunctions
{
	class HK417A2_BIPOD
	{
		tag = "AMF";
		class function_bipod_HK417A2
		{
			file = "AMF_714_Long\Script\Functions";
			class rhs_findplayer{};			
			class rhs_gripod{};
			class rhs_gripod_change{};
		};
	};
};
class CfgWeapons
{
	class amf_acc_714_long_grip2: ItemCore
	{
		author = "MetalTryHard & AMFTeam";
		scope = 2;
		model = "\AMF_714_Long\acc\amf_714_long_grip2.p3d";
		//picture = "\amf_FAMAS\acc\data\UI\AMF_FAMAS_GRIP_V_ui_gear_ca.paa";
		displayName = "Poignee V";
		descriptionlong = "Poignee en V pour HK417A2 (16 pouces) - Ameliore la stabilite";
		inertia = -0.3;
		weaponInfoType = "amf_714_long_grip2";	
		rhs_grip_type = "rhs_grip2_change";
		class ItemInfo: InventoryUnderItem_Base_F
		{
			deployedPivot		= "bipod";	// what point should be used to be on surface while unfolded
			hasBipod			= 1;		// bipod obviously has a bipod
			mass				= 1;		// what is the mass of the object
			soundBipodDown[]	= {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_AAF_down",db-3, 1, 20};	// sound of unfolding the bipod
			soundBipodUp[]		= {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_AAF_up",db-3, 1, 20};		// sound of folding the bipod
		};
	};
	class amf_acc_714_long_grip3: ItemCore
	{
		author = "MetalTryHard & AMFTeam";
		scope = 2;
		model = "\AMF_714_Long\acc\amf_714_long_grip3.p3d";
		//picture = "\amf_FAMAS\acc\data\UI\AMF_FAMAS_GRIP_V_ui_gear_ca.paa";
		displayName = "Poignee T";
		descriptionlong = "Poignee en T pour HK417A2 (16 pouces) - Ameliore la stabilite";
		inertia = -0.3;
		weaponInfoType = "amf_714_long_grip3";	
		rhs_grip_type = "rhs_grip3_change";
		class ItemInfo: InventoryUnderItem_Base_F
		{
			deployedPivot		= "bipod";	// what point should be used to be on surface while unfolded
			hasBipod			= 1;		// bipod obviously has a bipod
			mass				= 1;		// what is the mass of the object
			soundBipodDown[]	= {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_AAF_down",db-3, 1, 20};	// sound of unfolding the bipod
			soundBipodUp[]		= {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_AAF_up",db-3, 1, 20};		// sound of folding the bipod
		};
	};
	class amf_acc_714_long_grip4: ItemCore
	{
		author = "MetalTryHard & AMFTeam";
		scope = 2;
		model = "\AMF_714_Long\acc\amf_714_long_grip4.p3d";
		//picture = "\amf_FAMAS\acc\data\UI\AMF_FAMAS_GRIP_V_ui_gear_ca.paa";
		displayName = "Poignee V (TAN)";
		descriptionlong = "Poignee en V pour HK417A2 (16 pouces) - Ameliore la stabilite";
		inertia = -0.3;
		weaponInfoType = "amf_714_long_grip4";	
		rhs_grip_type = "rhs_grip4_change";
		class ItemInfo: InventoryUnderItem_Base_F
		{
			deployedPivot		= "bipod";	// what point should be used to be on surface while unfolded
			hasBipod			= 1;		// bipod obviously has a bipod
			mass				= 1;		// what is the mass of the object
			soundBipodDown[]	= {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_AAF_down",db-3, 1, 20};	// sound of unfolding the bipod
			soundBipodUp[]		= {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_AAF_up",db-3, 1, 20};		// sound of folding the bipod
		};
	};
	class amf_acc_714_long_grip5: ItemCore
	{
		author = "MetalTryHard & AMFTeam";
		scope = 2;
		model = "\AMF_714_Long\acc\amf_714_long_grip5.p3d";
		//picture = "\amf_FAMAS\acc\data\UI\AMF_FAMAS_GRIP_V_ui_gear_ca.paa";
		displayName = "Poignee T (TAN)";
		descriptionlong = "Poignee en T pour HK417A2 (16 pouces) - Ameliore la stabilite";
		inertia = -0.3;
		weaponInfoType = "amf_714_long_grip5";	
		rhs_grip_type = "rhs_grip5_change";
		class ItemInfo: InventoryUnderItem_Base_F
		{
			deployedPivot		= "bipod";	// what point should be used to be on surface while unfolded
			hasBipod			= 1;		// bipod obviously has a bipod
			mass				= 1;		// what is the mass of the object
			soundBipodDown[]	= {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_AAF_down",db-3, 1, 20};	// sound of unfolding the bipod
			soundBipodUp[]		= {"A3\Sounds_F_Mark\arsenal\sfx\bipods\Bipod_AAF_up",db-3, 1, 20};		// sound of folding the bipod
		};
	};
	class Rifle;
	class Rifle_Base_F: Rifle
	{
		class WeaponSlotsInfo;
		class GunParticles;
	};
	class UGL_F;

	class AMF_714_Long_01_Base_F: Rifle_Base_F /// Just basic values common for all AMFing rifle variants
	{
		magazines[] = {"20Rnd_762x51_HK417_mag","20Rnd_762x51_HK417_Tracer_yellow_mag","20Rnd_762x51_HK417_Tracer_green_mag","20Rnd_762x51_HK417_Tracer_red_mag"}; /// original custom made magazines and a group of several standardized mags
		reloadAction = "GestureReloadSPAR_01"; /// MX hand animation actually fits this rifle well
		magazineReloadSwitchPhase = 0.4; /// part of reload animation when new magazine ammo count should affect "revolving" animation source
		discreteDistanceInitIndex = 0; /// Ironsight zeroing is the lowest value by default
		recoil = "recoil_spar";
		// Size of recoil sway of the cursor
		maxRecoilSway=0.0125;
        // Speed at which the recoil sway goes back to zero (from maxRecoilSway to 0 in 1/swayDecaySpeed seconds)
        swayDecaySpeed=1.25;
		/// inertia coefficient of the weapon
		inertia = 0.5;

		/// positive value defines speed of the muzzle independent on the magazine setting, negative value is a coefficient of magazine initSpeed
		initSpeed = -1; /// this means that initSpeed of magazine is used

		class GunParticles : GunParticles
		{
			class SecondEffect
			{
				positionName = "Nabojnicestart";
				directionName = "Nabojniceend";
				effectName = "CaselessAmmoCloud";
			};
		};

		class WeaponSlotsInfo: WeaponSlotsInfo
		{
			mass = 94;
			class MuzzleSlot: MuzzleSlot
			{
				linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE"; 	/// this can be set, but having some common helps a bit
				compatibleItems[] = {"muzzle_snds_B"}; 				/// A custom made suppressor for this weapon
				iconPosition[] = {0.0, 0.45};							/// position of the slot icon inside of the weapon icon, relative to top-left corner in {right, down} format
				iconScale = 0.2;										/// scale of icon described in iconPicture
				iconPicture = "\A3\Weapons_F\Data\UI\attachment_muzzle.paa"; 	/// icon for selected slot
				iconPinpoint = "Center"; 										/// top, bottom, left, right, center alignment of the icon on snap point
			};
			class CowsSlot: asdg_OpticRail1913 /// default accessories for this slot
			{
			};
			class PointerSlot: asdg_FrontSideRail /// default accessories for this slot
			{
			};
			class UnderBarrelSlot: UnderBarrelSlot /// using AMF bipod
			{
				iconPosition[] = {0.2, 0.7};
				iconScale = 0.2;
				compatibleItems[] = {"bipod_01_F_blk","bipod_02_F_blk","bipod_03_F_blk","bipod_01_F_khk","bipod_01_F_snd","bipod_01_F_mtp","bipod_02_F_tan","bipod_02_F_hex","bipod_03_F_oli"};
			};
		};

/////////////////////////////////////////////////////  I R O N S I G H T S  /////////////////////////////////////////////////////
		opticsZoomMin=0.375;
		opticsZoomMax=1.1;
		opticsZoomInit=0.75;

		distanceZoomMin = 300;
		distanceZoomMax = 300;
/////////////////////////////////////////////////////  I R O N S I G H T S  /////////////////////////////////////////////////////

		descriptionlong = "AMF HK 417 F-S Long"; /// displayed on mouseOver in Inventory
		handAnim[] = {"OFP2_ManSkeleton", "\A3\Weapons_F\Rifles\MX\data\Anim\MX_cqc.rtm"}; ///  hand animation actually fits this rifle well
		dexterity = 1.8;



		selectionFireAnim = "muzzleFlash"; /// are we able to get rid of all the zaslehs?

    ////////////////////////////////////////////////////// NO OPTICS ///////////////////////////////////////////////////////////

		bullet1[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_01", 0.446684, 1, 15};
		bullet2[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_02", 0.446684, 1, 15};
		bullet3[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_03", 0.446684, 1, 15};
		bullet4[] = {"A3\sounds_f\weapons\shells\5_56\Shellcase_556_Metal_04", 0.446684, 1, 15};
		bullet5[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Dirt_01", 0.562341, 1, 15};
		bullet6[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Dirt_02", 0.562341, 1, 15};
		bullet7[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Dirt_03", 0.562341, 1, 15};
		bullet8[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Dirt_04", 0.562341, 1, 15};
		bullet9[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Grass_01", 0.562341, 1, 15};
		bullet10[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Grass_02", 0.562341, 1, 15};
		bullet11[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Grass_03", 0.562341, 1, 15};
		bullet12[] = {"A3\sounds_f\weapons\shells\7_62\Shellcase_762_Grass_04", 0.562341, 1, 15};
		soundBullet[] = {"bullet1", 0.087, "bullet2", 0.083, "bullet3", 0.083, "bullet4", 0.083, "bullet5", 0.083, "bullet6", 0.083, "bullet7", 0.083, "bullet8", 0.083, "bullet9", 0.083, "bullet10", 0.083, "bullet11", 0.083, "bullet12", 0.083};
		
		drySound[]                       = {"A3\Sounds_F_Exp\arsenal\weapons\Rifles\SPAR01\SPAR01_dry",0.63095737,1,30};
        changeFiremodeSound[]            = {"A3\Sounds_F_Exp\arsenal\weapons\Rifles\SPAR01\SPAR01_firemode",0.25118864,1,5};
        reloadMagazineSound[]            = {"A3\Sounds_F_Exp\arsenal\weapons\Rifles\SPAR01\SPAR01_reload",1.0,1,10};
 
        modes[]                          = {SemiAuto,Fullauto,single_medium_optics1,single_far_optics2};
       
        class SemiAuto : Mode_SemiAuto
        {
            sounds[]                     = {"StandardSound","SilencedSound"};
           	class BaseSoundModeType;	// External class reference
			
			class StandardSound : BaseSoundModeType {
				soundSetShot[] = {"SPAR_17_Shot_SoundSet", "SPAR_17_Tail_SoundSet", "SPAR_17_interiorTail_SoundSet"};
			};
			
			class SilencedSound : BaseSoundModeType {
				soundSetShot[] = {"SPAR_17_silencerShot_SoundSet", "SPAR_17_silencerTail_SoundSet", "SPAR_17_silencerInteriorTail_SoundSet"};
			};
            reloadTime                   = 0.090;
            recoil                       = "recoil_single_primary_3outof10";
            recoilProne                  = "recoil_single_primary_prone_3outof10";
            dispersion                   = 0.0002;
            minRange                     = 2;
            minRangeProbab               = 0.3;
            midRange                     = 350;
            midRangeProbab               = 0.7;
            maxRange                     = 500;
            maxRangeProbab               = 0.05;
        };
        class FullAuto : Mode_FullAuto
        {
            sounds[]                     = {"StandardSound","SilencedSound"};
            class BaseSoundModeType;	// External class reference
			
			class StandardSound : BaseSoundModeType {
				soundSetShot[] = {"SPAR_17_Shot_SoundSet", "SPAR_17_Tail_SoundSet", "SPAR_17_interiorTail_SoundSet"};
			};
			
			class SilencedSound : BaseSoundModeType {
				soundSetShot[] = {"SPAR_17_silencerShot_SoundSet", "SPAR_17_silencerTail_SoundSet", "SPAR_17_silencerInteriorTail_SoundSet"};
			};
            reloadTime                   = 0.090;
            recoil                       = "recoil_auto_primary_3outof10";
            recoilProne                  = "recoil_auto_primary_prone_3outof10";
            dispersion                   = 0.0002;
            minRange                     = 0;
            minRangeProbab               = 0.9;
            midRange                     = 15;
            midRangeProbab               = 0.7;
            maxRange                     = 30;
            maxRangeProbab               = 0.05;
            aiRateOfFire                 = 1e-006;
        };
		
		class single_medium_optics1: SemiAuto /// Pew for AI with collimator sights
		{
			requiredOpticType = 1;
			showToPlayer = 0;

			minRange = 2; minRangeProbab = 0.2;
			midRange = 450; midRangeProbab = 0.7;
			maxRange = 600; maxRangeProbab = 0.2;

			aiRateOfFire = 6;
			aiRateOfFireDistance = 600;
		};

		class single_far_optics2: single_medium_optics1	/// Pew for AI with better sights
		{
			requiredOpticType = 2;
			showToPlayer = 0;

			minRange = 100; minRangeProbab = 0.1;
			midRange = 500; midRangeProbab = 0.6;
			maxRange = 700; maxRangeProbab = 0.05;

			aiRateOfFire = 8;
			aiRateOfFireDistance = 700;
		};
	
		class HK269_F: UGL_F /// Some grenade launcher to have some more fun
			{
				displayName = "AMF HK269";
				descriptionlong = "AMF HK269";
				author = "LKDSG & AMF TEAM";
				useModelOptics = false;
				useExternalOptic = false; /// Doesn't use optics from the attachment, has it's own
				cameraDir = "OP_look";
				discreteDistance[] = {100, 200, 300, 400};
				discreteDistanceCameraPoint[] = {"OP_eye", "OP_eye2", "OP_eye3", "OP_eye4"}; /// the angle of gun changes with zeroing
				discreteDistanceInitIndex = 1; /// 200 is the default zero
			};
			 
		aiDispersionCoefY=6.0; /// AI should have some degree of greater dispersion for initial shoots
		aiDispersionCoefX=4.0; /// AI should have some degree of greater dispersion for initial shoots

	};

	class AMF_714_Long_01_F: AMF_714_Long_01_Base_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "HK 417A2 (16 pouces)"; /// some name
		model = "\AMF_714_Long\AMF_714_Long_01_F.p3d"; /// path to model
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_x_ca.paa"; /// weapon should be marked such way
		handAnim[] = {"OFP2_ManSkeleton", "\A3\Weapons_F_Exp\Rifles\SPAR_01\Data\Anim\SPAR_01.rtm"};
		weaponInfoType = "RscWeaponZeroing"; /// display with zeroing is good for iron sights

		rhs_grip2_change = "amf_714_long_gripv_01_f";
		rhs_grip3_change = "amf_714_long_gript_01_f";
		rhs_grip4_change = "amf_714_long_gripv_tan_f";
		rhs_grip5_change = "amf_714_long_gript_tan_f";
		class WeaponSlotsInfo: WeaponSlotsInfo
		{
			mass = 94;
			allowedSlots[] = {901};
			class MuzzleSlot: MuzzleSlot
			{
				linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE"; 	/// this can be set, but having some common helps a bit
				compatibleItems[] = {"muzzle_snds_M"}; 				/// A custom made suppressor for this weapon
				iconPosition[] = {0.0, 0.45};							/// position of the slot icon inside of the weapon icon, relative to top-left corner in {right, down} format
				iconScale = 0.2;										/// scale of icon described in iconPicture
				iconPicture = "\A3\Weapons_F\Data\UI\attachment_muzzle.paa"; 	/// icon for selected slot
				iconPinpoint = "Center"; 										/// top, bottom, left, right, center alignment of the icon on snap point
			};
			class CowsSlot: asdg_OpticRail1913 /// default accessories for this slot
			{
			};
			class PointerSlot: asdg_FrontSideRail /// default accessories for this slot
			{
			};
			class UnderBarrelSlot: UnderBarrelSlot /// using AMF bipod
			{
				iconPosition[] = {0.2, 0.7};
				iconScale = 0.2;
				compatibleItems[] = {"bipod_01_F_blk","bipod_02_F_blk","bipod_03_F_blk","bipod_01_F_khk","bipod_01_F_snd","bipod_01_F_mtp","bipod_02_F_tan","bipod_02_F_hex","bipod_03_F_oli"};
			};
			class GripodSlot: amf_western_714_long_gripod_slot{};
		};
	};
	class amf_714_long_gripv_01_f: AMF_714_long_01_F
	{
		author = "MetalTryHard & AMF TEAM";
		displayName = "HK417A2 (16 pouces)";
		Grip_Macro(2,mx_cqc)
	};
	class amf_714_long_gript_01_f: amf_714_long_gripv_01_f
	{
		author = "MetalTryHard & AMF TEAM";
		displayName = "HK417A2 (16 pouces)";
		Grip_Macro(3,mx)
	};
	class amf_714_long_gripv_tan_f: amf_714_long_gripv_01_f
	{
		author = "MetalTryHard & AMF TEAM";
		displayName = "HK417A2 (16 pouces)";
		Grip_Macro(4,mx_cqc)
	};
	class amf_714_long_gript_tan_f: amf_714_long_gripv_01_f
	{
		author = "MetalTryHard & AMF TEAM";
		displayName = "HK417A2 (16 pouces)";
		Grip_Macro(5,mx)
	};
	class AMF_714_long_tan_f: AMF_714_long_01_Base_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "HK 417A2 (16 pouces - RAL8000)"; /// some name
		model = "\AMF_714_long\AMF_714_long_01_F.p3d"; /// path to model
		picture = "\AMF_714_long\Data\UI\gear_AMF_714_long_01_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_long\Data\UI\gear_AMF_714_long_01_x_ca.paa"; /// weapon should be marked such way
		handAnim[] = {"OFP2_ManSkeleton", "\A3\Weapons_F_Exp\Rifles\SPAR_01\Data\Anim\SPAR_01.rtm"};
		
		hiddenSelections[] = {"camo1","camo2"};
		hiddenSelectionsTextures[] = {"\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_long_RAL8000_CO.paa","\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_Long02_RAL8000_CO.paa"};

		weaponInfoType = "RscWeaponZeroing"; /// display with zeroing is good for iron sights

		rhs_grip2_change = "amf_714_long_gripv_01_f";
		rhs_grip3_change = "amf_714_long_gript_01_f";
		rhs_grip4_change = "amf_714_long_gripv_tan_f";
		rhs_grip5_change = "amf_714_long_gript_tan_f";
		class WeaponSlotsInfo: WeaponSlotsInfo
		{
			mass = 94;
			allowedSlots[] = {901};
			class MuzzleSlot: MuzzleSlot
			{
				linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE"; 	/// this can be set, but having some common helps a bit
				compatibleItems[] = {"muzzle_snds_M"}; 				/// A custom made suppressor for this weapon
				iconPosition[] = {0.0, 0.45};							/// position of the slot icon inside of the weapon icon, relative to top-left corner in {right, down} format
				iconScale = 0.2;										/// scale of icon described in iconPicture
				iconPicture = "\A3\Weapons_F\Data\UI\attachment_muzzle.paa"; 	/// icon for selected slot
				iconPinpoint = "Center"; 										/// top, bottom, left, right, center alignment of the icon on snap point
			};
			class CowsSlot: asdg_OpticRail1913 /// default accessories for this slot
			{
			};
			class PointerSlot: asdg_FrontSideRail /// default accessories for this slot
			{
			};
			class UnderBarrelSlot: UnderBarrelSlot /// using AMF bipod
			{
				iconPosition[] = {0.2, 0.7};
				iconScale = 0.2;
				compatibleItems[] = {"bipod_01_F_blk","bipod_02_F_blk","bipod_03_F_blk","bipod_01_F_khk","bipod_01_F_snd","bipod_01_F_mtp","bipod_02_F_tan","bipod_02_F_hex","bipod_03_F_oli"};
			};
			class GripodSlot: amf_western_714_long_gripod_slot{};
		};
	};
	/*  --------------------
	class amf_714_long_gripv_01_f: AMF_714_long_01_F
	{
		author = "MetalTryHard & AMF TEAM";
		displayName = "HK417A2 (16 pouces - RAL8000)";
		Grip_Macro(2,mx_cqc)
	};
	class amf_714_long_gript_01_f: amf_714_long_gripv_01_f
	{
		author = "MetalTryHard & AMF TEAM";
		displayName = "HK417A2 (16 pouces - RAL8000)";
		Grip_Macro(3,mx)
	};
	class amf_714_long_gripv_tan_f: amf_714_long_gripv_01_f
	{
		author = "MetalTryHard & AMF TEAM";
		displayName = "HK417A2 (16 pouces - RAL8000)";
		Grip_Macro(4,mx_cqc)
	};
	class amf_714_long_gript_tan_f: amf_714_long_gripv_01_f
	{
		author = "MetalTryHard & AMF TEAM";
		displayName = "HK417A2 (16 pouces - RAL8000)";
		Grip_Macro(5,mx)
	};
	------- */
	/*/class AMF_714_Long_ag_01_F: AMF_714_Long_01_Base_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "HK 417 poignet coudee (20 pouces)"; /// some name
		model = "\AMF_714_Long\AMF_714_Long_ag_01_F.p3d"; /// path to model
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_x_ca.paa"; /// weapon should be marked such way
		handAnim[] = {"OFP2_ManSkeleton", "\A3\Weapons_F\Rifles\MX\data\Anim\MX_cqc.rtm"};
		weaponInfoType = "RscWeaponZeroing"; /// display with zeroing is good for iron sights

		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{

		};
	};
	class AMF_714_Long_VG_01_F: AMF_714_Long_01_Base_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "HK 417 poignet verticale (20 pouces)"; /// some name
		model = "\AMF_714_Long\AMF_714_Long_vg_01_F.p3d"; /// path to model
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_x_ca.paa"; /// weapon should be marked such way
		handAnim[] = {"OFP2_ManSkeleton", "\A3\Weapons_F\Rifles\MX\data\Anim\mx.rtm"};
		weaponInfoType = "RscWeaponZeroing"; /// display with zeroing is good for iron sights

		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{

		};
	};
	
	class AMF_714_Long_HK269_01_F: AMF_714_Long_01_Base_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd/LKDSG & AMF TEAM";
		displayName = "HK 417A2 (16 pouces)/HK 269"; /// some name
		model = "\AMF_714_Long\AMF_714_Long_HK269_01_F.p3d"; /// path to model
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_x_ca.paa"; /// weapon should be marked such way
		handAnim[] = {"OFP2_ManSkeleton", "\A3\Weapons_F_Exp\Rifles\SPAR_01\Data\Anim\SPAR_01_GL.rtm"};
		weaponInfoType = "RscWeaponZeroing"; /// display with zeroing is good for iron sights
		reloadAction = "GestureReloadSPARUGL";
		muzzles[] = {this, HK269_F}; /// to be able to switch between bullet muzzle and TGL
		
		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{
			class UnderBarrelSlot: UnderBarrelSlot 
			{

				compatibleItems[] = {};
			};
		};
	};/*/
	
	
	/*class AMF_714_Long_TAN_01_F: AMF_714_Long_01_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "AMF HK 417 F-S Long TAN"; /// some name
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_TAN_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_TAN_x_ca.paa"; /// weapon should be marked such way
		
		hiddenSelections[] = {"camo1","camo2"};
		hiddenSelectionsTextures[] = {"\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_Long_body_TAN_co.paa","\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_614_Sight_TAN_co.paa"};
		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{

		};
	};*/
	
	/*class AMF_714_Long_VG_TAN_01_F: AMF_714_Long_VG_01_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "AMF HK 417 F-S Long Vertical Grip TAN"; /// some name
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_TAN_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_TAN_x_ca.paa"; /// weapon should be marked such way
		
		hiddenSelections[] = {"camo1","camo2","camo3"};
		hiddenSelectionsTextures[] = {"\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_Long_body_TAN_co.paa","\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_614_Sight_TAN_co.paa","\AMF_614_long\Data\textures\AMF_vertical_grip_co.paa"};
		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{

		};
	};*/
	
	/*class AMF_714_Long_ag_TAN_01_F: AMF_714_Long_ag_01_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "AMF HK 417 F-S Long Angled Grip TAN"; /// some name
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_TAN_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_TAN_x_ca.paa"; /// weapon should be marked such way
		
		hiddenSelections[] = {"camo1","camo2","camo3"};
		hiddenSelectionsTextures[] = {"\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_Long_body_TAN_co.paa","\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_614_Sight_TAN_co.paa","\AMF_614_long\Data\textures\AMF_Angled_Grip_co.paa"};
		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{

		};
	};*/
	
	/*class AMF_714_Long_HK269_TAN_01_F: AMF_714_Long_HK269_01_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "AMF HK 417 F-S/HK269 Long TAN"; /// some name
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_TAN_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_TAN_x_ca.paa"; /// weapon should be marked such way

		hiddenSelections[] = {"camo1","camo2"};
		hiddenSelectionsTextures[] = {"\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_Long_body_TAN_co.paa","\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_614_Sight_TAN_co.paa"};
		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{
				class UnderBarrelSlot: UnderBarrelSlot /// using AMF bipod
			{

				compatibleItems[] = {};
			};
		};
	};*/
	
	/*class AMF_714_Long_OD_01_F: AMF_714_Long_01_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "AMF HK 417 F-S Long OD"; /// some name
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_OD_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_OD_x_ca.paa"; /// weapon should be marked such way
		
		hiddenSelections[] = {"camo1","camo2"};
		hiddenSelectionsTextures[] = {"\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_Long_body_OD_co.paa","\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_614_Sight_OD_co.paa"};
		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{

		};
	};*/
	
	/*class AMF_714_Long_VG_OD_01_F: AMF_714_Long_VG_01_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "AMF HK 417 F-S Long Vertical Grip OD"; /// some name
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_OD_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_OD_x_ca.paa"; /// weapon should be marked such way
		
		hiddenSelections[] = {"camo1","camo2","camo3"};
		hiddenSelectionsTextures[] = {"\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_Long_body_OD_co.paa","\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_614_Sight_OD_co.paa","\AMF_614_long\Data\textures\AMF_vertical_grip_co.paa"};
		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{

		};
	};*/
	
	/*class AMF_714_Long_ag_OD_01_F: AMF_714_Long_ag_01_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "AMF HK 417 F-S Long Angled Grip OD"; /// some name
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_OD_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_OD_x_ca.paa"; /// weapon should be marked such way
		
		hiddenSelections[] = {"camo1","camo2","camo3"};
		hiddenSelectionsTextures[] = {"\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_Long_body_OD_co.paa","\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_614_Sight_OD_co.paa","\AMF_614_long\Data\textures\AMF_Angled_Grip_co.paa"};
		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{

		};
	};*/
	
	/*class AMF_714_Long_HK269_OD_01_F: AMF_714_Long_HK269_01_F
	{
		scope = 2; /// should be visible and useable in game
		author = "Haxxerd & AMF TEAM";
		displayName = "AMF HK 417 F-S/HK269 Long OD"; /// some name
		picture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_OD_x_ca.paa"; /// different accessories have M, S, T instead of X
		UiPicture = "\AMF_714_Long\Data\UI\gear_AMF_714_Long_01_OD_x_ca.paa"; /// weapon should be marked such way
		
		hiddenSelections[] = {"camo1","camo2"};
		hiddenSelectionsTextures[] = {"\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_714_Long_body_OD_co.paa","\braf\braf_weapons_sniper_rifles\762mm_HK417\Data\textures\AMF_614_Sight_OD_co.paa"};
		
		class WeaponSlotsInfo: WeaponSlotsInfo
		{
				class UnderBarrelSlot: UnderBarrelSlot /// using AMF bipod
			{

				compatibleItems[] = {};
			};
		};
		};
	};*/
};
