
#define BULLET_HIDE(x,from,count) class Bullet##x\
	{\
		type="hide";\
		source="revolving";\
		sourceAddress="mirror";\
		selection=bullet##x;\
		minValue=-1.000000;\
		maxValue= 0.000000;\
		hideValue=((count+x-from-2)/count)+0.00001;\
	};

#define BULLET_HIDE_GOOD(name,x,from,count) class Bullet##x\
	{\
		type="hide";\
		source="revolving2";\
		sourceAddress="mirror";\
		selection=bullet##name;\
		minValue=-1.000000;\
		maxValue= 0.000000;\
		hideValue=((count+x-from-2)/count)+0.00001;\
	};

class Rotation
{
type = "rotation";
memory = 1;
minValue = 0;
maxValue = 1;
angle0 = 0;
angle1 = 1;
};

#include "model_skeletons.hpp"

class CfgModels
{
	class Vehicle
	{
		sections[]={};
		sectionsInherit="";
		skeletonName="";
		
	};
	class Car: Vehicle
	{
		sectionsInherit="Vehicle";
		sections[]=
		{	
			"ammo",
			"gatling",
			"sklo predni p",
			"sklo predni l",
			"zadni svetlo",
			"brzdove svetlo",
			"spz",
			"karoserie",
			"motor",
			"zbran",
			"vez",
			"zbytek",
			"clan",
			"clan_sign",
			"zasleh",
			"P svetlo",
			"L svetlo",
			"Light_R",
			"Light_L",
			"palivo",
			"glass1",
			"glass2",
			"glass3",
			"glass4"
		};
		skeletonName="Car";
		
		class Animations
		{

		class damageHide
		{
			type="hide";
			source="damage";
			selection="damageHide";
			hideValue=1.0;
		};

		class damageHideVez:damageHide
		{
			selection="OtocVez";
		};
		class damageHideHlaven:damageHide
		{
			selection="OtocHlaven";
		};

		class wheel_1_1_destruct
		{
			type="hide";
			selection="wheel_1_1_hide";
			source="HitLFWheel";
			minValue = 0; 
			maxValue = 1;
			hidevalue = 0.99;
		};
		class wheel_1_2_destruct:wheel_1_1_destruct {source="HitLF2Wheel";selection="wheel_1_2_hide";};

		class wheel_2_1_destruct:wheel_1_1_destruct {source="HitRFWheel";selection="wheel_2_1_hide";};
		class wheel_2_2_destruct:wheel_1_1_destruct {source="HitRF2Wheel";selection="wheel_2_2_hide";};
		
		class wheel_1_1_destruct_unhide
		{
			type="hide";
			selection="wheel_1_1_unhide";
			source="HitLFWheel";
			minValue = -1;
			maxValue = 0; 
			hidevalue = 0.01;
			sourceAddress="mirror";
		};
		class wheel_1_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLF2Wheel";selection="wheel_1_2_unhide";};

		class wheel_2_1_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRFWheel";selection="wheel_2_1_unhide";};
		class wheel_2_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRF2Wheel";selection="wheel_2_2_unhide";};
			
		#define DamageOffset 0.2

		class wheel_1_1_Damage:wheel_1_1_destruct
			{
			type="translation";
			axis="Basic_Damper_Destruct_Axis";
			memory=1;
			selection="wheel_1_1_damper_land";
			source="HitLFWheel";
			minValue = 0.0;
			maxValue = 1;
			offset0 = 0;
			offset1 = DamageOffset;
			};
			
			class wheel_1_2_Damage:wheel_1_1_Damage {source="HitLF2Wheel";selection="wheel_1_2_damper_land";};

			class wheel_2_1_Damage:wheel_1_1_Damage {source="HitRFWheel";selection="wheel_2_1_damper_land";};
			class wheel_2_2_Damage:wheel_1_1_Damage {source="HitRF2Wheel";selection="wheel_2_2_damper_land";};

			class wheel_1_1_Damper_Damage_BackAnim:wheel_1_1_Damage {selection="wheel_1_1_damper";offset1 = -1*DamageOffset;};
			class wheel_1_2_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitLF2Wheel";selection="wheel_1_2_damper";};

			class wheel_2_1_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRFWheel";selection="wheel_2_1_damper";};
			class wheel_2_2_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRF2Wheel";selection="wheel_2_2_damper";};
				
			class Glass1_destruct
			{
			type="hide";
			selection="glass1";
			source="HitGlass1";
			minValue = 0; 
			maxValue = 1; 
			hidevalue = 0.99;
			};
			class Glass2_destruct:Glass1_destruct{selection="glass2";source="HitGlass2";};
			class Glass3_destruct:Glass1_destruct{selection="glass3";source="HitGlass3";};
			class Glass4_destruct:Glass1_destruct{selection="glass4";source="HitGlass4";};
			class Glass5_destruct:Glass1_destruct{selection="glass5";source="HitGlass5";};
			class Glass6_destruct:Glass1_destruct{selection="glass6";source="HitGlass6";};

		class IndicatorSpeed: Rotation
		{
			source="speed";
			selection="mph";
			axis="mph_axis";
			memory=1;
			maxValue=38.900002;
			angle1="rad -265";
		};
		class IndicatorFuel: Rotation
		{
			type="rotation";
			source="fuel";
			selection="fuel_1";
			axis="fuel_1_axis";
			memory=1;
			minValue=0.000000;
			maxValue=1.000000;
			angle0=-0.087266;
			angle1=-1.658063;
		};
		
			class DrivingWheel: Rotation
			{
				source="drivingWheel";
				selection="drivewheel";
				axis="drivewheel_axis";
				minValue=-1;
				maxValue=1;
				angle0=(rad 80);
				angle1=(rad -80);
			};
			class wheel_1_1_pad
			{
				type="rotationY";
				source="drivingWheel";
				memory = 1;
				animPeriod = 0;
				selection="wheel_1_1_pad";
				axis="wheel_1_1_steering_axis";
				minValue="rad -180";
				maxValue="rad +180";
				angle0="rad +45";
				angle1="rad -45";
			};
			class wheel_2_1_pad
			{
				type="rotationY";
				source="drivingWheel";
				memory = 1;
				animPeriod = 0;
				selection="wheel_2_1_pad";
				axis="wheel_2_1_steering_axis";
				minValue="rad -180";
				maxValue="rad +180";
				angle0="rad +45";
				angle1="rad -45";
			};
			class TurnFrontWheelR
			{
				type="rotationY";
				source="drivingWheel";
				memory = 1;
				animPeriod = 0;
				selection="wheel_2_1_steering";
				axis="wheel_2_1_steering_axis";
				minValue="rad -180";
				maxValue="rad +180";
				angle0="rad +45";
				angle1="rad -45";
			};
			class TurnFrontWheelL: TurnFrontWheelR
			{
				selection="wheel_1_1_steering";
				axis="wheel_1_1_steering_axis";
			};
			class wheel_1_1
			{
				type="rotationX";
				source="wheel";
				memory = 1;//by default
				animPeriod = 0;//Unknown
				selection="wheel_1_1";
				axis="wheel_1_1_axis";
				minValue = 0.0;
				maxValue = 1.0;
				minPhase = 0.0;
				maxPhase = 1.0;
				angle0 = 0;
				angle1 = "rad -360";
			};
			class wheel_1_2: wheel_1_1
			{
				selection="wheel_1_2";
				axis="wheel_1_2_axis";
			};
			class wheel_2_1: wheel_1_1
			{
				selection="wheel_2_1";
				axis="wheel_2_1_axis";
			};
			class wheel_2_2: wheel_1_1
			{
				selection="wheel_2_2";
				axis="wheel_2_2_axis";
			};
			class Wheel_1_1_Damper
			{
				type="translation";
				source="damper";
				selection="wheel_1_1_damper_land";
				axis="posun wheel_1_1";
				animPeriod = 1;
				minValue="0";
				maxValue="1";
				offset0= "0.5";
				offset1= "-0.25";
				memory=1;
			};
			class wheel_2_1_Damper: wheel_1_1_Damper
			{
				selection="wheel_2_1_damper_land";
				axis="posun wheel_2_1";
			};
			class wheel_1_2_Damper: wheel_1_1_Damper
			{
				selection="wheel_1_2_damper_land";
				axis="posun wheel_1_2";
			};
			class wheel_2_2_Damper: wheel_1_1_Damper
			{
				selection="wheel_2_2_damper_land";
				axis="posun wheel_2_2";
			};
			class damageVez: damageHide
			{
				selection="damageVez";
			};
			class damageHlaven: damageHide
			{
				selection="damageHlaven";
			};
		};
	};
	class vurtual_ltt_chassis: Car {
		sectionsInherit="Car";
		skeletonName="vurtual_TrailerSkeleton";
		sections[]= {
			"Camo"
		};
		class Animations: Animations {
			class park_stand_towed {
				selection = "park_stand";
				axis = "park_stand_axis";
				type = "translation";
				memory = 1;
				source = "wheel_towed";
				minValue = 0;
				maxvalue = 1;
				offset0 = 0;
				offset1 = 1;
			};
			class chocks_towed: park_stand_towed {
				selection = "chocks";
				source = "wheel_towed";
				offset0 = 0;
				offset1 = 1;

			};
			class chocks_damper: wheel_1_1_Damper
			{
				selection="chocks";
				axis="posun wheel_1_1";
			};
			class chocks_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.9;
				source = "wheel_towed";
				selection = "chocks";
			};
			class wheel_mid_damper: wheel_1_1_Damper
			{
				selection="wheel_mid_damper_land";
				axis="posun wheel_mid";
			};
			class wheel_mid: wheel_1_1
			{
				selection="wheel_mid";
				axis="wheel_mid_axis";
			};
		};
	};
	class vurtual_radar_sentinel: vurtual_ltt_chassis {
		skeletonName = "vurtual_radarSentinelSkeleton";
		sectionsInherit = "vurtual_ltt_chassis";
		sections[] = {
			"Camo2"
		};
		class Animations: Animations {
			class Radar_Spin {
				type="rotation";
				source="timeRndOffset";
				selection="radar_spin";
				axis="radar_axis";
				sourceAddress = "loop";
				minValue="0";
				maxValue="2";
				angle0="0";
				angle1="rad +360";
			};
			class radar_hide {
				selection = "radar_spin";
				type = "hide";
				source = "m119_folded";
				minValue = 0;
				maxvalue = 1;
				hideValue = 0.1;
			};
			class radar_unhide {
				selection = "radar_folded";
				type = "hide";
				source = "m119_folded";
				minValue = 0;
				maxvalue = 1;
				hideValue = 0;
				unhideValue = 0.1;
			};
			class m119_fold_garage {
				type = "rotation";
				source = "m119_fold_garage";
				selection = "mainturret_base";
				axis = "maingun_base_axis";
				minValue = 0;
				maxValue = 1;
				angle0=0;
				angle1=0;
			};
			class MainTurret {
				type="rotation";
				source="mainTurret";
				selection="mainturret";
				axis="mainturret_axis";
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class MainGun {
				type="rotation";
				source="mainGun";
				selection="mainGun";
				axis="maingun_axis";
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class DriverTurret: MainTurret {
				source = "PilotCameraRotX";
				selection = "driverturret";
			};
			class DriverGun: MainGun {
				source = "PilotCameraRotY";
				selection = "drivergun";
			};
		};
	};
	class vurtual_m1102: vurtual_ltt_chassis {
		sectionsInherit="Car";
		skeletonName="vurtual_TrailerSkeleton";
		sections[]= {
			"Camo"
		};
		class Animations: Animations {
			class tailgate_fold {
				type = "rotation";
				axis = "tailgate_axis";
				minValue=0;
				maxValue=1;
				selection="tailgate";
				angle0=0;
				angle1="rad -90";
				source="tailgate_fold";
				memory=1;
			};
			class brakelight_normal_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				source = "brakelight_normal_hide";
				selection = "brakelight_normal";
			};
			class brakelight_blackout_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				source = "blackout_hide";
				selection = "brakelight_blackout";
			};
			class blackout_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				source = "blackout_hide";
				selection = "blackout_marker";
			};
		};
	};
	class vurtual_m119: vurtual_ltt_chassis {
		sections[] = {};
		skeletonName="vurtual_m119Skeleton";
		class Animations: Animations {
			class MainTurret {
				type="rotation";
				source="mainTurret";
				selection="mainturret";
				axis="mainturret_axis";
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class wheel_turret_1_1: MainTurret {
				selection = "wheel_1_1_damper_land";
			};
			class wheel_turret_2_1: MainTurret {
				selection = "wheel_2_1_damper_land";
			};
			class wheel_1_1_turn {
				type="rotation";
				source="mainTurret";
				memory = 1;
				selection="wheel_1_1";
				axis="wheel_1_1_axis";
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class wheel_2_1_turn: wheel_1_1_turn {
				axis = "wheel_2_1_axis";
				selection = "wheel_2_1";
			};
			class MainTurret_back: MainTurret {
				angle0="rad +360";
				angle1="rad -360";
				source = "mainturret_back";
			};
			class wheel_turret_1_1_back: MainTurret_back {
				selection = "wheel_1_1_damper_land";
			};
			class wheel_turret_2_1_back: MainTurret_back {
				selection = "wheel_2_1_damper_land";
			};
			class MainGun {
				type="rotation";
				source="mainGun";
				selection="mainGun";
				axis="maingun_axis";
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class MainOptic: MainGun {
				selection = "gunnerview";
				source = "MainOptic";
			};
			class MainGun_back: MainGun {
				angle0="rad +360";
				angle1="rad -360";
				source = "maingun_back";
			};
			class MainTurret_base {
				type="rotation";
				source="m119_folded";
				axis="mainturret_axis";
				minValue=0;
				maxValue=1;
				angle0="rad 0";
				angle1="rad +180";
				selection = "MainTurret_base";
			};
			class m119_fold_garage {
				type = "rotation";
				source = "m119_fold_garage";
				selection = "mainturret_base";
				axis = "maingun_base_axis";
				minValue = 0;
				maxValue = 1;
				angle0=0;
				angle1=0;
			};
			
			class baseplate_hide {
				selection = "baseplate_deployed";
				type = "hide";
				source = "m119_folded";
				minValue = 0;
				maxvalue = 1;
				hideValue = 0.1;
			};
			class baseplate_hide_turret: baseplate_hide {
				selection = "baseplate_turret";
			};
			class baseplate_unhide: baseplate_hide {
				selection = "baseplate_towed";
				hideValue = 0;
				unhideValue = 0.1;
			};
			class ammobox_hide {
				selection = "ammobox";
				type = "hide";
				source = "ammobox_hide";
				minValue = 0;
				maxvalue = 1;
				hideValue = 0.1;
			};
			class ammobox_towed {
				selection = "ammobox";
				type = "Translation";
				source = "m119_folded";
				minValue = 0;
				maxValue = 1;
				axis="ammobox_axis";
				memory=1;
				offset0=1.1;
				offset1=0;
				
			};
			
			class recoil_BEGIN
			{
				type="translation";
				source="recoil_source";
				selection="recoil";
				axis="recoil_axis";
				memory=1;
				minValue=0.92;
				maxValue=0.99;
				offset0=0;
				offset1=-0.3;
				
			};
			class recoil_END:recoil_BEGIN
			{
				minValue=0.99;
				maxValue=1.0;
				offset0=0;
				offset1=0.3;
			};

			//These break AI firing!
			// recoils shake START
			/*
			class recoil_Shake_HlavenX
			{
				type="rotationX";
				source="recoil_source";
				//sourceAddress="mirror";
				selection="mainGun";
				axis="recoil_axis";
				memory=1;
				minValue=0.900000;
				maxValue=0.950000;
				angle0=0;
				angle1="rad +2.0";
			};
			class recoil_Shake_HlavenX_END:recoil_Shake_HlavenX
			{
				minValue=0.950000;
				maxValue=1.0;
				angle0="rad +2.0";
				angle1=0;
			};
			class recoil_Shake_HlavenY:recoil_Shake_HlavenX
			{
				type="rotationY";
				minValue=0.930000;
				maxValue=0.980000;
				angle1="rad +1.0";
			};
			class recoil_Shake_HlavenY_END:recoil_Shake_HlavenY
			{
				minValue=0.980000;
				maxValue=1.0;
				angle0="rad +1.0";
				angle1=0;
			};
			class recoil_Shake_HlavenZ:recoil_Shake_HlavenX
			{
				type="rotationZ";
				minValue=0.950000;
				maxValue=0.990000;
				angle1="rad -1.5";
			};
			class recoil_Shake_HlavenZ_END:recoil_Shake_HlavenZ
			{
				minValue=0.980000;
				maxValue=1.00000;
				angle0="rad -1.5";
				angle1=0;
			};
			class recoil_Shake_VezX:recoil_Shake_HlavenX
			{
				selection="mainturret";
				angle1="rad -0.5";
			};
			class recoil_Shake_VezX_END:recoil_Shake_HlavenX_END
			{
				selection="mainturret";
				angle0="rad -0.5";
				angle1=0;
			};
			class recoil_Shake_VezY:recoil_Shake_HlavenY
			{
				selection="mainturret";
				angle1="rad -0.25";
			};
			class recoil_Shake_VezY_END:recoil_Shake_HlavenY_END
			{
				selection="mainturret";
				angle0="rad -0.25";
				angle1=0;
			};
			class recoil_Shake_VezZ:recoil_Shake_HlavenZ
			{
				selection="mainturret";
				angle1="rad +0.25";
			};
			class recoil_Shake_VezZ_END:recoil_Shake_HlavenZ_END
			{
				selection="mainturret";
				angle0="rad +0.25";
				angle1=0;
			};*/
			// recoils shake END
		};
	};
	class vurtual_hmmwv_base: Car
	{
		sectionsInherit="Car";
		sections[]=
		{
			"Camo",
			"Camo1",
			"Camo2",
			"Camo3",
			"Camo4",
			"Camo5",
			"Camo6",
			"Camo7",
			"door_left",
			"door_left2",
			"door_right",
			"door_right2",
			"dmg_hood",
			"dmg_engine",
			"dmg_frame",
			"muzzleflash",
			"armor_cargo_l",
			"armor_cargo_r",
			"Light_B"
		};
		
		skeletonName="vurtual_HMMWVSkeleton";
		
		class Animations: Animations
		{
			class wheel_1_1_Damage:wheel_1_1_Damage {offset1 = 0.20;};
			class wheel_1_2_Damage:wheel_1_2_Damage {offset1 = 0.20;};
			class wheel_2_1_Damage:wheel_2_1_Damage {offset1 = 0.20;};
			class wheel_2_2_Damage:wheel_2_2_Damage {offset1 = 0.20;};
			class wheel_1_1_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_1_2_Damper_Damage_BackAnim:wheel_1_2_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_2_1_Damper_Damage_BackAnim:wheel_2_1_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_2_2_Damper_Damage_BackAnim:wheel_2_2_Damper_Damage_BackAnim {offset1 = -0.20;};
			class open_window {
				type = "translation";
				minValue = 0;
				maxValue = 1;
				offset0=0;
				offset1=0;
				axis = "window_axis";
				selection = "bedseat_left";
				source = "open_window";
			};
			class hood_destruct {
				type="hide";
				selection="dmg_hood";
				source="HitHood";
				minValue = 0; 
				maxValue = 1; 
				hidevalue = 0.99;
			};
			class door_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				source = "door_hide";
				selection = "door_hide";
			};/*
			class door_hidden {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0;
				unhideValue = 0.1;
				selection = "door_hidden";
				source = "door_hide";
			};*/
			class door_left {
				selection = "door_left";
				angle0=0;
				angle1="rad -70";
				axis = "door_left_axis";
				memory=1;
				type = "rotation";
				minValue=0;
				maxValue=1;
				source = "door_left";
			};
			class door_left_window {
				selection = "window_driver";
				axis = "window_axis";
				memory = 1;
				type = "translation";
				minValue = 0;
				maxValue = 1;
				offset0=0;
				offset1=1;
				source="window_driver";
			};
			class door_right: door_left {
				selection = "door_right";
				axis = "door_right_axis";
				source = "door_right";
				angle1="rad 70";
			};
			class door_right_window: door_left_window {
				selection = "window_codriver";
				source = "window_codriver";
			};
			class door_left2: door_left {
				selection = "door_left2";
				axis = "door_left2_axis";
				source = "door_left2";
			};
			class door_left2_window: door_left_window {
				selection = "window_left";
				source = "window_left";
			};
			class door_right2: door_right {
				selection = "door_right2";
				axis = "door_right2_axis";
				source = "door_right2";
			};
			class door_right2_window: door_left_window {
				selection = "window_right";
				source = "window_right";
			};
			class armor_cargo_hide: door_hide {
				selection = "armor_cargo";
				source = "armor_cargo_hide";
			};
			#include "anims_instruments.hpp"
			class gmv_hide_radio {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hidevalue = 0.1;
				source = "gmv_hide_radio";
				selection = "gmv_hide_radio";
			};
			class roof_hide: door_hide {
				selection = "roof_hide";
				source = "roof_hide";
			};
			class gmv_hide_bft: gmv_hide_radio {
				selection = "gmv_hide_bft";
				source = "gmv_hide_bft";
			};
			class gmv_hide_bumper: gmv_hide_radio {
				selection = "gmv_hide_bumper";
				source = "gmv_hide_bumper";
			};
			class bedseat_fold {
				type = "rotation";
				minValue = 0;
				maxValue = 1;
				angle0 = 0;
				angle1 = "rad 90";
				source = "bedseat_fold";
				selection = "bedseat_left";
				axis = "bedseat_left_axis";
			};
			class bedseat_right {
				type = "rotation";
				minValue = 0;
				maxValue = 1;
				angle0 = 0;
				angle1 = "rad -90";
				source = "bedseat_fold";
				axis = "bedseat_right_axis";
				selection = "bedseat_right";
			};
			class fordingkit_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				source = "fordingkit_hide";
				hideValue = 0.1;
				selection = "fordingkit_installed";
			};
			class fordingkit_transported {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				source = "vehicleTransported";
				hideValue = 0.1;
				selection = "fordingkit_installed";
			};
			class mirrors_transported: fordingkit_transported {
				selection = "mirrors";
			};
			class bumper_transported: fordingkit_transported {
				selection = "gmv_hide_bumper";
			};
			class fordingkit_hidden: fordingkit_hide {
				hideValue = 0;
				unhideValue = 0.5;
				selection = "fordingkit_hidden";
			};
			class antenna_cover_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "antenna_cover";
				source = "cover_4door_hide";
			};
			class antenna_cover_unhide: antenna_cover_hide {
				selection = "antenna_back";
				hideValue = 0;
				unhideValue = 0.1;
			};
			class tailgate_fold {
				type = "rotation";
				axis = "tailgate_axis";
				minValue=0;
				maxValue=1;
				selection="tailgate";
				angle0=0;
				angle1="rad -90";
				source="tailgate_fold";
				memory=1;
			};
			class spare_arm: tailgate_fold {
				selection = "spare_arm";
				axis = "spare_tire_axis";
				angle1="rad -110";
			};
			class spare_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hidevalue = 0.1;
				selection = "spare_base";
				source = "spare_hide";
			};
			class wheel_spare_destruct: wheel_1_1_destruct {
				selection = "spare_wheel";
				source = "HitSpareWheel";
			};
			class door_left_armor: door_left {
				selection = "door_left_armor";
			};
			class door_right_armor: door_right {
				selection = "door_right_armor";
			};
			class door_left2_armor: door_left2 {
				selection = "door_left2_armor";
			};
			class door_right2_armor: door_right2 {
				selection = "door_right2_armor";
			};
			class door_armor_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hidevalue = 0.5;
				selection = "door_armor";
				source = "door_armor_hide";
			};
			class tailgate_hide: door_hide {
				selection = "tailgate";
				source = "tailgate_hide";
			};
			class door_left_destruct {
				type="hide";
				selection="door_left";
				source="HitDoorL";
				minValue = 0; 
				maxValue = 1; 
				hidevalue = 0.99;
			};
			class door_left_destruct_a: door_left_destruct {
				hideValue = 0.5;
				selection="door_left_a";
			};
			class door_left_destruct_dmg: door_left_destruct_a { selection = "door_left_dmg"; hideValue = 0; unhideValue = 0.5; };

			class door_left2_destruct: door_left_destruct { selection = "door_left2"; source = "HitDoorL2" };
			class door_left2_destruct_a: door_left_destruct_a { selection = "door_left2_a"; source = "HitDoorL2" };
			class door_left2_destruct_dmg: door_left2_destruct_a { selection = "door_left2_dmg"; hideValue = 0; unhideValue = 0.5; };
			
			class door_right_destruct: door_left_destruct { selection = "door_right"; source = "HitDoorR" };
			class door_right_destruct_a: door_left_destruct_a { selection = "door_right_a"; source = "HitDoorR" };
			class door_right_destruct_dmg: door_right_destruct_a { selection = "door_right_dmg"; hideValue = 0; unhideValue = 0.5; };
			
			class door_right2_destruct: door_left_destruct { selection = "door_right2"; source = "HitDoorR2" };
			class door_right2_destruct_a: door_left_destruct_a { selection = "door_right2_a"; source = "HitDoorR2" };
			class door_right2_destruct_dmg: door_right2_destruct_a { selection = "door_right2_dmg"; hideValue = 0; unhideValue = 0.5; };


			//addon armor
			class door_left_destruct_armor: door_left_destruct_a { 
				selection = "door_left_armor";
			};
			class door_right_destruct_armor: door_right_destruct_a {
				selection = "door_right_armor";
			};
			class door_left2_destruct_armor: door_left2_destruct_a { //addon armor
				selection = "door_left2_armor";
			};
			class door_right2_destruct_armor: door_right2_destruct_a {
				selection = "door_right2_armor";
			};
			class cargo_l_destruct: door_left_destruct { selection = "armor_cargo_l"; source = "HitACargoL" };
			class cargo_r_destruct: door_left_destruct { selection = "armor_cargo_r"; source = "HitACargoR" };
			class cargo_l_destruct_a: door_left_destruct_a { selection = "armor_cargo_l_a"; source = "HitACargoL" };
			class cargo_r_destruct_a: door_left_destruct_a { selection = "armor_cargo_r_a"; source = "HitACargoR" };
			class cargo_l_destruct_dmg: cargo_l_destruct_a { selection = "armor_cargo_l_dmg"; hideValue = 0; unhideValue = 0.5; };
			class cargo_r_destruct_dmg: cargo_r_destruct_a { selection = "armor_cargo_r_dmg"; hideValue = 0; unhideValue = 0.5; };
		};
	};

	class vurtual_hmmwv_base_old: vurtual_hmmwv_base {
		class Animations: Animations {
			class cover_4door_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "cargo_cover_base";
				source = "cover_4door_hide";
			};
			class bedseat_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0;
				unhideValue = 0.1;
				source = "cover_4door_hide";
				selection = "bedseat_rail";
			};
			class roof_rack_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "roof_rack";
				source = "roof_rack_hide";
			};
			class cover_rear_fold {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "cargo_cover_rear";
				source = "cover_rear_fold";
			};
			class cover_rear_open: cover_rear_fold {
				selection = "cargo_cover_open";
				hideValue = 0;
				unhideValue = 0.1;
			};
			class cover_4door_rear_fold: cover_rear_fold {
				source = "cover_4door_rear_fold";
				selection = "cargo_cover_4door_rear";
			};
			class cover_4door_open: cover_4door_rear_fold {
				selection = "cargo_cover_4door_open";
				hideValue = 0;
				unhideValue = 0.1;
			};
			class seats_a0_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "seats_a0";
				source = "seats_a1";
			};
			class seats_a1: seats_a0_hide {
				hideValue = 0;
				unhideValue = 0.1;
				selection = "seats_a1";
			};
			class seats_r_a0_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "seats_r_a0";
				source = "seats_a2";
			};
			class seats_a2: seats_r_a0_hide {
				hideValue = 0;
				unhideValue = 0.1;
				selection = "seats_r_a2";
			};
			class bumper_a0_hide {
				type = "hide";
				selection = "bumper_a0";
				source = "bumper_a2";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
			};
			class bumper_a0_spare_hide: bumper_a0_hide {
				selection = "spare_bumper";
			};
			class bumper_a2: bumper_a0_hide {
				selection = "bumper_a2";
				hideValue = 0;
				unhideValue = 0.1;
			};
			class door_left_window_canvas {
				source = "window_driver";
				selection = "window_driver_canvas";
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
			};
			class door_right_window_canvas: door_left_window_canvas {
				source = "window_codriver";
				selection = "window_codriver_canvas";
			};
			class door_left2_window_canvas: door_left_window_canvas {
				source = "window_left";
				selection = "window_left_canvas";
			};
			class door_right2_window_canvas: door_left_window_canvas {
				source = "window_right";
				selection = "window_right_canvas";
			};
		};
	};
	class vurtual_hmmwv_base_hardtop: vurtual_hmmwv_base_old {
		sectionsInherit = "vurtual_hmmwv_base";
		skeletonName = "vurtual_HMMWVSkeleton_hardtop";
		sections[] = {
			"GunnerShieldKit",
			"muzzleflash_mk19"
		};
		class Animations: Animations {
			#include "anims_hardtop.hpp"
		};
	};
	class vurtual_hmmwv_base_armored: vurtual_hmmwv_base {
		sectionsInherit = "vurtual_hmmwv_base";
		skeletonName="vurtual_HMMWVSkeleton_armored";
		sections[]=
		{
			"GunnerShieldKit",
			"armor_rocker_l",
			"armor_rocker_r",
			"armor_roof",
			"GunnerProtectionKit",
			"armor_rear_visual",
			"glass_gsk",
			"glass_gpk",
			"muzzleflash_mk19"
		};
		class Animations: Animations {
			#include "anims_hardtop.hpp"
			class armor_akit_hide: door_hide {
				selection = "armor_akit";
				source = "armor_akit_hide";
			};
			class armor_roof_hide: door_hide {
				selection = "armor_roof";
				source = "armor_roof_hide";
			};
			class armor_rear_hide: door_hide {
				selection = "armor_rear";
				source = "armor_rear_hide";
			};
			class open_window: open_window {
				axis = "window_frag_axis";
			};
			class door_left_window: door_left_window {
				axis = "window_frag_axis";
			};
			class door_right_window: door_right_window {
				axis = "window_frag_axis";
			};
			class door_left2_window: door_left2_window {
				axis = "window_frag_rear_axis";
			};
			class door_right2_window: door_right2_window {
				axis = "window_frag_rear_axis";
			};
			
			class rocker_l_destruct: door_left_destruct { selection = "armor_rocker_l"; source = "HitARockerL" };
			//class rocker_l_destruct_a: door_left_destruct_a { selection = "armor_rocker_l_a"; source = "HitARockerL" };
			
			class rocker_r_destruct: door_left_destruct { selection = "armor_rocker_r"; source = "HitARockerR" };
			//class rocker_r_destruct_a: door_left_destruct_a { selection = "armor_rocker_r_a"; source = "HitARockerR" };
			
			class underbody_destruct: door_left_destruct { selection = "armor_underbody"; source = "HitAUnderbody" };
			//class underbody_destruct_a: door_left_destruct_a { selection = "armor_underbody_a"; source = "HitAUnderbody" };
			
			
			
			class roof_destruct: door_left_destruct { selection = "armor_roof"; source = "HitARoof" };
			//class roof_destruct_a: door_left_destruct_a { selection = "armor_roof_a"; source = "HitARoof" };
			//class roof_destruct_dmg: roof_destruct_a { selection = "armor_roof_dmg"; hideValue = 0; unhideValue = 0.5; };
			
			class rear_destruct: door_left_destruct { selection = "armor_rear"; source = "HitARear" };
			//class rear_destruct_a: door_left_destruct_a { selection = "armor_rear_a"; source = "HitARear" };
			//class rear_destruct_dmg: rear_destruct_a { selection = "armor_rear_dmg"; hideValue = 0; unhideValue = 0.5; };
			
			
			class gpk_destruct: door_left_destruct { selection = "GunnerProtectionKit"; source = "HitArmorGPK";};
			//class gpk_destruct_a: door_left_destruct_a { selection = "GunnerProtectionKit_a"; source = "HitArmorGPK";};
			//class gpk_destruct_dmg: gpk_destruct_a { selection = "GunnerProtectionKit_dmg"; hideValue = 0; unhideValue = 0.5; };
	

			
			class GPK_Hide: GunnerShield_hide {
				selection = "GunnerProtectionKit";
				source = "GPK_hide";
			};
			class GPK_Hide_glass: GunnerShield_hide {
				selection = "glass_gpk";
				source = "hitglass_gpk";
			};
			class GSK_Hide_glass: GunnerShield_hide {
				selection = "glass_gsk";
				source = "hitglass_gsk";
			};
			class gpk_transported: turret_transported {
				selection = "GunnerProtectionKit";
			};
			class m1151_hide_armor: m1151_hide {
				selection = "armor_rear_m1151";
			};
			class m1165_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				source = "m1151_hide";
				hideValue = 0;
				unhideValue = 0.1;
				selection = "armor_rear_m1165";
			};
			class m1165_hide_cover: m1165_hide {
				selection = "cargo_cover_4door";
			};
			class m1151_trunk_fold_armor: m1151_trunk_fold {
				selection = "armor_rear_m1151_trunk";
			};
			class m1151_trunk_fold_rear_armor: m1151_trunk_fold_rear {
				selection = "armor_rear_m1151_trunk";
			};
			class m1114_hide {
				type = "hide";
				source = "m1114_hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "m1114";
			};
			class ac_fender_hide {
				type = "hide";
				source = "m1114_hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0;
				unhideValue = 0.1;
				selection = "ac_fender";
			};
			class m1151_rear_hatch_left {
				type = "translation";
				minValue = 0;
				maxValue = 1;
				offset0=0;
				offset1=1;
				axis = "hatch_rear_axis";
				selection = "m1151_hatch_left";
				source = "m1151_rear_hatch";
			};
			class m1151_rear_hatch_right: m1151_rear_hatch_left {
				minValue = 0;
				maxValue = 1;
				offset0 = 0;
				offset1 = -1;
				selection = "m1151_hatch_right";
			};
		};
	};
	class vurtual_hmmwv_base_m1165: vurtual_hmmwv_base_armored {
		class Animations: Animations {
			class cover_4door_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "cargo_cover_base";
				source = "cover_4door_hide";
			};
			class cover_4door_rear_fold {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				source = "cover_4door_rear_fold";
				selection = "cargo_cover_4door_rear";
			};
			class antenna_cover_hide_m1165: antenna_cover_hide {
				selection = "antenna_m1165";
			};
			class antenna_m1165_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "antenna_cover";
				source = "m1151_hide";
			};
			class antenna_m1165_unhide: antenna_m1165_hide {
				selection = "antenna_m1165";
				hideValue = 0;
				unhideValue = 0.1;
			};
		};
	};
	class vurtual_m998: vurtual_hmmwv_base_old {};
	class vurtual_m997: vurtual_hmmwv_base_old {
		skeletonName="vurtual_HMMWVSkeleton_ambulance";
		class Animations: Animations {
			class tailgate_fold: tailgate_fold {
				angle1="rad -120";
				minValue = 0.2;
			};
			class bedseat_fold: bedseat_fold {
				angle0 = "rad -90";
				angle1 = 0;
			};
			class bedseat_right: bedseat_right {
				angle0 = "rad 90";
				angle1 = 0;
			};
			class hatch_back_left: tailgate_fold {
				selection = "hatch_back_left";
				axis = "hatch_back_left_axis";
				angle1 = "rad 90";
			};
			class hatch_back_right: tailgate_fold {
				selection = "hatch_back_right";
				axis = "hatch_back_right_axis";
				angle1 = "rad -90";
			};
			class medic_sign_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "medic_sign";
				source = "medic_sign_hide";
			};
			class medic_sign_left_hide: medic_sign_hide {
				selection = "medic_sign_left";
			};
			class medic_sign_right_hide: medic_sign_hide {
				selection = "medic_sign_right";
			};
		};
	};
	class vurtual_m998_4door: vurtual_hmmwv_base_old {
		skeletonName="vurtual_HMMWVSkeleton_ambulance";
		class Animations: Animations {
			class flatbed_4door_unhide {
				type = "hide";
				source = "flatbed_4door_unhide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0;
				unhideValue = 0.1;
				selection = "4door_flatbed";
			};
			class seats_r_hide {
				type = "hide";
				source = "flatbed_4door_unhide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "seats_r";
			};
			class m1035_unhide {
				type = "hide";
				source = "m1035_unhide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0;
				unhideValue = 0.1;
				selection = "m1035";
			};
			class flatbed_cover_hide {
				selection = "cargo_cover_rear";
				hideValue = 0.1;
				source = "flatbed_cover_hide";
				type = "hide";
				minValue = 0;
				maxValue = 1;
			};
			class medic_sign_hide {
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0.1;
				selection = "medic_sign";
				source = "medic_sign_hide";
			};
			class stretcher_hide: medic_sign_hide {
				selection = "stretcher";
				source = "stretcher_hide";
			};
		};
	};
	class vurtual_m1113: vurtual_hmmwv_base {
		class Animations: Animations {
			class cover_4door_hide { //bedseat_hide
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0;
				unhideValue = 0.1;
				source = "cover_4door_hide";
				selection = "bedseat_rail";
			};
		};
	};
	class vurtual_m1025: vurtual_hmmwv_base_hardtop {
		skeletonName = "vurtual_HMMWVSkeleton_Mk19";
		#include "anims_mk19.hpp"
	};
	class mk19test: vurtual_m1025 {};
	class vurtual_m1043: vurtual_m1025 {};
	class vurtual_m1025_m2: vurtual_hmmwv_base_hardtop {
		skeletonName = "vurtual_HMMWVSkeleton_M2";
		#include "anims_m2.hpp"
	};
	class vurtual_m1043_m2: vurtual_m1025_m2 {};
	class vurtual_m1025_m240: vurtual_hmmwv_base_hardtop {
		skeletonName = "vurtual_HMMWVSkeleton_M240";
		#include "anims_m240.hpp"
	};
	class vurtual_m1043_m240: vurtual_m1025_m240 {};
	class vurtual_m966: vurtual_m1025 {
		class Animations: Animations {
			class GunnerTurnOut: GunnerTurnOut {
				angle1 = "rad 90";
			};
		};
	};
	class vurtual_m1045: vurtual_m966 {};
	class vurtual_m1165: vurtual_hmmwv_base_m1165 {
		skeletonName = "vurtual_HMMWVSkeleton_Armored_Mk19";
		#include "anims_mk19.hpp"
	};
	class vurtual_m1165_crows: vurtual_m1165 {
		skeletonName = "vurtual_HMMWVSkeleton_Armored_CROWS";
		#include "anims_crows.hpp"
	};
	class vurtual_m1167: vurtual_m1165 {
		class Animations: Animations {
			class GunnerTurnOut: GunnerTurnOut {
				angle1 = "rad 90";
			};
		};
	};
	class vurtual_m1165_m2: vurtual_hmmwv_base_m1165 {
		skeletonName = "vurtual_HMMWVSkeleton_Armored_M2";
		#include "anims_m2.hpp"
	};
	class vurtual_m1165_m240: vurtual_hmmwv_base_m1165 {
		skeletonName = "vurtual_HMMWVSkeleton_Armored_M240";
		#include "anims_m240.hpp"
	};
	class vurtual_m1152: vurtual_hmmwv_base_armored {
		class Animations: Animations {
			class cover_4door_hide { //bedseat_hide
				type = "hide";
				minValue = 0;
				maxValue = 1;
				hideValue = 0;
				unhideValue = 0.1;
				source = "cover_4door_hide";
				selection = "bedseat_rail";
			};
			class door_left_window: door_left_window {
				axis = "window_frag_rear_axis";
			};
			class door_right_window: door_right_window {
				axis = "window_frag_rear_axis";
			};
		};
	};
	class vurtual_m1114: vurtual_m1165 {
		class Animations: Animations {
			class door_left_window: door_left_window {
				axis = "window_axis";
			};
			class door_right_window: door_right_window {
				axis = "window_axis";
			};
			class door_left2_window: door_left2_window {
				axis = "window_axis";
			};
			class door_right2_window: door_right2_window {
				axis = "window_axis";
			};
		};
	};
	class vurtual_m1114_crows: vurtual_m1114 {
		skeletonName = "vurtual_HMMWVSkeleton_Armored_CROWS";
		#include "anims_crows.hpp"
	};
	class vurtual_m1114_hlons: vurtual_m1114_crows {};
	class vurtual_m1114_m2: vurtual_m1165_m2 {
		class Animations: Animations {
			class door_left_window: door_left_window {
				axis = "window_axis";
			};
			class door_right_window: door_right_window {
				axis = "window_axis";
			};
			class door_left2_window: door_left2_window {
				axis = "window_axis";
			};
			class door_right2_window: door_right2_window {
				axis = "window_axis";
			};
		};
	};
	class vurtual_m1114_m240: vurtual_m1165_m240 {
		class Animations: Animations {
			class door_left_window: door_left_window {
				axis = "window_axis";
			};
			class door_right_window: door_right_window {
				axis = "window_axis";
			};
			class door_left2_window: door_left2_window {
				axis = "window_axis";
			};
			class door_right2_window: door_right2_window {
				axis = "window_axis";
			};
		};
	};
	#include "model_gmv_base.hpp"
	class vurtual_gmv_m2: vurtual_gmv_base {
		skeletonName="vurtual_GMVSkeleton_M2";
		#include "anims_m2.hpp"
	};
	class vurtual_gmv_m134: vurtual_gmv_base {
		skeletonName = "vurtual_GMVSkeleton_minigun";
		class Animations: Animations {
			class BarrelSpin { 
				type="rotation"; 
				selection="recoil"; 
				axis="gatling_axis"; 
				angle0="0"; 
				angle1="-600 * 3.141592654"; 
				source="Gatling"; 
			};
			class GunnerHandAdjust {
				type = "translation";
				selection = "OtocHlavenGunnerHand";
				axis = "gunnerhand_axis";
				minValue = 0;
				maxValue = 1;
				offset0=0;
				offset1=-1;
				source="GunnerHandAdjust";
			};
		};
	};
	class vurtual_gmv_gau19: vurtual_gmv_m134 {};
	class vurtual_gmv: vurtual_gmv_base {
		skeletonName="vurtual_GMVSkeleton_Mk19";
		#include "anims_mk19.hpp"
	};
	class vurtual_m1097_avenger: vurtual_hmmwv_base {
		skeletonName = "vurtual_HMMWVSkeleton_Avenger";
		class Animations: Animations {
			class MainTurret
			{
				type="rotationY";
				source="mainTurret";
				selection="OtocVez";
				axis="OsaVeze";
				animPeriod=0;
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class MainGun: MainTurret
			{
				type="rotationX";
				source="mainGun";
				selection="OtocHlaven";
				axis="OsaHlavne";
			};
		};
	};
};
