/* Poseidon game configuration */
/* Part of game design, no user editable data here. */


#define edenTarget01West	{4888.5791015625,11869.6689453125}
#define edenTarget11Empty	{5320.865234375,9980.08203125}
#define edenTarget02West	{4518.8349609375,10424.162109375}
#define edenobjDog5	{4661.39794921875,10747.2744140625}
#define edenobjKravin	{4865.97900390625,10620.740234375}
#define edenobjDog4	{4990.634765625,10902.0087890625}
#define edenSecondary05	{4497,11201}
#define edenobjDog3	{9771.9189453125,1554.40295410156}
#define edenobjDog1	{9509.771484375,1558.4560546875}
#define edenobjDog2	{9565.064453125,1581.89184570313}
#define edenobjCow1	{9431.9091796875,1615.77526855469}
#define edenobjCvrcci	{9851,1577}
#define edenobjBird3	{9363,1556}
#define edenobjBird2	{9925,1735}
#define edenobjBird1	{9638,1751}
#define edenobjCikade	{9591,1676}
#define edenTarget10Empty	{5374.32470703125,6222.34228515625}
#define edenTarget03West	{2139.72705078125,6602.94091796875}
#define edenTarget12Empty	{3869.75170898438,8275.1142578125}
#define edenTarget04Guerilla	{9539.681640625,2965.68408203125}
#define edenTarget05East	{7586.8134765625,4167.7216796875}
#define edenTarget06Guerilla	{9660.2333984375,1482.69152832031}
#define edenTarget07East	{6736.49365234375,5665.87548828125}
#define edenTarget08East	{3318,5077}
#define edenSecondary03	{2276,6554}
#define edenSecondary04	{3915,8256}
#define edenSecondary06	{5019,6865}

#define eden_vil_SaintPhillippe	{4674,10730,50}
#define eden_vil_Regina	{7197,2347,50}
#define eden_vil_Meaux	{4524,9549,100}
#define eden_vil_Tyrone	{4946,9056,50}
#define eden_vil_Montignac	{4935,6994,50}
#define eden_vil_Gravette	{4112,7772,50}
#define eden_vil_EnreDeux	{5735,7059,100}
#define eden_vil_Provins	{5501,6050,50}
#define eden_vil_Chotain	{7057,5987,50}
#define eden_vil_Laruns	{7556,5558,50}
#define eden_vil_Figari	{5283,5375,50}
#define eden_vil_LeMoule	{2590,5384,50}
#define eden_vil_Morton	{5134,3955,100}
#define eden_vil_Lamentin	{1333,5962,100}
#define eden_vil_Levie	{7554,4737,10}
#define eden_vil_Durras	{8835,2710,50}
#define eden_vil_Vernon	{9142,2159,50}
#define eden_vil_SaintPierre	{9662,1605,50}

#define cainTarget05East	{6548,3555}
#define cainTarget07East	{4330,3198}
#define cainTarget08East	{7835,5549}
#define cainTarget04Guerilla	{5900,6360}
#define cainTarget01West	{8538.48046875,9240.9658203125}
#define cainTarget03West	{4542,8032}
#define cainTarget06Guerilla	{7192,7280}
#define cainTarget12Empty	{2636,6959}
#define cainPrimary01	{9458,9292}

#define cainWestInvasion	{7078,4111,100}
#define cainEastInvasion	{6147,8101,100}
#define cainEastRecon01	{5703,6516,100}
#define cainWestRecon01	{5280,5375,100}
#define cainGuerInvasion	{5891,6570,100}
#define cainGuerRecon01	{6188,5065,100}
#define cainEastNewPort	{5955,8227,100}
#define cainWestNewPort	{7295,3917,100}
#define cainEastRecon02	{3331,7211,100}
#define cainEastRecon03	{9427,10232,100}
#define cainEastRecon04	{9455,9300,100}
#define cainEastRecon05	{8369,6887,100}
#define cainEastRecon06	{7254,4629,100}
#define cainEastRecon07	{4530,3655,100}
#define cainEastRecon08	{4318,5828,100}
#define cainWestRecon02	{5335,3345,100}
#define cainWestRecon03	{7931,5970,100}
#define cainWestRecon04	{9455,9850,100}
#define cainWestRecon05	{7635,7959,100}
#define cainWestRecon06	{4191,7183,100}
#define cainWestRecon07	{1990,7324,100}
#define cainWestRecon08	{3443,4572,100}
#define cainGuerRecon02	{7564,7691,100}
#define cainGuerRecon03	{4093,4615,100}
#define cainGuerRecon04	{3302,6802,100}
#define cainGuerRecon05	{8665,7832,100}


#define minimalStrelPos	{9544.9267578125,4162.08203125}
#define minimalStrelPos2	{9544.86328125,4172.05712890625}
#define minimalStrelPos1	{9545.0224609375,4182.08544921875}
#define minimalcvrcek2	{9510,4234}
#define trainingTarget03	{9476,4182}
#define trainingTarget01	{9476.10546875,4162.01513671875}
#define trainingTarget02	{9476.3056640625,4171.95263671875}
#define trainingSfxCikade2	{9583,4076}
#define trainingSfxCikade03	{10481,4189}
#define minimalWestTarget01	{9659.0869140625,3876.9609375}
#define trainingTarget05	{10650,4127}
#define trainingTarget06	{10650,4112}
#define trainingTarget04	{10659.119140625,4140.22314453125}
#define trainingSfxDog1	{9766,3997}
#define minimalcvrcek1	{9889,4071}
#define minimalcvrcek3	{10585,4121}
#define trainingSfxCikade1	{9637,4017}
#define trainingSfxPramen	{10770.095703125,4165.966796875}
#define minimalOwl1	{10501.1669921875,4132.99951171875}

#define minimalTrainingStart	{9664,3960,100}
#define minimalLodNastup	{9962,4265,100}
#define minimalGrenadeTruck	{10463,4146,100}
#define minimalSeagullPos1	{8897,4349,100}
#define minimalStartTruck	{9656,4104,100}
#define abelGuerInvasion	{5182,6226,100}
#define abelWestInvasion	{8074,4048,100}
#define abelEastInvasion	{6887,11232,100}
#define abelEastNewPort	{7693,11995,100}
#define abelWestNewPort	{8434,4577,100}
#define arcadeLocStart	{2632,2695,100}
#define arcadeLocFriends	{4967,1856,100}
#define arcadeLocBMP	{5420,2757,100}
#define arcadeLocJeep	{3732,3028,100}
#define arcadeLocUH60	{5370,4127,100}
#define arcadeLocHeliPort	{8038,9607,100}
#define Abel_vil_SaintLouis	{7144,8963,130}
#define Abel_vil_Larche	{6034,8599,200}
#define Abel_vil_LaTrinite	{7268,7944,200}
#define Abel_vil_Goisse	{3593,8528,150}
#define Abel_vil_LaPessagne	{3111,6326,100}
#define Abel_vil_Vigny	{3075,6831,100}
#define Abel_vil_Houdan	{7117,6069,100}
#define Abel_vil_SainteMarie	{5563,4217,100}
#define Abel_vil_Chapoi	{5841,3527,200}
#define Abel_vil_LePort	{8193,3129,100}
#define Abel_vil_Cancon	{5388,2786,100}
#define Abel_vil_LaRiviere	{3744,3257,200}
#define Abel_vil_Arudy	{5518,6981,100}
#define Abel_vil_Dourdan	{7029,7125,100}
#define Abel_vil_Lolisse	{7623,4799,100}


#define trainingMPTarget01	{9727.4609375,3917.56176757813}
#define minimalStrelPos	{9544.9267578125,4162.08203125}
#define minimalStrelPos2	{9544.86328125,4172.05712890625}
#define minimalStrelPos1	{9545.0224609375,4182.08544921875}
#define minimalcvrcek2	{9510,4234}
#define trainingTarget03	{9476,4182}
#define trainingTarget01	{9476.10546875,4162.01513671875}
#define trainingTarget02	{9476.3056640625,4171.95263671875}
#define trainingSfxCikade2	{9583,4076}
#define trainingSfxCikade03	{10481,4189}
#define minimalWestTarget01	{9659.0869140625,3876.9609375}
#define trainingTarget05	{10650,4127}
#define trainingTarget06	{10650,4112}
#define trainingTarget04	{10659.119140625,4140.22314453125}
#define trainingSfxDog1	{9766,3997}
#define minimalcvrcek1	{9889,4071}
#define minimalcvrcek3	{10585,4121}
#define trainingSfxCikade1	{9637,4017}
#define trainingSfxPramen	{10770.095703125,4165.966796875}
#define minimalOwl1	{10501.1669921875,4132.99951171875}

#define minimalTrainingStart	{9664,3960,100}
#define minimalLodNastup	{9962,4265,100}
#define minimalGrenadeTruck	{10463,4146,100}
#define minimalSeagullPos1	{8897,4349,100}
#define minimalStartTruck	{9656,4104,100}
#define trainingMP01	{9697,3109,100}
#define trainingMP02	{11312,4047,100}


// some basic defines
#define TEast 0
#define TWest 1
#define TGuerrila 2
#define TCivilian 3
#define TSideUnknown 4
#define TEnemy 5
#define TFriendly 6
#define TLogic 7

#define true 1
#define false 0

// type scope
// used for show entry

#define private 0 //! item is never visible
#define protected 1 //! "advanced designer" switch must be activated to use it
#define public 2 //! anyone can see/use it

#define ReadAndWrite 0 //! any modifications enabled
#define ReadAndCreate 1 //! only adding new class members is allowed
#define ReadOnly 2 //! no modifications enabled
#define ReadOnlyVerified 3 //! no modifications enabled, CRC test applied


#define WeaponNoSlot		0	// dummy weapons
#define WeaponSlotPrimary	1	// primary weapons
#define WeaponSlotSecondary	16	// secondary weapons
#define WeaponSlotHandGun	2	// HandGun
#define WeaponSlotHandGunItem	32 // HandGun magazines
#define WeaponSlotItem		256	// items
#define WeaponSlotBinocular	4096	// binocular
#define WeaponHardMounted	65536

#define NEVER_DESTROY 1000	// for MP - destroying dead bodies

#define TracerEColor 0.2,0.8,0.1
#define TracerWColor 0.8,0.5,0.1
#define TracerGColor 0.7,0.7,0.5
#define TracerNColor 0,0,0 // used for sniper / silenced rifles

#define TracerEColorF {TracerEColor,0.040}
#define TracerWColorF {TracerWColor,0.040}
#define TracerGColorF {TracerGColor,0.040}
#define TracerNColorF {TracerNColor,0.005}

#define TracerSEColorF {TracerEColor,0.25}
#define TracerSWColorF {TracerWColor,0.25}

/*!
\patch 1.50 Date 4/15/2002 by Ondra
- Fixed: Better visible bullet tracers for ZSU and Vulcan.
*/

#define TRACER_W_ALWAYS tracerColor[]=TracerWColorF;tracerColorR[]=TracerWColorF
#define TRACER_W_OPTIONAL tracerColor[]=TracerWColorF;tracerColorR[]=TracerNColorF
#define TRACER_W_STRONG tracerColor[]=TracerSWColorF;tracerColorR[]=TracerSWColorF

#define TRACER_E_ALWAYS tracerColor[]=TracerEColorF;tracerColorR[]=TracerEColorF
#define TRACER_E_OPTIONAL tracerColor[]=TracerEColorF;tracerColorR[]=TracerNColorF
#define TRACER_E_STRONG tracerColor[]=TracerSEColorF;tracerColorR[]=TracerSEColorF

#define TRACER_G_ALWAYS tracerColor[]=TracerGColorF;tracerColorR[]=TracerGColorF
#define TRACER_G_OPTIONAL tracerColor[]=TracerGColorF;tracerColorR[]=TracerNColorF

#define TRACER_N_ALWAYS tracerColor[]=TracerNColorF;tracerColorR[]=TracerNColorF

#define LockNo		0
#define LockCadet	1
#define LockYes		2


#define Private		1
#define Corporal	2
#define Sergeant	3
#define Lieutnant	4
#define Captain		5
#define Major			6
#define Colonel		7
#define General		8

#define GTHeal		1
#define GTRepair	2
#define GTRefuel	3
#define GTReammo	4

//define Experiences

class CfgExperience
{
	access = ReadAndCreate;

	destroyUnit[]={unit1, unit2, unit3, unit4};
	// four price levels
	//		max price, basic experience
	unit1[] = {2000, 0};
	unit2[] = {200000, 200};
	unit3[] = {500000, 500};
	unit4[] = {1000000, 1000};

	destroyEnemy = 1;
	destroyFriendly = -7;
	destroyCivilian = -2;
	destroyYourUnit = -0.2; //for leadership only

	renegadeLimit = -2000;

	playerKilled = 0;

	commandCompleted = 0; //for subordinate soldier only
	commandFailed = 0; //for subordinate soldier only
 	followMe = 0; //for subordinate soldier only

	missionCompleted = 0; //for leadership only
	missionFailed = 0; //for leadership only
	
	ranks[] = 
	{
		0, //Private
		500, //Corporal
		1500, //Sergeant
		2500, //Lieutenant
		3500, //Captain
		5000, //Major
		7500  //Colonel
	};

	courage[] = 
	{
		0.20, //Private
		0.35, //Corporal
		0.55, //Sergeant
		0.65, //Lieutenant
		0.70, //Captain
		0.80, //Major
		0.90  //Colonel
	};
};


class CfgTextureToMaterial
{
	class CarGlass
	{
		textures[]=
		{
			"data\jeep4x4_glass.paa",
			"data\jeep_kab_sklo1.paa",
			"data\jeep_kab_sklo2.paa",

			"data\jepp4x4_glass.paa",
			"data\jepp_kab_sklo1.paa",
			"data\jepp_kab_sklo2.paa",

			"data\scud_sklo.paa",
			"data\scud_sklo2.paa",
			"data\scud_sklo3.paa",
			"data\scud_sklo4.paa",
		};
		material=#SpecularGlass;
	};
	class AirborneGlass
	{
		textures[]=
		{
			"data\jeep_kab_sklo1.paa",
			"data\uh60_kab_sklo2.paa",
			"data\uh30_cargo_pilotdoors.paa",
			"data\uh60_cargo_dvereokno.paa",
			"data\uh60_gunner_okna.paa",
			"data\ah-1_kabina_predokno.paa",
			"data\ah-1_kabina_zadokno.paa",
			"data\ah-1_kabina_topokno.paa"
		};
		material=#SpecularGlass;
	};
	class Metal
	{
		textures[]=
		{
			"data\mutt_frontg.pac",
			"data\mutt_kapotag.pac",
			"data\mutt_sklog.pac",
			"data\mutt_sideg.pac"
		};
		material=#Metal;
	};
	class AirBorneMetal
	{
		textures[]=
		{
			"data\ah-1_1_pokus.pac",
			"data\ah-1_2_pokus.pac",
			"data\ah-1_opak_pokus.pac",
			"data\ah-1_kabina_predo.paa",
			"data\ah-1_kabina_topokno.paa",
			"data\ah-1_kabina_zadokno.paa",
			"data\cobra_rotor_top.pac",
			"data\cobra_rotor_top.pac",
			"data\cobra2_kridlo_predni.pac",
			"data\cobra2_kanon_front_b.pac",
			"data\cobra2_kulas_front.paa",
			"data\cobra2_kanon_side.pac",
			"data\cobra2_vejfuk.paa",
			"data\cobra3_cumak.pac",
			"data\ah-1_bottom1.pac",
			"data\ah-1_bottom2.pac"
		};
		material=#Metal;
	};
	class RifleMetal
	{
		textures[]=
		{
			"data\m16_pmp_1s.pac",
			"data\m16_pmp_ph.pac",
			"data\m16_pmp_lod.paa",
			"data\m16_pmp_lod_gif.pac",
			"data\m4_1.pac",
			"data\m4_2.pac",
			"data\m4_miridla.pac",
			"data\xm177_1s.pac",
			"data\xm177_ph.pac",
			"data\xm177_details.pac"
		};
		material=#RifleMetal;
	};
};

class CfgMaterials
{
	// Water material is used for sea landscape parts
	class Water
	{
		ambient[] = {1,1,1,1};
		diffuse[] = {1,1,1,1};
		//diffuse[] = {0,0,0,0};
		//ambient[] = {0,0,0,0};
		//diffuse[] = {0,0,0,0};
		forcedDiffuse[] = {0,0,0,0};
		specular[] = {0.4,0.4,0.45,0};
		//specular[] = {1,1,1,0};
		specularPower = 6;
		emmisive[] = {0,0,0,0};
		//emmisive[] = {0,0.5,0.5,0};
	};
	// Terrain material is used for terrain solid ground
	class Terrain
	{
		ambient[] = {1,1,1,1};
		diffuse[] = {1,1,1,1};
		forcedDiffuse[] = {0,0,0,0};
		specular[] = {0.03,0.03,0.03,0};
		specularPower = 3;
		emmisive[] = {0,0,0,0};
		//emmisive[] = {0,0.5,0.5,0};
	};
	class SpecularGlass
	{
		ambient[] = {1,1,1,1};
		diffuse[] = {1,1,1,1};
		forcedDiffuse[] = {0,0,0,0};
		specular[] = {0.8,0.8,0.8,0};
		specularPower = 5;
		emmisive[] = {0,0,0,0};
	};
	class Metal
	{
		ambient[] = {1,1,1,1};
		diffuse[] = {1,1,1,1};
		forcedDiffuse[] = {0,0,0,0};
		specular[] = {0.2,0.2,0.2,0};
		//specular[] = {1,1,1,1};
		specularPower = 5;
		emmisive[] = {0,0,0,0};
	};
	class RifleMetal
	{
		ambient[] = {1,1,1,1};
		diffuse[] = {1,1,1,1};
		forcedDiffuse[] = {0,0,0,0};
		specular[] = {0.2,0.2,0.2,0};
		//specular[] = {1,1,1,1};
		specularPower = 5;
		emmisive[] = {0,0,0,0};
	};
};


class CfgModels
{
	class Default
	{
		sections[] = {};
		sectionsInherit="";
	};

	// some generic model requirements
	class Head: Default
	{
		sections[] =
		{
			"osobnost",
			"brejle"
		};
	};
	class Man: Default
	{
		sections[] =
		{
			"head injury","body injury",
			"l arm injury","r arm injury","p arm injury",
			"l leg injury","r leg injury","p leg injury",
			"medic",
			"hlava",
			"krk",
			"zasleh"
		};
		sectionsInherit=Head;
	};
	class Vehicle: Default
	{
		sections[] =
		{
			"cislo",
			"grupa",
			"side",
			"sektor",
			"clan",
			"podsvit pristroju",
			"poskozeni",
			"L svetlo",
			"P svetlo",
			"zasleh"
		};
	};
	class Tank: Vehicle
	{
		sectionsInherit="Vehicle";
		sections[]=
		{
			"zadni svetlo",
			"brzdove svetlo",
			"pruh"
		};
	};
	class Car: Vehicle
	{
		sectionsInherit="Vehicle";
		sections[]=
		{
			"ammo",
			"sklo predni p",
			"sklo predni l",
			"zadni svetlo",
			"brzdove svetlo"
		};
	};
	class Helicopter
	{
		sectionsInherit="Vehicle";
		sections[]=
		{
			"sklo predni p",
			"sklo predni l",
			"velka vrtule staticka",
			"velka vrtule blur",
			"mala vrtule staticka",
			"mala vrtule blur"
		};
	};


	class Weapon: Default
	{
		sections[] = {"zasleh"};
	};

	// models inherited from class
	class hlavaw: Head {};

	// men
	class mc_vojakw2: Man {};
	class mc_vojakwo2: Man {};
	class mc_tankistaw2: Man {};
	class mc_pilotw2: Man {};
	class mc_sniperw2: Man {};
	class mc_saboteur: Man {};
	class mc_saboteurday: Man {};

	class mc_vojake2: Man {};
	class mc_vojakeo2: Man {};
	class mc_tankistae2: Man {};
	class mc_pilote2: Man {};
	class mc_snipere2: Man {};
	class mc_vojake2_guba: Man {};
	class angelina: Man {};
	class mc_specnas2: Man {};

	class mc_civil: Man {};
	class mc_civil2: Man {};
	class mc_civil3: Man {};
	class mc_vojakg2: Man {};
	class mc_vojakg3: Man {};
	class mc_vojakgo2: Man {};
	class mc_crewg: Man {};
	class mc_crewg2: Man {};

	// weapons
	class m16_proxy: Weapon {};
	class xm_177e2_proxy: Weapon {};
	class optika_m16 : Weapon {};

	class m16_granatomet_proxy: Weapon {};
	class m60_mg_proxy: Weapon {};
	class optika_m60_mg: Weapon {};
	class m21_proxy: Weapon {}
	class optika_snpierw: Weapon {}

	class ak_74_su_proxy: Weapon {};
	class ak_74_granatomet_proxy: Weapon {};
	class pk_mg_proxy: Weapon {};
	class optika_pk: Weapon {};
	class ak_74_proxy: Weapon {};
	class optika_ak47: Weapon {};
	class ak_47_v58_proxy: Weapon {};

	class svd_dragunov_proxy: Weapon {};
	class optika_snpiere: Weapon {};
	class optika_night: Weapon {};

	class ak_47_granatomet_proxy: Weapon {};
	class ak_47_proxy: Weapon {};

	class kozlice: Weapon {};
	class optika_kozlice: Weapon {};

	class Steyr: Weapon {};
	class optika_steyr: Weapon {};

	class G36: Weapon {};
	class G36_optics: Weapon {};

	class XMS: Weapon {};
	class optika_XMS: Weapon {};

	class Bizon: Weapon {};
	class optika_Bizon: Weapon {};

	class 6g30: Weapon {};

	// vehicles
	// tanks
	class t80: Tank {};
	class t72: Tank {};
	class t55: Tank {};
	class m1_abrams: Tank {};
	class m60: Tank {};
	class bmp: Tank {};
	class m113: Tank {};
	class m113_ambulance: Tank {};
	class bmp_ambu: Tank {};
	class zsu: Tank {};
	// cars
	class truck5t: Car {};
	class truck5t2: Car {};
	class truck5trepair: Car {};
	class truck5tfuel: Car {}

	class ural: Car {};
	class uralrepair: Car {};
	class uralfuel: Car {};

	class v3s: Car {};
	class v3sfuel: Car {};
	class v3srepair: Car {};

	class jeep: Car {};
	class uaz: Car {};
	class guaz: Car {};
	class scud: Car {};

	class gjeep: Car {};
	class sguaz: Car {};

	class jeep_mg: Car {};
	class skodovka: Car {};
	class skodovka_blue: Car {};
	class skodovka_red: Car {};
	class skodovka_green: Car {};
	class traktor: Car {};

	class rapid: Car {};
	class rapid_y: Car {};
	class v3scivil: Car {};

	class m2_mg: Vehicle {};


	// planes / helis
	class uh_60: Helicopter {};
	class uh_60mg: Helicopter {};
	class ah1_cobra: Helicopter {};
	class mi24_hind: Helicopter {};
	class mi17_hip: Helicopter {};
	class a10: Vehicle {};
	class cessna182: Vehicle
	{
		sectionsInherit="Vehicle";
		sections[]=
		{
			"vrtule staticka","vrtule blur"
		};
	};

	// ships
	class Ship
	{
		sectionsInherit="Vehicle";
		sections[]=
		{
			"zadni svetlo"
		};
	};
	class hrl: Ship {};
	class pbr: Ship {};

	// special models:
	class Flag: Default
	{
		sections[] = {"latka"};
	};
	class flag_vojak: Flag {};
	class flag_stozar: Flag {}
	class flag_alone: Flag {};
	class flag_alone_big: Flag {};
	class flag_auto: Flag {};
	class flag_plane: Flag {};
	class flag_plane_big: Flag {};

	class blok: Default
	{
		sections[] = {"papir"};
	};

	// ADDONS
	class trabant: Car {};
	class m163A1vulcan: Tank {};
	class su25: Vehicle {};
	class ch_47d: Helicopter {};
	class apac: Helicopter {};
	class hmmwv: Car {};
	class brmd: Car {};
	class brdm: Car {};
	class bmp2: Tank {};
	class kiowa: Helicopter {};
	class m2a2: Tank {};
	
	// RESISTANCE
//	class skodasm11: Car {};
	/*
	class lampadrevo
	{
		properties[]={"firegeometry","1","viewgeometry","1"};
	};
	class lampazel
	{
		properties[]={"firegeometry","1","viewgeometry","1"};
	};
	*/
};


enum ManPos
{
	ManPosDead,
	ManPosWeapon, // special weapon - AT
	ManPosBinocLying,
	ManPosLyingNoWeapon,
	ManPosLying,
	ManPosHandGunLying,
	ManPosCrouch,
	ManPosHandGunCrouch,
	ManPosCombat,
	ManPosHandGunStand,
	ManPosStand, // moves with weapon on the back
	ManPosNoWeapon, // civilian moves
	ManPosBinoc, // binocular position
	ManPosBinocStand, // binocular position (weapon on back)
};

#define RunDuty -0.5
#define WalkDuty -0.7
#define RestDuty -1
#define CrawlDuty -0.0
#define SprintDuty 0.6

#define SPEED_STATIC 1e10

class CfgVehicleActions
{

	// mapping on in-vehicle animations
	m113gunner="M113Gunner";
	m113driver="M113Driver";
	m113driverOut="M113DriverOut";

	m113medic="M113Medic";
	m113injured="Nemocnej";

	m60driver="M60Driver";
	m60gunner="M60Gunner";
	m60commander="M60Commander";
	m60driverOut="M60DriverOut";
	m60commanderOut="M60CommanderOut";

	m1A1driver="M1A1Driver";
	m1A1gunner="M1A1Gunner";
	m1A1commander="M1A1Commander";
	m1A1driverOut="M1A1DriverOut";
	m1A1commanderOut="M1A1CommanderOut";

	bmpdriver="BMPDriver";
	bmpgunner="BMPGunner";
	bmpgunnerOut="BMPGunnerOut";
	bmpcommander="BMPCommander";
	bmpdriverOut="BMPDriverOut";
	bmpcommanderOut="BMPCommanderOut";

	t72driver="T72Driver";
	t72gunner="T72Gunner";
	t72gunnerOut="T72GunnerOut";
	t72commander="T72Commander";
	t72driverOut="T72DriverOut";
	t72commanderOut="T72CommanderOut";

	t80driver="T72Driver";
	t80gunner="T72Gunner";
	t80gunnerOut="T80GunnerOut";
	t80commander="T72Commander";
	t80driverOut="T72DriverOut";
	t80commanderOut="T80CommanderOut";

	t55driver="T72Driver";
	t55gunner="T55Gunner";
	t55gunnerOut="T55Gunner";
	t55commander="T55Commander";
	t55driverOut="T55DriverOut";
	t55commanderOut="T55CommanderOut";

	uh60pilot = "UH60Pilot";
	uh60gunner = "UH60Gunner";

	ah1pilot = "AH1Pilot";
	ah1gunner = "AH1Gunner";

	a10pilot = "A10Pilot";

	cessnaPilot = "cesnaPilot";
	cessnaCoPilot = "cesnaPilot";
	cessnaCargo = "cesnaCargo";

	mi17pilot = "Mi17Pilot";
	mi24pilot = "Mi24Pilot";
	mi24gunner = "Mi24Gunner";

	jeepDriver = "JeepDriver";
	jeepGunner = "JeepGunner";
	jeepCoDriver = "JeepCoDriver";
	jeepCoDriverBack = "JeepCoDriverBack";

	truck5TDriver = "5TDriver";
	truck5TCoDriver = "5TCoDriver";

	uralDriver = "uralDriver";
	uralCoDriver = "uralCoDriver";

	skodaDriver = "skodaDriver";
	skodaCoDriver = "skodaCoDriver";
	skodaCoDriverBack = "skodaCoDriverBack";

	pbrDriver = "pbrDriver";
	pbrGunner = "pbrGunner";

	hrlDriver = "pbrDriver";
	hrlGunner = "hrlGunner";

	m2gunner = "m2Gunner";

	ScudDriver="ScudDriver";
	ScudCoDriver="ScudCoDriver";

	v3sDriver = "v3sDriver";
	v3sCoDriver = "v3sCoDriver";

	cargo="Cargo";

	UAZDriver="UAZDriver";
	UAZCoDriver="UAZCoDriver";
	//UAZGunner="UAZGunner";

	ZSUDriver="ZSUDriver";
	ZSUGunner="ZSUGunner";
	ZSUGunnerOut="ZSUGunnerOut";
	ZSUCommander="ZSUCommander";
	ZSUCommanderOut="ZSUCommanderOut";

	tractorDriver="TractorDriver";

	shipCargo="Cargo";
	shipDriver="Cargo";

	para="Para";
};

class CfgManActions
{
	access = ReadOnlyVerified;

	#define ACTION(x) x="";
	#include "manActions.hpp"
	#undef ACTION
};
class CfgMovesMC
{
	access = ReadAndCreate;
	vehicleActions=CfgVehicleActions;
	class Actions
	{
		class NoActionsAll: CfgManActions
		{
			access = ReadOnlyVerified;
		}
		class NoActions: NoActionsAll
		{
			// default actions - for all states
			ladderOnDown = "LadderDownStart";
			ladderOnUp = "LadderUpStart";

			turnSpeed=1;
			upDegree=-1; // no corresponding degree
			limitFast = 5;

		};
		

		class DeadActions: NoActions
		{
			upDegree=ManPosDead;
		};
		class CargoActions: NoActions
		{
			die="DeadState";
		};

		class WeaponActions: NoActions
		{
			stop="Weapon";

			upDegree=ManPosWeapon;
			weaponOn="Weapon";
			weaponOff="Crouch";

			handGunOn="HandGunCrouch";

			down="Lying";
			up="Combat";

			lying="Lying";
			combat="Combat";
			crouch="Crouch";
			stand="Stand";
			die="WeaponDead";
			civilLying="CivilLying";
			civil="Civil";

			walkF="WeaponWalkF";
			walkLF="WeaponWalkLF";
			walkRF="WeaponWalkRF";
			walkL="WeaponWalkL";
			walkR="WeaponWalkR";
			walkLB="WeaponWalkLB";
			walkRB="WeaponWalkRB";
			walkB="WeaponWalkB";

			slowF="WeaponWalkF";
			slowLF="WeaponWalkLF";
			slowRF="WeaponWalkRF";
			slowL="WeaponWalkL";
			slowR="WeaponWalkR";
			slowLB="WeaponWalkLB";
			slowRB="WeaponWalkRB";
			slowB="WeaponWalkB";

			fastF="WeaponWalkF";
			fastLF="WeaponWalkLF";
			fastRF="WeaponWalkRF";
			fastL="WeaponWalkL";
			fastR="WeaponWalkR";
			fastLB="WeaponWalkLB";
			fastRB="WeaponWalkRB";
			fastB="WeaponWalkB";

			turnL="WeaponTurnL";
			turnR="WeaponTurnR";

			default = "Combat";

			getInCar="CombatGetInCar";
			getOutCar="Combat";
			getInTank="CombatGetInTank";
			getOutTank="CombatGetOutTank";

			reloadAT="WeaponReloadAT";
		};

		class StandActions: NoActions
		{
			// letters: F,B,L,R - front, back, left, right
			stop="Stand";
			default = "Stand";

			walkF="StandWalkF";
			walkLF="StandWalkLF";
			walkRF="StandWalkRF";
			walkL="StandWalkL";
			walkR="StandWalkR";
			walkLB="StandWalkLB";
			walkRB="StandWalkRB";
			walkB="StandWalkB";

			slowF="StandWalkF";
			slowLF="StandWalkLF";
			slowRF="StandWalkRF";
			slowL="StandWalkL";
			slowR="StandWalkR";
			slowLB="StandWalkLB";
			slowRB="StandWalkRB";
			slowB="StandWalkB";

			fastF="StandRunF";
			fastLF="StandWalkLF";
			fastRF="StandWalkRF";
			fastL="StandWalkL";
			fastR="StandWalkR";
			fastLB="StandWalkLB";
			fastRB="StandWalkRB";
			fastB="StandWalkB";

			down="Combat";
			up="Combat";

			weaponOn="Weapon";
			weaponOff="Stand";

			binocOn="BinocStand"
			binocOff="Stand"

			handGunOn="HandGunStand";

			strokeFist = "StandStrokeFist";
			strokeGun = "";

			lying="Lying";
			combat="Combat";
			crouch="Crouch";
			stand="Stand";
			civil="Civil";
			civilLying="CivilLying";
			fireNotPossible="Combat";

			throwGrenade="StandThrowGrenadeStart";

			turnL="StandTurnL";
			turnR="StandTurnR";

			getInCar="StandGetInCar";
			getOutCar="Stand";
			getInTank="StandGetInTank";
			getOutTank="StandGetOutTank";

			sitDown="StandToSitDown";
			salute="EffectStandSaluteStart";

			turnSpeed = 4;
			limitFast = 2.5;

			die="StandDead";

			takeFlag ="StandToStandTakeFlag";
			putDown ="StandPutDown";

			upDegree=ManPosStand;
		};

		class StandStillActions: StandActions
		{
			stop = "EffectStandStill";
			default = "EffectStandStill";
		};
		class StandStandActions: StandActions
		{
			stop = "EffectStand";
			default = "EffectStand";
		};
		class StandSaluteActions: StandActions
		{
			stop = "EffectStandSalute";
			default = "EffectStandSalute";
			salute="";
		};
		class StandTalkActions: StandActions
		{
			stop = "EffectStandTalk";
			default = "EffectStandTalk";
		};

		class SitActions: StandActions
		{
			turnL="";
			turnR="";
			stop = "EffectStandSitDown";
			default = "EffectStandSitDown";
			strokeFist="";
			sitDown="";
			die="SitDownDead";
		};
		class CivilActions: StandActions
		{
			// letters: F,B,L,R - front, back, left, right
			stop="Civil";
			default = "Civil";

			walkF="CivilWalkF";
			walkLF="CivilWalkLF";
			walkRF="CivilWalkRF";
			walkL="CivilWalkL";
			walkR="CivilWalkR";
			walkLB="CivilWalkLB";
			walkRB="CivilWalkRB";
			walkB="CivilWalkB";

			slowF="CivilWalkF";
			slowLF="CivilWalkLF";
			slowRF="CivilWalkRF";
			slowL="CivilWalkL";
			slowR="CivilWalkR";
			slowLB="CivilWalkLB";
			slowRB="CivilWalkRB";
			slowB="CivilWalkB";

			fastF="CivilRunF";
			fastLF="CivilRunLF";
			fastRF="CivilRunRF";
			fastL="CivilRunL";
			fastR="CivilRunR";
			fastLB="CivilRunLB";
			fastRB="CivilRunRB";
			fastB="CivilRunB";

			down="CivilLying";
			up="CivilLying";

			lying="Lying";
			combat="Combat";
			crouch="Crouch";
			stand="Stand";
			civil="Civil";
			civilLying="CivilLying";

			throwGrenade="CivilThrowGrenadeStart";

			turnL="CivilTurnL";
			turnR="CivilTurnR";

			handGunOn="HandGunStand";

			die="CivilDead";

			getInCar="CivilGetInCar";
			getOutCar="Civil";
			getInTank="CivilGetInTank";
			getOutTank="CivilGetOutTank";

			takeFlag ="CivilToCivilTakeFlag";
			putDown ="CivilPutDown";

			/*
			turnL="StandTurnL";
			turnR="StandTurnR";

			getInCar="StandGetInCar";
			getOutCar="Stand";
			getInTank="StandGetInTank";
			getOutTank="StandGetOutTank";

			turnSpeed = 4;

			die="StandDead";
			*/

			limitFast = 4;

			upDegree=ManPosNoWeapon;
		};
		class CombatActions: NoActions
		{
			stop="Combat";
			default = "Combat";
			stopRelaxed="CombatRelaxed";

			reloadMagazine="CombatReloadMagazine";
			reloadMGun="CombatReloadMGun";
			reloadMortar="CombatReloadMortarStart";
			throwGrenade="CombatThrowGrenadeStart";

			walkF="CombatWalkF";
			walkLF="CombatWalkLF";
			walkRF="CombatWalkRF";
			walkL="CombatWalkL";
			walkR="CombatWalkR";
			walkLB="CombatWalkLB";
			walkRB="CombatWalkRB";
			walkB="CombatWalkB";

			slowF="CombatRunF";
			slowLF="CombatRunLF";
			slowRF="CombatRunRF";
			slowL="CombatRunL";
			slowR="CombatRunR";
			slowLB="CombatRunLB";
			slowRB="CombatRunRB";
			slowB="CombatRunB";

			fastF="CombatSprintF";
			fastLF="CombatSprintLF";
			fastRF="CombatSprintRF";
			fastL="CombatRunL";
			fastR="CombatRunR";
			fastLB="CombatRunLB";
			fastRB="CombatRunRB";
			fastB="CombatRunB";

			down="Lying";
			up="Crouch";

			lying="Lying";
			combat="Combat";
			crouch="Crouch";
			stand="Stand";
			civil="Civil";
			civilLying="CivilLying";

			die="CombatDead";
			weaponOn="Weapon";

			binocOn="Binoc";
			binocOff="Combat";

			handGunOn="HandGunStand";

			takeFlag ="CombatToTakeFlag";
			putDown ="PutDown";
			medic ="Medic";
			treated ="Treated";
			//putDownEnd ="Combat";

			strokeFist = "";
			strokeGun = "CombatStrokeGun";

			turnL="CombatTurnL";
			turnR="CombatTurnR";
			turnLRelaxed="CombatTurnLRelaxed";
			turnRRelaxed="CombatTurnRRelaxed";

			getInCar="CombatGetInCar";
			getOutCar="Combat";
			getInTank="CombatGetInTank";
			getOutTank="CombatGetOutTank";

			turnSpeed = 8;
			limitFast = 5.5;

			upDegree=ManPosCombat;
		};
		class CrouchActions: CombatActions
		{
			stop="Crouch";
			default = "Crouch";
			up="Combat";
			reloadMagazine="CrouchReloadMagazine";
			reloadMG="CrouchReloadMagazine";
			die="CrouchDead";
			weaponOn="Weapon";

			/*!
			\internal 1.06 Date 07/19/2001 by Ondra
			- Fixed: crouch mode was forgotten while walking.
			*/

			walkF="CrouchWalkF";
			walkLF="CrouchWalkLF";
			walkRF="CrouchWalkRF";
			walkL="CrouchWalkL";
			walkR="CrouchWalkR";
			walkLB="CrouchWalkLB";
			walkRB="CrouchWalkRB";
			walkB="CrouchWalkB";

			slowF="CrouchRunF";
			slowLF="CrouchRunLF";
			slowRF="CrouchRunRF";
			slowL="CrouchRunL";
			slowR="CrouchRunR";
			slowLB="CrouchRunLB";
			slowRB="CrouchRunRB";
			slowB="CrouchRunB";

			/*!
			\patch 1.04 Date 07/16/2001 by Ondra
			- New: Sprint possible when in ironsight view.
			*/

			fastF="CrouchSprintF";
			fastLF="CrouchSprintLF";
			fastRF="CrouchSprintRF";
			fastL="CrouchRunL";
			fastR="CrouchRunR";
			fastLB="CrouchRunLB";
			fastRB="CrouchRunRB";
			fastB="CrouchRunB";

			binocOn="BinocCrouch"
			binocOff="Crouch"

			handGunOn="HandGunCrouch";

			turnL="CrouchTurnL";
			turnR="CrouchTurnR";
		};

		class CombatStandingUpActions: CombatActions
		{
			die = "LyingDead";
		};


		class CombatRunFActions: CombatActions
		{
			throwGrenade="CombatRunThrowGrenadeStart";
			die=CombatRunDead;
		};
		class CombatRunBActions: CombatActions
		{
			die=CombatRunBDead;
		};

		class CivilRunFActions: CivilActions
		{
			throwGrenade="CivilRunThrowGrenadeStart";
		};
		#define CivilRunBActions CivilActions

		class CrouchRunFActions: CrouchActions
		{
			throwGrenade="CombatRunThrowGrenadeStart";
			die=CombatRunDead;
		};
		class CrouchRunBActions: CrouchActions
		{
			die=CombatRunBDead;
		};

		#define CrouchWalkFActions CrouchActions
		#define CrouchWalkBActions CrouchActions

		class CombatRelaxedActions: CombatActions
		{
			die=CombatRelaxedDead;
		};
		class LyingActions: NoActions
		{
			stop="Lying";
			default = "Lying";

			reloadMagazine="LyingReloadMagazine";
			reloadMGun="LyingReloadMagazine";
			throwGrenade="LyingThrowGrenadeStart";

			walkF="LyingCrawlF";
			walkLF="LyingCrawlLF";
			walkRF="LyingCrawlRF";
			walkL="LyingCrawlL";
			walkR="LyingCrawlR";
			walkLB="LyingCrawlLB";
			walkRB="LyingCrawlRB";
			walkB="LyingCrawlB";

			slowF="LyingCrawlF";
			slowLF="LyingCrawlLF";
			slowRF="LyingCrawlRF";
			slowL="LyingCrawlL";
			slowR="LyingCrawlR";
			slowLB="LyingCrawlLB";
			slowRB="LyingCrawlRB";
			slowB="LyingCrawlB";

			fastF="LyingFastCrawlF";
			fastLF="LyingCrawlLF";
			fastRF="LyingCrawlRF";
			fastL="LyingCrawlL";
			fastR="LyingCrawlR";
			fastLB="LyingCrawlLB";
			fastRB="LyingCrawlRB";
			fastB="LyingCrawlB";

			down="Combat";
			up="Crouch";

			lying="Lying";
			combat="Combat";
			crouch="Crouch";
			stand="Stand";
			civil="Civil";
			civilLying="CivilLying";

			die="LyingDead";
			weaponOn="Weapon";
			weaponOff="Lying";

			binocOn="BinocLying";
			binocOff="Lying";

			handGunOn="HandGunLying";

			turnL="LyingTurnL";
			turnR="LyingTurnR";

			getInCar="CombatGetInCar";
			getOutCar="Combat";
			getInTank="CombatGetInTank";
			getOutTank="CombatGetOutTank";

			takeFlag ="CombatToTakeFlag";
			putDown ="PutDownLying";
			medic ="Medic";
			treated ="TreatedLying";

			turnSpeed=3;

			upDegree=ManPosLying;
		};
		class CrawlingActions: LyingActions
		{
			up="CombatRunF";
			combat="CombatRunF";
		};
		class CivilLyingActions: LyingActions
		{
			stop="CivilLying";
			down="Civil";
			up="Civil";

			walkF="CivilLyingCrawlF";
			walkLF="CivilLyingCrawlLF";
			walkRF="CivilLyingCrawlRF";
			walkL="CivilLyingCrawlL";
			walkR="CivilLyingCrawlR";
			walkLB="CivilLyingCrawlLB";
			walkRB="CivilLyingCrawlRB";
			walkB="CivilLyingCrawlB";

			slowF="CivilLyingCrawlF";
			slowLF="CivilLyingCrawlLF";
			slowRF="CivilLyingCrawlRF";
			slowL="CivilLyingCrawlL";
			slowR="CivilLyingCrawlR";
			slowLB="CivilLyingCrawlLB";
			slowRB="CivilLyingCrawlRB";
			slowB="CivilLyingCrawlB";

			fastF="CivilLyingFastCrawlF";
			fastLF="CivilLyingCrawlLF";
			fastRF="CivilLyingCrawlRF";
			fastL="CivilLyingCrawlL";
			fastR="CivilLyingCrawlR";
			fastLB="CivilLyingCrawlLB";
			fastRB="CivilLyingCrawlRB";
			fastB="CivilLyingCrawlB";

			die="CivilLyingDead";

			takeFlag ="CivilLyingToCivilLyingTakeFlag";
			putDown ="CivilLyingPutDown";

			upDegree=ManPosLyingNoWeapon;
		};
		class CivilCrawlingActions: CivilLyingActions
		{
		};

		class LadderActions: NoActions
		{
			stop=LadderStatic;
			default=LadderStatic;
			// no movement while on ladder
			// no transitions not possible
			// no actions not possible
			upDegree=ManPosStand;
			turnSpeed = 0.1;
			ladderOff="LadderDownEnd";

			ladderOffTop="LadderUpEnd";
			ladderOffBottom="LadderDownEnd";
			
			down="LadderDownLoop";
			up="LadderUpLoop";

			die = "StandDead";
		};
		class LadderUpActions: LadderActions
		{
			ladderOff="LadderUpEnd";
		};
		class LadderDownActions: LadderActions
		{
			ladderOff="LadderDownEnd";
		};

		class CombatNoMoveActions: CombatActions
		{
			stopRelaxed="";
			// no movement while binoculing
			walkF="";walkLF="";walkRF="";walkL="";walkR="";
			walkLB="";walkRB="";walkB="";
			slowF="";slowLF="";slowRF="";slowL="";slowR="";
			slowLB="";slowRB="";slowB="";
			fastF="";fastLF="";fastRF="";fastL="";fastR="";
			fastLB="";fastRB="";fastB="";
			turnL="";turnR="";
			turnLRelaxed="";turnRRelaxed="";
			turnSpeed = 2;
		};

		#define TimedCombatActionsExt(x,y) \
			class x##Actions: CombatActions \
			{ \
				stop=#y;default = #y; \
				down="Lying";up="Combat"; \
				turnL=""; \
				turnR=""; \
				turnLRelaxed="";turnRRelaxed=""; \
				putDownEnd ="Combat"; \
				fireNotPossible="Combat"; \
			};
		#define TimedCombatActions(x) TimedCombatActionsExt(x,x)
		/*
			class x##Actions: CombatActions \
			{ \
				stop=#x;default = #x; \
				down="Lying";up="Combat"; \
				turnL=""; \
				turnR=""; \
				turnLRelaxed="";turnRRelaxed=""; \
				putDownEnd ="Combat"; \
				fireNotPossible="Combat"; \
			};
		*/

		TimedCombatActions(PutDown)
		TimedCombatActionsExt(TakeFlag,Combat)
		TimedCombatActions(Medic)
		TimedCombatActions(Treated)

		#define TimedStandActionsExt(x,y) \
			class x##Actions: StandActions \
			{ \
				stop=#y;default = #y; \
				down="Stand";up="Stand"; \
				turnL=""; \
				turnR=""; \
				turnLRelaxed="";turnRRelaxed=""; \
				putDownEnd ="Stand"; \
				fireNotPossible="Stand"; \
			};
		#define TimedStandActions(x) TimedStandActionsExt(x,x)

		TimedStandActions(StandPutDown)
		TimedStandActionsExt(StandTakeFlag,Stand)

		#define TimedCivilActionsExt(x,y) \
			class x##Actions: CivilActions \
			{ \
				stop=#y;default = #y; \
				down="CivilLying";up="Civil"; \
				turnL=""; \
				turnR=""; \
				turnLRelaxed="";turnRRelaxed=""; \
				putDownEnd ="Civil"; \
				fireNotPossible="Civil"; \
			};
		#define TimedCivilActions(x) TimedCivilActionsExt(x,x)

		TimedCivilActions(CivilPutDown)
		TimedCivilActionsExt(CivilTakeFlag,Civil)

		#define TimedLyingActions(x) \
			class x##Actions: LyingActions \
			{ \
				stop=#x;default = #x; \
				down="Lying";up="Lying"; \
				turnL=""; \
				turnR=""; \
				turnLRelaxed="";turnRRelaxed=""; \
				putDownEnd ="Lying"; \
				fireNotPossible="Lying"; \
			};

		TimedLyingActions(PutDownLying)
//		TimedLyingActions(Medic)
		TimedLyingActions(TreatedLying)

		#define TimedCivilLyingActionsExt(x,y) \
			class x##Actions: CivilLyingActions \
			{ \
				stop=#y;default = #y; \
				down="CivilLying";up="CivilLying"; \
				turnL=""; \
				turnR=""; \
				turnLRelaxed="";turnRRelaxed=""; \
				putDownEnd ="CivilLying"; \
				fireNotPossible="CivilLying"; \
			};
		#define TimedCivilLyingActions(x) TimedCivilLyingActionsExt(x,x)

		TimedCivilLyingActions(CivilLyingPutDown)
		TimedCivilLyingActionsExt(CivilLyingTakeFlag,CivilLying)

		class BinocActions: CombatNoMoveActions
		{
			stop="Binoc";

			default = "Binoc";

			binocOff="Combat";

			upDegree=ManPosBinoc;
		};
		class BinocLyingActions: LyingActions
		{
			stop="BinocLying";
			default = "BinocLying";

			binocOff="Lying";

			// no movement while binoculing
			walkF="";walkLF="";walkRF="";walkL="";walkR="";
			walkLB="";walkRB="";walkB="";
			slowF="";slowLF="";slowRF="";slowL="";slowR="";
			slowLB="";slowRB="";slowB="";
			fastF="";fastLF="";fastRF="";fastL="";fastR="";
			fastLB="";fastRB="";fastB="";
			turnL="";turnR="";
			turnLRelaxed="";turnRRelaxed="";

			upDegree=ManPosBinocLying;
			turnSpeed = 1;
		};

		class BinocStandActions: StandActions
		{
			stop="BinocStand";
			default = "BinocStand";

			binocOff="Stand";

			// no movement while binoculing
			walkF="";walkLF="";walkRF="";walkL="";walkR="";
			walkLB="";walkRB="";walkB="";
			slowF="";slowLF="";slowRF="";slowL="";slowR="";
			slowLB="";slowRB="";slowB="";
			fastF="";fastLF="";fastRF="";fastL="";fastR="";
			fastLB="";fastRB="";fastB="";
			turnL="";turnR="";
			turnLRelaxed="";turnRRelaxed="";

			upDegree=ManPosBinocStand;
			turnSpeed = 2;
		};

		class BinocCrouchActions: CrouchActions
		{
			stop="BinocCrouch";
			default = "BinocCrouch";

			binocOff="Crouch";

			// no movement while binoculing
			walkF="";walkLF="";walkRF="";walkL="";walkR="";
			walkLB="";walkRB="";walkB="";
			slowF="";slowLF="";slowRF="";slowL="";slowR="";
			slowLB="";slowRB="";slowB="";
			fastF="";fastLF="";fastRF="";fastL="";fastR="";
			fastLB="";fastRB="";fastB="";
			turnL="";turnR="";
			turnLRelaxed="";turnRRelaxed="";

			upDegree=ManPosBinoc;
			turnSpeed = 2;
		};

	};
	class BlendAnims
	{
		// different ways to blend animations (head, arms, legs...)
		aimingDefault[]=
		{
			hlava,1,krk,1,
			zbran,1,roura,1,
			lrameno,1,prameno,1,
			lbiceps,1,lloket,1,lruka,1,
			pbiceps,1,ploket,1,pruka,1,
			hrudnik,0.9,zebra,0.5,bricho,0.2
		};
		legsDefault[]=
		{
			lprsty,1,pprsty,1,
			lchodidlo,1,pchodidlo,1,
			lholen,0.95,pholen,0.95,
			lstehno,0.9,pstehno,0.9,
			lzadek,0.5,pzadek,0.5
		};
		headDefault[]=
		{
			hlava,1,krk,0.5
			//lrameno,0.1,prameno,0.1,
			//hrudnik,0.2
		};
		aimingLying[]=
		{
			hlava,1,krk,0.9,
			lrameno,0.5,prameno,0.5,
			hrudnik,0.8,zebra,0.5
		};
		aimingNo[]={};
		legsNo[]={};
		headNo[]={};
	};

	class Default // default state
	{
		access = ReadOnlyVerified;

		actions = StandActions;
		file=""; // default - no file
		looped=true;
		speed=0.5;
		disableWeapons=false;
		enableOptics=true; // note: this is tested only when disableWeapons is false
		disableWeaponsLong=false;
		showWeaponAim=true;
		enableMissile = false;
		enableBinocular = false;
		showItemInHand = false;
		showItemInRightHand = false;
		showHandGun = false;
		onLandBeg=false;
		onLandEnd=false;
		onLadder=false;
		duty=-0.5;

		visibleSize = 1;
		aimPrecision = 1;
		recoilSuffix = "";

		relSpeedMin=1.0;
		relSpeedMax=1.0;
		soundEnabled=true;
		soundOverride=""; // default - no override
		soundEdge1=0.5;soundEdge2=1; // in what relative positions sound should start
		terminal = false; // all movement stops here
		limitGunMovement=1;
		variantsPlayer[]={}; // variants for player
		variantsAI[]={""}; // variants for AI - default is to use players variants
		equivalentTo=""; // whioch move is this variant of
		connectAs=""; // connection same as some other state
		variantAfter[]={5,10,20}; // min, mid, max: time after which variant should be run

		connectFrom[]={}; // after which state may be this one played
		connectTo[]={}; // which state may be played after this one
		interpolateWith[]={}; // which states may we interpolate with
		interpolateTo[]={}; // which states may we interpolate with
		interpolateFrom[]={}; // which states may we interpolate with

		aiming = aimingDefault;
		legs = legsDefault;
		head = headDefault;

		interpolationSpeed=6; // inverse of interpolation time
		interpolationRestart=false;

		// only some animations need to be resident 
		preload = false;
	};
	class StandBase: Default
	{
		limitGunMovement=0;
		aiming=aimingNo;
		disableWeapons=true;
		disableWeaponsLong=true;
	};
	class LadderBase: StandBase
	{
		actions=LadderActions;
		aiming=aimingNo;
		legs=legsNo;
		onLadder=true;
		disableWeapons=true;
	};
	class LadderUpBase: LadderBase
	{
		actions=LadderUpActions;
	};
	class LadderDownBase: LadderBase
	{
		actions=LadderDownActions;
	};
	class DefaultDie: Default
	{
		limitGunMovement=0;
		aiming=aimingNo;
		legs=legsNo; // all animation copies slope
		head=headNo;
		disableWeapons=true;
		interpolationRestart=true;
		soundOverride="fallbody";
		soundEdge1=0.45;soundEdge2=0.45;
	};

	class States
	{
		class DeadState: Default
		{
			// after terminal dead
			// this state is only virtual as is never reached
			actions = DeadActions;
			file=bezsmrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			terminal = true; // all movement stops here
		};


		#define VEH_DIE(Name,anim,time) \
			class Name##Dying: DefaultDie \
			{ \
				actions = NoActions; \
				file=anim##smrt.rtm; \
				speed=-time; \
				looped=false; \
				soundEnabled=false; \
			}; \
			class Name##Dead: Name##Dying \
			{ \
				actions = DeadActions; \
				file=anim##smrt2.rtm; \
				speed=SPEED_STATIC; \
				terminal = true; \
				connectFrom[]={Name##Dying,1}; \
				connectTo[]={DeadState,1}; \
			}

		#define VEH_DIE_CONN(Name,anim,time) \
			class Name##Dying: DefaultDie \
			{ \
				actions = NoActions; \
				file=anim##smrt.rtm; \
				speed=-time; \
				looped=false; \
				soundEnabled=false; \
				connectFrom[]={Name,1}; \
			}; \
			class Name##Dead: Name##Dying \
			{ \
				actions = DeadActions; \
				file=anim##smrt2.rtm; \
				speed=SPEED_STATIC; \
				terminal = true; \
				connectFrom[]={Name##Dying,1}; \
				connectTo[]={DeadState,1}; \
			}

		#define VEHIN_MOVES(Name,anim) \
			class Name: Driver \
			{ \
				file=anim##stat.rtm; \
				speed=SPEED_STATIC; \
				looped=true; \
			}
		#define VEHIN_MOVES_VAR(Name,anim,vartime) \
			class Name: Driver \
			{ \
				file=anim##stat.rtm; \
				speed=SPEED_STATIC; \
				looped=true; \
				variantsAI[]= {Name##V1,0.7,Name};\
				interpolateWith[]={Name##V1,0.5};\
				equivalentTo=Name; \
				interpolationSpeed=1; \
				connectTo[]={Name##Dying,1}; \
			} \
			class Name##V1: Name \
			{ \
				file=anim.rtm; \
				speed=-vartime; \
				looped=true; \
			}
		#define VEHIN_MOVES_VAR_NODEAD(Name,anim,vartime) \
			class Name: Driver \
			{ \
				file=anim##stat.rtm; \
				speed=SPEED_STATIC; \
				looped=true; \
				variantsAI[]= {Name##V1,0.7,Name};\
				interpolateWith[]={Name##V1,0.5};\
				equivalentTo=Name; \
				interpolationSpeed=1; \
			} \
			class Name##V1: Name \
			{ \
				file=anim.rtm; \
				speed=-vartime; \
				looped=true; \
			}
		#define VEH_MOVES(Name,anim,time) \
			VEHIN_MOVES(Name,anim); \
			VEH_DIE_CONN(Name,anim,time)

		#define VEH_MOVES_VAR(Name,anim,time,vartime) \
			VEHIN_MOVES_VAR(Name,anim,vartime); \
			VEH_DIE_CONN(Name,anim,time)

		#define VEHICLE_DIE(name) VEH_DIE(name,name,1)
		#define VEHICLE_MOVES(name) VEH_MOVES(name,name,1)
		#define VEHICLEIN_MOVES(name) VEHIN_MOVES(name,name)
		#define VEHICLE_MOVES_VAR(name) VEH_MOVES_VAR(name,name,1,4)
		#define VEHICLEIN_MOVES_VAR(name) VEHIN_MOVES_VAR_NODEAD(name,name,4)

		class Stand: StandBase
		{
			actions = StandActions;
			file=bezstanistat.rtm; // 88
			speed = SPEED_STATIC; // negative - time is given
			looped=true;
			soundEnabled=false;
			variantAfter[]={1,3,6}; // min, mid, max: time after which variant should be run
			variantsAI[]={StandVar2,0.7, Stand,0.3};
			equivalentTo=Stand;
			interpolationSpeed=2;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		class StandVar2: Stand
		{
			file=bezstanistill.rtm;
			speed = -7.8; // negative - time is given
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		
		/*
		class StandVar3: Stand
		{
			file=bezkouri.rtm;
			speed = -15; // negative - time is given
			variantAfter[]={20,30,45}; // min, mid, max: time after which variant should be run
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		*/
		
		class StandWalkF: StandBase
		{
			actions = StandActions;
			file=chuzeBez0l.rtm; // 95
			speed = -1.2;
			looped=true;
			duty=WalkDuty;
			relSpeedMin=0.7;
			relSpeedMax=1.0;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		// L is negative angle
		// R is positive angle
		class StandWalkLF: StandWalkF
		{ // angle -45
			file=chuzebez-45L.rtm;
			speed=-1.53;
			looped=true;
		};
		class StandWalkRF: StandWalkF
		{ // angle +45
			file=chuzebez45L.rtm;
			speed=-1.53;
			looped=true;
		};
		class StandWalkL: StandWalkF
		{
			file=chuzebez-90L.rtm;
			speed=-1.53;
			looped=true;
		};
		class StandWalkR: StandWalkF
		{
			file=chuzebez90L.rtm;
			speed=-1.53;
			looped=true;
		};
		class StandWalkLB: StandWalkF
		{
			file=chuzebez-135l.rtm;
			speed=-1.53;
			looped=true;
		};
		class StandWalkRB: StandWalkF
		{
			file=chuzebez135l.rtm;
			speed=-1.53;
			looped=true;
		};
		class StandWalkB: StandWalkF
		{
			file=chuzebez180l.rtm;
			speed=-1.53;
			looped=true;
		};
		class StandRunF: StandWalkF
		{
			file=bezbeh.rtm;
			speed=-0.8;
			duty=RunDuty;
			relSpeedMin=0.7;
			relSpeedMax=1.0;
		};

		class StandToCombat: Default
		{
			actions = CombatActions;
			file=stanidostanis.rtm;
			speed=-1.8;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CombatToStand: Default
		{
			actions = StandActions;
			file=sstanidostani.rtm;
			speed=-1.5;
			looped=false;
			disableWeapons=true;
			disableWeaponsLong=true;
			soundEnabled=false;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
			//interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CombatToLying: Default
		{
			actions = LyingActions;
			file=stanisdolehu.rtm;
			speed=-1.5;
			looped=false;
			onLandEnd=true;
			//disableWeapons=true;
			enableOptics=false;
			interpolateTo[]={LyingDying,1};
			soundEnabled=true;
			soundOverride="laydown";
			soundEdge1=0.1;soundEdge2=0.1;
		};
		class CombatRunFToLying: Default
		{
			actions = LyingActions;
			file=behleh.rtm;
			speed=-1.5;
			looped=false;
			onLandEnd=true;
			disableWeapons=true;
			soundEnabled=true;
			interpolateTo[]={LyingDying,1};
			soundOverride="laydown";
			soundEdge1=0.1;soundEdge2=0.1;
		};
		class LyingToCombat: Default
		{
			actions = CombatStandingUpActions;
			file=lehdostanis.rtm;
			speed=-2;
			looped=false;
			onLandBeg=true;
			enableOptics=false;
			//disableWeapons=true;
			interpolateTo[]={LyingDying,1};
			soundEnabled=true;
			soundOverride="standup";
			soundEdge1=0.01;soundEdge2=0.01;
		};
		class LyingToCombatRun: Default
		{
			actions = CombatStandingUpActions;
			file=lehbeh.rtm;
			speed=-1.0;
			looped=false;
			onLandBeg=true;
			disableWeapons=true;
			soundEnabled=true;
			interpolateTo[]={LyingDying,1};
			soundOverride="standup";
			soundEdge1=0;soundEdge2=0;
		};

		/*
		class CombatBase: Default
		{
			preload = true;

			actions = CombatActions;
			file=sstanistat.rtm;
			looped=true;
			duty = RestDuty;
		}
		*/
		class Combat: Default
		{
			actions = CombatActions;
			preload = true;
			file=sstanistat.rtm;
			speed=SPEED_STATIC;
			looped=true;
			soundEnabled=false;
			duty = RestDuty;

			variantsPlayer[]={CombatStillPlayer,0.5,Combat};
			variantsAI[]={CombatStillPlayer,0.3,CombatStillV1,0.5,Combat};
		};
		class CombatRelaxed: Combat
		{
			actions=CombatRelaxedActions;
			file=savarestanistat.rtm;
			speed=SPEED_STATIC;
			looped=true;
			disableWeapons=false;
			variantsAI[]={CombatRelaxedStill,0.8,CombatRelaxed};
			interpolateTo[]={CombatRelaxedDying,0.1,CombatRelaxedDyingVer2,0.1};
		};

		class CombatStillV1: Combat
		{
			file=sstani.rtm;
			speed=-6.8;
			looped=true;
			equivalentTo=Combat;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CombatStillPlayer: Combat
		{
			file=sstaniSoft.rtm;
			speed=-6.8;
			looped=true;
			equivalentTo=Combat;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CombatRelaxedStill: Combat
		{
			actions=CombatRelaxedActions;
			file=savarestani.rtm;
			speed=-5;
			looped=true;
			disableWeapons=false;
			equivalentTo=CombatRelaxed;
		};

		class CombatReloadMagazine: Default
		{
			preload = true;
			actions = CombatActions;
			file=snabij.rtm;
			speed=- 2.4; //puvodne speed=-3.6;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;

			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};

		class CombatToBinoc: Default
		{
			actions = CombatActions;
			file=sdalek.rtm;
			speed=-1.0;
			looped=false;
			disableWeapons=true;
			showItemInHand = true;
			soundEnabled=false;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class Binoc: Default
		{
			actions = BinocActions;
			file=sdalekstat.rtm; // TODO: ai variants
			speed=SPEED_STATIC;
			looped=true;
			disableWeapons=false;
			showItemInHand = true;
			soundEnabled=false;
			enableBinocular = true;
			head=headNo;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class BinocToCombat: Default
		{
			actions = CombatActions;
			file=sdalek2.rtm;
			speed=-1.0; //puvodne speed=-3.6;
			looped=false;
			disableWeapons=true;
			showItemInHand = true;
			soundEnabled=false;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		}

		class Crouch: Combat
		{
			preload = true;
			actions=CrouchActions;
			file=klek.rtm;
			speed=SPEED_STATIC;
			variantsPlayer[]={};
			variantsAI[]={};
			visibleSize = 0.6;
			aimPrecision = 0.5;
			recoilSuffix = "halffixed";
		};
		// intermediate state - used for interpolation
		// between crouch fordard and crouch back movements
		class CrouchIM: Combat
		{
			actions=CrouchActions;
			//file=klek.rtm;
			speed=SPEED_STATIC;
			variantsPlayer[]={};
			variantsAI[]={};
		};
		class CrouchToCombat: Default
		{
			preload = true;
			actions=CombatActions;
			file=klekdostani.rtm;
			speed=-0.4;
			looped=false;
			soundEnabled=false;
			enableOptics=false;
			connectFrom[]={Crouch,0.5};
			connectTo[]={Combat,0.5};
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CrouchToCrouchSprintF: Default
		{
			preload = true;
			actions=CrouchRunFActions;
			file=klekbeh.rtm;
			speed=-0.4;
			looped=false;
			soundEnabled=false;
			connectFrom[]={Crouch,0.4};
			enableOptics=false;
			connectTo[]={CrouchSprintF,0.4};
			interpolateTo[]={Crouch,1};
		};
		class CombatToCrouch: Default
		{
			preload = true;
			actions=CrouchActions;
			file=sstanidoklek.rtm;
			speed=-0.4;
			looped=false;
			soundEnabled=false;
			enableOptics=false;
			connectFrom[]={Combat,0.5};
			connectTo[]={Crouch,0.5};
			interpolateTo[]={CrouchDying,0.1};
		};
		class CrouchToLying: Default
		{
			preload = true;
			actions=LyingActions;
			file=klekleh.rtm;
			speed=-1;
			looped=false;
			connectFrom[]={Crouch,1};
			connectTo[]={Lying,1};
			soundEnabled=true;
			enableOptics=false;
			soundOverride="laydown";
			soundEdge1=0.1;soundEdge2=0.1;
			onLandEnd=true;
			interpolateTo[]={LyingDying,0.1};
		};
		class LyingToCrouch: Default
		{
			preload = true;
			actions=CrouchActions;
			file=lehklek.rtm;
			speed=-1;
			looped=false;
			connectFrom[]={Lying,1};
			connectTo[]={Crouch,1};
			soundEnabled=true;
			enableOptics=false;
			soundOverride="standup";
			soundEdge1=0.01;soundEdge2=0.01;
			onLandBeg=true;
			interpolateTo[]={CrouchDying,0.1};
		};

		class CrouchReloadMagazine: Default
		{
			preload = true;
			actions = CrouchActions;
			file=kleknabij.rtm;
			speed=- 2.4; //puvodne speed=-3.6;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;

			visibleSize = 0.6;
			aimPrecision = 0.5;
			recoilSuffix = "halffixed";

			connectFrom[]={Crouch,1};
			connectTo[]={Crouch,1};
			interpolateTo[]={CrouchDying,0.1};
		};

		class CrouchDying: DefaultDie
		{
			actions = NoActions;
			file=kleksmrt.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			connectFrom[]={Crouch,1};
			connectTo[]={CrouchDead,1};
		};
		class CrouchDead: CrouchDying
		{
			actions = DeadActions;
			file=kleksmrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			terminal = true; // all movement stops here
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
		};


		class CrouchToWeapon: Default
		{
			actions = WeaponActions;
			file=klekdoAT.rtm;
			speed=-2.0; //puvodne speed=-3.6;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			connectFrom[]={Crouch,1};
			connectTo[]={Weapon,1};
			interpolateTo[]={WeaponDying,0.1,WeaponDyingVer2,0.1};
		};

		class WeaponToCrouch: Default
		{
			actions = CrouchActions;
			file=atdoklek.rtm;
			speed=-2.0; //puvodne speed=-3.6;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			connectFrom[]={Weapon,1.2};
			connectTo[]={Crouch,1.2};
			interpolateTo[]={CrouchDying,0.1};
		};

		class LyingToBinocLying: Default
		{
			actions = LyingActions;
			file=plazenidalek.rtm;
			speed=-2.0;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			showItemInHand = true;
			onLandBeg=true;
			onLandEnd=true;
			interpolateTo[]={LyingDying,0.1};
		};
		class BinocLying: Default
		{
			actions = BinocLyingActions;
			file=plazenidalekstat.rtm; // TODO: ai variants
			speed=SPEED_STATIC;
			looped=true;
			disableWeapons=false;
			showItemInHand = true;
			soundEnabled=false;
			enableBinocular = true;
			onLandBeg=true;
			onLandEnd=true;
			duty = RestDuty;
			interpolateTo[]={LyingDying,0.1};
		};
		class BinocLyingToLying: Default
		{
			actions = LyingActions;
			file=plazenidalek2.rtm;
			speed=-2.0; //puvodne speed=-3.6;
			looped=false;
			disableWeapons=true;
			showItemInHand = true;
			soundEnabled=false;
			onLandBeg=true;
			onLandEnd=true;
			interpolateTo[]={LyingDying,0.1};
		};

		class StandToBinocStand: Default
		{
			actions = StandActions;
			file=bezdalek.rtm;
			speed=-1.0;
			looped=false;
			disableWeapons=true;
			showItemInHand = true;
			soundEnabled=false;

			connectFrom[]={Stand,2};
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		class BinocStand: Default
		{
			actions = BinocStandActions;
			file=bezdalekstat.rtm; // TODO: ai variants
			speed=SPEED_STATIC;
			looped=true;
			disableWeapons=false;
			showItemInHand = true;
			soundEnabled=false;
			enableBinocular = true;
			connectFrom[]={StandToBinocStand,1};
			connectTo[]={BinocStandToStand,1};
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		class BinocStandToStand: Default
		{
			actions = StandActions;
			file=bezdalek2.rtm;
			speed=-1.0;
			looped=false;
			disableWeapons=true;
			showItemInHand = true;
			soundEnabled=false;
			connectTo[]={Stand,2};
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		class StandThrowGrenadeStart: Default
		{
			actions = StandActions;
			file=bezgranat1.rtm;
			speed=-1.4;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		class StandThrowGrenadeEnd: Default
		{
			actions = StandActions;
			file=bezgranat2.rtm;
			speed=-0.97;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};

		#define CombatTimedMove(Name,anim1,time1,anim2,time2,anim3,time3,loop) \
			class CombatTo##Name: Default \
			{ \
				actions = CombatActions; \
				file=anim1.rtm; \
				speed=time1; \
				looped=false; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectFrom[]={Combat,1}; \
				interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1}; \
			}; \
			class Name: Default \
			{ \
				actions = Name##Actions; \
				file=anim2.rtm; \
				speed=time2; \
				looped=loop; \
				disableWeapons=true; \
				disableWeaponsLong=true; \
				soundEnabled=false; \
				aiming=aimingNo; \
				connectFrom[]={CombatTo##Name,2}; \
				connectTo[]={Name##ToCombat,2}; \
				interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1}; \
			}; \
			class Name##ToCombat: Default \
			{ \
				actions = CombatActions; \
				file=anim3.rtm; \
				speed=time3; \
				looped=false; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectTo[]={Combat,1}; \
				interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1}; \
			};
		CombatTimedMove(TakeFlag,spoloz,-0.7,spolozstat,-2.5,spoloz2,-1.0,true)
		CombatTimedMove(PutDown,spoloz,-0.7,spolozstat,SPEED_STATIC,spoloz2,-1.0,true)
		CombatTimedMove(Medic,smedicstart,-1,smedicloop,-3,smedicend,-1.0,false)
		CombatTimedMove(Treated,sosetrenstart,-5,sosetrenloop,-3,sosetrenend,-1.0,false)

		#define StandTimedMove(Name,anim1,time1,anim2,time2,anim3,time3,loop) \
			class StandTo##Name: Default \
			{ \
				actions = StandActions; \
				file=anim1.rtm; \
				speed=time1; \
				looped=false; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectFrom[]={Stand,1}; \
				interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1}; \
			}; \
			class Name: Default \
			{ \
				actions = Name##Actions; \
				file=anim2.rtm; \
				speed=time2; \
				looped=loop; \
				disableWeapons=true; \
				disableWeaponsLong=true; \
				soundEnabled=false; \
				aiming=aimingNo; \
				connectFrom[]={StandTo##Name,2}; \
				connectTo[]={Name##ToStand,2}; \
				interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1}; \
			}; \
			class Name##ToStand: Default \
			{ \
				actions = StandActions; \
				file=anim3.rtm; \
				speed=time3; \
				looped=false; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectTo[]={Stand,1}; \
				interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1}; \
			};
		StandTimedMove(StandTakeFlag,bezstanipoloz1,-0.7,bezstanipolozstat,-2.5,bezstanipoloz2,-1.0,true)
		StandTimedMove(StandPutDown,bezstanipoloz1,-0.7,bezstanipolozstat,SPEED_STATIC,bezstanipoloz2,-1.0,true)

		#define CivilTimedMove(Name,anim1,time1,anim2,time2,anim3,time3,loop) \
			class CivilTo##Name: Default \
			{ \
				actions = CivilActions; \
				file=anim1.rtm; \
				speed=time1; \
				looped=false; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectFrom[]={Civil,1}; \
				interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1}; \
			}; \
			class Name: Default \
			{ \
				actions = Name##Actions; \
				file=anim2.rtm; \
				speed=time2; \
				looped=loop; \
				disableWeapons=true; \
				disableWeaponsLong=true; \
				soundEnabled=false; \
				aiming=aimingNo; \
				connectFrom[]={CivilTo##Name,2}; \
				connectTo[]={Name##ToCivil,2}; \
				interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1}; \
			}; \
			class Name##ToCivil: Default \
			{ \
				actions = CivilActions; \
				file=anim3.rtm; \
				speed=time3; \
				looped=false; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectTo[]={Civil,1}; \
				interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1}; \
			};
		CivilTimedMove(CivilTakeFlag,civilstanipoloz1,-0.7,civilstanipolozstat,-2.5,civilstanipoloz2,-1.0,true)
		CivilTimedMove(CivilPutDown,civilstanipoloz1,-0.7,civilstanipolozstat,SPEED_STATIC,civilstanipoloz2,-1.0,true)


/*!
\patch 1.01 Date 06/07/2001 by Ondra
- Fixed visibility during actions while laying down.
- Same fix applied to transitions from/to lying or weapon positions.
*/

		#define LyingTimedMove(Name,anim1,time1,anim2,time2,anim3,time3,loop) \
			class LyingTo##Name: Default \
			{ \
				actions = LyingActions; \
				file=anim1.rtm; \
				speed=time1; \
				looped=false; \
				visibleSize = 0.28; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectFrom[]={Lying,1}; \
				interpolateTo[]={LyingDying,0.1}; \
			}; \
			class Name: Default \
			{ \
				actions = Name##Actions; \
				file=anim2.rtm; \
				speed=time2; \
				looped=loop; \
				visibleSize = 0.28; \
				disableWeapons=true; \
				disableWeaponsLong=true; \
				soundEnabled=false; \
				aiming=aimingNo; \
				connectFrom[]={LyingTo##Name,2}; \
				connectTo[]={Name##ToLying,2}; \
				interpolateTo[]={LyingDying,0.1}; \
			}; \
			class Name##ToLying: Default \
			{ \
				actions = LyingActions; \
				file=anim3.rtm; \
				speed=time3; \
				looped=false; \
				visibleSize = 0.28; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectTo[]={Lying,1}; \
				interpolateTo[]={LyingDying,0.1}; \
			};
		LyingTimedMove(PutDownLying,lehpoloz,-1.0,lehpolozstat,SPEED_STATIC,lehpoloz2,-1.0,true)
		LyingTimedMove(TreatedLying,lehosetrenstart,-5,lehosetrenloop,-3,lehosetrenend,-1.0,false)

		#define CivilLyingTimedMove(Name,anim1,time1,anim2,time2,anim3,time3,loop) \
			class CivilLyingTo##Name: Default \
			{ \
				actions = CivilLyingActions; \
				file=anim1.rtm; \
				speed=time1; \
				looped=false; \
				visibleSize = 0.28; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectFrom[]={CivilLying,1}; \
				interpolateTo[]={CivilLyingDying,0.1}; \
			}; \
			class Name: Default \
			{ \
				actions = Name##Actions; \
				file=anim2.rtm; \
				speed=time2; \
				looped=loop; \
				visibleSize = 0.28; \
				disableWeapons=true; \
				disableWeaponsLong=true; \
				soundEnabled=false; \
				aiming=aimingNo; \
				connectFrom[]={CivilLyingTo##Name,2}; \
				connectTo[]={Name##ToCivilLying,2}; \
				interpolateTo[]={CivilLyingDying,0.1}; \
			}; \
			class Name##ToCivilLying: Default \
			{ \
				actions = CivilLyingActions; \
				file=anim3.rtm; \
				speed=time3; \
				looped=false; \
				visibleSize = 0.28; \
				disableWeapons=true; \
				soundEnabled=false; \
				connectTo[]={CivilLying,1}; \
				interpolateTo[]={CivilLyingDying,0.1}; \
			};
		CivilLyingTimedMove(CivilLyingTakeFlag,lehcivilpoloz1,-1.0,lehcivilpolozstat,-2.5,lehcivilpoloz2,-1.0,true)
		CivilLyingTimedMove(CivilLyingPutDown,lehcivilpoloz1,-1.0,lehcivilpolozstat,SPEED_STATIC,lehcivilpoloz2,-1.0,true)

		class CombatReloadMGun: Default
		{
			actions = CombatActions;
			file=kulometnabij.rtm;
			speed=-2.93;
			looped=false;
			disableWeapons=true;
		};
		class CombatReloadMortarStart: Default
		{
			actions = CombatActions;
			file=minabijstart.rtm;
			speed=-2.415;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
		};
		class CombatReloadMortarEnd: Default
		{
			actions = CombatActions;
			file=minabijend.rtm;
			speed=-0.7;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
		};
		class CombatThrowGrenadeStart: Default
		{
			actions = CombatActions;
			file=sgranat.rtm;
			speed=-1.4;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CombatThrowGrenadeEnd: Default
		{
			actions = CombatActions;
			file=sgranat2.rtm;
			speed=-0.97;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CombatRunThrowGrenadeStart: Default
		{
			actions = CombatRunFActions;
			file=sbehgranat.rtm;
			speed=-1.4;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={CombatRunDying,0.1,CombatRunDyingVer2,0.1};
		};
		class CombatRunThrowGrenadeEnd: Default
		{
			actions = CombatRunFActions;
			file=sbehgranat2.rtm;
			speed=-0.97;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			connectFrom[]={Combat,1};
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CombatStrokeGun: Default
		{
			actions = CombatActions;
			file=spazba.rtm;
			speed=-2.2;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
			connectFrom[]={Combat,1};
			connectTo[]={CombatStrokeGunEnd,1};
		};
		class CombatStrokeGunEnd: Default
		{
			actions = CombatActions;
			file=sstanistat.rtm;
			speed=SPEED_STATIC;
			looped=true;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
			connectTo[]={Combat,1};
		};

		// combat movement
		class CombatRunF: Default
		{
			preload = true;

			actions = CombatRunFActions;
			file=sbeh0l.rtm;
			speed=-0.6;
			looped=true;
			duty=RunDuty;
			showWeaponAim=false;

			relSpeedMin=0.7;
			relSpeedMax=1.0;
		};
		class CombatRunLF: CombatRunF
		{
			preload = false;

			file=sbeh-45l.rtm;
			speed=-0.7;
		};
		class CombatRunRF: CombatRunF
		{
			preload = false;

			file=sbeh45l.rtm;
			speed=-0.7;
		};

		class CombatRunNF: CombatRunF // NotFront
		{
			preload = false;

			actions = CombatActions;
		};
		class CombatRunL: CombatRunNF
		{
			file=sbeh-90l.rtm;
			speed=-0.7;
		};
		class CombatRunR: CombatRunNF
		{
			file=sbeh90l.rtm;
			speed=-0.76;
		};
		class CombatRunLB: CombatRunNF
		{
			actions=CombatRunBActions;
			file=sbeh-135l.rtm;
			speed=-0.7;
		};
		class CombatRunRB: CombatRunNF
		{
			actions=CombatRunBActions;
			file=sbeh135l.rtm;
			speed=-0.7;
		};
		class CombatRunB: CombatRunNF
		{
			actions=CombatRunBActions;
			file=sbeh180L.rtm;
			speed=-0.7;
			soundEdge1=1;soundEdge2=0.5; // in what relative positions sound should start
		};

		class CombatSprintF: Default
		{
			preload = true;
			actions = CombatRunFActions
			looped=true;
			file = ssprint0.rtm;
			speed=-0.4;
			duty=SprintDuty;
			showWeaponAim=false;
			enableOptics=false;

			relSpeedMin=0.7;
			relSpeedMax=1.0;
		};
		class CombatSprintLF: CombatSprintF
		{
			preload = false;
			file=ssprint-45l.rtm;
			speed=-0.45;
			duty=SprintDuty;
		};
		class CombatSprintRF: CombatSprintF
		{
			preload = false;
			file=ssprint45l.rtm;
			speed=-0.45;
			duty=SprintDuty;
		};

		class CombatTurnR: Default
		{
			actions = CombatActions;
			file=svpravo.rtm;
			speed = -1.8; // negative - time is given
			looped=true;
			soundEnabled=false;
			relSpeedMin=0.9;
			relSpeedMax=1.0;
		};
		class CombatTurnL: Default
		{
			actions = CombatActions;
			file=svlevo.rtm;
			speed = -1.8; // negative - time is given
			looped=true;
			soundEnabled=false;
			relSpeedMin=0.9;
			relSpeedMax=1.0;
		};

		class CombatTurnRRelaxed: CombatTurnR
		{
			file=savaredoprava.rtm;
			speed = -2.6; // negative - time is given
		};
		class CombatTurnLRelaxed: CombatTurnL
		{
			file=savaredoleva.rtm;
			speed = -2.6; // negative - time is given
		};

		class CombatWalkF: Default
		{
			actions = CombatActions;
			file=schuze0l.rtm;
			speed=-0.8;
			looped=true;
			duty=WalkDuty;

			relSpeedMin=0.7;
			relSpeedMax=1.0;
		};
		class CombatWalkLF: CombatWalkF
		{
			file=schuze-45l.rtm;
		};
		class CombatWalkRF: CombatWalkF
		{
			file=schuze45l.rtm;
		};
		class CombatWalkL: CombatWalkF
		{
			file=schuze-90l.rtm;
		};
		class CombatWalkR: CombatWalkF
		{
			file=schuze90l.rtm;
		};

		class CombatWalkLB: CombatWalkF
		{
			file=schuze-135l.rtm;
		};
		class CombatWalkRB: CombatWalkF
		{
			file=schuze135l.rtm;
		};
		class CombatWalkB: CombatWalkF
		{
			file=schuze180l.rtm;
		};

		// modified combat movement (crouch mode)
		// BEG CROUCH RUN
		class CrouchRunF: CombatRunF
		{
			actions=CrouchRunFActions;
			connectAs=CombatRunF;
			interpolateTo[]={Crouch,1};
			enableOptics=false;
		};
		class CrouchRunLF: CombatRunLF
		{
			actions=CrouchRunFActions;
			connectAs=CombatRunLF;
			interpolateWith[]={Crouch,1};
			enableOptics=false;
		};
		class CrouchRunRF: CombatRunRF
		{
			actions=CrouchRunFActions;
			connectAs=CombatRunRF;
			interpolateWith[]={Crouch,1};
			enableOptics=false;
		};

		class CrouchRunL: CombatRunL
		{
			actions=CrouchRunFActions;
			connectAs=CombatRunL;
			interpolateWith[]={Crouch,1};
		};
		class CrouchRunR: CombatRunR
		{
			actions=CrouchRunFActions;
			connectAs=CombatRunR;
			interpolateWith[]={Crouch,1};
		};

		class CrouchRunLB: CombatRunLB
		{
			actions=CrouchRunBActions;
			connectAs=CombatRunLB;
			interpolateWith[]={Crouch,1};
			enableOptics=false;
		};
		class CrouchRunRB: CombatRunRB
		{
			actions=CrouchRunBActions;
			connectAs=CombatRunRB;
			interpolateWith[]={Crouch,1};
			enableOptics=false;
		};

		class CrouchRunB: CombatRunB
		{
			actions=CrouchRunBActions;connectAs=CombatRunB;
			interpolateWith[]={Crouch,1};
			enableOptics=false;
		};
		// END CROUCH RUN


		// BEG CROUCH WALK
		// combat movement
		class CrouchWalkF: CombatWalkF
		{
			actions=CrouchWalkFActions;
			connectAs=CombatWalkF;
			enableOptics=false;
			interpolateWith[]={Crouch,1};
		};
		class CrouchWalkLF: CombatWalkLF
		{
			actions=CrouchWalkFActions;
			connectAs=CombatWalkLF;
			enableOptics=false;
			interpolateWith[]={Crouch,1};
		};
		class CrouchWalkRF: CombatWalkRF
		{
			actions=CrouchWalkFActions;
			connectAs=CombatWalkRF;
			enableOptics=false;
			interpolateWith[]={Crouch,1};
		};

		class CrouchWalkL: CombatWalkL
		{
			actions=CrouchWalkFActions;
			connectAs=CombatWalkL;
			interpolateWith[]={Crouch,1};
		};
		class CrouchWalkR: CombatWalkR
		{
			actions=CrouchWalkFActions;
			connectAs=CombatWalkR;
			interpolateWith[]={Crouch,1};
		};

		class CrouchWalkLB: CombatWalkLB
		{
			actions=CrouchWalkBActions;
			connectAs=CombatWalkLB;
			enableOptics=false;
			interpolateWith[]={Crouch,1};
		};
		class CrouchWalkRB: CombatWalkRB
		{
			actions=CrouchWalkBActions;
			connectAs=CombatWalkRB;
			enableOptics=false;
			interpolateWith[]={Crouch,1};
		};

		class CrouchWalkB: CombatWalkB
		{
			actions=CrouchWalkBActions;connectAs=CombatWalkB;
			enableOptics=false;
			interpolateWith[]={Crouch,1};
		};
		// END CROUCH WALK

		class CrouchSprintF: CombatSprintF
		{
			actions=CrouchRunFActions;connectAs=CombatSprintF;
			enableOptics=false;
		};
		class CrouchSprintLF: CombatSprintLF
		{
			actions=CrouchRunFActions;connectAs=CombatSprintLF;
			enableOptics=false;
		};
		class CrouchSprintRF: CombatSprintRF
		{
			actions=CrouchRunFActions;connectAs=CombatSprintRF;
			enableOptics=false;
		};

		class CrouchTurnR: CombatTurnR {actions=CrouchActions;connectAs=CombatTurnR;};
		class CrouchTurnL: CombatTurnL {actions=CrouchActions;connectAs=CombatTurnL;};

		///////////////
		class CrouchToBinocCrouch: Default
		{
			actions = CrouchActions;
			file=klekdalekstart.rtm;
			speed=-1.0;
			looped=false;
			disableWeapons=true;
			showItemInHand = true;
			soundEnabled=false;

			connectFrom[]={Crouch,2};
			interpolateTo[]={CrouchDying,0.1};
		};
		class BinocCrouch: Default
		{
			actions = BinocCrouchActions;
			file=klekdalekstat.rtm; // TODO: ai variants
			speed=SPEED_STATIC;
			looped=true;
			disableWeapons=false;
			showItemInHand = true;
			soundEnabled=false;
			enableBinocular = true;
			connectFrom[]={CrouchToBinocCrouch,1};
			connectTo[]={BinocCrouchToCrouch,1};
			interpolateTo[]={CrouchDying,0.1};
		};
		class BinocCrouchToCrouch: Default
		{
			actions = CrouchActions;
			file=klekdalekend.rtm;
			speed=-1.0;
			looped=false;
			disableWeapons=true;
			showItemInHand = true;
			soundEnabled=false;
			connectTo[]={Crouch,2};
			interpolateTo[]={CrouchDying,0.1};
		};


		class CivilBase: Default
		{
			aiming=aimingNo;
			actions = CivilActions;
			duty = RestDuty;
			disableWapons=true;
			interpolateTo[]=
			{
				CivilDying,0.1,CivilDyingVer2,0.1
			};
			interpolationSpeed = 3;
		};
		class Civil: CivilBase
		{
			file=civilstat.rtm;
			speed = SPEED_STATIC;
			looped=true;
			soundEnabled=false;
			variantAfter[]={1,3,6}; // min, mid, max: time after which variant should be run
			variantsAI[]={Civil,0.2, CivilStillV1,0.8};
			equivalentTo=Civil;
			interpolateTo[]=
			{
//				CombatThrowGrenadeStart,1,
//				CombatRunThrowGrenadeStart,1,
				CivilDying,0.1,CivilDyingVer2,0.1
			};
			interpolateFrom[]={CombatThrowGrenadeEnd,1};
		};
		class CivilStillV1: Civil
		{
			actions = CivilActions;
			file=civilstani.rtm;
			speed=-10;
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
		};
		class CivilWalkF: CivilBase
		{
			file=civilchuze0l.rtm;
			speed=-1.0;
			looped=true;
			duty=WalkDuty;
			relSpeedMin=0.7;
			relSpeedMax=1.0;
		};
		class CivilWalkLF: CivilWalkF
		{
			file=civilchuze-45l.rtm;
		};
		class CivilWalkRF: CivilWalkF
		{
			file=civilchuze45l.rtm;
		};
		class CivilWalkL: CivilWalkF
		{
			file=civilchuze90l.rtm;
		};
		class CivilWalkR: CivilWalkF
		{
			file=civilchuze-90l.rtm;
		};
		class CivilWalkLB: CivilWalkF
		{
			file=civilchuze-135l.rtm;
		};
		class CivilWalkRB: CivilWalkF
		{
			file=civilchuze135l.rtm;
		};
		class CivilWalkB: CivilWalkF
		{
			file=civilchuze180l.rtm;
		};

		class CivilRunF: CivilWalkF
		{
			actions = CivilRunFActions;
			file=civilbeh0l.rtm;
			speed=-0.55;
			looped=true;
			duty=RunDuty;
		};
		class CivilRunLF: CivilRunF
		{
			file=civilbeh-45l.rtm;
		};
		class CivilRunRF: CivilRunF
		{
			file=civilbeh45l.rtm;
		};
		class CivilRunL: CivilRunF
		{
			file=civilbeh-90l.rtm;
		};
		class CivilRunR: CivilRunF
		{
			file=civilbeh90l.rtm;
		};
		class CivilRunB: CivilRunF
		{
			actions = CivilRunBActions;
			file=civilbeh180l.rtm;
		};
		class CivilRunLB: CivilRunB
		{
			file=civilbeh-135l.rtm;
		};
		class CivilRunRB: CivilRunB
		{
			file=civilbeh135l.rtm;
		};
		class CivilTurnR: CivilBase
		{
			actions = CivilActions;
			file=civildoprava.rtm;
			speed = -1.6; // negative - time is given
			looped=true;
			soundEnabled=false;
			relSpeedMin=0.9;
			relSpeedMax=1.0;
			duty = RestDuty;
			interpolationSpeed=5;
		};
		class CivilTurnL: CivilBase
		{
			actions = CivilActions;
			file=civildoleva.rtm;
			speed = -1.6; // negative - time is given
			looped=true;
			soundEnabled=false;
			relSpeedMin=0.9;
			relSpeedMax=1.0;
			duty = RestDuty;
			interpolationSpeed=5;
		};
		class CivilThrowGrenadeStart: Default
		{
			actions = CivilActions;
			file=civilgranat1.rtm;
			speed=-1.4;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1};
		};
		class CivilThrowGrenadeEnd: Default
		{
			actions = CivilActions;
			file=civilgranat2.rtm;
			speed=-0.97;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1};
		};
		class CivilRunThrowGrenadeStart: Default
		{
			actions = CivilRunFActions;
			file=behgranat1.rtm;
			speed=-1.4;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1};
		};
		class CivilRunThrowGrenadeEnd: Default
		{
			actions = CivilRunFActions;
			file=behgranat2.rtm;
			speed=-0.97;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1};
		};
		class CivilToCivilLying: Default
		{
			actions = CivilLyingActions;
			file=civil2leh.rtm;
			speed=-1.5;
			looped=false;
			onLandEnd=true;
			//disableWeapons=true;
			enableOptics=false;
			soundEnabled=true;
			soundOverride="laydown";
			soundEdge1=0.1;soundEdge2=0.1;
			interpolateTo[]={CivilLyingDying,1};
		};
		class CivilLyingToCivil: Default
		{
			actions = CivilActions;
			file=leh2civil.rtm;
			speed=-2;
			looped=false;
			onLandBeg=true;
			enableOptics=false;
			//disableWeapons=true;
			soundEnabled=true;
			soundOverride="standup";
			soundEdge1=0.01;soundEdge2=0.01;
			interpolateTo[]={CivilDying,1,CivilDyingVer2,1};
		};

		class Lying: Default
		{
			preload = true;
			actions = LyingActions;
			file=leh.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			duty = RestDuty;
			visibleSize = 0.25;
			aimPrecision = 0.3;
			recoilSuffix = "fixed";
		};
		class LyingNoAim: Lying
		{
			preload = false;
			limitGunMovement=0;
			aiming=aimingLying;
			legs=legsNo; // all animation copies slope
		};
		class LyingStillV1: Lying
		{
			file=polehavani.rtm;
			speed=-6.2;
		};
		class LyingTurnL: Lying
		{
			preload = false;
			file=plizenidoleva.rtm;
			speed=-4;
			duty = CrawlDuty;
		};
		class LyingTurnR: Lying
		{
			preload = false;
			file=plizenidoprava.rtm;
			speed=-4;
			duty = CrawlDuty;
		};
		class LyingReloadMagazine: LyingNoAim
		{
			preload = true;
			actions = LyingActions;
			file=plizeninabij.rtm;
			speed=-2.4; //puvodene speed=-7.6;
			disableWeapons=true;
			looped=false;
			interpolateTo[]={LyingDying,1};
		};
		class LyingThrowGrenadeStart: LyingNoAim
		{
			looped = false;
			limitGunMovement=1;
			file=plazenigranat.rtm;
			speed=-1.8;
			disableWeapons=true;
			duty = CrawlDuty;
			interpolateTo[]={LyingDying,0.1};
		};
		class LyingThrowGrenadeEnd: LyingNoAim
		{
			looped = false;
			limitGunMovement=1;
			file=plazenigranat2.rtm;
			speed=-2.3;
			disableWeapons=true;
			duty = CrawlDuty;
			interpolateTo[]={LyingDying,0.1};
		};
		class LyingCrawlF: LyingNoAim
		{
			preload = true;
			actions=CrawlingActions;
			file=plazni0l.rtm;
			speed=-1.0;
			duty = CrawlDuty;
			disableWeapons=true;
			enableOptics=false;
			soundEnabled=true;
			soundOverride="crawl";
		};
		class LyingFastCrawlF: LyingCrawlF
		{
			actions=CrawlingActions;
			file=ultraplaz.rtm;			
			speed=-0.8;
			disableWeapons=true;
			duty = SprintDuty;
		};
		class LyingCrawlLF: LyingCrawlF
		{
			preload = false;
			file=plizeni-45l.rtm;
			speed=-1.0;
		};
		class LyingCrawlRF: LyingCrawlF
		{
			preload = false;
			file=plizeni45l.rtm;
			speed=-1.0;
		};
		class LyingCrawlL: LyingCrawlF
		{
			preload = false;
			actions=LyingActions;
			file=plizeni-90l.rtm;
			speed = -1.0;
		};
		class LyingCrawlR: LyingCrawlL
		{
			preload = false;
			file=plizeni90l.rtm;
			speed = -1.0;
		};
		class LyingCrawlLB: LyingCrawlL
		{
			preload = false;
			file=plizeni-135l.rtm;
			speed=-1.1;
		};
		class LyingCrawlRB: LyingCrawlL
		{
			preload = false;
			file=plizeni135l.rtm;
			speed=-1.1;
		};
		class LyingCrawlB: LyingCrawlL
		{
			preload = false;
			file=plizeni180L.rtm;
			speed = -1.1;
		};

		class LyingDying: DefaultDie
		{
			preload = true;
			actions = NoActions;
			file=plazenismrt.rtm;
			speed=-1;
			onLandEnd=true;
			looped=false;
			soundEnabled=false;
		};


		class CivilLying: Default
		{
			actions = CivilLyingActions;
			file=lehcivil.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			duty = RestDuty;
			disableWapons=true;
			disableWeaponsLong=true;

			visibleSize = 0.25;
			aimPrecision = 0.3;
			recoilSuffix = "fixed";
		};
		class CivilLyingNoAim: CivilLying
		{
			limitGunMovement=0;
			aiming=aimingNo;
			legs=legsNo; // all animation copies slope
		};
		class CivilLyingStillV1: CivilLying
		{
			file=lehcivilvar.rtm;
			speed=-6.2;
		};
		class CivilLyingCrawlF: CivilLyingNoAim
		{
			actions=CivilCrawlingActions;
			file=plazni0l.rtm;
			speed=-1.0;
			duty = CrawlDuty;
		};
		class CivilLyingFastCrawlF: CivilLyingCrawlF
		{
			actions=CivilCrawlingActions;
			file=ultraplaz.rtm;			
			speed=-0.8;
			duty = SprintDuty;
		};
		class CivilLyingCrawlLF: CivilLyingCrawlF
		{
			file=plizeni-45l.rtm;
			speed=-1.0;
		};
		class CivilLyingCrawlRF: CivilLyingCrawlF
		{
			file=plizeni45l.rtm;
			speed=-1.0;
		};
		class CivilLyingCrawlL: CivilLyingCrawlF
		{
			actions=CivilLyingActions;
			file=plizeni-90l.rtm;
			speed = -1.0;
		};
		class CivilLyingCrawlR: CivilLyingCrawlL
		{
			file=plizeni90l.rtm;
			speed = -1.0;
		};
		class CivilLyingCrawlLB: CivilLyingCrawlL
		{
			file=plizeni-135l.rtm;
			speed=-1.1;
		};
		class CivilLyingCrawlRB: CivilLyingCrawlL
		{
			file=plizeni135l.rtm;
			speed=-1.1;
		};
		class CivilLyingCrawlB: CivilLyingCrawlL
		{
			file=plizeni180L.rtm;
			speed = -1.1;
		};

		class CivilLyingDying: DefaultDie
		{
			actions = NoActions;
			file=civillehsmrt.rtm;
			speed=-1;
			onLandEnd=true;
			looped=false;
			soundEnabled=false;
		};
		class CivilLyingDead: CivilLyingDying
		{
			actions = DeadActions;
			file=civillehsmrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			terminal = true; // all movement stops here
		};

		class WeaponDying: DefaultDie
		{
			actions = NoActions;
			file=atsmrt.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			soundEnabled=false;
		};
		class WeaponDyingVer2: WeaponDying
		{
			file=atsmrtB.rtm;
		};
		class WeaponDead: WeaponDying
		{
			actions = DeadActions;
			file=atsmrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			variantsPlayer[]={WeaponDead,0.5,WeaponDeadVer2};
			equivalentTo=WeaponDead;
			variantAfter[]={0,0,0}; // select variant immediatelly
			terminal = true; // all movement stops here
		};
		class WeaponDeadVer2: WeaponDead
		{
			file=atsmrtB2.rtm;
		}
		class SitDownDying: DefaultDie
		{
			actions = NoActions;
			file=bezsedismrt.rtm;
			speed=-0.6;
			looped=false;
			onLandEnd=true;
			soundEnabled=false;
		};
		class SitDownDead: SitDownDying
		{
			actions = DeadActions;
			file=bezsedismrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			terminal = true; // all movement stops here
		};
		class StandDying: DefaultDie
		{
			preload = true;
			actions = NoActions;
			file=bezsmrt.rtm;
			speed=-2;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			interpolationSpeed=5;
		};
		class StandDead: StandDying
		{
			actions = DeadActions;
			file=bezsmrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			variantsPlayer[]={StandDead,0.5,StandDeadVer2};
			equivalentTo=StandDead;
			variantAfter[]={0,0,0}; // select variant immediatelly
			terminal = true; // all movement stops here
		};
		class StandDyingVer2: DefaultDie
		{
			preload = true;
			actions = NoActions;
			file=bezsmrtB.rtm;
			speed=-2;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			interpolationSpeed=5;
		};
		class StandDeadVer2: StandDead
		{
			actions = DeadActions;
			file=bezsmrtB2.rtm;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
		};

		class CivilDying: DefaultDie
		{
			actions = NoActions;
			file=civilsmrtb.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			interpolateFrom[]={};
			connectTo[]={CivilDead,1};
		};
		class CivilDead: CivilDying
		{
			actions = DeadActions;
			file=civilsmrtb2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			terminal = true; // all movement stops here
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
			variantsPlayer[]={CivilDead,0.5,CivilDeadVer2};
			variantAfter[]={0,0,0}; // select variant immediatelly
			equivalentTo=CivilDead;
		};
		class CivilDyingVer2: CivilDying
		{
			file=civilsmrt.rtm;
			connectTo[]={CivilDeadVer2,1};
		};
		class CivilDeadVer2: CivilDead
		{
			file=civilsmrt2.rtm;
		};

		class CombatDying: DefaultDie
		{
			preload = true;
			actions = NoActions;
			file=ssmrt.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			connectFrom[]={Combat,1};
			connectTo[]={CombatDead,1};
		};
		class CombatDead: CombatDying
		{
			actions = DeadActions;
			file=ssmrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			variantsPlayer[]={CombatDead,0.5,CombatDeadVer3,0.2,CombatDeadVer2};
			variantAfter[]={0,0,0}; // select variant immediatelly
			equivalentTo=CombatDead;
			terminal = true; // all movement stops here
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
		};
		class CombatDyingVer2: DefaultDie
		{
			preload = true;
			actions = NoActions;
			file=ssmrtB.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;

			connectFrom[]={Combat,1};
			connectTo[]={CombatDeadVer2,1};
		};
		class CombatDeadVer2: CombatDead
		{
			actions = DeadActions;
			file=ssmrtb2.rtm;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
		};
		class CombatDyingVer3: DefaultDie
		{
			preload = true;
			actions = NoActions;
			file=kulometsmrt.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			connectFrom[]={Combat,1};
			connectTo[]={CombatDeadVer3,1};
		};
		class CombatDeadVer3: CombatDead
		{
			actions = DeadActions;
			file=kulometsmrt2.rtm;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
		};
		class CombatRunDying: DefaultDie
		{
			actions = NoActions;
			file=sbehsmrt0b.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			interpolateFrom[]={CombatRunF,1};
			connectTo[]={CombatRunDead,1};
		};
		class CombatRunDead: CombatRunDying
		{
			actions = DeadActions;
			file=sbehsmrt0b2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			terminal = true; // all movement stops here
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
			variantsPlayer[]={CombatRunDead,0.75,CombatRunDeadVer2};
			variantAfter[]={0,0,0}; // select variant immediatelly
			equivalentTo=CombatRunDead;
		};

		class CombatRunDyingVer2: DefaultDie
		{
			actions = NoActions;
			file=sbehsmrt0.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			interpolateFrom[]={CombatRunF,1};
			connectTo[]={CombatRunDeadVer2,1};
		};
		class CombatRunDeadVer2: CombatRunDyingVer2
		{
			actions = DeadActions;
			file=sbehsmrt02.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			terminal = true; // all movement stops here
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
			equivalentTo=CombatRunDead;
			variantAfter[]={0,0,0}; // select variant immediatelly
		};

		class CombatRunBDying: DefaultDie
		{
			actions = NoActions;
			file=sbehsmrt180b.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			interpolateFrom[]={CombatRunB,1};
			connectTo[]={CombatRunBDead,1};
		};
		class CombatRunBDead: CombatRunBDying
		{
			actions = DeadActions;
			file=sbehsmrt180b2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			terminal = true; // all movement stops here
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
			variantsPlayer[]={CombatRunBDead,0.75,CombatRunBDeadVer2};
			variantAfter[]={0,0,0}; // select variant immediatelly
			equivalentTo=CombatRunBDead;
		};

		class CombatRunBDyingVer2: CombatRunBDying
		{
			file=sbehsmrt180.rtm;
			connectTo[]={CombatRunBDeadVer2,1};
		};
		class CombatRunBDeadVer2: CombatRunBDead
		{
			file=sbehsmrt1802.rtm;
		};


		class CombatRelaxedDying: DefaultDie
		{
			actions = NoActions;
			file=kulometsmrt.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			connectFrom[]={CombatRelaxed,1};
			connectTo[]={CombatRelaxedDead,1};
		};
		class CombatRelaxedDead: DefaultDie
		{
			actions = DeadActions;
			file=kulometsmrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
			variantsPlayer[]={CombatRelaxedDeadVer2,0.25,CombatRelaxedDead};
			variantAfter[]={0,0,0}; // select variant immediatelly
		};

		class CombatRelaxedDyingVer2: DefaultDie
		{
			actions = NoActions;
			file=ssmrt.rtm;
			speed=-1.6;
			looped=false;
			onLandEnd=true;
			//soundEnabled=false;
			connectFrom[]={CombatRelaxed,1};
			connectTo[]={CombatRelaxedDeadVer2,1};
		};
		class CombatRelaxedDeadVer2: DefaultDie
		{
			actions = DeadActions;
			file=ssmrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			connectFrom[]={};
			interpolateFrom[]={};
			connectTo[]={DeadState,10};
			equivalentTo=CombatRelaxedDead;
			variantsPlayer[]={CombatRelaxedDeadVer2,0.25,CombatRelaxedDead};
			variantAfter[]={0,0,0}; // select variant immediatelly
		};

		class LyingDead: LyingDying
		{
			actions = DeadActions;
			file=plazenismrt2.rtm;
			speed=SPEED_STATIC;
			looped=true;
			onLandBeg=true;
			onLandEnd=true;
			soundEnabled=false;
			terminal = true; // all movement stops here
		};

		VEHICLE_DIE(Cargo);

		class CombatToWeapon: Default
		{
			actions = WeaponActions;
			file=stanidoAT.rtm;
			speed=-2.4; //puvodne speed=-3.6;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			interpolateTo[]={WeaponDying,0.1,WeaponDyingVer2,0.1};
		};
		class LyingToWeapon: Default
		{
			actions = WeaponActions;
			file=lehdoat.rtm;
			speed = - 3.0; //puvodne speed=-3.6;
			visibleSize = 0.7;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			interpolateTo[]={WeaponDying,0.1,WeaponDyingVer2,0.1};
		};
		class WeaponToLying: Default
		{
			actions = WeaponActions;
			file=atdolehu.rtm;
			speed=-2.8;
			looped=false;
			visibleSize = 0.7;
			disableWeapons=true;
			soundEnabled=false;
			interpolateTo[]={WeaponDying,0.1,WeaponDyingVer2,0.1};
		};
		class Weapon: Default
		{
			actions = WeaponActions;
			file=atstat.rtm;
			speed = SPEED_STATIC;
			looped=true;
			soundEnabled=false;
			enableMissile = true;
			duty = RestDuty;

			visibleSize = 0.6;
			aimPrecision = 0.5;
			recoilSuffix = "halffixed";
		};
		class WeaponWalkF: Weapon
		{
			file=at0l.rtm;
			speed=-0.8;
			looped=true;
			duty=RunDuty;
		};
		class WeaponWalkL: Weapon
		{
			file=at-90l.rtm;
			speed=-0.6;
			looped=true;
			duty=RunDuty;
		};
		class WeaponWalkR: Weapon
		{
			file=at90l.rtm;
			speed=-0.6;
			looped=true;
			duty=RunDuty;
		};
		class WeaponWalkB: Weapon
		{
			file=at180l.rtm;
			speed=-0.9;
			looped=true;
			duty=RunDuty;
		};

		class WeaponWalkLF: Weapon
		{
			file=at-45l.rtm;
			speed=-0.6;
			looped=true;
			duty=RunDuty;
		};
		class WeaponWalkRF: Weapon
		{
			file=at45l.rtm;
			speed=-0.6;
			looped=true;
			duty=RunDuty;
		};
		class WeaponWalkLB: Weapon
		{
			file=at-135l.rtm;
			speed=-0.6;
			looped=true;
			duty=RunDuty;
		};
		class WeaponWalkRB: Weapon
		{
			file=at135l.rtm;
			speed=-0.6;
			looped=true;
			duty=RunDuty;
		};
		class WeaponTurnL: Weapon
		{
			file=atdoleva.rtm;
			speed=-1.5;
			looped=true;
			duty=RunDuty;
			soundEnabled=false;
		};
		class WeaponTurnR: Weapon
		{
			file=atdoprava.rtm;
			speed=-1.5;
			looped=true;
			duty=RunDuty;
			soundEnabled=false;
		};
		class WeaponReloadAT: Weapon
		{
			file=atnabij.rtm;
			speed=-4.0;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			interpolateTo[]={WeaponDying,0.1,WeaponDyingVer2,0.1};
		};
		class WeaponToCombat: Default
		{
			actions = WeaponActions;
			file=ATdostani.rtm; // TODO: odklek
			speed = - 1.5 //puvodne speed=-4.2;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			connectFrom[]={Weapon,2};
			connectTo[]={Combat,2};
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};

		// proxy states for hand gun movements
		class HandGunStand: Default {access = ReadAndWrite;};
		class HandGunCrouch: Default {access = ReadAndWrite;};
		class HandGunLying: Default {access = ReadAndWrite;};

		class Driver: Default
		{
			actions = CargoActions;
			file="cargo.rtm";
			speed=-25;
			looped=true;
			soundEnabled=false;
		};
		class Pilot: Driver
		{
			file="cargo.rtm";
			speed=-1;
			looped=true;
		};
		class Gunner: Driver
		{
			file="cargo.rtm";
			speed=-10;
			looped=true;
		};
		class Commander: Driver
		{
			file="cargo.rtm";
			speed=-10;
			looped=true;
		};
		class Cargo: Driver
		{
			actions = CargoActions;
			file="cargostat.rtm";
			speed = SPEED_STATIC;
			looped=true;
			variantsAI[]=
			{
				CargoVer1,0.6,CargoVer2,0.1,CargoVer3,0.1,CargoVer4,0.1,CargoVer5,0.1,Cargo
			};
			equivalentTo=Cargo;
			interpolationSpeed=1; // inverse of interpolation time
		};
		class CargoVer1: Cargo
		{
			file="cargosoft.rtm";
			speed=-3.8;
			looped=true;
		};
		class CargoVer2: Cargo
		{
			file="cargomenipusku.rtm";
			speed=-3.8;
			looped=true;
		};
		class CargoVer3: Cargo
		{
			file="cargopuska.rtm";
			speed=-4.2;
			looped=true;
		};
		class CargoVer4: Cargo
		{
			file="cargorozhlizise.rtm";
			speed=-3.2;
			looped=true;
		};
		class CargoVer5: Cargo
		{
			file="cargo.rtm";
			speed=-9.6;
			looped=true;
		};



		VEHICLE_MOVES_VAR(M113Gunner);
		VEHICLEIN_MOVES_VAR(M113Driver);
		VEHICLE_MOVES_VAR(M113DriverOut);

		VEHICLEIN_MOVES_VAR(M113Medic);
		VEHICLEIN_MOVES(Nemocnej);

		VEHICLEIN_MOVES_VAR(M60Gunner);
		VEHICLEIN_MOVES_VAR(M60Driver);
		VEHICLEIN_MOVES_VAR(M60Commander);
		VEHICLE_MOVES_VAR(M60DriverOut);
		VEHICLE_MOVES_VAR(M60CommanderOut);

		VEHICLEIN_MOVES_VAR(M1A1Commander);
		VEHICLEIN_MOVES_VAR(M1A1Gunner);
		VEHICLEIN_MOVES(M1A1Driver);

		VEHICLE_MOVES_VAR(M1A1DriverOut);
		VEHICLE_MOVES_VAR(M1A1CommanderOut);

		VEHICLEIN_MOVES_VAR(BMPGunner);
		VEHICLEIN_MOVES_VAR(BMPDriver);
		VEHICLEIN_MOVES_VAR(BMPCommander);
		VEHICLE_MOVES_VAR(BMPGunnerOut);
		VEHICLE_MOVES_VAR(BMPDriverOut);
		VEHICLE_MOVES_VAR(BMPCommanderOut);

		VEHICLEIN_MOVES_VAR(T72Gunner);
		VEHICLEIN_MOVES(T72Driver);
		VEHICLEIN_MOVES_VAR(T72Commander);
		VEHICLE_MOVES_VAR(T72DriverOut);
		VEHICLE_MOVES_VAR(T72GunnerOut);
		VEHICLE_MOVES_VAR(T72CommanderOut);

		VEHICLE_MOVES_VAR(T80GunnerOut);
		VEHICLE_MOVES_VAR(T80CommanderOut);

		VEHICLEIN_MOVES_VAR(T55Gunner);
		//VEHICLEIN_MOVES_VAR(T55Driver);
		VEHICLEIN_MOVES_VAR(T55Commander);
		//VEHICLE_MOVES(T55GunnerOut);
		VEHICLE_MOVES_VAR(T55DriverOut);
		VEHICLE_MOVES_VAR(T55CommanderOut);

		VEHICLEIN_MOVES_VAR(ZSUGunner);
		VEHICLE_MOVES_VAR(ZSUDriver);
		VEHICLEIN_MOVES_VAR(ZSUCommander);
		VEHICLE_MOVES_VAR(ZSUGunnerOut);
		//VEHICLE_MOVES(ZSUDriverOut);
		VEHICLE_MOVES_VAR(ZSUCommanderOut);

		VEHICLE_MOVES_VAR(UH60Pilot);
		VEHICLE_MOVES_VAR(UH60Gunner);

		VEHICLE_MOVES_VAR(AH1Pilot);
		VEHICLE_MOVES_VAR(AH1Gunner);

		VEHICLE_MOVES_VAR(A10Pilot);

		VEHICLE_MOVES_VAR(CesnaPilot);
		VEHICLE_MOVES_VAR(CesnaCargo);

		VEHICLE_MOVES_VAR(Mi17Pilot);

		VEHICLE_MOVES_VAR(Mi24Pilot);
		VEHICLE_MOVES_VAR(Mi24Gunner);

		VEHICLE_MOVES_VAR(5TDriver);
		VEHICLE_MOVES_VAR(5TCoDriver);

		VEHICLE_MOVES_VAR(UralDriver);
		VEHICLE_MOVES_VAR(UralCoDriver);

		VEHICLE_MOVES_VAR(V3SDriver);
		VEHICLE_MOVES_VAR(V3SCoDriver);

		VEHICLE_MOVES_VAR(JeepDriver);
		VEHICLE_MOVES_VAR(JeepGunner);
		VEHICLE_MOVES_VAR(JeepCoDriver);
		VEHICLE_MOVES_VAR(JeepCoDriverBack);

		VEHICLE_MOVES_VAR(UazDriver);
		VEHICLE_MOVES_VAR(UazCoDriver);

		VEHICLE_MOVES_VAR(SkodaDriver);
		VEHICLE_MOVES_VAR(SkodaCoDriver);
		VEHICLE_MOVES_VAR(SkodaCoDriverBack);

		VEHICLE_MOVES_VAR(PBRDriver);
		VEHICLE_MOVES_VAR(PBRGunner);

		VEHICLE_MOVES_VAR(M2Gunner);

		//VEHICLE_MOVES_VAR(PKGunner);

		//VEHICLE_MOVES_VAR(HRLDriver);
		VEHICLE_MOVES_VAR(HRLGunner);

		VEHICLE_MOVES_VAR(ScudDriver);
		VEHICLE_MOVES_VAR(ScudCoDriver);

		VEH_MOVES_VAR(TractorDriver,traktordriver,1,4)

		VEHICLE_MOVES_VAR(Para);

		class StandTurnR: StandBase
		{
			actions = StandActions;
			file=dopravabez.rtm;
			speed = -1.6; // negative - time is given
			looped=true;
			soundEnabled=false;
			relSpeedMin=0.5;
			relSpeedMax=1.0;
			duty = RestDuty;
			interpolationSpeed=5;
		};
		class StandTurnL: StandBase
		{
			actions = StandActions;
			file=dolevabez.rtm;
			speed = -1.6; // negative - time is given
			looped=true;
			soundEnabled=false;
			relSpeedMin=0.5;
			relSpeedMax=1.0;
			duty = RestDuty;
			interpolationSpeed=5;
		};

		class StandStrokeFist: Default
		{
			actions = StandActions;
			file=bezuder.rtm;
			speed=-0.97;
			looped=false;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
			connectFrom[]={Stand,1};
			connectTo[]={StandStrokeFistEnd,1};
		};
		class StandStrokeFistEnd: Default
		{
			actions = StandActions;
			file=bezstanistat.rtm;
			speed = SPEED_STATIC;
			looped=true;
			disableWeapons=true;
			soundEnabled=false;
			duty = SprintDuty;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
			connectTo[]={Stand,1};
		};

		class OnChair: StandBase
		{
			actions = NoActions;
			file=zidle.rtm;
			speed = SPEED_STATIC; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
			interpolationSpeed=2; // inverse of interpolation time
			
		};
		class EffectStand: StandBase
		{
			actions = StandStandActions;
			file=bezstanistill.rtm;
			speed = -8.8; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
			interpolationSpeed=2; // inverse of interpolation time
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
	
		class EffectStandStill: StandBase
		{
			actions = StandStillActions;
			file=bezstanistat.rtm; // 88
			speed =  SPEED_STATIC; // negative - time is given
			//file=bezstani.rtm; // 88
			//speed = -8.6; // negative - time is given
			looped=true;
			soundEnabled=false;
			equivalentTo=EffectStandStill;
			interpolationSpeed=1;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
	
	
	
		class EffectStandTalk: StandBase
		{
			actions = StandTalkActions;
			file=bezpovidani.rtm;
			speed = -14.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
			interpolationSpeed=2; // inverse of interpolation time
		};
		class EffectStandSaluteStart: StandBase
		{
			actions = StandSaluteActions;
			file = bezhlas.rtm;
			speed = -0.5; // negative - time is given
			looped = false;
			soundEnabled = false;
			connectFrom[]={Stand,2};
		};
		class EffectStandSalute: StandBase
		{
			actions = StandSaluteActions;
			file=bezhlasstat.rtm;
			speed = SPEED_STATIC; // negative - time is given
			looped=true;
			soundEnabled=false;
			connectFrom[]={EffectStandSaluteStart,1};
			connectTo[]={EffectStandSaluteEnd,1};
		};
		class EffectStandSaluteEnd: StandBase
		{
			actions = StandActions;
			file = bezhlas2.rtm;
			speed = -0.5; // negative - time is given
			looped = false;
			soundEnabled = false;
			connectTo[]={Stand,2};
		};


		class EffectStandmove: StandBase
		{
			actions = StandStillActions;
			file=bezstani.rtm; // 88
			speed = -8.8; // negative - time is given
			//file=bezstani.rtm; // 88
			//speed = -8.6; // negative - time is given
			looped=true;
			soundEnabled=false;
			equivalentTo=EffectStandStill;
			interpolationSpeed=1;
		};


		class EffectStandSitDown: StandBase
		{
			actions = SitActions;
			file=bezsedi2.rtm;
			speed = -4.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
			variantsPlayer[]={EffectStandSitDown,0.3,EffectStandSitDownVer2,0.3, EffectStandSitDownVer1};
			equivalentTo=EffectStandSitDown;
			interpolateTo[]={SitDownDying,0.1};
		};
		class EffectStandSitDownVer1: EffectStandSitDown
		{
			file=bezsedi2.rtm;
			speed = SPEED_STATIC; // negative - time is given
			looped=true;
			interpolateTo[]={SitDownDying,0.1};
		};
	
		class EffectStandSitDownVer2: EffectStandSitDown
		{
			file=bezsedi.rtm;
			speed = -4.6; // negative - time is given
			looped=true;
			interpolateTo[]={SitDownDying,0.1};
		};

		class EffectStandSitDownStill: EffectStandSitDown
		{
			file=bezsedi.rtm;
			speed = SPEED_STATIC; // negative - time is given
			interpolateTo[]={SitDownDying,0.1};
		};

		class StandToSitDown: StandBase
		{
			actions = SitActions;
			file=bezdosedu.rtm;
			speed = -3.2; // negative - time is given
			looped=false;
			soundEnabled=false;
			duty = RestDuty;
		};
		class SitDownToStand: StandBase
		{
			actions = StandActions;
			file=bezvztava.rtm;
			speed = -2.5; // negative - time is given
			looped=false;
			soundEnabled=false;
			duty = RestDuty;
		};


		class FXBase: StandBase
		{
			actions = StandActions;
			looped=false;
			soundEnabled=false;
			duty = RestDuty;
			interpolationSpeed=1; // inverse of interpolation time
		};

		class FXStandToTel: FXBase
		{
			file=ktelefonustart.rtm;
			speed = -0.5; // negative - time is given
			connectTo[]={FXStandToTelHand,1};
		};

		class FXStandToTelHand: FXBase
		{
			file=ktelefonuend.rtm;
			speed = -4.5; // negative - time is given
			showItemInRightHand = true;
		};

		class FXStandTelLoop: FXBase
		{
			file=telloop.rtm;
			speed = -10.0; // negative - time is given
			looped=true
			showItemInRightHand = true;
		};		
		
		class FXStandDropTel: FXBase
		{
			file=poloztelefon.rtm;
			speed = -4.0; // negative - time is given
			interpolateWith[]={FXStandToTel,1};
		};
		
		
				
		class FXStandFromTable: FXBase
		{
			file=staniodstolu.rtm;
			speed = -3.0; // negative - time is given
		};
		
		class FXStandUnivTable: FXBase
		{
			file=univsezeni.rtm;
			speed = -8.0; // negative - time is given
			looped=true;
		};
		
		class FXStandToTable: FXBase
		{
			file=sedkestolu.rtm;
			speed = -2.5; // negative - time is given
			
		};
		
		class FXStandDangle: FXBase
		{
			file=houpese.rtm;
			speed = -4.0; // negative - time is given
		};
		
		
		class FXStandToDip: FXBase
		{
			file=dokliku.rtm;
			speed = -2.0; // negative - time is given
			connectFrom[]={Stand,1};
			connectTo[]={FXStandDip,1};
		};
		
		class FXStandDip: FXBase
		{
			file=klik.rtm;
			speed = -1.5; // negative - time is given
			looped=true;
		};
		
		class FXStandFromDip: FXBase
		{
			file=zkliku.rtm;
			speed = -2.0; // negative - time is given
			connectFrom[]={FXStandDip,1};
			connectTo[]={Stand,1};
		};	
		
		class FXStandSur: FXBase
		{
			file=zajatecstani.rtm;
			speed = -2.0; // negative - time is given
				};		

		class FXStandSurDead: FXBase
		{
			file=zajatecsmrtb.rtm;
			speed = -2.0; // negative - time is given
			
		};		

		class FXStandSurUniv: FXBase
		{
			file=zajatecstat.rtm;
			speed = SPEED_STATIC; // negative - time is given
		};

		class FXStandSurDown: FXBase
		{
			file=lehzajatec.rtm;
			speed = -3.5; // negative - time is given
		
		};

		class FXStandRotateTable: FXBase
		{
			file=kestolu.rtm;
			speed = -2.0; // negative - time is given
		};
		
		class FXStandShowTable: FXBase
		{
			file=ukazujeustolu.rtm;
			speed = -3.0; // negative - time is given
		};
		
		class FXStandEndTable: FXBase
		{
			file=ukazodstolu.rtm;
			speed = -5.0; // negative - time is given
		};
		
		class FXStandStraight: FXBase
		{
			file=staninic.rtm;
			speed = -2.0; // negative - time is given
		};


		class FXStandBug: FXBase
		{
			file=buzeruje.rtm;
			speed = -10.0; // negative - time is given
		};

		class FXStandhip: FXBase
		{
			file=rucevbok.rtm;
			speed = -5.0; // negative - time is given
		};

		class FXStandAtt: FXBase
		{
			file=uspozorstat.rtm;
			speed = SPEED_STATIC; // negative - time is given
		};

		class FXStandAttVar1: FXBase
		{
			file=rucevbok.rtm;
			speed = -3.0; // negative - time is given
		};

		class FXangel: FXBase
		{
			file=fx_angel_stand.rtm;
			speed = SPEED_STATIC; // negative - time is given
		};
		
		class FXangel2: FXBase
		{
			file=fx_angel_stand2.rtm;
			speed = SPEED_STATIC; // negative - time is given
		};


/*		class FXStandBuletin: FXBase
		{
			file=ukazujenanastence.rtm;
			speed = -5.0; // negative - time is given
		};*/
		
		class LadderStatic: LadderBase
		{
			file=upDownStat2.rtm;
			looped=true;
			soundEnabled=false;
			speed = SPEED_STATIC;
			duty = RestDuty;
		};
		class LadderUpStart: LadderUpBase
		{
			file=upstart2.rtm;
			looped=false;
			soundEnabled=false;
			speed = -0.75;
			duty = RunDuty;
			connectFrom[]={Stand,1};
			connectTo[]={LadderStatic,1};
		};
		class LadderUpLoop: LadderUpBase
		{
			file=uploop2.rtm;
			looped=true;
			soundEnabled=false;
			speed = -0.6;
			duty = RunDuty;
			interpolateWith[]={LadderStatic,1};
			//interpolationSpeed=1;
			//connectFrom[]={LadderStatic,1};
			//connectTo[]={LadderStatic,1};
		};
		class LadderUpEnd: LadderBase
		{
			actions=StandActions;
			file=upend2.rtm;
			looped=false;
			soundEnabled=false;
			speed = -1;
			duty = RunDuty;
			onLadder = false;
			connectFrom[]={LadderStatic,1};
			connectTo[]={Stand,1};
		};

		class LadderDownStart: LadderDownBase
		{
			file=downstart2.rtm;
			looped=false;
			soundEnabled=false;
			speed = -1;
			duty = RunDuty;
			connectFrom[]={Stand,1};
			connectTo[]={LadderStatic,1};
		};
		class LadderDownLoop: LadderDownBase
		{
			file=downloop3.rtm;
			looped=true;
			soundEnabled=false;
			speed = -0.6;
			duty = RunDuty;
			//connectFrom[]={LadderStatic,1};
			//connectTo[]={LadderStatic,1};
			interpolateWith[]={LadderStatic,1};
			//interpolationSpeed=1;
		};
		class LadderDownEnd: LadderDownBase
		{
			actions=StandActions;
			file=downend2.rtm;
			looped=false;
			soundEnabled=false;
			speed = -1;
			duty = RunDuty;
			onLadder = false;
			connectFrom[]={LadderStatic,1};
			connectTo[]={Stand,0.9};
		};

		class EffectWeaponPanic: Default
		{
			file=szmaten.rtm;
			speed = -9.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
		};


		class CommandEngageAtWill: Default
		{
			file=sengageatwill.rtm;
			speed = -3.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
		};
		class CommandFireAtWill: Default
		{
			file=sengageatwill.rtm;
			speed = -3.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
		};
		class CommandFormation: Default
		{
			file=sformace.rtm;
			speed = -3.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
		};

		class CommandHoldFire: Default
		{
			file=sholdfire.rtm;
			speed = -3.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
		};
		class CommandStop: Default
		{
			file=sstop.rtm;
			speed = -3.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
		};
		class CommandForward: Default
		{
			file=svpred.rtm;
			speed = -3.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
		};

		class EffectCombatStand: Default
		{
			file=sstani.rtm;
			speed = -3.0; // negative - time is given
			looped=true;
			soundEnabled=false;
			duty = RestDuty;
		};

		class StandGetInCar : StandBase
		{
			actions = StandActions;
			file = bezosobak.rtm;
			speed = -2.25; // negative - time is given
			looped = false;
			soundEnabled = false;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		class StandGetInTank : StandBase
		{
			actions = StandActions;
			file = nastupbez.rtm;
			speed = -1.3; // negative - time is given
			looped = false;
			soundEnabled = false;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		class StandGetOutTank : StandBase
		{
			actions = StandActions;
			file = bezseskok.rtm;
			speed = -3.065; // negative - time is given
			looped = false;
			soundEnabled = false;
			interpolateTo[]={StandDying,0.1,StandDyingVer2,0.1};
		};
		class CombatGetInCar : Default
		{
			actions = CombatActions;
			file = sosobak.rtm;
			speed = -1.23; // negative - time is given
			looped = false;
			soundEnabled = false;
			disableWeapons = true;
			enableOptics=false;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CombatGetInTank : Default
		{
			actions = CombatActions;
			file = snastup.rtm;
			speed = -2.38; // negative - time is given
			looped = false;
			soundEnabled = false;
			disableWeapons = true;
			enableOptics=false;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CombatGetOutTank : Default
		{
			actions = CombatActions;
			file = sdoskok.rtm;
			speed = -0.915; // negative - time is given
			looped = false;
			soundEnabled = false;
			disableWeapons = true;
			interpolateTo[]={CombatDying,0.1,CombatDyingVer2,0.1,CombatDyingVer3,0.1};
		};
		class CivilGetInCar : Default
		{
			actions = CivilActions;
			file = civilosobak.rtm;
			speed = -1.23; // negative - time is given
			looped = false;
			soundEnabled = false;
			disableWeapons = true;
			enableOptics=false;
			interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1};
		};
		class CivilGetInTank : Default
		{
			actions = CivilActions;
			file = civilnastup.rtm;
			speed = -2.38; // negative - time is given
			looped = false;
			soundEnabled = false;
			disableWeapons = true;
			enableOptics=false;
			interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1};
		};
		class CivilGetOutTank : Default
		{
			actions = CivilActions;
			file = civilseskok.rtm;
			speed = -0.915; // negative - time is given
			looped = false;
			soundEnabled = false;
			disableWeapons = true;
			interpolateTo[]={CivilDying,0.1,CivilDyingVer2,0.1};
		};
	};

	class Interpolations
	{
		standF[]=
		{
			1,Stand,StandWalkF,StandWalkLF,StandWalkRF,
			StandWalkL,StandWalkR,StandRunF
		};
		standB[]=
		{
			1,Stand,StandWalkLB,StandWalkRB,StandWalkB
		};
		combatF[]=
		{
			0.9,Combat,CombatStillPlayer,CombatRelaxed,
			CombatRunF,CombatRunLF,CombatRunRF,CombatRunL,CombatRunR,
			CombatSprintF,CombatSprintLF,CombatSprintRF,
			CombatWalkF,CombatWalkLF,CombatWalkRF,CombatWalkL,CombatWalkR
		};
		combatB[]=
		{
			1,Combat,CombatStillPlayer,CombatRelaxed,
			CombatRunLB,CombatRunRB,CombatRunB,
			CombatWalkLB,CombatWalkRB,CombatWalkB
		};

		crouchF[]=
		{
			0.5,
			CrouchIM,
			CrouchRunF,CrouchRunLF,CrouchRunRF,CrouchRunL,CrouchRunR,
			CrouchSprintF,CrouchSprintLF,CrouchSprintRF
		};
		crouchFW[]=
		{
			0.5,
			CrouchIM,CrouchWalkF,CrouchWalkLF,CrouchWalkRF,CrouchWalkL,CrouchWalkR
		};
		crouchB[]=
		{
			0.5,CrouchIM,CrouchRunLB,CrouchRunRB,CrouchRunB,
			CrouchWalkLB,CrouchWalkRB,CrouchWalkB
		};

		civilF[]=
		{
			1,Civil,
			CivilRunF,CivilRunLF,CivilRunRF,CivilRunL,CivilRunR,
			CivilWalkF,CivilWalkLF,CivilWalkRF,CivilWalkL,CivilWalkR
		};
		civilB[]=
		{
			1,Civil,
			CivilWalkLB,CivilWalkRB,CivilWalkB,
			CivilRunLB,CivilRunRB,CivilRunB
		};
		lyingF[]=
		{
			1,Lying,
			LyingCrawlF,LyingFastCrawlF,LyingCrawlLF,LyingCrawlRF,
			LyingCrawlL,LyingCrawlR
		};
		lyingB[]=
		{
			1,Lying,
			LyingCrawlLB,LyingCrawlRB,LyingCrawlB
		};
		civilLyingF[]=
		{
			1,CivilLying,
			CivilLyingCrawlF,CivilLyingFastCrawlF,CivilLyingCrawlLF,CivilLyingCrawlRF,
			CivilLyingCrawlL,CivilLyingCrawlR
		};
		civilLyingB[]=
		{
			1,CivilLying,
			CivilLyingCrawlLB,CivilLyingCrawlRB,CivilLyingCrawlB
		};
		lyingVars[]={0.1,Lying,LyingStillV1,LyingTurnL,LyingTurnR};
		civilLyingVars[]={0.1,CivilLying,CivilLyingStillV1};
		combatVars[]={0.1,Combat,CombatStillPlayer,CombatStillV1};
		combatReleaxedVars[]={0.1,Combat,CombatRelaxed,CombatRelaxedStill};

		combatTurnRelaxed[]=
		{
			0.1,
			CombatRelaxed,CombatTurnLRelaxed,CombatTurnRRelaxed
		};

		combatTurn[]=
		{
			0.1,
			Combat,CombatStillPlayer,CombatTurnL,CombatTurnR
		};
		standTurn[]={0.1,Stand,StandTurnL,StandTurnR};
		standFX[]=
		{
			1,Stand,EffectStand,EffectStandTalk,
			//EffectStandSalute,
			EffectStand, EffectCombatStand,
			EffectStandStill,
			CommandFireAtWill, CommandFormation, CommandHoldFire, CommandStop, CommandForward
		};
		standVars[]={1,Stand,StandVar2 };

		weaponF[]=
		{
			1,Weapon,WeaponWalkF,WeaponWalkLF,WeaponWalkRF,WeaponWalkL,WeaponWalkR
		};
		weaponB[]=
		{
			1,Weapon,WeaponWalkLB,WeaponWalkRB,WeaponWalkB
		};

		weaponTurn[]={1,Weapon,WeaponTurnL,WeaponTurnR};

		civilLyingTrans[]={2,CivilLying,Lying};
		civilCombatTrans[]={2,Combat,Civil};
		civilStandTrans[]={2,Stand,Civil};
		civilVars[]={0.1,Civil,CivilStillV1};
		civilTurn[]={1,Civil,CivilTurnL,CivilTurnR};
		// enable cargo dead to all animations
		cargoEquiv[]=
		{
			2,
			M113Gunner,M113Driver,M113DriverOut,
			M60Gunner,M60Driver,M60DriverOut,M60Commander,M60CommanderOut,
			M1A1Gunner,M1A1Driver,M1A1DriverOut,M1A1Commander,
			Cargo
		};
		cargoVars[]={0.1,Cargo,CargoVer1,CargoVer2,CargoVer3,CargoVer4,CargoVer5};

		sitDownVars[]={1.0,EffectStandSitDown,EffectStandSitDownVer2,EffectStandSitDownVer1};

	};

	// define edges
	transitionsInterpolated[]=
	{
		// from, to, cost
	};
	transitionsSimple[]=
	{
		// from, to, cost
		Lying, LyingDying, 1, LyingDying, LyingDead, 1,
		CivilLying, CivilLyingDying, 1, CivilLyingDying, CivilLyingDead, 1,
		Stand, StandDying, 1, StandDying, StandDead, 1,
		Stand, StandDyingVer2, 1, StandDyingVer2, StandDeadVer2, 1,

		Weapon, WeaponDying, 1, WeaponDying, WeaponDead, 1,
		Weapon, WeaponDyingVer2, 1, WeaponDyingVer2, WeaponDeadVer2, 1,
		Cargo, CargoDying, 1, CargoDying, CargoDead, 1,

		Combat, CombatToWeapon, 2, CombatToWeapon, Weapon, 2,

		Lying, LyingToWeapon, 2, LyingToWeapon, Weapon, 2, 
		Weapon, WeaponToLying, 2, WeaponToLying, Lying, 2, 

		Combat, CombatReloadMagazine, 2, CombatReloadMagazine, Combat, 2,
		Combat, CombatReloadMGun, 2, CombatReloadMGun, Combat, 2,
		
		Combat, CombatReloadMortarStart, 2,
		CombatReloadMortarStart, CombatReloadMortarEnd, 2,
		CombatReloadMortarEnd, Combat, 2,

		Combat, CombatThrowGrenadeStart, 2,
		CombatThrowGrenadeStart, CombatThrowGrenadeEnd, 2,
		CombatThrowGrenadeEnd, Combat, 2,

		Stand, StandThrowGrenadeStart, 2,
		StandThrowGrenadeStart, StandThrowGrenadeEnd, 2,
		StandThrowGrenadeEnd, Stand, 2,

		Civil, CivilThrowGrenadeStart, 2,
		CivilThrowGrenadeStart, CivilThrowGrenadeEnd, 2,
		CivilThrowGrenadeEnd, Civil, 2,

		Lying, LyingThrowGrenadeStart, 2,
		LyingThrowGrenadeStart, LyingThrowGrenadeEnd, 2,
		LyingThrowGrenadeEnd, Lying, 2,

		CombatRunF, CombatRunThrowGrenadeStart, 2,
		CombatRunThrowGrenadeStart, CombatRunThrowGrenadeEnd, 2,
		CombatRunThrowGrenadeEnd, Combat, 2,

		CivilRunF, CivilRunThrowGrenadeStart, 2,
		CivilRunThrowGrenadeStart, CivilRunThrowGrenadeEnd, 2,
		CivilRunThrowGrenadeEnd, Civil, 2,

		Lying, LyingReloadMagazine, 2, LyingReloadMagazine, Lying, 2,

		Combat, CombatToBinoc, 2, CombatToBinoc, Binoc, 2,
		Binoc, BinocToCombat, 2, BinocToCombat, Combat, 2,

		Lying, LyingToBinocLying, 2, LyingToBinocLying, BinocLying, 2,
		BinocLying, BinocLyingToLying, 2, BinocLyingToLying, Lying, 2,

		Weapon, WeaponReloadAT, 2, WeaponReloadAT, Weapon, 2, 

		Stand, StandToCombat, 1, StandToCombat, Combat, 1,
		Combat, CombatToStand, 1, CombatToStand, Stand, 1,

		Lying, LyingToCombat, 1.2, LyingToCombat, Combat, 1.2,
		Combat, CombatToLying, 1.2, CombatToLying, Lying, 1.2,
		CombatRunF, CombatRunFToLying, 1, CombatRunFToLying, Lying, 1,

		Lying, LyingToCombatRun, 1, LyingToCombatRun, CombatRunF, 1,

		Civil, CivilToCivilLying, 1.2, CivilToCivilLying, CivilLying, 1.2,
		CivilLying, CivilLyingToCivil, 1.2, CivilLyingToCivil, Civil, 1.2,

		Combat, CombatGetInCar, 1, CombatGetInCar, Combat, 1,
		Combat, CombatGetInTank, 1, CombatGetInTank, Combat, 1,
		CombatGetOutTank, Combat, 1,

		Civil, CivilGetInCar, 1, CivilGetInCar, Civil, 1,
		Civil, CivilGetInTank, 1, CivilGetInTank, Civil, 1,
		CivilGetOutTank, Civil, 1,

		Stand, StandGetInCar, 1, StandGetInCar, Stand, 1,
		Stand, StandGetInTank, 1, StandGetInTank, Stand, 1,
		StandGetOutTank, Stand, 1,

		Stand, StandToSitDown, 1, StandToSitDown, EffectStandSitDown, 1,
		EffectStandSitDown, SitDownToStand, 1, SitDownToStand, Stand, 1,

		EffectStandSitDown, SitDownDying, 1, SitDownDying, SitDownDead, 1,

		// transitions to virtual dead state
		// done so implementing different deaths is easier
		CombatDead, DeadState, 10,
		CombatDeadVer2, DeadState, 10,
		StandDead, DeadState, 10,
		StandDeadVer2, DeadState, 10,
		LyingDead, DeadState, 10,
		CivilLyingDead, DeadState, 10,

		// different in-vehicle deads
		WeaponDead, DeadState, 10,
		WeaponDeadVer2, DeadState, 10,
		SitDownDead, DeadState, 10

	};
	transitionsDisabled[]=
	{
		// from, to
	};
};

class CfgAmmo
{
	access = ReadAndCreate;

	class Default
	{
		access = ReadOnlyVerified;

		hit=0;indirectHit=0;indirectHitRange=1;
		minRange=0.5;minRangeProbab=0.50;
		midRange=100;midRangeProbab=0.80;
		maxRange=450;maxRangeProbab=0.05;

		model=;
		proxyShape = ;
		simulation=;
		cost=0;
		maxSpeed=0;
		cartridge="FxCartridge";
		simulationStep=0.05;
		tracerColor[]=TracerGColorF; // default: yellow tracer
		tracerColorR[]=TracerGColorF; // default realistic: yellow tracer

		soundFly[]={,1,1};
		soundEngine[]={,1,1};
		soundHit[]={,1,1};

		// list of sounds with probabilities
		hitGround[]={soundHit,1}; // general
		hitMan[]={soundHit,1};
		hitArmor[]={soundHit,1};
		hitBuilding[]={soundHit,1};

		explosive=true;

		irLock=false;
		airLock=false;
		laserLock=false;
		manualControl=false;
		maxControlRange=350; // max range for manual control
		maneuvrability=1.0; // missile control maneuvrability
		sideAirFriction=1;

		visibleFire=0; // how much is visible when this weapon is fired
		audibleFire=0;
		visibleFireTime=0; // how long is it visible

		initTime=0;
		thrustTime=1.5;
		thrust=210;
		/*
		default thurst calculation was: maxSpeed*0.7;
		due to bug it was increased to maxSpeed*0.7*thurstTime
		normal missile speed is about 200 m/s
		*/
	};

	class BulletSingle : Default
	{
		hit=9;indirectHit=2;indirectHitRange=0.1;
		model=shell;
		simulation=shotBullet;
		simulationStep=0.05;

		//soundFly[]={objects\noise,db-80,4};
		soundFly[]={objects\bulletnoise,db-12,0.7};

		explosive=false;

		visibleFire=16; // how much is visible when this weapon is fired
		audibleFire=16;
		visibleFireTime=3; // how long is it visible

		minRange=10;minRangeProbab=0.10;
		midRange=50;midRangeProbab=0.38;
		maxRange=200;maxRangeProbab=0.04;

		/**/
		soundHit1[]={weapons\bulletricochet1,db-30,1};
		soundHit2[]={weapons\bulletricochet2,db-30,1};
		soundHit3[]={weapons\bulletricochet3,db-30,1};
		soundHitMan1[]={weapons\bullethitman1,db-38,1};
		soundHitMan2[]={weapons\bullethitman2,db-38,1};
		soundHitArmor1[]={weapons\small_impact1,db-30,1};
		soundHitArmor2[]={weapons\Big_Impact2,db-30,1};
		soundHitBuilding1[]={weapons\bulletricochet4,db-30,1};
		soundHitBuilding2[]={weapons\bulletricochet5,db-30,1};
		hitGround[]={soundHit1,0.33,soundHit2,0.33,soundHit3,0.33};
		hitMan[]={soundHitMan1,0.5,soundHitMan2,0.5};
		hitArmor[]={soundHitArmor1,0.7, soundHitArmor2, 0.3};
		hitBuilding[]={soundHitBuilding1,0.5,soundHitBuilding2,0.5};
		/**/

		cartridge="FxCartridge";

		cost = 0.7;
	};
	class BulletBurst: BulletSingle
	{
		// changed 
		// parametes to make AI decide what mode should be used

		minRange=0.5;minRangeProbab=0.25;
		midRange=70;midRangeProbab=0.50;
		maxRange=250;maxRangeProbab=0.08;

		visibleFire=25; // how much is visible when this weapon is fired
		audibleFire=25;
		visibleFireTime=5; // how long is it visible

		cost = 2.1;
	};

	class BulletFullAuto: BulletBurst
	{
		// for AI full auto is the same as burst, only more expensive
		cost = 2.5;
	};

	class BulletSilencedSingle: BulletSingle
	{
		hit=8;indirectHit=1;indirectHitRange=0.1;
		visibleFire=0.035; // how much is visible when this weapon is fired
		audibleFire=0.035;
		visibleFireTime=2; // how long is it visible
		TRACER_N_ALWAYS;
	};
	class BulletSilencedBurst: BulletBurst
	{
		hit=8;indirectHit=1;indirectHitRange=0.1;
		visibleFire=0.05; // how much is visible when this weapon is fired
		audibleFire=0.05;
		visibleFireTime=2; // how long is it visible
		TRACER_N_ALWAYS;
	};

	class BulletSniper : BulletSingle
	{
		hit=10;indirectHit=2;indirectHitRange=0.1;
		minRange=1;minRangeProbab=0.10;
		midRange=200;midRangeProbab=0.80;
		maxRange=900;maxRangeProbab=0.05;
		cost = 2;
		TRACER_N_ALWAYS;
	};

	// we use indirect hit to simulate burst effect
	class Bullet7_6: BulletSingle // machine gun bullet
	{
		airLock=true;
		hit=8;indirectHit=2;indirectHitRange=0.1;
		minRange=1;minRangeProbab=0.90;
		midRange=100;midRangeProbab=0.50;
		maxRange=450;maxRangeProbab=0.05;
		cost=4;
	};
	class Bullet12_7: Bullet7_6 // machine gun bullet
	{
		hit=13;indirectHit=4;indirectHitRange=0.2;
		minRange=4;minRangeProbab=0.90;
		midRange=200;midRangeProbab=0.50;
		maxRange=500;maxRangeProbab=0.05;
		cost=6;
	};

	class ExplosiveBullet: BulletSingle
	{
		airLock=true;
		explosive=true;

		soundHit[]={Explosions\explosivebullet,db0,1};
		soundFly[]={objects\bulletnoise,db-35,4};

		hitGround[]={soundHit,1}; // general
		hitMan[]={soundHit,1};
		hitArmor[]={soundHit,1};
		hitBuilding[]={soundHit,1};
	};

	class Bullet30: ExplosiveBullet // machine gun bullet
	{ // in fact this is 5 bullets burst
		// explosive bullets
		hit=100;indirectHit=20;indirectHitRange=2;
		minRange=20;minRangeProbab=0.20;
		midRange=100;midRangeProbab=0.50;
		maxRange=1000;maxRangeProbab=0.05;
		cost=10;
	};
	class Bullet30W: Bullet30
	{
		TRACER_W_STRONG;
	};
	class Bullet30A10: Bullet30W
	{
		hit=100;indirectHit=50;indirectHitRange=2;
	};
	class Bullet30E: Bullet30
	{
		TRACER_E_STRONG;
	};
	/*!
	\patch 1.22 Date 8/30/2001 by Ondra
	- Fixed: ZSU ammo was too powerfull.
	- Fixed: Vulcan ammo was too powerfull.
	*/
	class Bullet4x23: ExplosiveBullet // zsu bullet
	{ // in fact this is 5 bullets burst
		// ZSU explosive bullets
		hit=40;indirectHit=20;indirectHitRange=2;
		minRange=20;minRangeProbab=0.80;
		midRange=500;midRangeProbab=0.95;
		maxRange=3000;maxRangeProbab=0.05;
		cost=30;
		TRACER_E_STRONG;
	};

	class Bullet4x20: ExplosiveBullet
	{ // in fact this is 5 bullets burst
		// Vulcan explosive bullets
		access = ReadOnly; // cannot be verified - used for addon patching
		hit=30;indirectHit=15;indirectHitRange=2;
		//hit=10;indirectHit=5;indirectHitRange=2;
		minRange=20;minRangeProbab=0.80;
		midRange=500;midRangeProbab=0.95;
		maxRange=3000;maxRangeProbab=0.05;
		cost=30;
		TRACER_W_STRONG;
	};


	// colored tracers
	// template definition

	/*!
	\patch 1.22 Date 8/30/2001 by Ondra
	- Fixed: AI was not using machine guns agains airborne units.
	- Fixed: mgun 7.6 ammo was too strong, 12.7 too weak.
	*/

	class BulletSingleW: BulletSingle {TRACER_W_OPTIONAL;};
	class BulletBurstW: BulletBurst {TRACER_W_OPTIONAL;};
	class BulletFullAutoW: BulletFullAuto {TRACER_W_OPTIONAL;};
	class BulletSilencedSingleW: BulletSilencedSingle {TRACER_N_ALWAYS;};
	class BulletSilencedBurstW: BulletSilencedBurst {TRACER_N_ALWAYS;};
	class BulletSniperW: BulletSniper {TRACER_N_ALWAYS;};
	class Bullet7_6W: Bullet7_6 {TRACER_W_ALWAYS;};
	class Bullet12_7W: Bullet12_7 {TRACER_W_ALWAYS;};

	class BulletSingleE: BulletSingle {TRACER_E_OPTIONAL;};
	class BulletBurstE: BulletBurst {TRACER_E_OPTIONAL;};
	class BulletFullAutoE: BulletFullAuto {TRACER_E_OPTIONAL;};
	class BulletSilencedSingleE: BulletSilencedSingle {TRACER_N_ALWAYS;};
	class BulletSilencedBurstE: BulletSilencedBurst {TRACER_N_ALWAYS;};
	class BulletSniperE: BulletSniper {TRACER_N_ALWAYS;};
	class Bullet7_6E: Bullet7_6 {TRACER_E_ALWAYS;};
	class Bullet12_7E: Bullet12_7 {TRACER_E_ALWAYS;};

	class BulletSingleG: BulletSingle {TRACER_G_OPTIONAL;};
	class BulletBurstG: BulletBurst {TRACER_G_OPTIONAL;};
	class BulletFullAutoG: BulletFullAuto {TRACER_G_OPTIONAL;};
	class BulletSilencedSingleG: BulletSilencedSingle {TRACER_N_ALWAYS;};
	class BulletSilencedBurstG: BulletSilencedBurst {TRACER_N_ALWAYS;};
	class BulletSniperG: BulletSniper {TRACER_N_ALWAYS;};
	class Bullet7_6G: Bullet7_6 {TRACER_G_ALWAYS;};
	class Bullet12_7G: Bullet12_7 {TRACER_G_ALWAYS;};

	class Shell: Default
	{
		model=shell;
		simulation=shotShell;
		simulationStep=0.05;
		cost=1000;
		soundHit[]={Explosions\explosion_large1,db40,1};
		soundFly[]={objects\bulletnoise,db-30,4};

		indirectHitRange=8;
		minRange=20;minRangeProbab=0.75;
		midRange=400;midRangeProbab=0.95;
		maxRange=4000;maxRangeProbab=0.05;

		visibleFire=16; // how much is visible when this weapon is fired
		audibleFire=16;
		visibleFireTime=10; // how long is it visible
	};
	class Shell73: Shell
	{
		hit=100;indirectHit=90;
		cost=500;
		soundHit[]={Explosions\expl1,db40,1};
	};
	class Shell105: Shell73
	{
		hit=150;indirectHit=110;
		cost=200;
		soundHit[]={Explosions\expl2,db40,1};
	};
	class Shell120: Shell105
	{
		hit=200;indirectHit=150;
		cost=300;
		soundHit[]={Explosions\expl4,db40,1};
	};
	class Shell125: Shell120
	{
		hit=180;indirectHit=100;
		cost=300;
	};

	/*!
	\patch 1.28 Date 10/24/2001 by Ondra.
	- Fixed: dammage caused by "Sabot" ammo was too low.
	*/
	class Heat: Shell
	{
		indirectHitRange=1;
	};
	class Heat73: Heat
	{
		hit=400;indirectHit=100;
		cost=500;
	};
	class Heat105: Heat73
	{
		hit=450;indirectHit=150;
		cost=600;
	};
	class Heat120: Heat105
	{
		hit=700;indirectHit=300;
		cost=1000;
	};
	class Heat125: Heat120
	{
		hit=600;indirectHit=300;
		cost=1000;
	};
	class AT3: Default // BMP missile
	{
		hit=500;indirectHit=150;indirectHitRange=2.5;
		minRange=30;minRangeProbab=0.50;
		midRange=200;midRangeProbab=0.95;
		maxRange=500;maxRangeProbab=0.30;
		model=AT1;
		simulation=shotMissile;
		simulationStep=0.01;
		cost=10000;
		soundHit[]={Explosions\explosion_at3,db40,1};
		soundFly[]={weapons\rocketflying,db-40,2};
		soundEngine[]={objects\noise,db-60,1};
		maxSpeed=200;
		irLock=true; // no lock on soldier
		manualControl=true;
		maxControlRange=250; // max range for manual control

		initTime=0.15;
		thrustTime=2.5;
		thrust=350;
		maneuvrability=3.0;

		visibleFire=32; // how much is visible when this weapon is fired
		audibleFire=32;
		visibleFireTime=20; // how long is it visible
	};
	/*!
	\patch 1.05 Date 7/17/2001 by Ondra.
	- Fixed: LAW and RPG are now faster and burn most fuel while in tube.
	*/
	class LAW: AT3 // soldier RPG
	{
		hit=500;indirectHit=150;indirectHitRange=2.5;
		minRange=20;minRangeProbab=0.50;
		midRange=75;midRangeProbab=0.95;
		maxRange=250;maxRangeProbab=0.10;
		model=LAW;
		simulation=shotRocket;
		simulationStep=0.05;
		cost=5000;
		soundHit[]={Explosions\explosion_at3,db30,1};
		soundFly[]={objects\noise,db-80,4};
		maxSpeed=350;
		irLock=true; // no lock on soldier
		manualControl=true;
		maxControlRange=0; // max range for manual control

		initTime=0;
		thrustTime=0.2;
		thrust=2000;
		maneuvrability=0;
	};
	class RPG: LAW // soldier RPG
	{
		model=RPG;
	};

	class CarlGustav : AT3
	{
		hit=800;indirectHit=200;indirectHitRange=2.5;
		minRange=20;minRangeProbab=0.50;
		midRange=150;midRangeProbab=0.95;
		maxRange=600;maxRangeProbab=0.10;
		model=LAW;
		simulation=shotMissile;
		cost=5000;
		soundHit[]={Explosions\explosion_at3,db30,1};
		soundFly[]={weapons\rocketflying,db-40,2};
		maxSpeed=200;
		irLock=true; // no lock on soldier
		manualControl=true;
		maxControlRange=200; // max range for manual control

		initTime=0;
		thrustTime=1.5;
		thrust=300;
		maneuvrability=1.0;
	};
	class AT4 : CarlGustav
	{
		model=RPG;
	}

	class AA : CarlGustav
	{
		/*!
		\patch 1.04 Date 7/14/2001 by Vojta.
		- Improved: AA missile hit increased twice
		\patch 1.28 Date 10/24/2001 by Ondra.
		- Improved: AA missile hit increased.
		*/

//		hit=300;indirectHit=60;indirectHitRange=2.5;
		hit=400;indirectHit=150;indirectHitRange=2;
		minRange=50;minRangeProbab=0.50;
		midRange=400;midRangeProbab=0.95;
		maxRange=1200;maxRangeProbab=0.30;
		airLock = true;
		cost=20000;
		manualControl=false;
		maxControlRange=1000;
		maxSpeed=350;
		thrustTime=3.0;
		thrust=1000;
		maneuvrability=4.0;
	};
	class 9K32 : AA
	{
	};

	class Hellfire: AT3 // Cobra AT
	{
		hit=900;indirectHit=600;indirectHitRange=2.5;
		minRange=50;minRangeProbab=0.50;
		midRange=300;midRangeProbab=0.95;
		maxRange=1500;maxRangeProbab=0.50;
		maxSpeed=350;
		soundHit[]={Explosions\explosion_at3,db40,1};
		cost=20000;
		model = TOW;
		irLock=true;
		laserLock=true;
		manualControl=false;
		maxControlRange=100000; // unlimited control (active weapon)
		maneuvrability=20.0;

		initTime=0.15;
		thrustTime=5.5;
		thrust=1200;
	};
	/*!
	\patch 1.31 Date 11/20/2001 by Ondra.
	- Fixed: Hellfires were not visible on Apache.
	*/
	class HellfireApach : Hellfire
	{
		model = \Apac\hellfire;
		proxyShape = \Apac\Hellfire_proxy;
	};
	class Zuni: Hellfire // rocket (unguided)
	{
		hit=700;indirectHit=300;indirectHitRange=3;
		minRange=50;minRangeProbab=0.20;
		midRange=250;midRangeProbab=0.20;
		maxRange=1000;maxRangeProbab=0.05;
		maxSpeed=1000;
		simulation=shotRocket;
		simulationStep=0.05;
		//soundHit[]={Explosions\hellfire,db30,1};
		cost=2000;
		soundHit[]={Explosions\expl1,db40,1};
		model = ZUNI;
		irLock=false;
		laserLock=false;
		maneuvrability=0.0;
		maxControlRange=0; // max range for manual control

		initTime=0.05;
		thrustTime=3.5;
		thrust=500;
	};
	class Rocket57: Zuni
	{
		soundHit[]={Explosions\expl2,db40,1};
		hit=400;indirectHit=250;indirectHitRange=3;
	};
	class AT6: Hellfire // Hind AT
	{
		model = TOW;
		hit=750;indirectHit=350;indirectHitRange=2.5;
		minRange=50;minRangeProbab=0.30;
		midRange=300;midRangeProbab=0.80;
		maxRange=2000;maxRangeProbab=0.30;
		soundHit[]={Explosions\hellfire,db40,1};
		maxSpeed=200;
		irLock=true;
		laserLock=false;
		maneuvrability=7.0;
	};

	class Maverick: Hellfire // A10 AT
	{
		hit=1900;indirectHit=800;indirectHitRange=2.5;
		model = Maverik;
		minRange=200;minRangeProbab=0.30;
		midRange=600;midRangeProbab=0.80;
		maxRange=2000;maxRangeProbab=0.50;
		thrust=700;
		laserLock=false;
		proxyShape = Maverik_proxy;

	};

	/*!
	\patch 1.31 Date 11/20/2001 by Ondra.
	- Fixed: Mawericks were drawn on Su25 wings instead of Ch29-s.
	*/
	class Ch29T : Maverick
	{
		model = \Su25\Ch_29T_shine;
		proxyShape = \Su25\Ch_29T;
	};

	class LaserGuidedBomb: Default
	{
		hit=5000;indirectHit=3500;indirectHitRange=15;
		minRange=50;minRangeProbab=0.50;
		midRange=300;midRangeProbab=0.95;
		maxRange=2500;maxRangeProbab=0.50;
		soundHit[]={\LaserGuided\expl2,db40,1};
		cost=20000;
		model = Snake;
		proxyShape = Snake;
		irLock=false;
		laserLock=true;
		maxControlRange=100000; // unlimited control (active weapon)
		maneuvrability=16.0;
		sideAirFriction=0.1;
		simulation=shotMissile;
		maxSpeed=100;

		initTime=0;
		thrustTime=0;
		thrust=0;
	};

	class Grenade: Default // soldier
	{
		hit=20;indirectHit=18;indirectHitRange=7;
		minRange=15;minRangeProbab=0.30;
		midRange=80;midRangeProbab=0.55;
		maxRange=150;maxRangeProbab=0.00;
		model=granat;
		cost=40;
		simulation=shotShell;
		simulationStep=0.05;
		//soundHit[]={Explosions\grenade_explosion,db20,1};
		soundHit[]={Explosions\expl3,db20,1};
		soundFly[]={objects\noise,db-90,1};
		soundEngine[]={,db-80,4};

		visibleFire=2; // how much is visible when this weapon is fired
		audibleFire=0.25;
		visibleFireTime=0; // how long is it visible
	};
	class GrenadeHand: Grenade // soldier
	{
		//initTime=2.0;
		
		model=handgrenade.p3d;
		minRange=40;minRangeProbab=0.10;
		midRange=45;midRangeProbab=0.30;
		maxRange=60;maxRangeProbab=0.5;
		visibleFire=2; // how much is visible when this weapon is fired
		audibleFire=0.25;
		visibleFireTime=1;
	};

	class StrokeFistHit: Default // soldier
	{
		// fist hit is simulated by small explosion
		hit=2;indirectHit=0.5;indirectHitRange=0.2;
		minRange=0;minRangeProbab=0.30;
		midRange=0.5;midRangeProbab=0.8;
		maxRange=1;maxRangeProbab=0.00;
		model=granat;
		simulation=shotStroke; // no simulation - direct explosion
		cost=1;
		simulationStep=0.05;
		soundHit[]={,db-90,1};
		soundFly[]={objects\noise,db-90,4};
		soundEngine[]={,db-80,4};

		visibleFire=2; // how much is visible when this weapon is fired
		audibleFire=0.25;
		visibleFireTime=1; // how long is it visible
	};
	class StrokeGunHit: StrokeFistHit
	{
		hit=8;indirectHit=1;indirectHitRange=0.4;
	};

	class MortarShell : Grenade // mortar soldier
	{
		hit=50;indirectHit=40;indirectHitRange=10;
		minRange=45;minRangeProbab=0.50;
		midRange=240;midRangeProbab=0.55;
		maxRange=450;maxRangeProbab=0.00;
		model=mortarShell;
		//soundHit[]={Explosions\hellfire,db40,1};
		soundHit[]={Explosions\expl4,db20,1};
		cost=120;
	};

	class Flare : Grenade
	{
		hit=5;indirectHit=2;indirectHitRange=0.2;
		cost=100;
		simulation=shotIlluminating;
		simulationStep=0.05;
		explosive = false;
		soundHit[]={,0,1};
		lightColor[] = {1, 1, 1, 0};
	};

	class FlareGreen : Flare
	{
		lightColor[] = {0, 1, 0, 0};
	};
	class FlareRed : Flare
	{
		lightColor[] = {1, 0, 0, 0};
	};
	class FlareYellow : Flare
	{
		lightColor[] = {1, 1, 0, 0};
	};

	class SmokeShell : GrenadeHand
	{
		hit=5;indirectHit=2;indirectHitRange=0.2;
		cost=100;
		simulation=shotSmoke;
		explosive = false;
		soundHit[]={,0,1};
		smokeColor[] = {1, 1, 1, 0};

		class Smoke
		{
			interval = 0.01;
			// single cloudlet parameters
			cloudletDuration = 4.0; // time to live (not including fades)
			cloudletAnimPeriod = 1.0; // animation speed
			cloudletSize = 0.25;
			cloudletAlpha = 1.0;
			cloudletGrowUp = 1.5; // grow-up time
			cloudletFadeIn = 0.0; // fade-in time
			cloudletFadeOut = 5.0; // fade-out time
			cloudletAccY = -0.3; // vertical acceleration
			cloudletMinYSpeed = 0; // vertical speed range
			cloudletMaxYSpeed = 10;
			cloudletShape = "cl_basic";
			cloudletColor[] = {1, 1, 1, 0};
			initT = 1000;
			deltaT = -500;
			class Table
			{
				class T1 {maxT = 0; color[] = {0.7, 0.7, 0.7, 1};}
				class T2 {maxT = 1000; color[] = {0.4, 0.4, 0.4, 1};}
			};
			// source parameters
			density = 1.0;
			size = 1.5;
			initYSpeed = 1.0;
			timeToLive = 1e20; // time to live (not including fades)
			in = 3.0; // fade-in time
			out = 0.0; // fade-out time
		};
	};

	class SmokeShellRed : SmokeShell
	{
		smokeColor[] = {1, 0.25, 0, 0};
	};
	class SmokeShellGreen : SmokeShell
	{
		smokeColor[] = {0.2, 0.8, 0.2, 0};
	};

	class TimeBomb : Default
	{
		hit=700;indirectHit=700;indirectHitRange=7;
		minRange=0;minRangeProbab=0.95;
		midRange=5;midRangeProbab=0.90;
		maxRange=10;maxRangeProbab=0.00;
		model=satchel.p3d;
		cost=2000;
		simulation=shotTimeBomb;
		simulationStep=0.1;
		soundHit[]={Explosions\timebomb,db40,1};
		soundFly[]={,0,1};
		soundEngine[]={,0,1};

		visibleFire=0; // how much is visible when this weapon is fired
		audibleFire=0;
		visibleFireTime=0; // how long is it visible
	};
	class PipeBomb : TimeBomb
	{
		simulation=shotPipeBomb;
	};
	
	class Mine : TimeBomb
	{
		hit=750;indirectHit=750;indirectHitRange=5;
		simulation=shotMine;
		model = m19_at_proxy.p3d;
		defaultMagazine = Mine;
	};
	class MineE : Mine
	{
		model = tm_62m.p3d;
		defaultMagazine = MineE;
	};



	class FuelExplosion: Default // secondary explosion
	{ // never used as weapon
		hit=100;indirectHit=80;indirectHitRange=8;
		minRange=10;minRangeProbab=0.90;
		midRange=20;midRangeProbab=0.99;
		maxRange=30;maxRangeProbab=0.80;
		model=;
		simulation=;
		cost=1;
		soundHit[]={Explosions\fuel_explosion,db40,1};
		soundFly[]={,1,1};
		soundEngine[]={,1,4};
	};
};

class CfgRecoils
{
	access = ReadAndCreate;

	empty[]={};
	// time, offset, angle
	impulse[]=
	{
		0.05,0.02,0.2,
		0.10,0.03,-0.1,
		0.30,0,0
	};
	riffleSingle[]= {0.05,0.02,0.04, 0.05,0,0};
	riffleSilenced[]={0.01,0.004,0.01, 0.05,0,0};
	
	LAWSingle[]=
	{
		0.02,0,0,
		0.05,0.08,0.03,
		0.1,0.03,0.015,
		0.2,0,0
	};
	
	sniperSingle[]=
	{
		0.02,0,0,
		0.05,0.01,0.02,
		0.1,0.008,0.018,
		0.2,0,0
	};

	/*!
	\patch 1.12 Date 8/6/2001 by Ondra.
	- Change: Burst recoil curve changed - is stronger, but shorter.
	*/

	riffleBurst3[]= {0.05,0.02,0.04, 0.05,0,0};
/*
	mgunBurst3[]=
	{
		#define coefA 1.5
		0.05,0.02,0.04*coefA, 0.05,0.01,0.01*coefA,
		0.05,0.03,0.05*coefA, 0.05,0.02,0.02*coefA,
		0.05,0.04,0.06*coefA, 0.01,0,0
		#undef coefA
	};
*/

	/*!
	\patch 1.17 Date 8/14/2001 by Marek.
	- Change: MGun recoil effect was too strong, it was weakened.
	\patch 1.27 Date 10/18/2001 by Ondra.
	- Change: MGun recoil effect was still too strong.
	\patch 1.85 Date 9/13/2002 by Viktor.
	- Change: MGun recoil effect was still too strong.
	*/
	mgunBurst3[]=
	{
		#define coefA 0.5
		#define coefO 1.35
		0.03,0.02,0.04*coefO, 0.03,0.01,0.01*coefA,
		0.03,0.03,0.04*coefO, 0.03,0.02,0.02*coefA,
		0.01,0,0
		#undef coefA
		#undef coefO
	};
};

// weapons
class CfgWeapons
{
	//-->Weapons and magazines
	access = ReadAndCreate;

	// define weapons
	// weapon: ammo name, max count, reload time
	class Default
	{
		access = ReadOnlyVerified;

		scopeWeapon = private;
		scopeMagazine = private;

		valueWeapon = 2;
		valueMagazine = 2;

		picture=""; // default picture name is class name
		uiPicture=ivojak;
		ammo=;
		cursor = w_weapon;
		cursorAim = w_lock;
		//cursor = W_lock;

		weaponType=WeaponHardMounted; // default: hard mounted
		magazineType=WeaponNoSlot;
		displayName = ;
		displayNameMagazine = ;
		shortNameMagazine = ;
		nameSound="weapon";
		count=0;
		multiplier=1; // convert from internal to display
		burst=1;
		magazineReloadTime=0;
		reloadTime=1.0;
		sound[]={,1,1};
		soundContinuous=false;
		drySound[]={,1,1};
		reloadSound[]={,1,1};
		reloadMagazineSound[]={,1,1};
		initSpeed=0;
		maxLeadSpeed=50; // max estimated speed km/h
		flash=;
		flashSize=0;
		dispersion=0.002;
		aiDispersionCoefX=1.0;
		aiDispersionCoefY=1.0;
		canLock=LockYes;
		enableAttack=true;
		ffMagnitude=0;
		ffFrequency=1;
		ffCount=1;
		recoil=Empty;
		model="";
		modelSpecial="";
		modelMagazine="\misc\mag_univ.p3d";
		// position and direction of muzzle
		muzzlePos="usti hlavne";
		muzzleEnd="konec hlavne";
		// position and velocity of outgoing empty cartridge
		cartridgePos="nabojnicestart";
		cartridgeVel="nabojniceend"; // was "nabojniceend"

		modelOptics="";
		opticsFlare = true;
		optics = true;
		forceOptics = false;

		opticsZoomMin=0.35;
		opticsZoomMax=0.35;
		distanceZoomMin=400;
		distanceZoomMax=400;

		primary = 10;
		showEmpty = true;
		autoFire = false;
		autoReload = true;

		aiRateOfFire=5.0; // delay between shots at given distance
		aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

		backgroundReload = false;
		reloadAction = ManActReloadMagazine;
		// class is used for weapon, muzzle, magazine and mode
		// weapon level
		muzzles[] = {this};		// muzzles on weapon
		// muzzle level
		magazines[] = {this};	// available magazines for muzzle
		// magazine level
		modes[] = {this};			// modes of magazine (muzzle)
		// mode level

		useAction = false;
		useActionTitle = "";

		canDrop = true;
	};

	class Shell73 : Default
	{
		//--
		scopeWeapon = private;
		scopeMagazine = public;

		displayName = $STR_DN_SHELL;
		displayNameMagazine = $STR_MN_SHELL;
		shortNameMagazine = $STR_SN_SHELL;
		nameSound="shell";

		ammo=Shell73;
		count=15;
		initSpeed=700;

		reloadTime=16.0;
		sound[]={Weapons\gun73,db20,1};
		reloadSound[]={Weapons\reload,db-60,1};
		ffCount=1;
	};
	class Heat73: Shell73
	{
		//--
		ammo=Heat73;
		displayName = $STR_DN_HEAT;
		displayNameMagazine = $STR_MN_HEAT;
		shortNameMagazine = $STR_SN_HEAT;
		nameSound="heat";
	};
	class Gun73: Default
	{
		//--
		scopeWeapon = public;
		scopeMagazine = private;

		displayName=$STR_DN_GUN;
		sound[]={Weapons\gun73,db20,1};
		reloadSound[]={Weapons\reload,db-60,1};

		backgroundReload = true;

		ffMagnitude=1;
		ffFrequency=5;
		magazines[] = {Heat73, Shell73};
	};

	class Shell105: Shell73
	{
		//--
		ammo=Shell105;
		count=35;
		initSpeed=900;
		
		reloadTime=16.0;
		sound[]={Weapons\gun105,db20,1};
		reloadSound[]={Weapons\missload,db-70,1};
	};
	class Heat105: Shell105
	{
		//--
		ammo=Heat105;
		displayName = $STR_DN_HEAT;
		displayNameMagazine = $STR_MN_HEAT;
		shortNameMagazine = $STR_SN_HEAT;
		nameSound="heat";
		sound[]={Weapons\gun105,db20,1};
		reloadSound[]={Weapons\missload,db-70,1};
	};
	class Gun105: Gun73
	{
		//--
		sound[]={Weapons\gun105,db20,1};
		reloadSound[]={Weapons\missload,db-70,1};
		magazines[] = {Heat105, Shell105};
	};
	class Shell120: Shell105
	{
		//--
		ammo=Shell120;
		count=35;
		initSpeed=1500;
		
		reloadTime=8.0;
		sound[]={Weapons\gun120,db20,1};
		reloadSound[]={Weapons\missload,db-70,1};
	};
	class Heat120: Shell120
	{
		//--
		ammo=Heat120;
		displayName = $STR_DN_HEAT;
		displayNameMagazine = $STR_MN_HEAT;
		shortNameMagazine = $STR_SN_HEAT;
		nameSound="heat";
		sound[]={Weapons\gun120,db20,1};
		reloadSound[]={Weapons\missload,db-70,1};
	};
	class Gun120: Gun105
	{
		//--
		sound[]={Weapons\gun120,db20,1};
		reloadSound[]={Weapons\missload,db-70,1};
		magazines[] = {Heat120, Shell120};
	};
	class Shell125: Shell120
	{
		//--
		ammo=Shell125;
		count=35;
		initSpeed=1200;

		reloadTime=8.0;
		sound[]={Weapons\gun125,db20,1};
		reloadSound[]={Weapons\missload,db-70,1};
	};
	class Heat125: Shell125
	{
		//--
		ammo=Heat125;
		displayName = $STR_DN_HEAT;
		displayNameMagazine = $STR_MN_HEAT;
		shortNameMagazine = $STR_SN_HEAT;
		nameSound="heat";
		sound[]={Weapons\gun125,db20,1};
		reloadSound[]={Weapons\missload,db-70,1};
	};
	class Gun125: Gun120
	{
		//--
		sound[]={Weapons\gun125,db20,1};
		reloadSound[]={Weapons\missload,db-70,1};
		magazines[] = {Heat125, Shell125};
	};
	
	class MGun: Default // default
	{
		//--
		ammo=BulletSingle;
		displayName = $STR_DN_MGUN;
		displayNameMagazine = $STR_MN_MGUN;
		shortNameMagazine = $STR_SN_MGUN;
		nameSound="mgun";
		count=100;
		reloadTime=0.25;
		sound[]={"Weapons\M60mgun",db0,1};
		soundContinuous=true;
		reloadSound[]={,1,1};
		initSpeed=900;
		flash=gunfire;
		flashSize=0.5;
		optics = false;
	};
	class Riffle: MGun
	{
		//--
		cursor = w_weapon_T;
		cursorAim = w_weapon_S;
		
		valueWeapon = 4;
		valueMagazine = 4;
		
		ammo=BulletSingle;
		displayName=$STR_DN_RIFLE;
		displayNameMagazine = $STR_MN_MGUN;
		shortNameMagazine = $STR_SN_MGUN;
		weaponType = WeaponSlotPrimary;
		magazineType = WeaponSlotItem;
		count=30;
		reloadTime=0.15;
		magazineReloadTime=5;
		sound[]={42m16,db0,1};
		//drySound[]={"weapons\m16dry",db-70,1};
		reloadSound[]={,1,1};
		reloadMagazineSound[]={"weapons\m16load",db-70,1};

		opticsFlare = false;
		autoReload = false;

		flash=gunfire;
		flashSize=0.5;
		dispersion=0.0001;

		aiDispersionCoefX=2.0;
		aiDispersionCoefY=2.0;

		maxLeadSpeed=23; // max estimated speed km/h
		canLock=LockNo;

		ffMagnitude=0.5;
		ffFrequency=11;
		ffCount=3;

	};

	class StrokeFist: Default
	{
		//--
		scopeWeapon = protected; // do not show in briefing
		scopeMagazine = protected; // enable weapon selection

		ammo = StrokeFistHit;

		weaponType = WeaponNoSlot;
		magazineType = WeaponNoSlot;

		displayName=$STR_DN_FIST;
		displayNameMagazine=$STR_MN_FIST;
		shortNameMagazine=$STR_SN_FIST;

		sound[]={Weapons\grenade_launch,db-50,1};
		reloadSound[]={,db-70,1};

		aiDispersionCoefX=2.0;
		aiDispersionCoefY=2.0;

		enableAttack=false;

		primary = 1; // very low priority
		showEmpty = false;

		autoReload = true;
		burst=0; // do not waste any ammo
		multiplier=0; // do not show any ammo

		magazines[] = {StrokeFist};

		reloadTime=0;
		initSpeed=0;
		canLock=LockNo;

		ffMagnitude=0.1;
		ffFrequency=1;
		ffCount=1;
		recoil=Empty;

		dispersion=0.015;
		
		maxLeadSpeed = 15;
		optics = false;

		muzzlePos="";
		muzzleEnd="";

		count=100;

		canDrop = false;
	};

	class StrokeGun: StrokeFist
	{
		ammo = StrokeGunHit;
		scopeWeapon = private; // not weapon 
		scopeMagazine = protected; // only hidden magazine

		displayName=$STR_DN_STRIKE;
		displayNameMagazine=$STR_MN_STRIKE;
		shortNameMagazine = $STR_SN_STRIKE;
		count=100;

		modelOptics="";
		magazines[] = {StrokeGun};
		primary = 1; // very low priority
	};

	class M16: Riffle
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		valueWeapon = 0;
		valueMagazine = 1;

		model="m16_proxy";
		modelOptics="optika_m16";
		optics = true;
		opticsZoomMin=0.35; //was 0.21
		opticsZoomMax=0.35;

		displayName = $STR_DN_M16;
		displayNameMagazine = $STR_MN_M16;
		shortNameMagazine = $STR_SN_M16;
		drySound[]={"weapons\M16dry",db-40,1};	// empty magazine

		magazines[] = {M16, Mortar};

		modes[] = {Single, Burst};
		class Single
		{
			ammo = BulletSingleW;
			multiplier=1;
			burst=1;
			displayName=$STR_DN_M16;
			dispersion=0.0002;
			sound[]={"Weapons\M16Single",db0,1};
			soundContinuous=false;
			reloadTime=0.07;
			ffCount=1;
			recoil=riffleSingle;
			autoFire = false;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
		class Burst
		{
			ammo = BulletBurstW;
			multiplier=1;
			burst=3;
			displayName=$STR_DN_M16_BURST;
			dispersion=0.0004;
			sound[]={"Weapons\M16Burst",db0,1};
			//sound[]={"",db0,1};
			soundContinuous=false;
			reloadTime=0.1;
			ffCount=3;
			recoil=riffleBurst3;
			autoFire = false;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
	};

	class M16S: M16
	{	// M16 capable of striking
		muzzles[] = {M16Muzzle, M16StrikeMuzzle};
		picture="M16"; // default picture name is class name
		class M16Muzzle: M16
		{
			magazines[] = {M16};
		};
		class M16StrikeMuzzle: StrokeGun
		{
		}
	};

	class M4 : Riffle
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		model="XM-177E2_proxy";
		modelOptics="optika_m16";
		optics = true;
		opticsZoomMin=0.35; //was 0.21
		opticsZoomMax=0.35;

		valueWeapon = 2;
		valueMagazine = 2;

		displayName=$STR_DN_M4;
		displayNameMagazine = $STR_MN_M4;
		shortNameMagazine = $STR_SN_M4;
		drySound[]={"weapons\M16Dry",db-50,1};	// empty magazine

		magazines[] = {M4, Mortar};

		modes[] = {Single, FullAuto};
		class Single
		{
			ammo = BulletSingleW;
			multiplier=1;
			burst=1;
			displayName=$STR_DN_M4;
			dispersion=0.002;
			sound[]={"Weapons\M16Single",db0,1};
			soundContinuous=false;
			reloadTime=0.07;
			ffCount=1;
			recoil=riffleSingle;
			autoFire = false;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
		class FullAuto
		{
			ammo = BulletFullAutoW;
			multiplier=1;
			burst=1;
			displayName = $STR_DN_M4_AUTO;
			dispersion=0.004;
			sound[]={"Weapons\M16Single",db0,1};
//			sound[]={"Weapons\xm-loop2",db0,1};
			//sound[]={"",db0,1};
			soundContinuous=false;
			reloadTime=0.1;
			ffCount=30;
			recoil=riffleBurst3;
			autoFire = true;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
	};
	class AK47: Riffle
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		valueWeapon = 0;
		valueMagazine = 1;

		model="AK_47_proxy";
		modelOptics="optika_ak47";
		optics = true;
		opticsZoomMin=0.35; //was 0.21
		opticsZoomMax=0.35;

		displayName = $STR_DN_AK47;
		displayNameMagazine = $STR_MN_AK47;
		shortNameMagazine = $STR_SN_AK47;
		drySound[]={"weapons\AK74Dry",db-40,1};	// empty magazine
		modes[] = {Single, Burst, FullAuto};
		class Single
		{
			ammo = BulletSingleG;
			multiplier = 1;
			burst=1;
			displayName = $STR_DN_AK47;
			dispersion=0.0002;
			sound[]={"Weapons\AK74Single",db0,1};
			soundContinuous=false;
			reloadTime=0.10;
			ffCount=1;
			recoil=riffleSingle;
			autoFire = false;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
		class Burst
		{
			ammo = BulletBurstG;
			multiplier=1;
			burst=3;
			displayName = $STR_DN_AK47_BURST;
			dispersion=0.0004;
			sound[]={"Weapons\AK74Burst",db0,1};
			//sound[]={"",db0,1};
			soundContinuous=false;
			reloadTime=0.1;
			ffCount=3;
			recoil=riffleBurst3;
			autoFire = false;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
		class FullAuto
		{
			ammo = BulletFullAutoG;
			multiplier=1;
			burst=1;
			displayName = $STR_DN_AK47_AUTO;
			dispersion=0.0008;
			sound[]={"Weapons\AK74Single",db0,1};
			soundContinuous=false;
			reloadTime=0.1;
			ffCount=30;
			recoil=riffleBurst3;
			autoFire = true;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
	};
	class AK47CZ: AK47
	{
		//--
		scopeWeapon = public;
		scopeMagazine = private;

		model="AK_47_v58_proxy";
		modelOptics="optika_ak47";
		optics = true;
		opticsZoomMin=0.35; //was 0.21
		opticsZoomMax=0.35;

		displayName = $STR_DN_AK47_CZ;
		drySound[]={"weapons\AK74Dry",db-40,1};	// empty magazine
		modes[] = {Single, Burst, FullAuto};
		magazines[] = {AK47};
	};
	class AK74: Riffle
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		valueWeapon = 0;
		valueMagazine = 1;

		model="AK_74_proxy";
		modelOptics="optika_ak47";
		optics = true;
		opticsZoomMin=0.35; //was 0.21
		opticsZoomMax=0.35;

		displayName = $STR_DN_AK74;
		displayNameMagazine = $STR_MN_AK74;
		shortNameMagazine = $STR_SN_AK74;
		drySound[]={"weapons\AK74Dry",db0,1};	// empty magazine
		modes[] = {Single, Burst, FullAuto};
		class Single
		{
			ammo = BulletSingleE;
			multiplier = 1;
			burst=1;
			displayName = $STR_DN_AK74;
			dispersion=0.0002;
			sound[]={"Weapons\AK74Single",db0,1};
			soundContinuous=false;
			reloadTime=0.10;
			ffCount=1;
			recoil=riffleSingle;
			autoFire = false;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
		class Burst
		{
			ammo = BulletBurstE;
			multiplier=1;
			burst=3;
			displayName=$STR_DN_AK74_BURST;
			dispersion=0.0004;
			sound[]={"Weapons\AK74Burst",db0,1};
			//sound[]={"",db0,1};
			soundContinuous=false;
			reloadTime=0.1;
			ffCount=3;
			recoil=riffleBurst3;
			autoFire = false;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
		class FullAuto
		{
			ammo = BulletFullAutoE;
			multiplier=1;
			burst=1;
			displayName=$STR_DN_AK74_AUTO;
			dispersion=0.0008;
			sound[]={"Weapons\AK74Single",db0,1};
			soundContinuous=false;
			reloadTime=0.1;
			ffCount=30;
			recoil=riffleBurst3;
			autoFire = true;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
	};
	class AK74SU: AK74
	{
		//--
		scopeWeapon = public;
		scopeMagazine = private;

		model="AK_74_SU_proxy";
		modelOptics="optika_ak47";
		optics = true;
		opticsZoomMin=0.35; //was 0.21
		opticsZoomMax=0.35;

		valueWeapon = 1;
		valueMagazine = 1;

		displayName=$STR_DN_AK74_SU;
		drySound[]={"weapons\AK74Dry",db-40,1};	// empty magazine
		modes[] = {Single, Burst, FullAuto};
		magazines[] = {AK74};
	};

	class HK : Riffle
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		model="HKM5_SD6_proxy";
		modelOptics="optika_HK";

		displayName = $STR_DN_HK;
		displayNameMagazine = $STR_MN_HK;
		shortNameMagazine = $STR_SN_HK;
		drySound[]={"weapons\m16dry",db-70,1};	// empty magazine
		optics = true;
		opticsZoomMin=0.3; //better zoom than M16 because it is a spec ops weapon
		opticsZoomMax=0.3;
		distanceZoomMin=150;
		distanceZoomMax=150;

		valueWeapon = NEVER_DESTROY;
		valueMagazine = NEVER_DESTROY;

		initSpeed=400;
		modes[] = {Single, FullAuto};
		class Single
		{
			ammo = BulletSilencedSingleW;
			multiplier=1;
			burst=1;
			displayName = $STR_DN_HK;
			dispersion=0.002;
			sound[]={"Weapons\hk_singleshot",db-70,1};
			soundContinuous=false;
			reloadTime=0.07;
			recoil=riffleSilenced;
			ffCount=1;
			autoFire = false;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
		class FullAuto
		{
			ammo = BulletSilencedBurstW;
			multiplier=1;
			burst=1;
			displayName=$STR_DN_HK_AUTO;
			dispersion=0.004;
			sound[]={"Weapons\hk_fullauto",db-70,1};
			soundContinuous=true;
			reloadTime=0.1;
			ffCount=1;
			recoil=riffleSilenced;
			autoFire = true;
			aiRateOfFire=5.0; // delay between shots at given distance
			aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero

			useAction = false;
			useActionTitle = "";
		};
	};
	
	class SniperRiffle : Riffle
	{
		//--
		ammo = BulletSingle;
		displayName = $STR_DN_SNIPER_RIFFLE;
		dispersion=0.00003;
		//dispersion=0.0000;
		optics = true;
		opticsZoomMin=0.160;
		opticsZoomMax=0.160;
		sound[]={Weapons\AKFire_Single,db0,1};
		soundContinuous=false;
		reloadTime=0.3;
		recoil=sniperSingle;
		opticsFlare = true;

		valueWeapon = NEVER_DESTROY;
		valueMagazine = NEVER_DESTROY;

		aiRateOfFire=5.0; // delay between shots at given distance
		aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero
		maxLeadSpeed=50; // max estimated speed km/h

		uiPicture = \misc\isniper_new.paa;
	};

	class M21 : SniperRiffle
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		model="M21_proxy";
		modelOptics = "optika_snpierw";

		sound[]={Weapons\m21,db0,1};
		
		count=20;
		ammo = BulletSniperW;
		opticsZoomMin=0.04;
		opticsZoomMax=0.12;
		distanceZoomMin=400;
		distanceZoomMax=80;
		displayName = $STR_DN_M21;
		displayNameMagazine = $STR_MN_M21;
		shortNameMagazine = $STR_SN_M21;
	};
	class SVDDragunov : SniperRiffle
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		model="SVD_dragunov_proxy";
		modelOptics = "optika_snpiere";

		count=10;
		ammo = BulletSniperE;
		opticsZoomMin=0.04;
		opticsZoomMax=0.04;
		distanceZoomMin=300;
		distanceZoomMax=300;
		displayName = $STR_DN_SVD;
		displayNameMagazine = $STR_MN_SVD;
		shortNameMagazine = $STR_SN_SVD;
	};
	
	class Binocular : Default
	{
		//--
		scopeWeapon = public;
		scopeMagazine = protected;

		model="dalekohled_proxy";
		modelOptics="optika_dalekohled";

		valueWeapon = 5;

		weaponType = WeaponSlotBinocular;
		magazineType = WeaponNoSlot;
		ammo=; // no ammo
		displayName = $STR_DN_BINOCULAR;
		reloadTime=0.0;
		sound[]={,0,1};
		canLock=LockNo;

		optics = true;
		forceOptics = true;

		primary = false;
		opticsZoomMin=0.085;
		opticsZoomMax=0.085;

		magazines[] = {};
	};
	/*!
	\patch 1.85 Date 9/10/2002 by Ondra
	- Fixed: When NVG was dropped, it looked like binocular.
	*/
	
	class NVGoggles : Binocular
	{
		//--
		displayName=$STR_DN_NV_GOGGLES;

		showEmpty = false;

		valueWeapon = 5;

		opticsZoomMin=1.0;
		opticsZoomMax=1.0;

		modelOptics="optika_night";
		model="nvg_proxy";
	}
	class Phone : Binocular
	{
		scopeWeapon = protected;
		displayName=$STR_DN_PHONE;

		showEmpty = false;

		opticsZoomMin=1.0;
		opticsZoomMax=1.0;

		model = "sluchatko_proxy";
		modelOptics="";
	}

	class MachineGun7_6: MGun
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		valueWeapon = 2;
		valueMagazine = 2;

		ammo=Bullet7_6;
		count=500;
		reloadTime=0.1;
		//sound[]={36heavymachinegun,0.5,1};
		reloadSound[]={,1,1};
		sound[]={"Weapons\M60mgun",db10,1};
		//sound[]={"final\wpn\MachineGun",db10,1};
		initSpeed=1000;
		flash=gunfire;
		flashSize=0.9;
		dispersion=0.0007;
		maxLeadSpeed=300; // max estimated speed km/h

		aiDispersionCoefX=5; // dispersion used to simulate horizontal burst

		ffMagnitude=0.5;
		ffFrequency=11;
		ffCount=6;
		recoil=mgunBurst3;

		aiRateOfFire=0.5; // delay between shots at given distance
		aiRateOfFireDistance=1000; // at shorter distance delay goes lineary to zero
		autoFire = true;

		optics = true;

		uiPicture = ismg;
	};
	class MachineGun7_6Manual: MachineGun7_6
	{
		//--
		scopeWeapon = private;
		scopeMagazine = private;

		weaponType = WeaponSlotPrimary + WeaponSlotSecondary;
		count=100;
		magazineType = 2 * WeaponSlotItem;
		canLock=LockNo;

		reloadAction = ManActReloadMagazine;
		//reloadAction = ManActReloadMGun;
		autoReload = false;
		reloadMagazineSound[]={"weapons\m16load",db-70,1};
		optics = true;
		opticsFlare = false;
		opticsZoomMin=0.35; //was 0.21
		opticsZoomMax=0.35;
	};
	class M60 : MachineGun7_6Manual
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		ammo=Bullet7_6W;

		model="M60_MG_proxy";
		modelOptics="optika_M60_MG";
		displayName = $STR_DN_M60_MG;
		displayNameMagazine = $STR_MN_M60_MG;
		shortNameMagazine = $STR_SN_M60_MG;
	};
	class PK : MachineGun7_6Manual
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		ammo=Bullet7_6E;

		model="PK_MG_proxy";
		modelOptics="optika_PK";
		sound[]={"Weapons\AK74full",db10,1};
		displayName = $STR_DN_PK;
		displayNameMagazine = $STR_MN_PK;
		shortNameMagazine = $STR_SN_PK;
	};
	class MachineGun12_7: MachineGun7_6
	{
		//--
		ammo=Bullet12_7;
		count=500;
		initSpeed=1000;
		reloadTime=0.1;
		sound[]={"Weapons\m2-50-loop",db10,1};
		flashSize=1.1;
		maxLeadSpeed=350; // max estimated speed km/h
	};
	class Browning : MachineGun12_7
	{
		//--
		ammo=Bullet12_7;
		sound[]={"Weapons\m2-50-loop",db30,1};
	};

	class MachineGun30: MachineGun7_6
	{
		//--
		displayName = $STR_DN_MG30;
		displayNameMagazine = $STR_MN_MG30;
		shortNameMagazine = $STR_SN_MG30;
		ammo=Bullet30;
		count=500;
		reloadTime=0.18;
		initSpeed=1000;
		//sound[]={"Weapons\vulcan",db10,1};
		sound[]={"Weapons\automatic_cannon",db10,1};
		flashSize=1.1;
		maxLeadSpeed=450; // max estimated speed km/h
		optics = true;
	};
	class MachineGun30W: MachineGun30
	{
		ammo=Bullet30W;
	};
	class MachineGun30E: MachineGun30
	{
		ammo=Bullet30E;
	};
	/*!
	\patch 1.78 Date 7/16/2002 by Ondra
	- Fixed: A10 cannon adjusted to cause more dammage.
	*/
	
	class MachineGun30A10: MachineGun30
	{
		//--
		canLock = LockNo;
		sound[]={"Weapons\vulcan",db10,1};
		count=2000;
		multiplier = 4;
	};
	class MachineGun30A10Burst: MachineGun30A10
	{
		//--
		ammo = Bullet30A10;
	};
	class ZsuCannon: MachineGun30
	{
		//--
		ammo=Bullet4x23;
		count=2000;
		multiplier = 4;
		initSpeed=900;
		flashSize=1.2;
		reloadTime=0.1;
		displayName = $STR_DN_AZP23;
		displayNameMagazine = $STR_MN_AZP23;
		shortNameMagazine = $STR_SN_AZP23;
		dispersion=0.0015;
		maxLeadSpeed=900; // max estimated speed km/h

		aiRateOfFire=0.3; // delay between shots at given distance
		aiRateOfFireDistance=3000; // at shorter distance delay goes lineary to zero
	};

	class GrenadeLauncher: Default
	{
		//--
		
		cursor = "t_select.paa";
		
		scopeMagazine = public;

		valueWeapon = 3;
		valueMagazine = 2;

		weaponType = WeaponNoSlot;
		magazineType = 2 * WeaponSlotItem;
		ammo=Grenade;
		displayName = $STR_DN_GRENADE;
		displayNameMagazine = $STR_MN_GRENADE;
		shortNameMagazine = $STR_SN_GRENADE;
		count=1;
//		reloadTime=5.0;
		reloadTime=0;
		sound[]={Weapons\grenade_launch,db-70,1};
		reloadSound[]={Weapons\M16load,db-70,1};
		initSpeed=60;
		canLock=LockNo;

		autoReload = false;

		ffMagnitude=0.1;
		ffFrequency=1;
		ffCount=1;
		recoil=Empty;

		dispersion=0.015;
		aiDispersionCoefY=2.0; // dispersion used to simulate distance est. error
		
		maxLeadSpeed = 15;
		optics = false;

		muzzlePos="usti granatometu";
		muzzleEnd="konec granatometu";

		uiPicture = igrenadier;
	};


	class RiffleGrenadeLauncher
	{
		//--
		scopeWeapon = private;
		scopeMagazine = private;

		weaponType = WeaponSlotPrimary;

		valueWeapon = 0;
		valueMagazine = 0;

		displayName = $STR_DN_RIFLE_GRENADE;
		model="";
		picture="";

		muzzles[] = {RiffleMuzzle, GrenadesMuzzle};
		class RiffleMuzzle : Riffle
		{
			modelOptics="";
			magazines[] = {Riffle};
		};
		class GrenadesMuzzle : GrenadeLauncher
		{
			modelOptics="";
			magazines[] = {GrenadeLauncher, Flare, FlareGreen, FlareRed, FlareYellow};
		}

		canDrop = true;

		uiPicture = igrenadier;
	};
	class M16GrenadeLauncher
	{
		//--
		scopeWeapon = public;
		scopeMagazine = private;

		weaponType = WeaponSlotPrimary;

		valueWeapon = 2;
		valueMagazine = 2;

		displayName = $STR_DN_M16_GRENADE;
		model="m16_granatomet_proxy";
		picture="";
		uiPicture = igrenadier;

		muzzles[] = {M16Muzzle, M203Muzzle};
		class M16Muzzle : M16
		{
			magazines[] = {M16};
		};
		class M203Muzzle : GrenadeLauncher
		{
			displayName=$STR_DN_M203;
			sound[]={weapons\M16GrenadeLaunch, db-70,1};
			magazines[] = {GrenadeLauncher, Flare, FlareGreen, FlareRed, FlareYellow};
			//optics = true;

			//opticsZoomMin=0.40;
			//opticsZoomMax=0.40;

			//modelOptics="optika_m16_granatomet";
		}

		canDrop = true;
	};
	class AK47GrenadeLauncher
	{
		//--
		scopeWeapon = public;
		scopeMagazine = private;

		weaponType = WeaponSlotPrimary;

		valueWeapon = 2;
		valueMagazine = 2;

		displayName = $STR_DN_AK47_GRENADE;
		model="ak_47_granatomet_proxy";

		picture="";
		uiPicture = igrenadier;

		muzzles[] = {AK47Muzzle, GrenadesMuzzle};
		class AK47Muzzle : AK47
		{
			magazines[] = {AK47};
		};
		class GrenadesMuzzle : GrenadeLauncher
		{
			magazines[] = {GrenadeLauncher, Flare, FlareGreen, FlareRed, FlareYellow};
			//optics = true;
			//opticsZoomMin=0.40;
			//opticsZoomMax=0.40;
			//modelOptics="optika_ak47_granatomet";
		}

		canDrop = true;
	};
	class AK74GrenadeLauncher
	{
		//--
		scopeWeapon = public;
		scopeMagazine = private;

		weaponType = WeaponSlotPrimary;

		valueWeapon = 2;
		valueMagazine = 2;

		displayName = $STR_DN_AK74_GRENADE;
		model="ak_74_granatomet_proxy";

		picture="";
		uiPicture = igrenadier;

		muzzles[] = {AK74Muzzle, GrenadesMuzzle};
		class AK74Muzzle : AK74
		{
			magazines[] = {AK74};
		};
		class GrenadesMuzzle : GrenadeLauncher
		{
			magazines[] = {GrenadeLauncher, Flare, FlareGreen, FlareRed, FlareYellow};
			//optics = true;
			//opticsZoomMin=0.40;
			//opticsZoomMax=0.40;
			//modelOptics="optika_ak47_granatomet";
		}

		canDrop = true;
	};

	class Mortar : GrenadeLauncher
	{
		//--
		scopeWeapon = private;
		scopeMagazine = public;

		modelSpecial="m16_mortar_proxy";

		valueMagazine = 5;

		// weaponType = WeaponSlotSecondary;
		magazineType = 2 * WeaponSlotItem;
		ammo=MortarShell;
		displayName = $STR_DN_MORTAR_W;
		displayNameMagazine = $STR_MN_MORTAR_W;
		shortNameMagazine = $STR_SN_MORTAR_W;
		count=1;
		initSpeed=70;

		reloadAction = ManActReloadMortar;

		modes[] = {this, this};
		// autoReload = false;

		// primary=false;
	}

	class Flare : GrenadeLauncher
	{
		//--
		scopeWeapon = private;
		scopeMagazine = public;

		valueMagazine = 5;

		magazineType = WeaponSlotItem;
		count=1;
		ammo=Flare;
		displayName = $STR_DN_FLARE;
		displayNameMagazine = $STR_MN_FLARE;
		shortNameMagazine = $STR_SN_FLARE;
		initSpeed=80;
	};
	class FlareGreen : Flare
	{
		//--
		ammo = FlareGreen;
		displayName = $STR_DN_FLARE_GREEN;
		displayNameMagazine = $STR_MN_FLARE_GREEN;
		shortNameMagazine = $STR_SN_FLARE_GREEN;
	};
	class FlareRed : Flare
	{
		//--
		ammo = FlareRed;
		displayName = $STR_DN_FLARE_RED;
		displayNameMagazine = $STR_MN_FLARE_RED;
		shortNameMagazine = $STR_SN_FLARE_RED;
	};
	class FlareYellow : Flare
	{
		ammo = FlareYellow;
		displayName = $STR_DN_FLARE_YELLOW;
		displayNameMagazine = $STR_MN_FLARE_YELLOW;
		shortNameMagazine = $STR_SN_FLARE_YELLOW;
	};

	class Throw: GrenadeLauncher
	{
		scopeWeapon = protected;
		scopeMagazine = private;

		valueWeapon = 0;

		weaponType = WeaponNoSlot;
		displayName=$STR_DN_THROW;
		sound[]={,db-70,1};
		reloadSound[]={,db-70,1};

		aiDispersionCoefX=2.0;
		aiDispersionCoefY=2.0;

		enableAttack=false;
		
		showEmpty = false;
		autoReload = true;

		magazines[] = {HandGrenade, SmokeShell, SmokeShellRed, SmokeShellGreen};

		canDrop = false;
	};
	class HandGrenade: GrenadeLauncher
	{
		//--
		scopeWeapon = private;
		scopeMagazine = public;

		valueMagazine = 1;

		magazineType = WeaponSlotItem;
		ammo=GrenadeHand;
		displayName=$STR_DN_HAND_GRENADE;
		displayNameMagazine=$STR_MN_HAND_GRENADE;
		shortNameMagazine=$STR_SN_HAND_GRENADE;
		initSpeed=22;
		maxLeadSpeed = 7;
		reloadTime=1.5;
		count=1;
		sound[]={,db-70,1};
	};
	/*
	class FistHit: HandGrenade
	{
		scopeWeapon = private;
		scopeMagazine = protected;

		magazineType = WeaponSlotNone;
		ammo = StrokeFistHit;
		displayName="Fist";
		displayNameMagazine="Fist";
		shortNameMagazine = "Fist";
		initSpeed=10;
		maxLeadSpeed = 7;
		reloadTime=1.5;
		count=1000;

		model=;
		explosive=false;

		sound[]={,db-70,1};
	};
	class RiffleHit: FistHit
	{
		ammo = StrokeGunHit;
		displayName="Strike";
		displayNameMagazine="Strike";
		shortNameMagazine = "Strike";
	};
	*/
	class SmokeShell: HandGrenade
	{
		//--
		valueMagazine = 2;

		ammo=SmokeShell;
		displayName=$STR_DN_SMOKE;
		displayNameMagazine=$STR_MN_SMOKE;
		shortNameMagazine=$STR_SN_SMOKE;
	};
 	class SmokeShellRed: SmokeShell
	{
		//--
		ammo = SmokeShellRed;
		displayName=$STR_DN_SMOKE_RED;
		displayNameMagazine=$STR_MN_SMOKE_RED;
		shortNameMagazine=$STR_SN_SMOKE_RED;
	};
	class SmokeShellGreen: SmokeShell
	{
		//--
		/*!
		\patch 1.78 Date 7/23/2002 by Viktor
		- Fixed: Green smoke shell has its picture in the gear
		*/
		picture = "smokeshell";
		ammo = SmokeShellGreen;
		displayName=$STR_DN_SMOKE_GREEN;
		displayNameMagazine=$STR_MN_SMOKE_GREEN;
		shortNameMagazine=$STR_SN_SMOKE_GREEN;
	};

	class Put : Default
	{
		//--
		scopeWeapon = protected;
		scopeMagazine = private;

		valueWeapon = 0;

		weaponType = WeaponNoSlot;
		displayName=$STR_DN_PUT;
		sound[]={,db-70,1};
		reloadSound[]={,db-70,1};

		canLock=LockNo;
		enableAttack=false;
		optics = false;
		primary=false;
		showEmpty = false;

//		magazines[] = {TimeBomb, PipeBomb, Mine, NVGoggles};
		magazines[] = {TimeBomb, PipeBomb, Mine, MineE};

		canDrop = false;
	};
	class TimeBomb : Default
	{
		scopeWeapon = private;
		scopeMagazine = private;

		magazineType = 2 * WeaponSlotItem;
		ammo=TimeBomb;
		displayName=$STR_DN_TIME_BOMB;
		displayNameMagazine=$STR_MN_TIME_BOMB;
		shortNameMagazine=$STR_SN_TIME_BOMB;

		enableAttack = true;

		valueMagazine = 5;

		count=1;
		initSpeed=0;
		maxLeadSpeed=0;

		useAction = true;
		useActionTitle = $STR_ACTION_PUTBOMB;

		sound[]={People\gravel_L,db-70,1};
	};
	class Mine : TimeBomb
	{
		//--
		scopeMagazine = public;
		enableAttack = false;

		magazineType = 2 * WeaponSlotItem;
		ammo=Mine;
		displayName=$STR_DN_MINE;
		displayNameMagazine=$STR_MN_MINE;
		shortNameMagazine=$STR_SN_MINE;
	}
	/*!
	\patch 1.78 Date 7/16/2002 by Viktor
	- Fixed: Picture equip\m\m_minee.paa not found when using Russion mine.
	*/
	
	class MineE : TimeBomb
	{
		//--
		scopeMagazine = public;
		enableAttack = false;

		picture = "mine";

		magazineType = 2 * WeaponSlotItem;
		ammo=MineE;
		displayName=$STR_DN_MINE;
		displayNameMagazine=$STR_MN_MINE;
		shortNameMagazine=$STR_SN_MINE;
	}
	
	class PipeBomb : Put
	{
		//--
		scopeWeapon = private;
		scopeMagazine = public;

		enableAttack = true;

		valueMagazine = 5;

		magazineType = 2 * WeaponSlotItem;
		ammo=PipeBomb;
		displayName=$STR_DN_PIPE_BOMB;
		displayNameMagazine=$STR_MN_PIPE_BOMB;
		shortNameMagazine=$STR_SN_PIPE_BOMB;

		count=1;
		initSpeed=0;
		maxLeadSpeed=0;

		showEmpty = false;
		
		useAction = true;
		useActionTitle = $STR_ACTION_PUTBOMB;

		sound[]={People\gravel_L,db-70,1};
		magazines[] = {this};
/*
		magazines[] = {this};
		modes[] = {this, TouchOff};
		class TouchOff : Default
		{
			ammo = "";
			displayName="Touch Off";
			reloadTime=0.0;
			sound[]={,0,1};
			magazines[] = {};

			useAction = true;
			useActionTitle = "Touch Off Pipe Bomb(s)";
		};
*/
	};

	class LAWLauncher: Default
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		weaponType = WeaponSlotSecondary;
		magazineType = 2 * WeaponSlotItem;

		valueWeapon = 10;
		valueMagazine = 5;

		model="law_proxy";
		modelOptics="optika_LAW";

		ammo=LAW;

		displayName=$STR_DN_LAW;
		displayNameMagazine=$STR_MN_LAW;
		shortNameMagazine=$STR_SN_LAW;
		count=1;
		magazineReloadTime=12;
		reloadTime=0.5;
		sound[]={Weapons\at_launch,db-40,1};
		reloadMagazineSound[]={Weapons\at_load,db-70,1};
		initSpeed=30;
		canLock=LockNo;

		reloadAction = ManActReloadAT;
		autoReload = false;

		ffMagnitude=0.1;
		ffFrequency=1;
		ffCount=1;
		recoil=LAWSingle;
		aiRateOfFire=10.0; // delay between shots at given distance
		aiRateOfFireDistance=500; // at shorter distance delay goes lineary to zero
		optics = true;
		primary=false;

		opticsZoomMin=0.18;
		opticsZoomMax=0.18;

		distanceZoomMin=100;
		distanceZoomMax=100;

		uiPicture = islaw;
	};
	class RPGLauncher: LAWLauncher
	{
		//--
		model="RPG7_proxy";
		modelOptics="optika_RPG";

		ammo=RPG;
		displayName=$STR_DN_RPG;
		displayNameMagazine=$STR_MN_RPG;
		shortNameMagazine=$STR_SN_RPG;
	};
	
	class CarlGustavLauncher : LAWLauncher
	{
		//--
		magazineType = 6 * WeaponSlotItem;
		model="carlgustav84_proxy";
		modelOptics="optika_CarlGustav";
		canLock=LockCadet;

		valueWeapon = 20;
		valueMagazine = 10;

		ammo=CarlGustav;
		displayName=$STR_DN_CARL_GUSTAV;
		displayNameMagazine=$STR_MN_CARL_GUSTAV;
		shortNameMagazine=$STR_SN_CARL_GUSTAV;

		uiPicture = isat;
	};
	class AT4Launcher : CarlGustavLauncher
	{
		//--
		model="AT-4_SpigotB_proxy";
		modelOptics="optika_AT4_Spigot_B";

		ammo=AT4;
		displayName=$STR_DN_AT4;
		displayNameMagazine=$STR_MN_AT4;
		shortNameMagazine=$STR_SN_AT4;
	};

	/*!
	\patch 1.22 Date 8/30/2001 by Ondra
	- Fixed: AI was not using AA missile against fast moving units.
	*/
	class AALauncher: CarlGustavLauncher
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		model="Stinger_proxy";
		modelOptics="optika_stinger";
		magazineType = 6 * WeaponSlotItem;
		canLock=LockYes;

		valueWeapon = 20;
		valueMagazine = 10;

		ammo=AA;
		displayName=$STR_DN_AA;
		displayNameMagazine=$STR_MN_AA;
		shortNameMagazine=$STR_SN_AA;
		initSpeed=30;
		maxLeadSpeed=600; // max estimated speed km/h
		primary=false;

		uiPicture = isaa;
	};
	class 9K32Launcher : AALauncher
	{
		//--
		model="9K32_Strela_proxy";
		modelOptics="optika_strela";
		ammo=9K32;
		displayName=$STR_DN_9K32;
		displayNameMagazine=$STR_MN_9K32;
		shortNameMagazine=$STR_SN_9K32;
	}

	class AT3Launcher: CarlGustavLauncher
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		weaponType = WeaponHardMounted;
		magazineType = WeaponNoSlot;
		ammo=AT3;
		displayName=$STR_DN_AT3;
		displayNameMagazine=$STR_MN_AT3;
		shortNameMagazine=$STR_SN_AT3;
		count=6;
		reloadTime=30.0;
		sound[]={Weapons\missile,db-50,1};
		reloadSound[]={Weapons\missload,db-70,1};
		initSpeed=30;
		primary = 10;
		canLock = LockYes;

		autoReload = true;
	};
	/*!
	\patch 1.24 Date 9/20/2001 by Ondra
	- Fixed: Hellfire and Maverick: AI delay between launches was too long.
	*/

	class HellfireLauncher: AT3Launcher
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		ammo=Hellfire;
		displayName=$STR_DN_TOW;
		displayNameMagazine=$STR_MN_TOW;
		shortNameMagazine=$STR_SN_TOW;
		count=8;
		reloadTime=0.5;
		sound[]={Weapons\TOW,db-30,1};
		reloadSound[]={Weapons\missload,db-70,1};
		initSpeed=0;

		aiRateOfFire=13.0; // delay between shots at given distance
		aiRateOfFireDistance=2500; // at shorter distance delay goes lineary to zero
	};
	class ZuniLauncher38: AT3Launcher
	{
		//--
		scopeWeapon = public;
		scopeMagazine = public;

		ammo=Zuni;
		displayName=$STR_DN_FFAR;
		displayNameMagazine=$STR_MN_FFAR;
		shortNameMagazine=$STR_SN_FFAR;
		count=38;
		reloadTime=0.1;
		aiRateOfFire=0.4; // delay between shots at given distance
		aiRateOfFireDistance=1000; // at shorter distance delay goes lineary to zero
		sound[]={Weapons\rocket1,db-30,1};
		reloadSound[]={Weapons\missload,db-70,1};
		initSpeed=44;
//		magazine=4;
		//magazineReloadTime=2;
		autoFire = true;
	};
	class Rocket57x64: ZuniLauncher38
	{
		//--
		ammo=Rocket57;
		displayName=$STR_DN_ROCKET_57;
		displayNameMagazine=$STR_MN_ROCKET_57;
		shortNameMagazine=$STR_SN_ROCKET_57;
		count=64;
	};
	class Rocket57x192: Rocket57x64
	{
		//--
		count=192;
	};
	class HellfireLauncherCobra: HellfireLauncher
	{
		//--
		count=8;
	};
	class HellfireLauncherHind: HellfireLauncher
	{
		//--
		ammo=AT6;
		displayName=$STR_DN_AT6;
		displayNameMagazine=$STR_MN_AT6;
		shortNameMagazine=$STR_SN_AT6;
		count=8;
		initSpeed=30;
	};
	class MaverickLauncher: HellfireLauncher
	{
		//--
		ammo=Maverick;
		displayName=$STR_DN_MAVERICK;
		displayNameMagazine=$STR_MN_MAVERICK;
		shortNameMagazine=$STR_SN_MAVERICK;
		count=8;
		reloadTime=0.5;
		sound[]={Weapons\Missile,db-50,1};
		reloadSound[]={,0,1};
		initSpeed=0;
	};
	class CarHorn: Default
	{
		//--
		scopeWeapon = protected; // do not show in briefing

		ammo=; // no ammo
		displayName=$STR_DN_HORN;
		reloadTime=0.0;
		drySound[]={Vehicles\carhorn,db-20,1};
		canLock=LockNo;
		optics = false;
		enableAttack=false;

		magazines[] = {};
	};
	class TruckHorn: CarHorn
	{
		//--
		drySound[]={Vehicles\carhorn,db-20,0.7};
	};
	class SportCarHorn: CarHorn
	{
		//--
		drySound[]={Vehicles\sportcarhorn,db-20,1};
	};
};

enum ManAction
{
	#define ACTION(x) ManAct##x,
	#include "manActions.hpp"
	#undef ACTION
	ManActN // count of enum values
};
class CfgCloudlets
{
	access=ReadAndCreate;
	class Explosion
	{
		access=3;
		cloudletDuration="0.25+(random 0.1)";
		cloudletAnimPeriod=0.650000;
		//cloudletSize=0.150 +(random 0.15);
		cloudletSize="0.375 +(random 0.35)";
		cloudletAlpha="0.25+(random 0.35000)";
		//cloudletGrowUp=0.01000;
		//cloudletFadeIn=0.020000;
		//cloudletFadeOut=0.4500000;
		cloudletGrowUp=0.00700;
		cloudletFadeIn=0.015000;
		cloudletFadeOut=0.4000000;

		cloudletAccY=0.200200000;
		cloudletMinYSpeed="3+(random 3)";
		cloudletMaxYSpeed=7;
		cloudletShape="cl_fire";
		cloudletColor[]={1,1,1,0};
		interval=0.0010000;
		size= "2.0+(random 1)";
		sourceSize= "0.45+(random 0.6500)";
		timeToLive=0;
		initT=0;
		deltaT=4000;

		class Table
		{
			class T1 { maxT=0; color[]={1,1,1,0}; };
			class T2 { maxT=500; color[]={1,1,0,0};	};
			class T3 { maxT=800; color[]={0,0,0,0};	};
			class T4 { maxT=1000; color[]={1,1,1,0}; };
			class T5 { maxT=1800; color[]={0.18,0.18,0.18,0}; };
			class T6 { maxT=2000; color[]={0.1,0.1,0.1,0}; };
			class T7 { maxT=4000; color[]={0.25,0.25,0.251,0}; };
		};
		initYSpeed="3+(random 4.5)";
		density="0.62 + (random 0.8)";
	};
#define CS_SPEED	0.65 //0.8
	class CraterSmoke1
	{
		access = ReadOnlyVerified;
		interval = 0.05 / CS_SPEED;	
		cloudletAnimPeriod = 1 * CS_SPEED;
		cloudletSize = 2.0;
		cloudletAlpha = 1.0; // not used
		cloudletGrowUp = 1.0 * CS_SPEED;
		cloudletFadeIn = 0.1 * CS_SPEED;
		cloudletDuration = 3.0 * CS_SPEED;
		cloudletFadeOut = 1.5 * CS_SPEED;
		cloudletAccY = -0.1;
		cloudletMinYSpeed = 3.0;
		cloudletMaxYSpeed = 5.0;
		cloudletColor[] = {1, 1, 1, 0};
		initT = 500;
		deltaT = -50 * CS_SPEED;
		class Table
		{
			class T0 {maxT = 0; color[] = {1, 1, 1, .5};} //1,1,1
			class T1 {maxT = 500; color[] = {.5, .5, .5, .5};} //0.5,0.5,0.5
		}
		cloudletShape = "cl_basic";
		density = .5;		// used for alpha 1.0 / 0.7
		size = 1.0;					// source size
		timeToLive = 0.4 * CS_SPEED;
		in = 0.0 * CS_SPEED;
		out = 0.0 * CS_SPEED;
		initYSpeed = 5.0 / CS_SPEED;
	};
	class CraterSmoke2
	{
		access = ReadOnlyVerified;
		interval = 0.1 / CS_SPEED;	
		cloudletAnimPeriod = 1 * CS_SPEED;
		cloudletSize = 2.0;
		cloudletAlpha = 1.0; // not used
		cloudletGrowUp = 1.0 * CS_SPEED;
		cloudletFadeIn = 0.1 * CS_SPEED;
		cloudletDuration = 2.5 * CS_SPEED;
		cloudletFadeOut = 1.5 * CS_SPEED;
		cloudletAccY =-0.1;
		cloudletMinYSpeed = 0.0;
		cloudletMaxYSpeed = 3.0;
		cloudletColor[] = {1, 1, 1, 0};
		initT = 0;
		deltaT = 50 * CS_SPEED;
		class Table
		{
			class T0 {maxT = 0; color[] = {0.308, 0.23, 0.16, 0};} //1,1,1  0.390,0.295,0.214 0.308, 0.23, 0.16
			class T1 {maxT = 200; color[] = {0.308, 0.23, 0.16, 0};} //1,1,1  0.390,0.295,0.214 0.308, 0.23, 0.16
		}
		cloudletShape = "cl_basic";
		density = 0.5 / 0.7;		// used for alpha
		size = 1.0;					// source size
		timeToLive = 1.0 * CS_SPEED;
		in = 0.0 * CS_SPEED;
		out = 1.0 * CS_SPEED;
		initYSpeed = 0 / CS_SPEED;
	};
	class CraterSmoke3
	{
		access = ReadOnlyVerified;
		interval = 0.1 / CS_SPEED;	
		cloudletAnimPeriod = 1 * CS_SPEED;
		cloudletSize = 1.0;
		cloudletAlpha = 0.3; // not used
		cloudletGrowUp = 1.0 * CS_SPEED;
		cloudletFadeIn = 0.5 * CS_SPEED;
		cloudletDuration = 3 * CS_SPEED;
		cloudletFadeOut = 1 * CS_SPEED;
		cloudletAccY = -0.1 * CS_SPEED;
		cloudletMinYSpeed = 3.0;
		cloudletMaxYSpeed = 5.0;
		cloudletColor[] = {1, 1, 1, 0};
		initT = 500;
		deltaT = -80 * CS_SPEED;
		class Table
		{
			class T0 {maxT = 0; color[] = {1, 1, 1, 0};}
		}
		cloudletShape = "cl_basic";
		density = 0.5 / 0.7;		// used for alpha	
		size = 1.0;					// source size
		timeToLive = 2.0 * CS_SPEED;
		in = 0.2 * CS_SPEED;
		out = 0.0 * CS_SPEED;
		initYSpeed = 5.0 / CS_SPEED;
	};
	class CraterDustSmall
	{
		access = ReadOnlyVerified;
		interval = 0.01;	
		cloudletSize = 1;	// not used
		cloudletAlpha = 0.6; // 0.6
		cloudletDuration = 0.2;
		cloudletAnimPeriod = 1;
		cloudletGrowUp = 0.6;
		cloudletFadeIn = 0;
		cloudletFadeOut = 0.6;
		cloudletAccY = -3.5; //-3.5
		cloudletMinYSpeed = -20; //-20
		cloudletMaxYSpeed = 10; //10
		cloudletColor[] = {0.308, 0.23, 0.16, 0}; //was .25 for first
		initT = 0; // was 0
		deltaT = 0; //was 0
		class Table
		{
			class T0 {maxT = 0; color[] = {1, 1, 1, 0};}
		}
		cloudletShape = "cl_basic";
		size = 9.2; //0.2
		sourceSize = 0.02; //0.02
	};
	class CraterBlood : CraterDustSmall
	{
		access = ReadOnlyVerified;
		interval = 0.005;	
		cloudletAlpha = 0.3; //0.5
		cloudletDuration = 0.2;//0.5
		cloudletAnimPeriod = 1;
		cloudletGrowUp = 0.2;//0.3
		cloudletFadeIn = 0;
		cloudletFadeOut = 0.3;
		cloudletAccY = -1;
		cloudletMinYSpeed = -10;
		cloudletMaxYSpeed = 10;

		cloudletShape = "cl_water";
		cloudletColor[] = {0.35, 0.00, 0.05, 0};//

		size = 0.10;//.15
		sourceSize = 0.05;
	};
	class CraterWater : CraterDustSmall
	{
		access = ReadOnlyVerified;
		interval = 0.01;	
		cloudletAlpha = 1;
		cloudletDuration = 0.3;
		cloudletAnimPeriod = 1;
		cloudletGrowUp = 0.3;
		cloudletFadeIn = 0;
		cloudletFadeOut = 0.2;
		cloudletAccY = -10;//-10
		cloudletMinYSpeed = -100;//100
		cloudletMaxYSpeed = 100;//100

		cloudletShape = "cl_water";
		cloudletColor[] = {0.308, 0.23, 0.16, 0.5};

		size = 0.02;//0.02
		sourceSize = 0.02;//0.02
	};
	class CraterDustBig : CraterDustSmall
	{
		access = ReadOnlyVerified;
		cloudletDuration = 2;
		cloudletGrowUp = 0.2;
		cloudletFadeIn = 0.2;
		cloudletFadeOut = 1.5;
		cloudletAccY = -8;
		cloudletMinYSpeed = -15;
		cloudletMaxYSpeed = 15;
	};
	class CloudletsMissile
	{
		access = ReadOnlyVerified;
		interval = 0.005;	
		cloudletSize = 3;
		cloudletAlpha = 0.5;
		cloudletDuration = 0.45;
		cloudletAnimPeriod = 1;
		cloudletGrowUp = 0.05;
		cloudletFadeIn = 0.0;
		cloudletFadeOut = 0.5;
		cloudletAccY = 0;
		cloudletMinYSpeed = -10;
		cloudletMaxYSpeed = 10;
		cloudletColor[] = {1, 1, 1, 0};
		initT = 0;
		deltaT = 0;
		class Table
		{
			class T0 {maxT = 0; color[] = {1, 1, 1, 0};}
		}
		cloudletShape = "missileSmoke";
	};
	class CloudletsMissileManual: CloudletsMissile
	{
		cloudletSize = 0.5;
		cloudletAlpha = 0.4;
	};
	class CloudletsScud: CloudletsMissile
	{
		cloudletSize = 8;
		cloudletAlpha = 0.5;
		cloudletColor[] = {1, 1, 1, 0};

		cloudletFadeIn = 0;
		cloudletDuration = 1.5;
		cloudletFadeOut = 0.5;

		cloudletGrowUp = 1;

		cloudletAccY = 0;
		cloudletMinYSpeed = -1000;
		cloudletMaxYSpeed = 1000;

		interval = 0.02;
		size = 8.0;
		sourceSize = 1.0;
	};
};

// gun fire (used in tanks, ships etc.)
class WeaponFireGun
{
	access = ReadOnlyVerified;
	// single cloudlet parameters
	cloudletDuration = 0.2;		// time to live (not including fades)
	cloudletAnimPeriod = 1.0; // animation speed
	cloudletSize = 1.0;
	cloudletAlpha = 1.0;
		cloudletGrowUp = 0.2;			// grow-up time
	cloudletFadeIn = 0.01;		// fade-in time
	cloudletFadeOut = 0.5;		// fade-out time
	cloudletAccY = 0;					// vertical acceleration
	cloudletMinYSpeed = -100;	// vertical speed range
	cloudletMaxYSpeed = 100;
	cloudletShape = "cl_fired";
	cloudletColor[] = {1, 1, 1, 0};
	// source parameters
	interval = 0.01;
	size = 3;
	sourceSize = 0.5;
	timeToLive = 0;

	initT = 4500;
	deltaT = -3000;
	class Table
	{
		class T0 {maxT = 0; color[] = {0.82, 0.95, 0.93, 0};}
		class T1 {maxT = 200; color[] = {0.75, 0.77, 0.9, 0};}
		class T2 {maxT = 400; color[] = {0.56, 0.62, 0.67, 0};}
		class T3 {maxT = 600; color[] = {0.39, 0.46, 0.47, 0};}
		class T4 {maxT = 800; color[] = {0.24, 0.31, 0.31, 0};}
		class T5 {maxT = 1000; color[] = {0.23, 0.31, 0.29, 0};}
		class T6 {maxT = 1500; color[] = {0.21, 0.29, 0.27, 0};}
		class T7 {maxT = 2000; color[] = {0.19, 0.23, 0.21, 0};}
		class T8 {maxT = 2300; color[] = {0.22, 0.19, 0.1, 0};}
		class T9 {maxT = 2500; color[] = {0.35, 0.2, 0.02, 0};}
		class T10 {maxT = 2600; color[] = {0.62, 0.29, 0.03, 0};}
		class T11 {maxT = 2650; color[] = {0.59, 0.35, 0.05, 0};}
		class T12 {maxT = 2700; color[] = {0.75, 0.37, 0.03, 0};}
		class T13 {maxT = 2750; color[] = {0.88, 0.34, 0.03, 0};}
		class T14 {maxT = 2800; color[] = {0.91, 0.5, 0.17, 0};}
		class T15 {maxT = 2850; color[] = {1, 0.6, 0.2, 0};}
		class T16 {maxT = 2900; color[] = {1, 0.71, 0.3, 0};}
		class T17 {maxT = 2950; color[] = {0.98, 0.83, 0.41, 0};}
		class T18 {maxT = 3000; color[] = {0.98, 0.91, 0.54, 0};}
		class T19 {maxT = 3100; color[] = {0.98, 0.99, 0.6, 0};}
		class T20 {maxT = 3300; color[] = {0.96, 0.99, 0.72, 0};}
		class T21 {maxT = 3600; color[] = {1, 0.98, 0.91, 0};}
		class T22 {maxT = 4200; color[] = {1, 1, 1, 0};}
	}
};

// machine gun fire (used in tanks, ships etc.)
class WeaponFireMGun : WeaponFireGun
{
	cloudletDuration = 0;			// time to live (not including fades)
	cloudletGrowUp = 0.06;		// grow-up time
	cloudletFadeIn = 0;				// fade-in time
	cloudletFadeOut = 0.12;		// fade-out time

	interval = 0.005;
	size = 0.12;
	sourceSize = 0.01;

	initT = 3200;
	deltaT = -4000;
};

// gun clouds (used in tanks, ships etc.)
class WeaponCloudsGun
{
	access = ReadOnlyVerified;
	// single cloudlet parameters
	cloudletDuration = 0.3;		// time to live (not including fades)
	cloudletAnimPeriod = 1.0; // animation speed
	cloudletSize = 1.0;
	cloudletAlpha = 1.0;
	cloudletGrowUp = 1;				// grow-up time
	cloudletFadeIn = 0.01;		// fade-in time
	cloudletFadeOut = 1;			// fade-out time
	cloudletAccY = 0.4;				// vertical acceleration
	cloudletMinYSpeed = 0.2;	// vertical speed range
	cloudletMaxYSpeed = 0.8;
	cloudletShape = "cl_basic";
	cloudletColor[] = {1, 1, 1, 0};
	// source parameters
	interval = 0.05;
	size = 3;
	sourceSize = 0.5;
	timeToLive = 0;

	initT = 0;
	deltaT = 0;
	class Table
	{
		class T0 {maxT = 0; color[] = {1, 1, 1, 0};}
	}
};

// gun clouds (used in tanks, ships etc.)
class WeaponCloudsMGun : WeaponCloudsGun
{
	access = ReadOnlyVerified;

	cloudletGrowUp = 0.05;			// grow-up time
	cloudletFadeIn = 0;		// fade-in time
	cloudletFadeOut = 0.1;		// fade-out time
	cloudletDuration = 0.05;		// time to live (not including fades)

	cloudletAlpha = 0.3;

	cloudletAccY = 0;					// vertical acceleration
	cloudletMinYSpeed = -100;	// vertical speed range
	cloudletMaxYSpeed = 100;

	interval = 0.02;
	size = 0.3;
	sourceSize = 0.02;
};

/*!
	\patch 1.14 Date 8/9/2001 by Ondra
	- Fixed: Texture mapping on flags (about 1/8 of texture was skipped).
*/
class CfgCloth
{
	class Flag
	{
		//stepSize = 0.002; // high end - perfect stable
		stepSize = 0.005; // stable
		//stepSize = 0.01; // nearly stable
		//stepSize = 0.02; // slightly unstable
		colPoints = 9; // number of knots in x-direction
		rowPoints = 9; // number of knots in y-direction

		stretchCoef = 1000;  // stretch force coeficient
		fricCoef = 1; // friction coeficient
		windCoef = 10; // wind coeficient
		gravCoef = 1; // gravity coeficient
	};
};


// vehicles battle types
#define VSoft 0
#define VArmor 1
#define VAir 2

// destruction types
enum
{
	DestructNo,
	DestructBuilding,
	DestructEngine,
	DestructTree,
	DestructTent,
	DestructMan,
	DestructDefault,
};

// InGameUI unit info types
enum UnitInfoType
{
	UnitInfoSoldier,
	UnitInfoTank,
	UnitInfoCar,
	UnitInfoShip,
	UnitInfoAirplane,
	UnitInfoHelicopter,
};

#define CanSeeRadar 1
#define CanSeeEye 2
#define CanSeeOptics 4
#define CanSeeEar 8
#define CanSeeCompass 16 
#define CanSeeRadarC CanSeeRadar+CanSeeCompass
#define CanSeeAll 31

#define mag_xx(a,b) class _xx_##a {magazine = a; count = b;}

#define DefaultWestMagazines(x) \
	class TransportMagazines \
	{ \
		mag_xx(M16,30*x); \
		mag_xx(M60,5*x); \
		mag_xx(HandGrenade,10*x); \
		mag_xx(M21,10*x); \
		mag_xx(LAWLauncher,3*x); \
		mag_xx(GrenadeLauncher,3*x); \
	};
#define DefaultEastMagazines(x) \
	class TransportMagazines \
	{ \
		mag_xx(AK74,30*x); \
		mag_xx(PK,5*x); \
		mag_xx(HandGrenade,10*x); \
		mag_xx(SVDDragunov,10*x); \
		mag_xx(RPGLauncher,3*x); \
		mag_xx(GrenadeLauncher,3*x); \
	};
#define DefaultGuerMagazines(x) \
	class TransportMagazines \
	{ \
		mag_xx(AK47,30*x); \
		mag_xx(HandGrenade,10*x); \
		mag_xx(PK,5*x); \
		mag_xx(LAWLauncher,3*x); \
		mag_xx(GrenadeLauncher,3*x); \
	};

// vehicle types
class CfgVehicles
{
	// define enum value for XML docs
	//-->Vehicle
	access = ReadAndCreate;
	//default definitions valid for all units
	// NOTE: DO NOT enter any classes other than vehicle types

	vehicleClass[]=
	{
		Men, Car, Armored, Air, Support,
		Camera, Objects, Ammo, Sounds, Mines
	};

	/*!
	\patch 1.28 Date 10/22/2001 by Ondra
	- Fixed: Tank drivers were not able to see enemy.
	*/
	class All
	{
		//-- any vehicle
		access = ReadOnlyVerified;

		scope=private;
		reversed=true; // all vehicles are reversed - except static
		autocenter=true; // normal vehicle are autocentered
		animated=true; // model is animated and cannot be assumed static

		mapSize = 10;

		vehicleClass="";

		icon="unknown_object";

		side=TSideUnknown;
		displayName=$STR_DN_UNKNOWN;
		nameSound="target";

		weaponSlots = 0;

		// targets recognition
		camouflage=2; // how dificult to spot - bigger - better spotable
		audible=1; // audible - bigger - better heard
		accuracy=0; // accuracy needed to recognize type of this target
		
		spotableNightLightsOff=0.05; // night spotability coeficients
		spotableNightLightsOn=4;

		insideSoundCoef = 0.5;

		outGunnerMayFire = false;
		viewGunnerInExternal = false;
		unloadInCombat = false;
		
		visibleNightLightsOff=0.1; // night target recognition 
		visibleNightLightsOn=0.2;
		
		// vehicle sensitivity, most vehicles see and hear less than man
		sensitivity=1; // sensor sensitivity
		sensitivityEar=0.0075;

		// default properties
		model=bmp; // typical size vehicle
		picture=; // use picture from model
		simulation=;
		destrType=DestructDefault;
		armor=100;
		armorLights=0.4;
		armorStructural=1.0; // structural dammage

		cost=500000;
		fuelCapacity=0;

		extCameraPosition[]={0,2,-20};

		steerAheadSimul=0.3; // steer point on path properties
		steerAheadPlan=0.4;

		minFireTime=20; // minimal time spent firing on single target

		predictTurnSimul=1.2; // brake before turns
		predictTurnPlan=1.0;

		precision=5; // vehicle movement precision
		brakeDistance=5; // vehicle movement precision
		formationX=10; // formation spacing
		formationZ=20;

		formationTime=10;

		irTarget = true;

		irScanRangeMin=0;
		irScanRangeMax=0;
		irScanToEyeFactor=1;
		irScanGround=true;

		laserTarget = false;
		laserScanner = false;

		preferRoads=false;
		unitInfoType=UnitInfoTank;
		hideUnitInfo=false;
		nightVision=false;

		commanderCanSee = CanSeeAll;
		gunnerCanSee = CanSeeOptics+CanSeeEar+CanSeeCompass;
		driverCanSee = CanSeeEye+CanSeeEar+CanSeeCompass;

		maxSpeed=80; // max speed on level road, km/h
		secondaryExplosion=-1;
		// value<0: calculate from fuel/ammo cargo + tanks and multiply with abs(value)
		// value>0: use value directly as hit in FuelExplosion

		hasDriver=true;
		hasGunner=false;
		hasCommander=false;
		driverIsCommander=false; // default: if there is no commander, gunner is commander

		// hide weapons when unit is sitting on given position
		hideWeaponsDriver = true;
		hideWeaponsGunner = true;
		hideWeaponsCommander = true;
		hideWeaponsCargo = false;

		getInRadius = 2.5;

		class ViewPilotBase
		{
			initAngleX=5; minAngleX=-30; maxAngleX=+30;
			initAngleY=0; minAngleY=-100; maxAngleY=+100;
			initFov=0.7; minFov=0.42; maxFov=0.85;
		};
		class ViewCommanderBase
		{
			initAngleX=5; minAngleX=-30; maxAngleX=+30;
			initAngleY=0; minAngleY=-100; maxAngleY=+100;
			initFov=0.7; minFov=0.42; maxFov=0.85;
		};
		class ViewGunnerBase
		{
			initAngleX=5; minAngleX=-30; maxAngleX=+30;
			initAngleY=0; minAngleY=-100; maxAngleY=+100;
			initFov=0.7; minFov=0.42; maxFov=0.85;
		};
		class ViewCargoBase
		{
			initAngleX=5; minAngleX=-30; maxAngleX=+30;
			initAngleY=0; minAngleY=-360; maxAngleY=+360;
			initFov=0.7; minFov=0.42; maxFov=0.85;
		};
		class ViewOpticsBase
		{
			initAngleX=0; minAngleX=-30; maxAngleX=+30;
			initAngleY=0; minAngleY=-100; maxAngleY=+100;
			initFov=0.7; minFov=0.42; maxFov=0.85;
		};

		class ViewPilot: ViewPilotBase {}
		class ViewGunner: ViewGunnerBase {}
		class ViewCommander: ViewCommanderBase {}
		class ViewCargo: ViewCargoBase {}
		class ViewOptics: ViewOpticsBase {}

		// other properties
		transportSoldier = 0;
		transportAmmo = 0;

		transportMaxMagazines = 0;
		transportMaxWeapons = 0;

		transportFuel = 0;
		transportRepair = 0;
		transportVehiclesCount = 0;
		transportVehiclesMass = 0;
		class TransportWeapons {};
		class TransportMagazines {};
		attendant = false;
		
		soundEngine[]={,1,1};
		soundEnviron[]={,1,1};
		class SoundEnvironExt
		{
			// use soundEnviron as default
		};
		soundCrash[]={Vehicles\crash,db-10,1};
		soundLandCrash[]={Explosions\intoground,db-10,1};
		soundWaterCrash[]={Explosions\intowater,db-10,1};
		soundGetIn[]={Vehicles\get_in,db-70,1};
		soundGetOut[]={Vehicles\get_out,db-70,1};
		soundServo[]={Vehicles\gun_elevate,db-40,0.5};
		soundDammage[]={,1,1};

		// default vehicle has no weapons
		weapons[]={};
		magazines[]={};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.7, 0.5, 0.3};

		typicalCargo[]={};

		class Reflectors {};

		getInAction = ManActGetInTank;
		getOutAction = ManActGetOutTank;

		driverAction = ManActCargo;
		gunnerAction = ManActCargo;
		commanderAction = ManActCargo;

		driverInAction = ManActCargo;
		gunnerInAction = ManActCargo;
		commanderInAction = ManActCargo;

		cargoAction[] = {ManActCargo};
		cargoIsCoDriver[] = {false};

		driverOpticsModel = "";
		gunnerOpticsModel = "";
		commanderOpticsModel = "";

		driverOpticsColor[] = {0, 0, 0, 1};
		gunnerOpticsColor[] = {0, 0, 0, 1};
		commanderOpticsColor[] = {0, 0, 0, 1};

		hideProxyInCombat = false;
		forceHideGunner = false;
		forceHideDriver = false;
		forceHideCommander = false;

		// default is to use cargo view if there is no gunner view
		gunnerUsesPilotView = false;
		commanderUsesPilotView = false;

		castDriverShadow = false;
		castGunnerShadow = false;
		castCommanderShadow = false;
		castCargoShadow = false;

		ejectDeadDriver = false;
		ejectDeadGunner = false;
		ejectDeadCommander = false;
		ejectDeadCargo = false;

		crew = "Civilian";

		hiddenSelections[] = {};
	};

	class Logic : All
	{
		//-- game logic invisible unit
		displayName = $STR_DN_LOGIC;
		nameSound = "target";
		scope = public;
		vehicleClass = "Objects";
		simulation = "invisible";
		side = TLogic;
		icon = "vlajka";
		model = "empty";
		picture = iaston;
	};

	class AllVehicles: All
	{
		icon="unknown_move";
	};

	class Land: AllVehicles
	{
		//-- ground vehicle
		displayName=$STR_DN_VEHICLE;
		nameSound="target";
		accuracy=0.0005;
		armor=30;
		cost=100000;
		fuelCapacity=0;
		//weapons[]={Gun120,GunHeat120,MachineGun12_7}; // be carefull - rather expect good tank
		weapons[]={MachineGun12_7}; // if we do not know what it is, it is probably soldier
		magazines[]={MachineGun12_7};
		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.8, 0.8, 0.3};
	};
	class LandVehicle: Land
	{
		displayName=$STR_DN_VEHICLE;
		accuracy=0.02;

		cost=500000;

		class Reflectors
		{
			class Left
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 0.25;
			};
			class Right
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "P svetlo";
				direction = "konec P svetla";
				hitpoint = "P svetlo";
				selection = "P svetlo";
				size = 0.5;
				brightness = 0.25;
			};
		};
	};
	class Car: LandVehicle
	{
		//--
		mapSize = 5;

		icon="car";
		displayName=$STR_DN_CAR;
		nameSound="car";
		accuracy=0.20;
		cost=40000;
		fuelCapacity=100;

		unloadInCombat = true;
		canFloat=false;

		armor=20; // total armor
		armorStructural=4.0; // very low structural dammage

		driverCanSee = CanSeeEar+CanSeeEye;
		gunnerCanSee = CanSeeEye+CanSeeEar;

		//armorEngine=1.2; // relative to total armor
		class HitEngine {armor=1.2;material=60;name=engine;passThrough=1;}

		dammageHalf[]=
		{
			jeep4x4_glass.paa,jeep4x4_glassB.paa,
			jeep_kab_sklo1.paa,jeep_kab_sklo1B.paa,
			jeep_kab_sklo2.paa,jeep_kab_sklo2B.paa,
			scud_sklo.paa,scud_skloB.paa,
			scud_sklo2.paa,scud_sklo2B.paa,
			scud_sklo3.paa,scud_sklo3B.paa, 
			scud_sklo4.paa,scud_sklo4B.paa
		};
		dammageFull[]=
		{
			jeep4x4_glass.paa,jeep4x4_glassC.paa,
			jeep_kab_sklo1.paa,jeep_kab_sklo1C.paa,
			jeep_kab_sklo2.paa,jeep_kab_sklo2C.paa,
			scud_sklo.paa,scud_skloC.paa,
			scud_sklo2.paa,scud_sklo2C.paa,
			scud_sklo3.paa,scud_sklo3C.paa, 
			scud_sklo4.paa,scud_sklo4C.paa
		};

		armorBody=0.4;
		armorFuel=1.4;
		armorLights=0.4;
		armorWheels=0.05;
		armorGlass=0.5;

		vehicleClass="Car";

		wheelCircumference=2.513;
		turnCoef=2.0;
		terrainCoef=3.0;
		maxSpeed=100;
		
		preferRoads=true;
		unitInfoType=UnitInfoCar;
		hideUnitInfo=true;

		formationX=20;
		formationZ=20;

		precision=10;
		brakeDistance=10; // vehicle movement precision

		steerAheadSimul=0.5; // steer point on path properties
		steerAheadPlan=0.35;

		predictTurnSimul=1.2; // brake before turns
		predictTurnPlan=1.2;
		
		sensitivity=0.6; // sensor sensitivity

		soundEngine[]={Vehicles\mediumcar,db-30,2.0};
		soundEnviron[]={Objects\noise,db-65,0.25};
		soundCrash[]={Vehicles\crash,db-20,1};
		soundGear[]={Vehicles\truck_gear,db-75,1};

		extCameraPosition[]={0,1,-10};

		// internal camera viewing limitations
		class ViewPilot: ViewPilotBase
		{
			initFov=0.7; minFov=0.4; maxFov=1.0;
			initAngleX=15; minAngleX=-15; maxAngleX=+25;
			initAngleY=0; minAngleY=-100; maxAngleY=+100;
		};

		simulation=car;

		weapons[]={CarHorn};
		magazines[]={};
		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.5, 0.5, 0.5};

		typicalCargo[]={Soldier};

		audible = 3;

		getInAction = ManActGetInCar;
		getOutAction = ManActGetOutCar;

		damperSize = 0.1; // max. damper amplitude
		damperForce = 30; // damper reaction force (bigger is more visible)

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -240;
			min = 0;
			max = 16.67;
		};
		class IndicatorSpeed2
		{
			selection = "ukaz_rychlo2";
			axis = "osa_rychlo2";
			angle = -240;
			min = 0;
			max = 16.67;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -340;
			min = 0;
			max = 1;
		};

		scudLaunch = "";
		scudStart = "";

		transportMaxMagazines = 50;
		transportMaxWeapons = 10;
	};

	class Motorcycle: LandVehicle
	{
		//--
		simulation="motorcycle";
		displayName=$STR_DN_MOTORCYCLE;
		accuracy=0.20;

		mapSize = 5;

		icon="car";
		nameSound="car";

		isBicycle = false;

		unloadInCombat = true;

		castDriverShadow = true;
		castCargoShadow = true;

		ejectDeadDriver = true;
		ejectDeadCargo = true;

		armor=10; // total armor
		armorStructural=4.0; // very low structural dammage
		cost=500;
		fuelCapacity=50;

		transportSoldier = 0;
		typicalCargo[]={};

		driverCanSee = CanSeeEar+CanSeeEye;
		gunnerCanSee = CanSeeEye+CanSeeEar;

		//armorEngine=1.2; // relative to total armor
		class HitEngine {armor=1.2;material=60;name=engine;passThrough=1;}

		dammageHalf[]=
		{
			jeep_kab_sklo1.paa,jeep_kab_sklo1B.paa
		};
		dammageFull[]=
		{
			jeep_kab_sklo1.paa,jeep_kab_sklo1C.paa
		};

		armorBody=0.4;
		armorFuel=1.4;
		armorLights=0.4;
		armorWheels=0.05;
		armorGlass=0.5;

		vehicleClass="Car";

		wheelCircumference=2.513;
		turnCoef=1.0;
		terrainCoef=3.0;
		maxSpeed=120;
		
		preferRoads=true;
		unitInfoType=UnitInfoCar;
		hideUnitInfo=true;

		formationX=20;
		formationZ=20;

		precision=10;
		brakeDistance=25; // vehicle movement precision

		steerAheadSimul=0.5; // steer point on path properties
		steerAheadPlan=0.35;

		predictTurnSimul=1.2; // brake before turns
		predictTurnPlan=1.2;
		
		sensitivity=0.6; // sensor sensitivity

		soundEngine[]={Vehicles\mediumcar,db-30,2.0};
		soundEnviron[]={Objects\noise,db-65,0.25};
		soundCrash[]={Vehicles\crash,db-20,1};
		soundGear[]={Vehicles\truck_gear,db-75,1};

		extCameraPosition[]={0,1,-10};

		// internal camera viewing limitations
		class ViewPilot: ViewPilotBase
		{
			initFov=0.7; minFov=0.4; maxFov=1.0;
			initAngleX=15; minAngleX=-15; maxAngleX=+25;
			initAngleY=0; minAngleY=-100; maxAngleY=+100;
		};

		class Reflectors
		{
			class Right
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "P svetlo";
				direction = "konec P svetla";
				hitpoint = "P svetlo";
				selection = "P svetlo";
				size = 0.5;
				brightness = 0.25;
			};
		};

		weapons[]={CarHorn};
		magazines[]={};
		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.5, 0.5, 0.5};

		audible = 3;

		getInAction = ManActGetInCar;
		getOutAction = ManActGetOutCar;

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -240;
			min = 0;
			max = 16.67;
		};
		class IndicatorSpeed2
		{
			selection = "ukaz_rychlo2";
			axis = "osa_rychlo2";
			angle = -240;
			min = 0;
			max = 16.67;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -340;
			min = 0;
			max = 1;
		};

		transportMaxMagazines = 5;
		transportMaxWeapons = 0;
	};


	class Tank: LandVehicle
	{
		//--
		vehicleClass="Armored";

		icon="tank";

		outGunnerMayFire=false;

		displayName=$STR_DN_TANK;
		nameSound="tank";
		accuracy=0.12;

		getInRadius = 3.5;


		fuelCapacity=700;

		irScanRangeMin=500;
		irScanRangeMax=4000;
		irScanToEyeFactor=1;

		armor=400; // overall armor 
		armorStructural=2.0; // structural dammage

		class HitEngine {armor=0.8;material=60;name=engine;passThrough=1;}

		class HitHull {armor=1;material=50;name=hull;passThrough=1;};
		class HitTurret {armor=0.8;material=51;name=turet;passThrough=1;};
		class HitGun {armor=0.6;material=52;name=gun;passThrough=1;};
		class HitLTrack {armor=0.6;material=53;name=pasL;passThrough=1;};
		class HitRTrack {armor=0.6;material=54;name=pasP;passThrough=1;};

		armorHull=1;
		armorTurret=0.8;
		armorGun=0.6; // hitpoints (relative to overall armor)
		armorEngine=0.8;
		armorLights=0.4;
		armorTracks=0.6;
		/*
		armorGun=0.6; // hitpoints (relative to overall armor)
		armorTurret=0.5;
		armorHull=0.5;
		armorEngine=0.4;
		armorLights=0.4;
		armorTracks=0.3;
		*/

		extCameraPosition[]={0,1.5,-9};

		//fov=0.7; minFov=0.42; maxFov=0.85;
		class ViewPilot: ViewPilotBase
		{
			initAngleX=7; minAngleX=-15; maxAngleX=+25;
			initAngleY=0; minAngleY=-90; maxAngleY=+90;
		};

		class ViewOptics : ViewOpticsBase
		{
			initFov=0.3; minFov=0.07; maxFov=0.35;
		};

		cost=1000000;

		steerAheadSimul=0.4; // steer point on path properties
		steerAheadPlan=0.6;
		
		predictTurnSimul=1.2; // brake before turns
		predictTurnPlan=1.8;

		// default tank/bmp... track vehicle definition
		soundEnviron[]={Vehicles\OldRolling_Treads1,db-10,0.7};
		soundEngine[]={Vehicles\OldIdle1,db-10,1};
		soundCrash[]={Vehicles\crash_small2,db-10,1};
		soundGear[]={Vehicles\Gear_Trans1,db-50,1};
		soundDammage[]={Objects\alarm_loop1,db-40,1};

		hasGunner=true;
		hasCommander=true;
		nightVision=true;

		forceHideGunner = true;

		driverAction = ManActCargo;
		gunnerAction = ManActCargo;
		commanderAction = ManActCargo;

		driverInAction = ManActCargo;
		gunnerInAction = ManActCargo;
		commanderInAction = ManActCargo;

		//transportSoldier = 2;

		simulation=tank;

		formationX=20;
		formationZ=30;
		precision=5;
		brakeDistance=15; // vehicle movement precision

		maxSpeed=80;
		
		class TurretBase
		{
			gunAxis = "OsaHlavne";
			turretAxis = "OsaVeze";
			soundServo[]={Vehicles\gun_elevate,db-30,1.0};

			gunBeg = "usti hlavne";
			gunEnd = "konec hlavne";
			
			minElev=-4; maxElev=+20;
			minTurn=-360; maxTurn=+360;

			body = "OtocVez";
			gun = "OtocHlaven";
		};
		class Turret: TurretBase {}

		class ComTurret
		{
			turretAxis = "OsaVelitele";
			gunAxis = "OsaHlavneVelitele";
			soundServo[]={Vehicles\gun_elevate,db-70,1.2};
			
			gunBeg = "usti hlavne"; // currently ignored
			gunEnd = "konec hlavne";
			
			minElev=-4; maxElev=+20;
			minTurn=-360; maxTurn=+360;

			body = "OtocVelitele";
			gun = "OtocHlavenVelitele";
		};
		canFloat=false;
		weapons[]={Gun120,MachineGun12_7};
		magazines[]={Heat120,Shell120,MachineGun12_7};
		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.7, 1, 0.3};
		
		//sensors
		camouflage = 8; // tank are very easy to spot
		audible = 6; 

		hideProxyInCombat = true;

		driverOpticsModel = "optika_tank_driver";
		gunnerOpticsModel = "optika_tank_gunner";
		//commanderOpticsModel = "optika_tankw_auxiliary";
		commanderOpticsModel = "optika_tank_driver";

		driverOpticsColor[] = {0, 0, 0, 1};
		gunnerOpticsColor[] = {0.91, 0.23, 0.23, 1};
		commanderOpticsColor[] = {0.91, 0.23, 0.23, 1};

		class Wheels
		{
			rotR[]=
			{
				kolL1,kolL2,kolL3,kolL4,kolL5,kolL6,kolL7,kolL8
			};
			rotL[]=
			{
				kolP1,kolP2,kolP3,kolP4,kolP5,kolP6,kolP7,kolP8
			};
			upDownL[]=
			{
				koloP1,podkoloP1, koloP2,podkoloP2, koloP3,podkoloP3,
				koloP4,podkoloP4, koloP5,podkoloP5, koloP6,podkoloP6,
				koloP7,podkoloP7, koloP8,podkoloP8
			};
			upDownR[]=
			{
				koloL1,podkoloL1, koloL2,podkoloL2, koloL3,podkoloL3,
				koloL4,podkoloL4, koloL5,podkoloL5, koloL6,podkoloL6,
				koloL7,podkoloL7, koloL8,podkoloL8
			};
		};

		class GunFire : WeaponFireGun
		{
		};
		class GunClouds : WeaponCloudsGun
		{
		};
		class MGunFire : WeaponFireMGun
		{
		};
		class MGunClouds : WeaponCloudsMGun
		{
		};

		class HatchDriver
		{
			selection = "poklop_driver";
			axis = "osa_poklop_driver";
			angle = -100;
		};
		class HatchCommander
		{
			selection = "poklop_commander";
			axis = "osa_poklop_commander";
			angle = -100;
		};
		class HatchGunner
		{
			selection = "poklop_gunner";
			axis = "osa_poklop_gunner";
			angle = -100;
		};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -240;
			min = 0;
			max = 16.67;
		};
		class IndicatorSpeed2
		{
			selection = "ukaz_rychlo2";
			axis = "osa_rychlo2";
			angle = -240;
			min = 0;
			max = 16.67;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = 340;
			min = 0;
			max = 1;
		};
		class IndicatorRadar
		{
			selection = "ukaz_radar";
			axis = "osa_radar";
			angle = -360;
			min = 0;
			max = 1;
		};
		class IndicatorWatch
		{
			hour = "hodinova";
			minute = "minutova";
			axis = "osa_time";
			reversed = false;
		};
		class IndicatorTurret
		{
			selection = "ukazsmer";
			axis = "osa_ukazsmer";
			angle = 360;
			min = 0;
			max = 6.2831853072;
		};

		class CargoLight
		{
			color[] = {0, 0, 0, 0};
			ambient[] = {0.6, 0, 0.15, 1};
			brightness = 0.007;
		};

		transportMaxMagazines = 50;
		transportMaxWeapons = 10;
	};
	class APC: Tank
	{
		//--
		icon="bmp";

		vehicleClass="Armored";

		displayName=$STR_DN_APC;
		nameSound="apc";
		accuracy=0.12;

		fuelCapacity=700;
		armor=200;
		cost=1000000;
		
		hasGunner=true;
		hasCommander=true;

		// default tank/bmp... track vehicle definition

		soundEnviron[]={Vehicles\OldRolling_Treads1,db-10,0.7};
		soundEngine[]={Vehicles\OldIdle1,db-10,1};
		soundCrash[]={Vehicles\crash_small2,db-10,1};
		soundGear[]={Vehicles\Gear_Trans1,db-40,1};


		simulation=tank;

		maxSpeed=60;
		
		class Turret: TurretBase
		{
			minElev=-4.5;
			maxElev=+20;
		};

		canFloat=false;
		weapons[]={AT3Launcher, MachineGun12_7};
		magazines[]={AT3Launcher, MachineGun12_7};
		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.8, 1, 0.3};
	};

	class Man: Land
	{
		//--
		mapSize = 0.5;
		vehicleClass="Men";

		icon="soldier";
		autocenter = false; // no autocenter - faster animation
		isMan = true;

		displayName=$STR_DN_MAN;
		nameSound="man";

		extCameraPosition[]={0,0.3,-3.5};
		//nameSound="man";
		accuracy=0.25;
		/*!
		\patch 1.27 Date 10/18/2001 by Ondra
		- Fixed: soldier movement was heard too far by AI.
		*/
		audible=0.05;
		camouflage=1; // how easy to spot -> bigger means better spotable

		sensitivity=1;
		sensitivityEar=0.13;

		formationX=5;
		formationZ=5;
		precision=1;
		brakeDistance=1; // vehicle movement precision

		steerAheadSimul=0.2; // steer point on path properties
		steerAheadPlan=0.2;

		maxSpeed=24;

		irTarget=false; // no ir lock possible
		canHideBodies=false;
		canDeactivateMines=false;

		unitInfoType=UnitInfoSoldier;
		hideUnitInfo=true;

		armor=3;
		armorStructural=2.0; // structural dammage
		armorHead=0.7;
		armorBody=0.8;
		armorHands=0.5;
		armorLegs=0.5;

		cost=100000;
		simulation=soldier;

		#include "wounds.hpp"		
		
		minGunElev=-60;maxGunElev=+60; // + up
		/*!
		\patch 1.43 Date 01/22/2002 by Viktor
		- Changed: Soldiers can aim more down from now
		*/

		minGunTurn=-5;maxGunTurn=+5; // + left - player
		//minGunTurn=-30;maxGunTurn=+30; // + left - player
		minGunTurnAI=-30;maxGunTurnAI=+30; // + left - AI

		fov=0.85; minFov=0.42; maxFov=0.85;
		class ViewPilot: ViewPilotBase
		{
			initAngleX=8; minAngleX=-40; maxAngleX=+45;
			initAngleY=0; minAngleY=-125; maxAngleY=+125;
		};
		microMimics = Micro; // see CfgMimics/Micro

		minHeadTurnAI = -70;
		maxHeadTurnAI = +70;
		
		weaponSlots = WeaponSlotPrimary + 4 * WeaponSlotItem + WeaponSlotBinocular + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;
		weapons[]={RiffleGrenadeLauncher};
		magazines[]={Riffle,Riffle,Riffle,Riffle,GrenadeLauncher};
		model=vojakw;
		//picture=ivojak;
		picture=;

		// say something when hit
		
		
		hitSound1[]={voices\Hit11,db-25,1};
		hitSound2[]={voices\Hit12,db-25,1};
		hitSound3[]={voices\Hit13,db-25,1};
		hitSound4[]={voices\Hit14,db-25,1};
		hitSound5[]={voices\Hit15,db-25,1};
		hitSound6[]={voices\Hit16,db-25,1};
		hitSound7[]={voices\Hit17,db-25,1};
		hitSound8[]={voices\Hit18,db-25,1};
		hitSound9[]={voices\Hit19,db-25,1};
		hitSound10[]={voices\Hit20,db-25,1};
		hitSound11[]={voices\Hit21,db-25,1};
		hitSound12[]={voices\Hit22,db-25,1};
		hitSound13[]={voices\Hit23,db-25,1};
		hitSound14[]={voices\Hit24,db-25,1};
		hitSound15[]={voices\Hit25,db-25,1};
		hitSound16[]={voices\Hit26,db-25,1};
		hitSound17[]={voices\Hit27,db-25,1};
		hitSound18[]={voices\Hit28,db-25,1};
		hitSound19[]={voices\Hit29,db-25,1};
		hitSound20[]={voices\Hit30,db-25,1};
		
		
		
		hitSounds[]=
		{
			hitSound1,0.05,
			hitSound2,0.05,
			hitSound3,0.05,
			hitSound4,0.05,
			hitSound5,0.05,
			hitSound6,0.05,
			hitSound7,0.05,
			hitSound8,0.05,
			hitSound9,0.05,
			hitSound10,0.05,
			hitSound11,0.05,
			hitSound12,0.05,
			hitSound13,0.05,
			hitSound14,0.05,
			hitSound15,0.05,
			hitSound16,0.05,
			hitSound17,0.05,
			hitSound18,0.05,
			hitSound19,0.05,
			hitSound20,0.05
		};

		moves=NoDefaultMoves;
		
		soundEnviron[]={People\dirt_L,db-70,1};
		class SoundEnvironExt
		{
			normalExt[] = {{"People\dirt_L",db-110,1},{"People\dirt_R",db-110,1},{"People\grass_L",db-115,1},{"People\grass_R",db-115,1},{"People\grass_L",db-115,1},{"People\grass_R",db-115,1},};
			normal[] = {{"People\dirt_L",db-110,1},{"People\dirt_R",db-110,1}};
			road[] = {{"People\concrete_L",db-95,1},{"People\concrete_R",db-95,1},{"People\concrete_L",db-95,1},{"People\concrete_R",db-95,1},{"People\gravel_L",db-95,1},{"People\gravel_R",db-95,1},{"People\concrete_L",db-95,1},{"People\concrete_R",db-95,1}};
			rock[] = {{"People\concrete_L",db-95,1},{"People\concrete_R",db-95,1},{"People\gravel_L",db-95,1},{"People\gravel_R",db-95,1},{"People\sand_L",db-110,1},{"People\sand_R",db-110,1},{"People\gravel_L",db-95,1},{"People\gravel_R",db-95,1},{"People\concrete_L",db-95,1},{"People\concrete_R",db-95,1}};
			water[] = {{"People\water_L",db-90,1},{"People\water_R",db-90,1}};
			gravel[] = {{"People\gravel_L",db-95,1},{"People\gravel_R",db-95,1}};
			sand[] = {{"People\sand_L",db-110,1},{"People\sand_R",db-110,1},{"People\sand_L",db-110,1},{"People\sand_R",db-110,1},{"People\gravel_L",db-95,1},{"People\gravel_R",db-95,1}};
			drygrass[] = {{"People\drygrass_L",db-110,1},{"People\drygrass_R",db-110,1},{"People\grass_L",db-115,1},{"People\grass_R",db-115,1},{"People\forest_L",db-110,1},{"People\forest_R",db-110,1}};
			// lnggrass[] = {{"People\lnggrass_L",db-120,1},{"People\lnggrass_R",db-120,1}};
			grass[] = {{"People\grass_L",db-115,1},{"People\grass_R",db-115,1},{"People\drygrass_L",db-110,1},{"People\drygrass_R",db-110,1}};
			forest[] = {{"People\forest_L",db-110,1},{"People\forest_R",db-110,1},{"People\grass_L",db-115,1},{"People\grass_R",db-115,1},{"People\dirt_L",db-110,1},{"People\dirt_R",db-110,1},{"People\mud_L",db-110,1},{"People\mud_R",db-110,1}};
			mud[] = {{"People\mud_L",db-110,1},{"People\mud_R",db-110,1},{"People\mud_L",db-110,1},{"People\mud_R",db-110,1},{"People\water_L",db-90,1},{"People\water_R",db-90,1}};
			wood[] = {{"People\wood_L",db-110,1},{"People\wood_R",db-110,1}};
			metal[] = {{"People\metal_L",db-110,1},{"People\metal_R",db-110,1}};
			snow[] = {{"People\snow_L",db-90,1},{"People\snow_R",db-90,1}};
			hallway[] = {{"People\hall_L",db-90,1},{"People\hall_R",db-90,1}}; 

			fallbody[]={{"People\fall_to_ground",db-60,1}};
			laydown[]={{"People\down",db-100,1}};
			standup[]={{"People\up",db-110,1}};
			crawl[]={{"People\crawl",db-115,1}};
		};
		soundEngine[]={People\breath,db-95,1};
		additionalSound[]={Objects\noise,db-160,1};
		//additionalSound[]={Vehicles\mediumcar,db-40,1};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.8, 0.2};

		class Reflectors
		{
			/*
			class Reflector
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.2;
				brightness = 0.001;
			};
			*/
		};

		class MGunClouds : WeaponCloudsMGun
		{
		};
		class GunClouds : WeaponCloudsGun
		{
			cloudletGrowUp = 0.2;			// grow-up time
			cloudletFadeIn = 0;		// fade-in time
			cloudletFadeOut = 0.4;		// fade-out time
			cloudletDuration = 0.2;		// time to live (not including fades)

			cloudletAlpha = 1;

			cloudletAccY = 2;					// vertical acceleration
			cloudletMinYSpeed = -10;	// vertical speed range
			cloudletMaxYSpeed = 10;

			interval = 0.02;
			size = 0.3;
			sourceSize = 0.015;
		};
	};

	// define weapons that all soldiers have by default
	//#define DefaultManWeapons Throw,Put,StrokeFist
	#define DefaultManWeapons Throw,Put

	class Civilian: Man
	{
		//--
		vehicleClass="Men";
		scope=public;
		displayName=$STR_DN_MAN;
		nameSound="man";
		model="MC civil";
		// picture=icivil;
		moves=CfgMovesMC;
		accuracy=0.40;

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};

		camouflage=1.2;

		cost=100000;
		side=TCivilian;
		weapons[]={DefaultManWeapons};	
		magazines[]={};	
	};
	class Civilian2: Civilian
	{
		//--
		displayName=$STR_DN_MAN2;
		model="MC civil2";
	};
	class Civilian3: Civilian
	{
		//--
		displayName=$STR_DN_MAN3;
		model="MC civil3";
	};
	class Soldier: Man
	{
		//--
		vehicleClass="";
		displayName=$STR_DN_SOLDIER;
		nameSound="soldier";

		weaponSlots = WeaponSlotPrimary + WeaponSlotSecondary + 10*WeaponSlotItem + 2*WeaponSlotBinocular + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;

		accuracy=0.60; //changed

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.05, 0.05};
	};
	class SoldierLAW : Soldier // used as typical cargo only
	{
		//--
		vehicleClass="";
		displayName=$STR_DN_LAW_SOLDIER;
		accuracy=1.4;
		weapons[]={Riffle, LAWLauncher};
		magazines[]={Riffle, Riffle, Riffle, Riffle, LAWLauncher, LAWLauncher};
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.9, 0.1};
	};

	/*!
	\patch 1.52 Date 4/21/2002 by Ondra
	- Fixed: AI perceived volume of helicopters and planes was too low.
	*/
	
	class Air: AllVehicles
	{
		//-- air vehicle
		icon="helicopter";

		displayName=$STR_DN_HELICOPTER; // assume heli until sure it's plane
		nameSound="target";
		accuracy=0.005;

		formationX=50;
		formationZ=100;
		precision=100;
		brakeDistance=200; // vehicle movement precision
		formationTime=10;

		armor=20;
		cost=10000000;
		fuelCapacity=1000;

		maxSpeed=400;

		insideSoundCoef = 0.05;

		weapons[]={MachineGun12_7};
		magazines[]={MachineGun12_7};

		type=VAir;
		irScanRangeMin = 2000;
		irScanRangeMax = 10000;
		irScanToEyeFactor = 2;
		nightVision=true;
		audible = 10; // planes are very loud

		unitInfoType=UnitInfoAirplane;

		//threat[] VSoft, VArmor, VAir 
		threat[]={0.3, 1, 0.7};

		driverAction = ManActCargo;
		gunnerAction = ManActCargo;
		commanderAction = ManActCargo;

		gunnerCanSee = CanSeeAll;
		driverCanSee = CanSeeAll;
	
		typicalCargo[]={Soldier};

		class GunFire : WeaponFireGun
		{
		};
		class GunClouds : WeaponCloudsGun
		{
		};
		class MGunFire : WeaponFireMGun
		{
		};
		class MGunClouds : WeaponCloudsMGun
		{
		};

		transportMaxMagazines = 20;
		transportMaxWeapons = 3;
	};
	class Helicopter: Air
	{
		//-- helicopter
		vehicleClass="Air";

		displayName=$STR_DN_HELICOPTER;
		nameSound="chopper";
		accuracy=0.08;

		soundEngine[]={Vehicles\helicopter,db+10,1};
		soundEnviron[]={Objects\noise,db-20,1.0};
		soundDammage[]={Objects\alarm_loop1,db-40,1};

		simulation=helicopter;

		class ViewPilot: ViewPilotBase
		{
			initFov=0.7; minFov=0.4; maxFov=1.0;
			initAngleX=0; minAngleX=-15; maxAngleX=+25;
			initAngleY=0; minAngleY=-100; maxAngleY=+100;
		};

		mainRotorSpeed = 1.0; // rotor animation parameters
		backRotorSpeed = 1.5; 

		maxMainRotorDive = 0; // rotor diving capability
		maxBackRotorDive = 0;
		minMainRotorDive = 0; // rotor diving capability
		minBackRotorDive = 0;
		neutralBackRotorDive = 0;
		neutralMainRotorDive = 0;

		armorStructural=2.0; // structural dammage
		armorHull=0.5;
		armorEngine=0.6;
		armorAvionics=1.4;
		armorVRotor=0.5;
		armorHRotor=0.7;
		armorMissiles=1.6;
		armorGlass=0.5;

		maxSpeed=300;
		enableSweep=true;

		unitInfoType=UnitInfoHelicopter;

		minFireTime=20; // minimal time spent firing on single target

		steerAheadSimul=0.5;
		steerAheadPlan=0.7;

		class TurretBase
		{
			gunAxis = "OsaHlavne";
			turretAxis = "OsaVeze";

			gunBeg = "usti hlavne";
			gunEnd = "konec hlavne";
			soundServo[]={};			
			
			minElev=-20; maxElev=+20;
			minTurn=-45; maxTurn=+45;

			body = "OtocVez";
			gun = "OtocHlaven";
		};
		class Turret: TurretBase {}

		class ViewOptics : ViewOpticsBase
		{
			initAngleX=0; minAngleX=-40; maxAngleX=17;
			initAngleY=0; minAngleY=-100; maxAngleY=100;
			initFov=0.5; minFov=0.3; maxFov=1.2;
		};

		hasGunner=true;
		driverIsCommander=true;

		gunnerOpticsModel = "optika_heli_gunner";
		
		weapons[]={MachineGun12_7, HellfireLauncher};
		magazines[]={MachineGun12_7, HellfireLauncher};

		dammageHalf[]=
		{
			jeep_kab_sklo1.paa,jeep_kab_sklo1B.paa,
			uh60_kab_sklo2.paa,uh60_kab_sklo2B.paa,
			uh30_cargo_pilotdoors.paa,uh30_cargo_pilotdoorsB.paa,
			uh60_cargo_dvereokno.paa,uh60_cargo_dvereoknoB.paa,
			uh60_gunner_okna.paa,uh60_gunner_oknaB.paa,
			ah-1_kabina_predokno.paa,ah-1_kabina_predoknoB.paa,
			ah-1_kabina_zadokno.paa,ah-1_kabina_zadoknoB.paa,
			ah-1_kabina_topokno.paa,ah-1_kabina_topoknoB.paa
		};
		dammageFull[]=
		{
			jeep_kab_sklo1.paa,jeep_kab_sklo1C.paa,
			uh60_kab_sklo2.paa,uh60_kab_sklo2C.paa,
			uh30_cargo_pilotdoors.paa,uh30_cargo_pilotdoorsC.paa,
			uh60_cargo_dvereokno.paa,uh60_cargo_dvereoknoC.paa,
			uh60_gunner_okna.paa,uh60_gunner_oknaC.paa,
			ah-1_kabina_predokno.paa,ah-1_kabina_predoknoC.paa,
			ah-1_kabina_zadokno.paa,ah-1_kabina_zadoknoC.paa,
			ah-1_kabina_topokno.paa,ah-1_kabina_topoknoC.paa
		};

		class Reflectors
		{
			class Reflector
			{
				color[] = {0.8, 0.8, 1.0, 1.0};
				ambient[] = {0.07, 0.07, 0.07, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 1.0;
			};
		};
		class IndicatorAltRadar
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt";
			axis = "osa_alt";
			angle = -360;
			min = 0;
			max = 304;
		};
		class IndicatorAltBaro
		{
			// max for this indicator is 200 feet (i.e. 61m)
			// note: this is actualy Radar altitude (name is wrong)
			selection = "nm_alt";
			axis = "osa_nm_alt";
			angle = -180;
			min = 0;
			max = 61;
		};
		class IndicatorSpeed
		{
			selection = "mph";
			axis = "osa_mph";
			angle = -320;
			min = 0;
			max = 125;
		};
		class IndicatorVertSpeed
		{
			selection = "vert_speed";
			axis = "osa_vert_speed";
			angle = -300;
			min = -30;
			max = 30;
		};
		class IndicatorRPM
		{
			selection = "rpm";
			axis = "osa_rpm";
			angle = -320;
			min = 0;
			max = 12;
		};
		class IndicatorCompass
		{
			selection = "kompas";
			axis = "osa_kompas";
			angle = -360;
			min = -3.1415926536;
			max = 3.1415926536;
		};
		class IndicatorWatch
		{
			hour = "hodinova";
			minute = "minutova";
			axis = "osa_time";
			reversed = true;
		};
		class IndicatorAltRadar2
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt2";
			axis = "osa_alt2";
			angle = -360;
			min = 0;
			max = 304;
		};
		class IndicatorAltBaro2
		{
			// max for this indicator is 200 feet (i.e. 61m)
			// note: this is actualy Radar altitude (name is wrong)
			selection = "nm_alt2";
			axis = "osa_nm_alt2";
			angle = -180;
			min = 0;
			max = 61;
		};
		class IndicatorSpeed2
		{
			selection = "mph2";
			axis = "osa_mph2";
			angle = -320;
			min = 0;
			max = 125;
		};
		class IndicatorVertSpeed2
		{
			selection = "vert_speed2";
			axis = "osa_vert_speed2";
			angle = -300;
			min = -30;
			max = 30;
		};
		class IndicatorRPM2
		{
			selection = "rpm2";
			axis = "osa_rpm2";
			angle = -320;
			min = 0;
			max = 12;
		};
		class IndicatorCompass2
		{
			selection = "kompas2";
			axis = "osa_kompas2";
			angle = -360;
			min = -3.1415926536;
			max = 3.1415926536;
		};
		class IndicatorWatch2
		{
			hour = "hodinova2";
			minute = "minutova2";
			axis = "osa_time2";
			reversed = true;
		};
	};
	class Plane: Air
	{
		//-- airplane
		vehicleClass="Air";

		icon="a10";

		displayName=$STR_DN_PLANE;
		nameSound="plane";
		accuracy=0.10;

		maxSpeed=450;
		landingSpeed = 0;
		flapsFrictionCoef = 0.5;

		formationX=200;
		formationZ=300;
		precision=200;
		brakeDistance=500; // vehicle movement precision
		steerAheadSimul=1.0;
		steerAheadPlan=2.0;
		wheelSteeringSensitivity = 1.0;

		unitInfoType=UnitInfoAirplane;
		gearRetracting = true;
		ejectSpeed[]={0,40,0};

		minFireTime=60; // minimal time spent firing on single target

		cost=2000000;
		soundEngine[]={Vehicles\01F5,db+0,0.5};
		soundEnviron[]={Objects\noise,db-10,1.0};
		soundServo[]={Vehicles\gun_elevate,db-20,0.4};
		soundDammage[]={Objects\alarm_loop1,db-40,1};
		simulation=airplane;		

		minGunElev=-0; // default - fixed gun
		maxGunElev=+0;
		minGunTurn=-0;
		maxGunTurn=+0;

		weapons[]={MachineGun12_7, MaverickLauncher};
		magazines[]={MachineGun12_7, MaverickLauncher};

		type=VAir;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.1, 1, 0.5};

		aileronSensitivity = 1; // relative aileron sensitivity
		elevatorSensitivity = 1; // relative elevator sensitivity
		noseDownCoef = 1; // how much goes nose down during turns
		landingAoa = 10*3.1415/180;

		// internal camera viewing limitations
		class ViewPilot: ViewPilotBase
		{
			initFov=0.7; minFov=0.4; maxFov=0.85;
			initAngleX=8; minAngleX=-15; maxAngleX=+25;
			initAngleY=0; minAngleY=-100; maxAngleY=+100;
		};
		class ViewOptics : ViewOpticsBase
		{
			initAngleX=0; minAngleX=0; maxAngleX=0;
			initAngleY=0; minAngleY=0; maxAngleY=0;
			initFov=0.5; minFov=0.5; maxFov=0.5;
		};

		extCameraPosition[]={0,5,-30};

		class Reflectors
		{
			class Reflector
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 1.0;
			};
		};

		class IndicatorAltRadar
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt";
			axis = "osa_alt";
			angle = -360;
			min = 0;
			max = 304;
		};
		class IndicatorAltRadar2
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt2";
			axis = "osa_alt2";
			angle = -360;
			min = 0;
			max = 304;
		};
		class IndicatorAltBaro
		{
			// max for this indicator is 200 feet (i.e. 61m)
			// note: this is actualy Radar altitude (name is wrong)
			selection = "nm_alt";
			axis = "osa_nm_alt";
			angle = 0;
			min = 0;
			max = 0;
		};
		class IndicatorSpeed
		{
			selection = "mph";
			axis = "osa_mph";
			angle = -350;
			min = 0;
			max = 300;
		};
		class IndicatorVertSpeed
		{
			selection = "vert_speed";
			axis = "osa_vert_speed";
			angle = -360;
			min = -45;
			max = 45;
		};
		class IndicatorVertSpeed2
		{
			selection = "vert_speed2";
			axis = "osa_vert_speed2";
			angle = -360;
			min = -45;
			max = 45;
		};
		class IndicatorRPM
		{
			selection = "rpm";
			axis = "osa_rpm";
			angle = -320;
			min = 0;
			max = 1;
		};
		class IndicatorCompass
		{
			selection = "kompas";
			axis = "osa_kompas";
			angle = 360;
			min = -3.1415926536;
			max = 3.1415926536;
		};
		class IndicatorCompass2
		{
			selection = "kompas2";
			axis = "osa_kompas2";
			angle = 360;
			min = -3.1415926536;
			max = 3.1415926536;
		};
		class IndicatorWatch
		{
			hour = "hodinova";
			minute = "minutova";
			axis = "osa_time";
			reversed = true;
		};
		class IndicatorWatch2
		{
			hour = "hodinova2";
			minute = "minutova2";
			axis = "osa_time2";
			reversed = true;
		};
	};
	class Ship: AllVehicles
	{
		//--
		unitInfoType=UnitInfoShip;

		icon="ship";
		
		cost=10000000;
		armor=1000;
		displayName=$STR_DN_SHIP;
		nameSound="ship";
		accuracy=0.005;

		maxSpeed=30;

		simulation=ship;

		audible=6;

		formationX=50;
		formationZ=100;
		precision=25;
		brakeDistance=50; // vehicle movement precision
		formationTime=20;

		steerAheadSimul=2.0; // steer point on path properties
		steerAheadPlan=2.4;

		predictTurnSimul=2.0; // brake before turns
		predictTurnPlan=2.4;

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.2, 0.2, 0.1};

		getInRadius = 10;

		driverAction = ManActShipDriver;
		gunnerAction = ManActShipDriver;
		commanderAction = ManActShipDriver;
		cargoAction[] = {ManActShipCargo};

		getInAction = ManActGetOutCar;	// no animation
		getOutAction = ManActGetOutCar;	// no animation

		class TurretBase
		{
			gunAxis = "osa hlavne";
			turretAxis = "osa veze";

			gunBeg = "usti hlavne";
			gunEnd = "konec hlavne";
			
			soundServo[]={Vehicles\gun_elevate,db-60,1.0};
			
			minElev=-5; maxElev=+40;
			minTurn=-135; maxTurn=+135;

			body = "OtocVez";
			gun = "OtocHlaven";
		};
		class Turret: TurretBase {}

		class ViewPilot: ViewPilotBase
		{
			initFov=1.0; minFov=0.42; maxFov=1.2;
			initAngleX=6; minAngleX=-8; maxAngleX=+10;
			initAngleY=0; minAngleY=-100; maxAngleY=+100;
		};
		class ViewOptics : ViewOpticsBase
		{
			initFov=0.7; minFov=0.07; maxFov=0.35;
		};

		class GunFire : WeaponFireGun
		{
		};
		class GunClouds : WeaponCloudsGun
		{
		};
		class MGunFire : WeaponFireMGun
		{
		};
		class MGunClouds : WeaponCloudsMGun
		{
		};
	};

	class SmallShip: Ship
	{
		//--
		cost=50000;
		armor=300;
		displayName=$STR_DN_SMALL_SHIP;
		accuracy=0.20;
		soundEngine[]={Vehicles\GuardShip,db-55,1};
		
		/*
		class TurretBase: Turret {};
		class Turret
		{
			minElev=-4.5;
			maxElev=+20;
		};
		*/

		fuelCapacity=700;

		weapons[]={Browning};
		magazines[]={Browning};

		maxSpeed = 60;

		steerAheadSimul=2; // steer point on path properties
		steerAheadPlan=2;

		predictTurnSimul=3; // brake before turns
		predictTurnPlan=3;

		precision=50;
		brakeDistance=50; // vehicle movement precision

		hasGunner=true;
		hasCommander=false;
		driverIsCommander=true;

		class Reflectors
		{
			class Reflector
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 0.25;
			};
		};

		transportMaxMagazines = 100;
		transportMaxWeapons = 20;
	};

	class BigShip: Ship
	{
		//--
		cost=10000000;
		displayName=$STR_DN_BIG_SHIP;
		accuracy=0.20;
		armor=1000;

		soundEngine[]={Vehicles\BigShip,db-55,1};

		weapons[]= {Gun120, MachineGun12_7};
		magazines[]=
		{
			Gun120, Gun120, Gun120, Gun120,
			MachineGun12_7, MachineGun12_7
		};

		transportMaxMagazines = 500;
		transportMaxWeapons = 200;
	};

	
	//WEST	
	class Jeep: Car
	{
		//--
		scope=public;
		crew = SoldierWB;
		picture=ijeepMUTT;

		maxSpeed=100;

		side=TWest;
		displayName=$STR_DN_JEEP;
		nameSound="jeep";
		accuracy=0.50;

		armor=20;
		cost=30000;
		fuelCapacity=50;

		transportSoldier = 3;
		transportAmmo = 0;

		model=jeep;

		armorWheels=0.12;

		driverAction = ManActJeepDriver;

		cargoAction[] =
		{
			ManActJeepCoDriver,ManActJeepCoDriverBack
		};
		cargoIsCoDriver[] = {true,false};

		soundEngine[]={Vehicles\jeepmove,db-15,1};

		typicalCargo[]={Soldier, SoldierLAW};

		dammageHalf[]=
		{
			jepp4x4_glass.paa,jepp4x4_glassB.paa,
			jepp_kab_sklo1.paa,jepp_kab_sklo1B.paa,
			jepp_kab_sklo2.paa,jepp_kab_sklo2B.paa,
			scud_sklo.paa,scud_skloB.paa,
			scud_sklo2.paa,scud_sklo2B.paa,
			scud_sklo3.paa,scud_sklo3B.paa, 
			scud_sklo4.paa,scud_sklo4B.paa
		};
		dammageFull[]=
		{
			jepp4x4_glass.paa,jepp4x4_glassC.paa,
			jepp_kab_sklo1.paa,jepp_kab_sklo1C.paa,
			jepp_kab_sklo2.paa,jepp_kab_sklo2C.paa,
			scud_sklo.paa,scud_skloC.paa,
			scud_sklo2.paa,scud_sklo2C.paa,
			scud_sklo3.paa,scud_sklo3C.paa, 
			scud_sklo4.paa,scud_sklo4C.paa
		};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -240;
			min = 0;
			max = 40;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -240;
			min = 0;
			max = 1;
		};
	};

	/*!
	\patch 1.54 Date 5/4/2002 by Ondra
	- Fixed: Jeep with machine gun shows ammo count.
	*/
	
	
	class JeepMG: Jeep
	{
		//--
		displayName= $STR_DN_JEEP_MG;
		model=Jeep_mg.p3d;
		picture=ijeepmg.paa;
		gunnerAction=ManActJeepGunner;
		hasGunner=true;
		castGunnerShadow=true;
		ejectDeadGunner=true;
		castDriverShadow=true;
		driverIsCommander=true;
		scope=public;
		//canFloat=true;
		
		weapons[]={Browning};
		magazines[]={Browning};

		gunnerOpticsModel = "optika_empty";
		unitInfoType=UnitInfoSoldier;

		transportSoldier = 1;

		class Turret
		{
			gunAxis = "OsaHlavne";
			turretAxis = "OsaVeze";
			soundServo[]={};

			gunBeg = "usti hlavne";
			gunEnd = "konec hlavne";
			
			minElev=-5; maxElev=+40;
			minTurn=-360; maxTurn=+360;

			body = "OtocVez";
			gun = "OtocHlaven";
		};
		class ViewGunner
		{
			initAngleX=5; minAngleX=-30; maxAngleX=+30;
			initAngleY=0; minAngleY=0; maxAngleY=0;
			initFov=0.7; minFov=0.42; maxFov=0.85;
		};		
		class MGunClouds : WeaponCloudsMGun
		{
		};
	};

	class SkodaHelper: Car
	{
		scope=private;
		picture=iskoda;

		maxSpeed=125;

		side=TCivilian;
		nameSound="car";
		displayName=$STR_DN_SKODA;
		accuracy=0.50;

		armor=20;
		cost=2000;
		fuelCapacity=50;

		transportSoldier = 3;
		transportAmmo = 0;

		terrainCoef=10.0;

		soundEngine[]={Vehicles\car,db-35,1.8};

		weapons[]={SportCarHorn};
		magazines[]={};

		driverAction = ManActSkodaDriver;

		cargoAction[] =
		{
			ManActSkodaCoDriver,ManActSkodaCoDriverBack
		};
		cargoIsCoDriver[] = {true,false};

		typicalCargo[]={};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = +254;
			min = 0;
			max = 180 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -255;
			min = 0;
			max = 1;
		};
	};

	class SkodaBase: SkodaHelper
	{
		accuracy=1000;
	};


/*!
	\patch 1.01 Date 06/11/2001 by Jirka
	- Fixed: bad speed indicator direction for Sport Car
	\patch_internal 1.01 Date 06/11/2001 by Jirka
	- added classes IndicatorSpeed and IndicatorRPM
*/
	class Rapid: SkodaBase
	{
		//--
		vehicleClass="Car";

		scope=public;
		picture=iskoda;

		maxSpeed=200;

		displayName=$STR_DN_ASTON;
		nameSound="car";
		accuracy=0.50;

		armor=10;
		cost=90000;
		fuelCapacity=50;

		transportSoldier = 1;

		model=rapid;

		soundEngine[]={Vehicles\car,db-30,1.5};

		weapons[]={SportCarHorn};
		magazines[]={};

		typicalCargo[]={};

		dammageHalf[]=
		{
			jeep4x4_glass.paa,jeep4x4_glassB.paa,
			jeep_kab_sklo1.paa,jeep_kab_sklo1B.paa,
			jeep_kab_sklo2.paa,jeep_kab_sklo2B.paa,
			scud_sklo.paa,scud_skloB.paa,
			scud_sklo2.paa,scud_sklo2B.paa,
			scud_sklo3.paa,scud_sklo3B.paa, 
			scud_sklo4.paa,scud_sklo4B.paa,
			rapid_skloP.paa, rapid_skloPB.paa
		};
		dammageFull[]=
		{
			jeep4x4_glass.paa,jeep4x4_glassC.paa,
			jeep_kab_sklo1.paa,jeep_kab_sklo1C.paa,
			jeep_kab_sklo2.paa,jeep_kab_sklo2C.paa,
			scud_sklo2.paa,scud_sklo2C.paa,
			scud_sklo3.paa,scud_sklo3C.paa, 
			scud_sklo4.paa,scud_sklo4C.paa,
			rapid_skloP.paa, rapid_skloPC.paa
		};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -260;
			min = 0;
			max = 180 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -240;
			min = 0;
			max = 1;
		};
	};
	class RapidY: Rapid
	{
		//--
		vehicleClass="Car";

		scope=public;
		model=rapid_y;
	};
	
	

	class Skoda: SkodaBase
	{
		//--
		scope=public;
		model=skodovka;
		displayName=$STR_DN_SKODA_YELLOW;
	};

	class SkodaBlue: SkodaBase
	{
		//--
		scope=public;
		model = skodovka_blue;
		displayName=$STR_DN_SKODA_BLUE;
	};
	class SkodaRed: SkodaBase
	{
		//--
		scope=public;
		model = skodovka_red;
		displayName=$STR_DN_SKODA_RED;
	};
	class SkodaGreen: SkodaBase
	{
		//--
		scope=public;
		model = skodovka_green;
		displayName=$STR_DN_SKODA_GREEN;
	};


	class Tractor : Car
	{
		//--
		scope=public;
		picture=itruck5t;
		icon=truck;

		side=TCivilian;
		displayName=$STR_DN_TRACTOR;
		nameSound="tractor";
		accuracy=0.30;

		fuelCapacity=50;
		transportSoldier = 0;
		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;

		weapons[]={};
		magazines[]={};

		wheelCircumference=8;
		turnCoef=9.0;

		maxSpeed=30;

		cost=10000;
		armor=30;
		model=traktor;

		soundEngine[]={Vehicles\TractorRun,db-30,0.5};

		typicalCargo[]={};

		driverAction = ManActTractorDriver;
		getInAction = ManActGetInTank;
		getOutAction = ManActGetOutTank;
	};


	class Truck: Car
	{
		//--
		nameSound="truck";

		formationX=20;
		formationZ=30;

		getInAction = ManActGetInTank;
		getOutAction = ManActGetOutTank;

		armorWheels=0.3;
		damperSize = 0.2;

		// internal camera viewing limitations
		fov=1.0; minFov=0.6; maxFov=1.4;

		transportMaxMagazines = 200;
		transportMaxWeapons = 50;
	};

	//Western trucks
	class Truck5t : Truck
	{
		//-- 5 ton truck
		scope=public;
		crew = SoldierWB;
		picture=itruck5t;
		icon=truck;

		model=truck5t;
		hiddenSelections[] = {ammo};

		side=TWest;
		displayName=$STR_DN_5T_TRUCK;
	
		accuracy=0.30;

		fuelCapacity=200;
		transportSoldier = 12;

		DefaultWestMagazines(1)

		driverAction = ManActTruck5tDriver;

		cargoAction[] =
		{
			ManActTruck5tCoDriver,ManActTruck5tCoDriver,
			ManActCargo
		};
		cargoIsCoDriver[] = {true,true,false};

		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;

		camouflage=4; // no camouflage color  - easy to spot

		weapons[]={TruckHorn};
		magazines[]={};

		wheelCircumference=4.513;
		turnCoef=6.0;

		maxSpeed=80;

		cost=70000;
		armor=20;

		initCargoAngleY=+185; // cargo viewing limitations

		soundEngine[]={Vehicles\dieseltruckloop2,db-20,1};

		typicalCargo[]={Soldier, Soldier, SoldierLAW, SoldierLAW};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -210;
			min = 0;
			max = 100 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -220;
			min = 0;
			max = 1;
		};
	};

	class Truck5tOpen : Truck5t
	{
		//--
		scope=public;
		model=truck5t2;
		hiddenSelections[] = {};
		displayName=$STR_DN_5T_TRUCK_OPEN;
		accuracy=1000; // never recognized
	};

	class Truck5tRich : Truck5t
	{
		scope=protected;
		displayName="RichTruck";
		accuracy=1000; // never recognized
		cost=1000000;
	};

	class Truck5tRepair : Truck5t
	{
		//--
		vehicleClass="Support";
		picture=itruck5trepair;
		icon="Repair_move";

		scope=public;
		displayName=$STR_DN_REPAIT_TRUCK;
		accuracy=0.90;

		transportSoldier = 2;
		transportRepair = 200000000;

		model=truck5trepair;
		hiddenSelections[] = {};
		weapons[]={};
		magazines[]={};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};

		typicalCargo[]={};

		transportMaxMagazines = 50;
		transportMaxWeapons = 10;
	};
	class Truck5tReammo : Truck5t
	{
		//--
		vehicleClass="Support";

		icon="Ammo_move";

		scope=public;
		displayName=$STR_DN_REAMMO_TRUCK;
		accuracy=0.90;

		transportSoldier = 2;

		DefaultWestMagazines(1)

		transportAmmo = 300000;

		model=Truck5t;
		hiddenSelections[] = {};
		weapons[]={};
		magazines[]={};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};
		typicalCargo[]={};
	};
	class Truck5tRefuel : Truck5t
	{
		//--
		vehicleClass="Support";

		picture=iTruck5tfuel;
		icon="Fuel_move";

		scope=public;
		displayName=$STR_DN_REFUEL_TRUCK;
		nameSound="truck";
		accuracy=0.80;

		transportFuel = 3000;
		transportSoldier = 2;
		transportAmmo = 0;
		
		model=Truck5tfuel;
		hiddenSelections[] = {};
		weapons[]={};
		magazines[]={};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};
		typicalCargo[]={};
		transportMaxMagazines = 20;
		transportMaxWeapons = 5;
	};
	//Western soldiers	
	class SoldierWB : Soldier
	{
		//-- basic western soldier
		model="MC vojakW2";
		hiddenSelections[] = {"medic"};
		moves=CfgMovesMC;
		//picture=ivojak;
		vehicleClass="Men";
		scope=public;
		side=TWest;
		accuracy=0.7;
		displayName=$STR_DN_SOLDIER;
		weapons[]={M16, DefaultManWeapons};
		magazines[]=
		{
			M16, M16, M16, M16,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade
		};
		cost=40000;
	};

	class SoldierWG: SoldierWB
	{
		//-- western soldier with grenade launcher
		//picture=igrenadier;
		vehicleClass="Men";
		scope=public;
		cost=60000;
		displayName=$STR_DN_GRENADIER;
		accuracy=1000; // never recognized
		weapons[]={M16GrenadeLauncher, DefaultManWeapons};
		magazines[]={M16, M16, M16, M16, GrenadeLauncher, GrenadeLauncher, GrenadeLauncher};
	};
	class SoldierWMedic: SoldierWB
	{
		//--
		//model=vojakw_medic;
		accuracy=1000; // never recognized
		// picture=imedic;
		picture=\misc\medik.paa;
		vehicleClass="Men";
		scope=public;
		cost=60000;
		displayName=$STR_DN_MEDIC;
		weaponSlots = WeaponSlotPrimary + 4 * WeaponSlotItem + WeaponSlotBinocular + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;
		attendant = true;
		weapons[]={M16, DefaultManWeapons};
		magazines[]={M16, M16, M16, M16};
		nameSound="medic";
		hiddenSelections[] = {};
	};

	class SoldierWNOG: SoldierWB {scope=protected;};
	class SoldierW: SoldierWG {scope=protected;};
	class SoldierWCrew: SoldierWB
	{
		//--
		// picture=icrew;
		model="MC tankistaW2";
		nameSound="crew";
		accuracy=1000; // never recognize
		displayName=$STR_DN_CREW;
		weapons[]={M4, NVGoggles, DefaultManWeapons};
		magazines[]=
		{
			M4, M4, M4, M4,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade
		};
	};
	class SoldierWPilot: SoldierWB
	{
		//--
		// picture=ipilot;
		model="MC pilotW2";
		nameSound="pilot";
		displayName=$STR_DN_PILOT;
		weapons[]={M4, NVGoggles, DefaultManWeapons};
		magazines[]=
		{
			M4, M4, M4, M4,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade
		};
	};

	class SoldierWMG: SoldierWB
	{
		//-- western soldier with machine gun
		// picture=ismg;
		nameSound="machineGunner";
		//model=mgw;
		displayName=$STR_DN_MGUNNER;
		cost=60000;
		accuracy=1.5;
		weapons[]={M60, DefaultManWeapons};	
		magazines[]=
		{
			M60, M60, M60, M60, M60
		};	
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.1, 0.8};
	};
	class SoldierWLAW: SoldierWB
	{
		//-- western soldier with LAW launcher
		// picture=islaw;
		vehicleClass="Men";
		scope=public;
		nameSound="missileSoldier";
		//model=vojakw;
		nightVision=true;
		displayName=$STR_DN_LAW_SOLDIER;
		cost=150000;
		side=TWest;
		accuracy=1.5;
		weapons[]={M16, LAWLauncher, DefaultManWeapons};
		magazines[]={M16, M16, M16, M16, LAWLauncher, LAWLauncher, LAWLauncher};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.9, 0.1};
	};
	class SoldierWAT: SoldierWLAW
	{
		//-- western soldier with guided AT missile
		// picture=isat;
		displayName=$STR_DN_CG_SOLDIER;
		nameSound="missileSoldier";
		accuracy=1.5;
		weapons[]={M16, CarlGustavLauncher, DefaultManWeapons};
		magazines[]={M16, M16, M16, M16, CarlGustavLauncher};

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.9, 0.1};
	};
	class SoldierWAA: SoldierWLAW
	{
		//-- western soldier with AA missile
		// picture=isaa;
		displayName=$STR_DN_AA_SOLDIER;
		nameSound="missileSoldier";
		accuracy=1.5;
		weapons[]={M16, AALauncher, DefaultManWeapons};
		magazines[]={M16, M16, M16, M16, AALauncher};

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.5, 0.9};
	};
	class SoldierWMortar: SoldierWG
	{
		//-- western soldier with riffle grenade
		// picture=imortar;
		displayName=$STR_DN_MORTAR;
		accuracy=1.5;
		weapons[]={M16, DefaultManWeapons};
		magazines[]=
		{
			M16, M16, M16, M16,
			Mortar, Mortar, Mortar
		};

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 1, 0.1};
	};
	class SoldierWSniper: SoldierWB
	{
		//--
		//picture=isniper;
		picture=\misc\sniper.paa;

		displayName=$STR_DN_SNIPER;
		nameSound="sniper";
		accuracy=3.5; // hard to recognize
		nightVision=true;
		camouflage=0.6; // how easy to spot -> bigger means better spotable
		sensitivity=2; // eye sensitivity
		cost=250000;
		weaponSlots = WeaponSlotPrimary + WeaponSlotSecondary + 4 * WeaponSlotItem + 2 * WeaponSlotBinocular + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;
		weapons[]={M21, DefaultManWeapons};
		magazines[]=
		{
			M21, M21, M21, M21
		};
		model= "mc sniperw2.p3d";

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.1, 0.1};
	};
	class SoldierWLAWSniper: SoldierWSniper
	{
		scope = protected;
		displayName=$STR_DN_AT4_SNIPER;
		weapons[]={M21, LAWLauncher, DefaultManWeapons};
		weaponSlots = WeaponSlotPrimary + WeaponSlotSecondary + 10*WeaponSlotItem + 2*WeaponSlotBinocular + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;
		magazines[]=
		{
			M21, M21, M21, M21,
			LAWLauncher, LAWLauncher
		};

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.9, 0.1};
	};
	class SoldierWSaboteur: SoldierWB
	{
		scope = protected;
		//picture=isaboteur;
		picture=\misc\meciky.paa;

		accuracy=3.5; // hard to recognize
		cost=400000;
		
		nameSound = "blackOp";
		displayName=$STR_DN_BLACKOP;
		weapons[]={HK, DefaultManWeapons};
		magazines[]=
		{
			HK, HK, HK, HK,
			TimeBomb, TimeBomb, TimeBomb
		};
		camouflage=0.7; // how easy to spot -> bigger means better spotable

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.5, 0.1};
		model= "mc saboteur.p3d";

		canHideBodies = true;
		canDeactivateMines=true;
		nightVision=true;
	};
	class SoldierWSaboteurPipe: SoldierWSaboteur
	{
		//--
		scope = public;
		displayName=$STR_DN_BLACKOP;
		weapons[]={HK, NVGoggles, DefaultManWeapons};
		magazines[]=
		{
			HK, HK, HK, HK,
			PipeBomb, PipeBomb, PipeBomb
		};
	};
	class SoldierWSaboteurDay: SoldierWSaboteurPipe
	{
		//--
		scope = public;
		model= "mc saboteurday.p3d";
		displayName=$STR_DN_BLACKOPDAY;
		weapons[]={HK, Binocular, DefaultManWeapons};
		magazines[]=
		{
			HK, HK, HK, HK,
			PipeBomb, PipeBomb, PipeBomb
		};
	};
	class SoldierWMiner: SoldierWB
	{
		//--
		//picture=iminer;
		displayName=$STR_DN_ENGINEER;
		canDeactivateMines=true;
		picture=\misc\sapper.paa;
		accuracy=1000; // never recognize
		weapons[]={M16, Binocular, DefaultManWeapons};
		magazines[]=
		{
			M16, M16, M16, M16,
			Mine, Mine, Mine
		};

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.5, 0.1};
	};
	class OfficerW: SoldierWB
	{
		//--
		//picture=igrenadier;
		picture=\misc\frcky.paa;
		nameSound="officer";
		scope=public;
		model = "mc vojakwo2.p3d";
		//model=vojakwoficer;
		displayName=$STR_DN_OFFICER;
		accuracy=2.0;
		cost=500000;
		nightVision=true;
		weapons[]= {M16, Binocular, DefaultManWeapons};	
		magazines[]=
		{
			M16, M16, M16, M16,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade,
			SmokeShell, SmokeShell
		};	
	};
	class OfficerWNight: SoldierWB
	{
		//picture=igrenadier;
		picture=\misc\frcky.paa;
		nameSound="officer";
		scope=public;
		model = "mc vojakwo2.p3d";
		//model=vojakwoficer;
		displayName=$STR_DN_OFFICERNIGHT;
		accuracy=2.0;
		cost=500000;
		nightVision=true;
		weapons[]= {M16GrenadeLauncher, Binocular, NVGoggles, DefaultManWeapons};	
		magazines[]=
		{
			M16, M16, M16, M16,
			HandGrenade, HandGrenade, HandGrenade,
			Flare, Flare, Flare
		};	
	};
	class SoldierWCaptive : SoldierWB
	{
		//--
		cost=50000;
		displayName=$STR_DN_SOLDIERCAPTIVE;
		weapons[] = {};
		magazines[] = {};
	};
	class M1Abrams: Tank
	{
		//--
		scope=public;
		crew = SoldierWCrew;
		picture=iabrams;

		side=TWest;
		displayName=$STR_DN_M1A1;
		nameSound="Abrams";
		accuracy=0.40;

		armor=900;
		cost=4000000;

		maxSpeed=72;

		soundEngine[]={Vehicles\ModernIdle1,db-30,1};
		soundEnviron[]={Vehicles\ModernRolling_Treads1,db-40,1};

	
		model=M1_abrams;
		weapons[]={Gun120,MachineGun12_7};
		magazines[]={Heat120,Shell120,MachineGun12_7};

		gunnerAction = ManActM1A1Gunner;
		gunnerInAction = ManActM1A1Gunner;
		driverAction = ManActM1A1DriverOut;
		driverInAction = ManActM1A1Driver;
		commanderAction = ManActM1A1CommanderOut;
		commanderInAction = ManActM1A1Commander;
		
		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 1, 0.3};

		class HatchDriver
		{
			selection = "poklop_driver";
			axis = "osa_poklop_driver";
			angle = -100;
		};
		class HatchCommander
		{
			selection = "poklop_commander";
			axis = "osa_poklop_commander";
			angle = 95;
		};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -270;
			min = 0;
			max = 80 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -270;
			min = 0;
			max = 1;
		};
	};
	class M1AbramsAuto: M1Abrams
	{
		scope=protected;
		displayName=$STR_DN_M1A1_AUTO;
		hasGunner=false;
		hasCommander=false;
	};
	class M60: Tank
	{
		//--
		scope=public;
		crew = SoldierWCrew;
		picture=im60;

		side=TWest;
		displayName=$STR_DN_M60;
		nameSound="M60";
		accuracy=0.70;

		armor=300;
		cost=800000;

		maxSpeed=54;

		gunnerAction = ManActM60Gunner;
		gunnerInAction = ManActM60Gunner;
		driverAction = ManActM60DriverOut;
		driverInAction = ManActM60Driver;
		commanderAction = ManActM60CommanderOut;
		commanderInAction = ManActM60Commander;
	
		model=M60;
		weapons[]={Gun105,MachineGun7_6};
		magazines[]={Heat105,Shell105,MachineGun7_6};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.6, 0.2};

		class HatchDriver
		{
			selection = "poklop_driver";
			axis = "osa_poklop_driver";
			angle = -100;
		};
		class HatchCommander
		{
			selection = "poklop_commander";
			axis = "osa_poklop_commander";
			angle = -95;
		};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -270;
			min = 0;
			max = 60 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -315;
			min = 0;
			max = 1;
		};
	};
	/*!
	\patch 1.06 Date 7/19/2001 by Jirka
	- Fixed: M113 gunner view
	*/

	class M113: APC
	{
		//--
		scope=public;
		crew = SoldierWCrew;
		picture=im113;

		side=TWest;
		displayName=$STR_DN_M113;
		nameSound="m113";
		accuracy=0.30;

		armor=150;
		cost=100000;

		maxSpeed=60;

		hasCommander=false;
		// CHANGED
		outGunnerMayFire = true;
		forceHideGunner = true;
		viewGunnerInExternal = true;

		transportSoldier = 8;
		irScanRangeMin = 0;
		irScanRangeMax = 0;

		DefaultWestMagazines(1);
		transportAmmo = 0;

		gunnerAction = ManActM113Gunner;
		gunnerInAction = ManActM113Gunner;
		driverAction = ManActM113DriverOut;
		driverInAction = ManActM113Driver;

		soundEnviron[]={Vehicles\OldRolling_Treads1,db-20,0.7};
		soundEngine[]={Vehicles\m113b,db-20,1};
		soundCrash[]={Vehicles\crash_small2,db-20,1};
		soundGear[]={Vehicles\Gear_Trans1,db-40,1};

		model=m113;
		canFloat=true;

		class Turret: TurretBase
		{
			minElev=-12;
			maxElev=+20;
			minTurn=-360;
			maxTurn=+360;
		};

		//gunnerOpticsModel = "optika_m2mg";
		gunnerOpticsModel = "optika_empty";

		initCargoAngleY=+90; // cargo viewing limitations

		weapons[]={Browning};
		magazines[]={Browning};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.9, 0.2, 0.1};

		typicalCargo[]={Soldier, Soldier, SoldierLAW, SoldierLAW};

		class HatchDriver
		{
			selection = "poklop_driver";
			axis = "osa_poklop_driver";
			angle = 175;
		};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -290;
			min = 0;
			max = 64/3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -235;
			min = 0;
			max = 1;
		};
		transportMaxMagazines = 100;
		transportMaxWeapons = 20;
	};
	class M113Ambul: M113
	{
		//--
		accuracy=1000; // never recognized
		vehicleClass="Support";
		icon="Ambulance_move";
		picture=im113_ambu;
		nameSound="ambulance";

		scope=public;
		displayName=$STR_DN_M113_AMB;

		DefaultWestMagazines(0);
		attendant = true;

		model=M113_ambulance;
		weapons[]={};
		magazines[]={};

		hasGunner = false;
		transportSoldier = 3;

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};
		typicalCargo[]={};

		cargoAction[] = {ManActM113Medic, ManActM113Medic, ManActM113Injured};
		cargoIsCoDriver[] = {false, false, false};
		transportMaxMagazines = 0;
		transportMaxWeapons = 0;
	};
	/*!
	\patch 1.75 Date 3/7/2002 by Jirka
	- New: rotation machine gun animation
	*/
	class Cobra: Helicopter
	{
		//--
		picture=icobra;
		crew = SoldierWPilot;
		scope=public;
		side=TWest;
		displayName=$STR_DN_AH1;
		nameSound="cobra";
		accuracy=0.30;

		driverAction = ManActAH1Pilot;
		gunnerAction = ManActAH1Gunner;

		maxSpeed = 270;

		//soundEngine[]={Vehicles\ah1cobra,db+10,1};

		armor=50;
		cost=10000000;
		model=ah1_cobra;

		rotorBig = vrtule_velka;
		rotorBigBlend = vrtule_velka_bl_;
		rotorSmall = vrtule_mala;
		rotorSmallBlend = vrtule_mala_bl;
		weapons[]={MachineGun30W, HellfireLauncherCobra,ZuniLauncher38};
		magazines[]={MachineGun30W, HellfireLauncherCobra,ZuniLauncher38};

		type=VAir;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.3, 1, 0.8};

		class IndicatorAltRadar
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt";
			axis = "osa_alt";
			angle = -360;
			min = 0;
			max = 304;
		};
		class IndicatorAltBaro
		{
			// max for this indicator is 200 feet (i.e. 61m)
			// note: this is actualy Radar altitude (name is wrong)
			selection = "nm_alt";
			axis = "osa_nm_alt";
			angle = -180;
			min = 0;
			max = 61;
		};
		class IndicatorSpeed
		{
			selection = "mph";
			axis = "osa_mph";
			angle = -320;
			min = 0;
			max = 125;
		};
		class IndicatorVertSpeed
		{
			selection = "vert_speed";
			axis = "osa_vert_speed";
			angle = -300;
			min = -30;
			max = 30;
		};
		class IndicatorRPM
		{
			selection = "rpm";
			axis = "osa_rpm";
			angle = -320;
			min = 0;
			max = 12;
		};
		laserScanner = true;
		class ReloadAnimations
		{
			class MachineGun30W
			{
				weapon = MachineGun30W;
				angle0 = 0;
				angle1 = -2 * 3.141592654;
				multiplier = 500;
				type = rotation;
				animPeriod = 1;
				selection = gatling;
				begin = "usti hlavne";
				end = "konec hlavne";
			};
		};
	}; 
	/*!
	\patch 1.21 Date 8/14/2001 by Ondra
		- Fixed: Chinook second rotor rotates in opposite direction.
		- New: Chinook rotors change orientations when accelerating / decelerating.
	*/
	class Ch47D: Helicopter
	{
		//--
		access = ReadAndWrite;
		
		//scope=protected;

		mainRotorSpeed = 1.0;
		backRotorSpeed = -1.0; 

		minMainRotorDive = -9;
		maxMainRotorDive = 15;
		neutralMainRotorDive = -5;

		minBackRotorDive = -15;
		maxBackRotorDive = 9;
		neutralBackRotorDive = -5;

		transportMaxMagazines = 200;
		transportMaxWeapons = 50;
	};
	/*!
	\patch 1.86 Date 9/17/2002 by Ondra
	- Fixed: Parachutes no longer smoke when destroyed.
	*/
	
	class ParachuteBase: Helicopter
	{
		scope = private;
		destrType=DestructNo;

		simulation=parachute;

		weaponSlots = WeaponSlotPrimary + WeaponSlotSecondary + 10*WeaponSlotItem + 2*WeaponSlotBinocular + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;

		autocenter = false; // no autocenter - needed for RT animation

		vehicleClass="Air";
		displayName=$STR_DN_PARACHUTE;
		nameSound="man";
		model="para";
		picture=ivojak;
		icon = padak.paa;
		accuracy=0.1;

		fuelCapacity=0;
		unitInfoType=UnitInfoSoldier;
		hideUnitInfo=true;
		irTarget = false;
		hasGunner = false;

		soundEnviron[]={Objects\noise,db-40,0.25};
		soundGetOut[]={,db-70,1};
		soundCrash[]={,db-70,1};
		soundLandCrash[]={,db-70,1};
		soundWaterCrash[]={Explosions\intowater,db-30,1};

		driverCanSee = CanSeeEye+CanSeeEar;
		driverAction = ManActPara;
		armor = 10;

		class ViewOptics : ViewOpticsBase
		{
			initAngleX=0; minAngleX=-40; maxAngleX=17;
			initAngleY=0; minAngleY=-100; maxAngleY=100;
			initFov=0.5; minFov=0.3; maxFov=1.2;
		};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};

		cost=100000;
		//side=TWest;
		weapons[]={};
		magazines[]={};

	};
	/*!
	\patch 1.22 Date 8/30/2001 by Ondra
	- Fixed: Introduced east, civilian and resistance parachute (can be placed in mission editor).
	*/
	class ParachuteEast: ParachuteBase
	{
		//--
		scope = public;
		accuracy=0.5;
		side=TEast;
		crew = SoldierESaboteurPipe;
	};
	class ParachuteWest: ParachuteBase
	{
		//--
		scope = public;
		accuracy=0.5;
		side=TWest;
		crew = SoldierWSaboteurPipe;
	};
	class ParachuteC: ParachuteBase
	{
		//--
		scope = public;
		accuracy=0.5;
		side=TCivilian;
		crew = Civilian;
	};
	class ParachuteG: ParachuteBase
	{
		//--
		scope = public;
		accuracy=0.5;
		side=TGuerrila;
		crew = SoldierGB;
	};
	// for backward compatibility with older mission source
	class Parachute: ParachuteWest
	{
		scope = protected
	};
	/*
	\patch 1.21 Date 8/14/2001 by Ondra
		- Fixed: UH60 main rotor rotated in bad direction.
	*/
	class UH60: Helicopter
	{
		//--
		scope=public;
		crew = SoldierWPilot;
		picture=iuh60;

		maxSpeed = 270;

		side=TWest;
		displayName=$STR_DN_UH60;
		nameSound="blackhawk";
		accuracy=0.30;
		armor=60;
		cost=10000000;

		mainRotorSpeed = -1;

		model=uh-60;
		rotorBig = vrtule_uh_v;
		rotorBigBlend = vrtule_uh_v_bl;
		rotorSmall = vrtule_uh_m;
		rotorSmallBlend = vrtule_uh_m_bl;

		soundEngine[]={Vehicles\uh1,db+10,1.5};

		weapons[]={ZuniLauncher38};
		magazines[]={ZuniLauncher38};

		driverAction = ManActUH60Pilot;
		gunnerAction = ManActUH60Pilot;

		gunnerUsesPilotView = true;

		transportSoldier = 12;
		transportAmmo = 0;

		initCargoAngleY=+10; // cargo viewing limitations
		minCargoAngleY=-60;
		maxCargoAngleY=+120;

		type=VAir;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.3, 1, 0.4};

		typicalCargo[]={Soldier, Soldier, SoldierLAW, SoldierLAW};

		class Reflectors
		{
			class Left
			{
				color[] = {0.8, 0.8, 1.0, 1.0};
				ambient[] = {0.07, 0.07, 0.07, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 1.0;
			};
			class Right
			{
				color[] = {0.8, 0.8, 1.0, 1.0};
				ambient[] = {0.07, 0.07, 0.07, 1.0};
				position = "P svetlo";
				direction = "konec P svetla";
				hitpoint = "P svetlo";
				selection = "P svetlo";
				size = 0.5;
				brightness = 1.0;
			};
		};
		class IndicatorAltRadar
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt";
			axis = "osa_alt";
			angle = -360;
			min = 0;
			max = 304;
		};
		class IndicatorAltBaro
		{
			// max for this indicator is 200 feet (i.e. 61m)
			// note: this is actualy Radar altitude (name is wrong)
			selection = "nm_alt";
			axis = "osa_nm_alt";
			angle = -180;
			min = 0;
			max = 61;
		};
		class IndicatorSpeed
		{
			selection = "mph";
			axis = "osa_mph";
			angle = -350;
			min = 0;
			max = 175;
		};
		class IndicatorVertSpeed
		{
			selection = "vert_speed";
			axis = "osa_vert_speed";
			angle = -300;
			min = -30;
			max = 30;
		};
		class IndicatorRPM
		{
			selection = "rpm";
			axis = "osa_rpm";
			angle = -320;
			min = 0;
			max = 12;
		};
		class IndicatorAltRadar2
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt2";
			axis = "osa_alt2";
			angle = -360;
			min = 0;
			max = 304;
		};
		class IndicatorAltBaro2
		{
			// max for this indicator is 200 feet (i.e. 61m)
			// note: this is actualy Radar altitude (name is wrong)
			selection = "nm_alt2";
			axis = "osa_nm_alt2";
			angle = -180;
			min = 0;
			max = 61;
		};
		class IndicatorSpeed2
		{
			selection = "mph2";
			axis = "osa_mph2";
			angle = -350;
			min = 0;
			max = 175;
		};
		class IndicatorVertSpeed2
		{
			selection = "vert_speed2";
			axis = "osa_vert_speed2";
			angle = -300;
			min = -30;
			max = 30;
		};
		class IndicatorRPM2
		{
			selection = "rpm2";
			axis = "osa_rpm2";
			angle = -320;
			min = 0;
			max = 12;
		};
		transportMaxMagazines = 150;
		transportMaxWeapons = 30;
	}; 

	class UH60MG: UH60
	{
		//--
		displayName=$STR_DN_UH60_MG;
		nameSound="blackhawk";
		accuracy=1000;
		model="uh-60mg";

		transportSoldier = 12;

		enableSweep=false;
		gunnerAction = ManActUH60Gunner;

		gunnerOpticsModel = "optika_empty";

		weapons[]={Browning};
		magazines[]={Browning};

		class Turret: TurretBase
		{
			minElev=-42; maxElev=+5;
			minTurn=30; maxTurn=150;
			soundServo[]={,db-40,1.0};
		}
		class ViewGunner: ViewGunnerBase
		{
			initAngleY=+90; minAngleY=+30; maxAngleY=+150;
			initAngleX=0; minAngleX=-42; maxAngleX=+5;
		};
	};

	/*!
		\patch 1.24 Date 9/20/2001 by Ondra
		- Fixed: Su25 armor was too low.
	*/
	class Su25: Plane
	{
		//--
		//access = ReadAndCreate; // cannot be verified - used for addon patching
		access = ReadAndWrite; // cannot be verified - used for addon patching
		armor = 50;
	};

	/*!
		\patch 1.24 Date 9/20/2001 by Ondra
		- Fixed: A10 armor was too low.
	*/
	class A10: Plane
	{
		//--
		scope=public;
		crew = SoldierWPilot;
		picture=ia10;

		side=TWest;
		displayName=$STR_DN_A10;
		nameSound="thunderbolt";
		accuracy=0.30;

		driverAction = ManActA10Pilot;

		maxSpeed = 600;

		laserScanner = true;

		armor=50;
		cost=20000000;
		model=a10;
		weapons[]={MaverickLauncher, MachineGun30A10Burst};
		magazines[]={MaverickLauncher, MachineGun30A10Burst};
		//weapons[]={MachineGun30};
		//magazines[]={MachineGun30};
		fov=0.5;

		type=VAir;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.1, 1, 0.7};

		class Reflectors
		{
			class Reflector
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 0.25;
			};
		};
	};
	
	/*!
		\patch 1.30 Date 11/01/2001 by Ondra
		- Fixed: Cessna engine sound was too weak.
	*/
	class Cessna: A10
	{
		//--
		scope=public;
		//picture=icessna;

		crew = Civilian;

		side=TCivilian;
		displayName=$STR_DN_PLANE;
		nameSound="plane";
		accuracy=0.30;

		maxSpeed = 300;
		gearRetracting = false;
		ejectSpeed[]={0,0,0};

		armor=15;
		cost=200000;
		model=cessna182;

		picture=icessna;
/*!
		\patch 1.46 Date 3/4/2002 by Viktor
		- Fixed: Appropriate picture for Cessna.
*/

		weapons[]={};
		magazines[]={};
		fov=0.5;

		landingAoa = 7*3.1415/180;

		driverAction=ManActCessnaPilot;
		cargoAction[]={ManActCessnaCoPilot,ManActCessnaCargo};

		soundEngine[]={Vehicles\plane,db-10,1};
		soundEnviron[]={Objects\noise,db-60,1.0};
		soundServo[]={Vehicles\gun_elevate,db-40,0.4};

		transportSoldier = 3;

		extCameraPosition[]={0,2,-30};

		type=VAir;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.1, 1, 0.7};
		audible = 6; // Cessna is not as loud as other planes

		aileronSensitivity = 0.33; // relative aileron sensitivity
		elevatorSensitivity = 0.1; // relative elevator sensitivity
		//noseDownCoef = 0.25; // how much goes nose down during turns
		noseDownCoef = 0.025; // how much goes nose down during turns

		class Reflectors
		{
			class Left
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 0.25;
			};
			class Right
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "P svetlo";
				direction = "konec P svetla";
				hitpoint = "P svetlo";
				selection = "P svetlo";
				size = 0.5;
				brightness = 0.25;
			};
		};

		class IndicatorAltRadar
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt";
			axis = "osa_alt";
			angle = -355;
			min = 0;
			max = 150;
		};
		class IndicatorAltRadar2
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt2";
			axis = "osa_alt2";
			angle = -355;
			min = 0;
			max = 150;
		};
		class IndicatorSpeed
		{
			selection = "mph";
			axis = "osa_mph";
			angle = -300;
			min = 0;
			max = 90;
		};
		class IndicatorVertSpeed
		{
			selection = "vert_speed";
			axis = "osa_vert_speed";
			angle = -300;
			min = -30;
			max = 30;
		};
		class IndicatorVertSpeed2
		{
			selection = "vert_speed2";
			axis = "osa_vert_speed2";
			angle = -300;
			min = -30;
			max = 30;
		};
		class IndicatorRPM
		{
			selection = "rpm";
			axis = "osa_rpm";
			angle = -240;
			min = 0;
			max = 1;
		};
		class IndicatorCompass
		{
			selection = "kompas";
			axis = "osa_kompas";
			angle = 360;
			min = -3.1415926536;
			max = 3.1415926536;
		};
		class IndicatorWatch
		{
			hour = "hodinova";
			minute = "minutova";
			axis = "osa_time";
			reversed = false;
		};
		class IndicatorWatch2
		{
			hour = "hodinova2";
			minute = "minutova2";
			axis = "osa_time2";
			reversed = false;
		};
	};

/*	class CarrierW: BigShip
	{
		scope=public;
		crew = SoldierWB;
		side=TWest;
		displayName=$STR_DN_LST;
		model=newport;
		picture=im113;
		accuracy=0.50;

		maxSpeed=50;

		transportSoldier = 50;

		class TransportMagazines {};

		transportAmmo = 10000000;
		transportVehiclesCount = 15;

		//cost=200000000;
		cost=0;
		armor=10000;
		weapons[]={};
		magazines[]={};
	};
*/

	class BoatW: SmallShip
	{
		//--
		vehicleClass="Armored";
		displayName=$STR_DN_MARK_II;
		accuracy=0.50;

		scope=public;
		crew = SoldierWB;
		model="pbr";
		picture=ipbr;
		side=TWest;

		driverIsCommander=true;
		driverAction = ManActPBRDriver;
		gunnerAction = ManActPBRGunner;
		cargoAction[] = {ManActCargo};

		gunnerOpticsModel = "optika_empty";

		maxSpeed=60;

		transportSoldier = 6;

		DefaultWestMagazines(1)

		cost=100000;
		armor=100;
	};
	class BoatWAuto: BoatW
	{
		scope=protected;
		displayName=$STR_DN_MARK_II_AUTO;
		hasGunner=false;
		hasCommander=false;
	};

	/*!
		\patch 1.17 Date 8/14/2001 by Ondra
		- Fixed: M2 static gun was visible on tank radar.
	*/
	class M2StaticMG: M113
	{	// TODO: derive from Fortress
		//--
		hideProxyInCombat = false;

	/*!
		\patch 1.30 Date 11/02/2001 by Viktor
		- Fixed: Appropriate picture for M2.
	*/
		picture=m2;
	/*!
		\patch 1.30 Date 11/02/2001 by Viktor
		- Fixed: Soldier instead of tank crew.
	*/
		crew = SoldierWB;
		
		hasDriver = false; // no driver - static
		hasGunner = true; // only one person inside
		hasCommander = false;

		castGunnerShadow = true;
		ejectDeadGunner = true;

		unitInfoType=UnitInfoSoldier;
		hideUnitInfo=true;

		irScanRangeMin = 0;
		irScanRangeMax = 0;
		irTarget = false;

		maxSpeed = 1; // not able to move
		fuelCapacity = 0;
		transportSolider = 0;

		gunnerAction = ManActM2Gunner;
		gunnerInAction = ManActM2Gunner;
		gunnerCanSee = CanSeeEye+CanSeeEar;
		commanderCanSee = CanSeeEye+CanSeeEar;

		extCameraPosition[]={0,0.8,-5};

		class TransportMagazines {};

		cost=10000;

		//getInAction = ManActStop;
		getInAction = ManActGetInCar;
		getOutAction = ManActGetOutCar;

		class Turret: TurretBase
		{
			soundServo[]={};
			minElev=-20;
			maxElev=+20;
			minTurn=-360;
			maxTurn=+360;
		};
		
		armor=30;
		armorStructural=10.0;
		type = VSoft;
		
		model=m2_mg;
		icon = kulomet.paa;

		displayName=$STR_DN_M2_MG;
		nameSound="mgun";

		transportSoldier = 0;
		transportAmmo = 0;
		accuracy=0.30;
		typicalCargo[]={};

		transportMaxMagazines = 0;
		transportMaxWeapons = 0;

	};

	//EAST	
	class UAZ: Car
	{
		//--
		picture=iuaz;
		scope=public;
		crew = SoldierEB;
		side=TEast;
		displayName=$STR_DN_UAZ;
		nameSound="UAZ";
		accuracy=0.50;

		transportSoldier = 3;
		transportAmmo = 0;

		maxSpeed = 90;


		driverAction=ManActUAZDriver;
		cargoAction[] =
		{
			ManActUazCoDriver,ManActCargo
		};
		cargoIsCoDriver[] = {true,false};

		cost=25000;
		armor=20;
		model=uaz;

		armorWheels=0.12;

		soundEngine[]={Vehicles\uazloop,db-30,1.25};

		// internal camera viewing limitations
		class ViewPilot: ViewPilotBase
		{
			initAngleX=10;
		};
		
		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.5, 0.5, 0.1};

		dammageHalf[]=
		{
			jeep4x4_glass.paa,jeep4x4_glassB.paa,
			jeep_kab_sklo1.paa,jeep_kab_sklo1B.paa,
			jeep_kab_sklo2.paa,jeep_kab_sklo2B.paa,
			scud_sklo.paa,scud_skloB.paa,
			scud_sklo2.paa,scud_sklo2B.paa,
			scud_sklo3.paa,scud_sklo3B.paa, 
			scud_sklo4.paa,scud_sklo4B.paa
		};
		dammageFull[]=
		{
			jeep4x4_glass.paa,jeep4x4_glassC.paa,
			jeep_kab_sklo1.paa,jeep_kab_sklo1C.paa,
			jeep_kab_sklo2.paa,jeep_kab_sklo2C.paa,
			scud_sklo.paa,scud_skloC.paa,
			scud_sklo2.paa,scud_sklo2C.paa,
			scud_sklo3.paa,scud_sklo3C.paa, 
			scud_sklo4.paa,scud_sklo4C.paa
		};


		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -240;
			min = 0;
			max = 50;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -170;
			min = 0;
			max = 1;
		};
	};
	class Ural : Truck
	{
		//--
		scope=public;
		crew = SoldierEB;
		picture=iural;
		icon=truck;

		side=TEast;
		displayName=$STR_DN_URAL;

		accuracy=0.30;

		maxSpeed=80;
		wheelCircumference=4.513;
		turnCoef=6.0;

		driverAction = ManActUralDriver;

		cargoAction[] =
		{
			ManActUralCoDriver,ManActUralCoDriver,ManActCargo
		};
		cargoIsCoDriver[] = {true,true,false};

		transportSoldier = 12;

		DefaultEastMagazines(1)
		
		transportAmmo = 0;
		transportRepair = 0;

		weapons[]={TruckHorn};
		magazines[]={};

		cost=50000;
		armor=20;
		model=ural;
		hiddenSelections[] = {ammo};

		initCargoAngleY=+185; // cargo viewing limitations

		soundEngine[]={Vehicles\Largecar,db-20,1};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};

		typicalCargo[]={Soldier, Soldier, SoldierLAW, SoldierLAW};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -280;
			min = 0;
			max = 40;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -280;
			min = 0;
			max = 1;
		};
	};
	class UralRepair : Ural
	{
		//--
		picture=iuralrepair;
		vehicleClass="Support";
		icon="Repair_move";

		scope=public;
		displayName=$STR_DN_URAL_REPAIR;
		accuracy=0.90;

		model=uralrepair;
		hiddenSelections[] = {};

		transportSoldier = 2;
		transportRepair = 200000000;
		weapons[]={};
		magazines[]={};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};

		typicalCargo[]={};
	};
	class UralReammo : Ural
	{
		//--
		vehicleClass="Support";
		icon="Ammo_move";

		scope=public;
		displayName=$STR_DN_URAL_AMMO;
		accuracy=0.90;

		transportSoldier = 2;

		DefaultEastMagazines(1)
		transportAmmo = 300000;
/*!
		\patch 1.46 Date 3/4/2002 by Viktor
		- Fixed: More ammo for Reammo Ural (same as for Reammo 5tTruck).
*/

		model=ural;
		hiddenSelections[] = {};
		weapons[]={};
		magazines[]={};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};
	};
	class UralRefuel : Ural
	{
		//--
		picture=iuralfuel;
		vehicleClass="Support";
		icon="Fuel_move";

		scope=public;
		displayName=$STR_DN_URAL_FUEL;
		accuracy=0.80;

		model=uralfuel;
		hiddenSelections[] = {};
		weapons[]={};
		magazines[]={};

		transportFuel = 3000;
		transportSoldier = 2;
		transportAmmo = 0;

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};
	};
	class Scud: Ural
	{
		//--
		vehicleClass="Car";
		picture=iscud;
		nameSound="scudLauncher";
		scope=public;
		displayName=$STR_DN_SCUD;
		accuracy=0.90;

		armor = 40;
		maxSpeed = 55;

		driverAction=ManActSCUDDriver;
		cargoAction[]={ManActSCUDCoDriver};
		cargoIsCoDriver[] = {true};
		/*!
		\patch 1.40 Date 12/18/2001 by Ondra
		- Fixed: SCUD has now 3 cargo seats instead of 4 (4th position was undefined).
		*/
		
		transportSoldier = 3;
		transportAmmo = 0;
		
		turnCoef=8.0;

		model=scud;
		hiddenSelections[] = {};
		weapons[]={};
		magazines[]={};

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};

		scudLaunch = "scudlunch.rtm";
		scudStart = "scudstart.rtm";
		scudSoundElevate[] = {vehicles\gun_elevate, db-40, 1};
		scudSound[] = {weapons\rocketflying, db+50, 0.2};

		scudModel = scud_strela_proxy;
		scudModelFire = scud_strela_ohen;
	};
	class SoldierEB: Soldier
	{
		//--
		displayName=$STR_DN_SOLDIER;
		//picture=ivojak;
		vehicleClass="Men";
		scope=public;
		model="MC vojakE2";
		hiddenSelections[] = {"medic"};
		moves=CfgMovesMC;
		side=TEast;
		cost=40000;
		accuracy=0.7;
		weapons[]={AK74, DefaultManWeapons};
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade
		};
	};

	class SoldierWFakeE : SoldierEB
	{
		//--
		moves=CfgMovesMC;
		//picture=ivojak;
		vehicleClass="Men";
		scope=protected;
		side=TWest;
		accuracy=2.0;
		displayName=$STR_DN_SOLDIERFAKE;
		weapons[]={AK74, DefaultManWeapons};
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade
		};

		cost=40000;
	};
	class SoldierEG : SoldierEB
	{
		//--
		cost=50000;
		accuracy=1000;
		displayName=$STR_DN_GRENADIER;
		// weapons[]={AK74, AK74Burst, AK74FullAuto, GrenadeLauncher};
		weapons[]={AK74GrenadeLauncher, DefaultManWeapons};
		magazines[]={AK74, AK74, AK74, AK74, GrenadeLauncher, GrenadeLauncher, GrenadeLauncher};
	};

	class SoldierEMedic: SoldierEB
	{
		//--
		//model=vojakw_medic;
		accuracy=1000; // never recognized
		//picture=imedic;
		picture=\misc\medik.paa;
		vehicleClass="Men";
		scope=public;
		cost=60000;
		displayName=$STR_DN_MEDIC;
		weaponSlots = WeaponSlotPrimary + 4 * WeaponSlotItem + WeaponSlotBinocular + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;
		attendant = true;
		weapons[]={AK74, DefaultManWeapons};
		magazines[]={AK74, AK74, AK74, AK74};
		nameSound="medic";
		hiddenSelections[] = {};
	};



	class SoldierENOG: SoldierEB {scope=protected;};
	class SoldierE: SoldierEG {scope=protected;};
	class SoldierECrew: SoldierEB
	{
		//--
		model = "MC tankistaE2.p3d";
		nameSound="crew";
		accuracy=1000; // never recognize
		displayName=$STR_DN_CREW;
		
		weapons[]={AK74SU, NVGoggles, DefaultManWeapons};
	};
	class SoldierEPilot: SoldierEB
	{
		//--
		accuracy=1000; // never recognize
		model = "mc pilote2.p3d"
		displayName=$STR_DN_PILOT;
		nameSound="pilot";

		weapons[]={AK74SU, NVGoggles, DefaultManWeapons};
	};
	class SoldierEMG: SoldierEB
	{
		//--
		//picture=ismg;
		vehicleClass="Men";
		scope=public;
		//model=pke;
		displayName=$STR_DN_MGUNNER;
		cost=60000;
		side=TEast;
		accuracy=1.5;
		nameSound="machineGunner";
		weapons[]={PK, DefaultManWeapons};	
		magazines[]=
		{
			PK, PK, PK, PK, PK
		};	
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.1, 0.8};
	};
	class SoldierELAW: SoldierEB
	{
		//--
		//picture=islaw;
		displayName=$STR_DN_RPG_SOLDIER;
		nameSound="missileSoldier";
		cost=80000;
		accuracy=1.5;
		weapons[]={AK74, RPGLauncher, DefaultManWeapons};	
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			RPGLauncher, RPGLauncher, RPGLauncher
		};	
		nightVision=true;

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.9, 0.1};
	};
	class SoldierEAT: SoldierELAW
	{
		//--
		//picture=isat;
		displayName=$STR_DN_AT4_SOLDIER;
		nameSound="missileSoldier";
		accuracy=1.5;
		weapons[]={AK74, AT4Launcher, DefaultManWeapons};	
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			AT4Launcher
		};	

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.9, 0.1};
	};
	class SoldierEAA: SoldierELAW
	{
		//--
		//picture=isaa;
		displayName=$STR_DN_AA_SOLDIER;
		nameSound="missileSoldier";
		accuracy=1.5;
		weapons[]={AK74, 9K32Launcher, DefaultManWeapons};	
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			9K32Launcher
		};	

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.5, 0.9};
	};
	class SoldierEMiner: SoldierEB
	{
		//--
		//picture=iminer;
		displayName=$STR_DN_ENGINEER;
		accuracy=1000; // never recognize
		weapons[]={AK74, DefaultManWeapons};
		canDeactivateMines=true;
		picture=\misc\sapper.paa;
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			MineE, MineE, MineE
		};

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.5, 0.1};
	};
	class OfficerE: SoldierEB
	{
		//--
		nameSound="officer";
		displayName=$STR_DN_OFFICER;
		scope=public;
		//model=vojakeoficer;
		model = "mc vojakeo2.p3d"
		picture=\misc\frcky.paa;
		side=TEast;
		accuracy=2.0;
		cost=600000;
		nightVision=true;
		weapons[]={AK74, Binocular, DefaultManWeapons};	
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade,
			SmokeShell, SmokeShell
		};	
	};
	class OfficerENight: SoldierEB
	{
		//--
		nameSound="officer";
		displayName=$STR_DN_OFFICERNIGHT;
		scope=public;
		//model=vojakeoficer;
		model = "mc vojakeo2.p3d"
		picture=\misc\medik.paa;
		side=TEast;
		accuracy=2.0;
		cost=600000;
		nightVision=true;
		weapons[]={AK74GrenadeLauncher, Binocular, NVGoggles, DefaultManWeapons};	
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			HandGrenade, HandGrenade, HandGrenade,
			Flare, Flare, Flare
		};	
	};
	class GeneralE: SoldierEB
	{
		//--
		nameSound="officer";
		displayName=$STR_DN_GENERAL;
		scope=protected;
		//model=vojakeoficer;
		model = "mc vojake2_guba.p3d"
		side=TEast;
		accuracy=2.0;
		cost=100000;
		nightVision=true;
		weapons[]={};	
		magazines[]=
		{
		};	
	};
	class Angelina: SoldierEB
	{
		//--
		displayName=$STR_DN_ANGELINA;
		scope=protected;
		model = "angelina.p3d"
		side=TEast;
		accuracy=2.0;
		cost=100000;
		weapons[]={};	
		magazines[]=
		{
		};	
	};

	class SoldierESniper: SoldierEB
	{
		//--
		nameSound="sniper";
		displayName=$STR_DN_SNIPER;
		accuracy=3.5; // hard to recognize
		nightVision=true;
		cost=250000;
		weaponSlots = WeaponSlotPrimary + WeaponSlotSecondary + 4 * WeaponSlotItem + 2 * WeaponSlotBinocular + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;

		weapons[]={SVDDragunov, DefaultManWeapons};
		magazines[]=
		{
			SVDDragunov, SVDDragunov, SVDDragunov, SVDDragunov
		};

		model = "mc snipere2.p3d"
		picture=\misc\sniper.paa;
		sensitivity=2; // eye sensitivity
		camouflage=0.6; // how easy to spot -> bigger means better spotable

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.1, 0.1};
	};

	class SoldierESaboteur: SoldierEB
	{
		scope = protected;
		//picture=isaboteur;
		picture=\misc\meciky.paa;
		accuracy=3.5; // hard to recognize
		cost=400000;

		displayName=$STR_DN_SPECNAS;
		weapons[]={AK74SU, DefaultManWeapons};
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			TimeBomb, TimeBomb, TimeBomb
		};

		camouflage=0.7; // how easy to spot -> bigger means better spotable

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.5, 0.1};

		model = "mc specnas2.p3d"
		nameSound="specNas";

		canHideBodies = true;
		canDeactivateMines=true;
	};
	class SoldierESaboteurPipe: SoldierESaboteur
	{
		//--
		scope = public;
		displayName=$STR_DN_SPECNAS;
		weapons[]={AK74SU, NVGoggles, DefaultManWeapons};
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			PipeBomb, PipeBomb, PipeBomb
		};
	};
	class SoldierEFakeW : SoldierWB
	{
		//--
		model="MC vojakW2";
		moves=CfgMovesMC;
		//picture=ivojak;
		vehicleClass="Men";
		scope=protected;
		side=TEast;
		accuracy=2.0;
		displayName=$STR_DN_ESOLDIERFAKE;
		weapons[]={M16, DefaultManWeapons};
		magazines[]=
		{
			M16, M16, M16, M16,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade
		};
		cost=40000;
	};


	class LaserTarget: All
	{
		//-- laser designator dot
		reversed=false; // all vehicles are reversed - except static

		hasDriver=false;
		
		icon="Unknown_object";

		displayName = $STR_DN_LASER_TARGET;
		nameSound="target";
		accuracy=0.005;
		model = "laserTgt.p3d";

		picture="ivojak";
/*!
	\patch 1.33 Date 11/29/2001 by Ondra
	- Changed: Laser target priority increased.
*/
		// add weapons - make AI consider it "combat" enemy
		// but not too dangerous, otherwise it will try to avoid it
		weapons[]={M16};
		magazines[]={M16};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.5, 0.5, 0.1};
		maxSpeed=0; // cannot move

		simulation="laserTarget";
		laserTarget = true;
		irTarget = false;

		destrType=DestructNo;
		side = TCivilian;

		cost=100000000; // make AI attacking it with very high priority
		armor=500; // make AI selecting appropriate (heavy) weapon

	};

	class BMP: APC
	{
		//--
		scope=public;
		crew = SoldierECrew;
		picture=ibmp;
		side=TEast;
		displayName=$STR_DN_BMP;
		nameSound="BMP";
		accuracy=0.30;

		maxSpeed = 70;

		hiddenSelections[] = {"pruh"};

		transportSoldier = 8;
		DefaultEastMagazines(1);
		transportAmmo = 0;

/*!
	\patch 1.30 Date 11/02/2001 by Viktor
	- Improved: A bit better armor for BMP.
*/

		armor=200;
		cost=150000;
	
		forceHideGunner = false;

		model=bmp;
		canFloat=true;

		minGunElev=-5;
		maxGunElev=+15;

		weapons[]={Gun73,MachineGun7_6,AT3Launcher};
		magazines[]={Heat73,Shell73,MachineGun7_6,AT3Launcher};

		typicalCargo[]={Soldier, Soldier, SoldierLAW};
		
		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.9, 0.7, 0.3};

		soundEnviron[]={Vehicles\OldRolling_Treads1,db-15,1};
		soundEngine[]={Vehicles\T55Sound,db-15,1};

		driverAction = ManActBMPDriverOut;
		gunnerAction = ManActBMPGunnerOut;
		commanderAction = ManActBMPCommanderOut;

		driverInAction = ManActBMPDriver;
		gunnerInAction = ManActBMPGunner;
		commanderInAction = ManActBMPCommander;

		class HatchDriver
		{
			selection = "poklop_driver";
			axis = "osa_poklop_driver";
			angle = -100;
		};
		class HatchCommander
		{
			selection = "poklop_commander";
			axis = "osa_poklop_commander";
			angle = -90;
		};
		class HatchGunner
		{
			selection = "poklop_gunner";
			axis = "osa_poklop_gunner";
			angle = +90;
		};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -320;
			min = 0;
			max = 40 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -230;
			min = 0;
			max = 1;
		};
	};

	class BMPAmbul: BMP
	{
		//--
		accuracy=1000; // never recognized
		vehicleClass="Support";
		icon="Ambulance_move";
		nameSound="ambulance";	
		picture=ibmp_abu;

		scope=public;
		displayName=$STR_DN_BMP_AMB;

		attendant = true;
		//class TransportMagazines {};

		hasGunner = false;
		transportSoldier = 2;
		
		DefaultEastMagazines(0);
		
		model=bmp_Ambu;
		weapons[]={};
		magazines[] = {};

		// ??
		minGunTurn=-6;

		type=VSoft;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};
		typicalCargo[]={};

		cargoAction[] =
		{
			ManActM113Medic, ManActM113Injured
		};
		cargoIsCoDriver[] = {false,false};
	};
	class RussianTank: Tank
	{
		//--
		accuracy=0.35;
		side=TEast;
		crew = SoldierECrew;
		commanderOpticsModel = "optika_tanke_auxiliary";

		forceHideGunner = false;
	};
	class T72: RussianTank
	{
		//--
		scope=public;
		picture=it72;
		side=TEast;
		displayName=$STR_DN_T72;
		nameSound="t72";
		accuracy=0.50;

		hiddenSelections[] = {"pruh"};

		armor=400;
		cost=1000000;

		maxSpeed=60;
		
		driverAction = ManActT72DriverOut;
		gunnerAction = ManActT72GunnerOut;
		commanderAction = ManActT72CommanderOut;

		driverInAction = ManActT72Driver;
		gunnerInAction = ManActT72Gunner;
		commanderInAction = ManActT72Commander;

		model=t72;
		weapons[]={Gun120,MachineGun7_6};
		magazines[]={Heat120,Shell120,MachineGun7_6};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.9, 0.8, 0.2};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -270;
			min = 0;
			max = 100 / 3.6;
		};
		class IndicatorSpeed2
		{
			selection = "ukaz_rychlo2";
			axis = "osa_rychlo2";
			angle = -270;
			min = 0;
			max = 100 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -290;
			min = 0;
			max = 1;
		};
	};
	class T80: RussianTank
	{
		//--
		scope=public;
		picture=it80;
		side=TEast;
		displayName=$STR_DN_T80;
		nameSound="t80";
		accuracy=0.50;

		driverAction = ManActT80DriverOut;
		gunnerAction = ManActT80GunnerOut;
		commanderAction = ManActT80CommanderOut;

		hiddenSelections[] = {"pruh"};

		driverInAction = ManActT80Driver;
		gunnerInAction = ManActT80Gunner;
		commanderInAction = ManActT80Commander;

		armor=700;
		cost=1500000;

		maxSpeed = 70;

		soundEngine[]={Vehicles\ModernIdle1,db-30,1};
		soundEnviron[]={Vehicles\ModernRolling_Treads1,db-30,1};

		model=t80;
		weapons[]={Gun120,MachineGun12_7};
		magazines[]={Heat120,Shell120,MachineGun12_7};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.9, 0.9, 0.3};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -270;
			min = 0;
			max = 100 / 3.6;
		};
		class IndicatorSpeed2
		{
			selection = "ukaz_rychlo2";
			axis = "osa_rychlo2";
			angle = -270;
			min = 0;
			max = 100 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -290;
			min = 0;
			max = 1;
		};
	};
	class T80Auto: T80
	{
		scope=protected;
		hasGunner=false;
		hasCommander=false;
		displayName=$STR_DN_T80_AUTO;
		accuracy=1000;
	};
	class ZSU: Tank
	{
		//--
		scope=public;
		crew = SoldierECrew;
		picture=izsu;
		icon = antiAC.paa;
		side=TEast;
		displayName=$STR_DN_ZSU;
		nameSound="shilka";
		accuracy=0.30;

		commanderCanSee = CanSeeAll;
		gunnerCanSee = CanSeeRadarC+CanSeeOptics+CanSeeEar;

		driverAction = ManActZSUDriver;
		gunnerAction = ManActZSUGunnerOut;
		commanderAction = ManActZSUCommanderOut;

		driverInAction = ManActZSUDriver;
		gunnerInAction = ManActZSUGunner;
		commanderInAction = ManActZSUCommander;

		forceHideGunner = false;
		forceHideDriver = true;

		class HatchDriver
		{
			selection = "poklop_driver";
			axis = "osa_poklop_driver";
			angle = +100;
		};
		class HatchCommander
		{
			selection = "poklop_commander";
			axis = "osa_poklop_commander";
			angle = +100;
		};

		armor=250;
		cost=1000000;
		model=zsu;
		simulation=tank;

		maxSpeed=44;
		// long range radar
		irScanRangeMin = 4000;
		irScanRangeMax = 10000;
		irScanToEyeFactor = 5;
		irScanGround = false;  // NO IR on ground targets

		soundCrash[]={Vehicles\crash1,db-20,1};
		
		weapons[]={ZsuCannon};
		magazines[]={ZsuCannon};

		class Turret: TurretBase
		{
			minElev=-7;
			maxElev=+70;
		};

		class IndicatorSpeed
		{
			selection = "ukaz_mph";
			axis = "osa_mph";
			angle = 250;
			min = 0;
			max = 100 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = 315;
			min = 0;
			max = 1;
		};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.5, 0.5, 1};

		gunnerOpticsModel = "optika_zsu_gunner";
		commanderOpticsModel = "optika_tanke_auxiliary";
	};

	/*!
		\patch 1.30 Date 11/01/2001 by Ondra
		- Fixed: Soldier in eastern static MG is now wearing correct uniform.
	*/
	class M2StaticMGE: M2StaticMG		
		// East version (stolen?)
	{	// TODO: derive from Fortress
		//--
		side=TEast;
		displayName=$STR_DN_M2_MGE;
		crew = SoldierEB;
	};

	class Mi24: Helicopter
	{
		//--
		scope=public;
		crew = SoldierEPilot;
		picture=imi24;

		maxSpeed = 294;


		side=TEast;
		displayName=$STR_DN_MI24;
		nameSound="hind";
		accuracy=0.50;
		cost=4000000;
		armor=100;
		model=mi24_HIND;
		rotorBig = hip_vrt_v;
		rotorBigBlend = hip_vrtblur_v;
		rotorSmall = vrthind_m;
		rotorSmallBlend = vrthind_m_bl;
		soundEngine[]={vehicles\mi_helicopter,db+10,1};
		weapons[]={MachineGun30E,HellfireLauncherHind,Rocket57x64};
		magazines[]={MachineGun30E,HellfireLauncherHind,Rocket57x64};

/*!
		\patch 1.46 Date 3/4/2002 by Viktor
		- Fixed: 8 men can be transported in Hind's cargo.
*/
		transportSoldier = 8;	// were 6 - unknown reason...
		transportAmmo = 0;

		type=VAir;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.6, 1, 0.8};

		typicalCargo[]={Soldier, SoldierLAW};

		driverAction = ManActMi24Pilot;
		gunnerAction = ManActMi24Gunner;

		class Reflectors
		{
			class Left
			{
				color[] = {0.8, 0.8, 1.0, 1.0};
				ambient[] = {0.07, 0.07, 0.07, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 1.0;
			};
			class Right
			{
				color[] = {0.8, 0.8, 1.0, 1.0};
				ambient[] = {0.07, 0.07, 0.07, 1.0};
				position = "P svetlo";
				direction = "konec P svetla";
				hitpoint = "P svetlo";
				selection = "P svetlo";
				size = 0.5;
				brightness = 1.0;
			};
		};
		class IndicatorAltRadar
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt";
			axis = "osa_alt";
			angle = -360;
			min = 0;
			max = 304;
		};
		class IndicatorAltBaro
		{
			// max for this indicator is 200 feet (i.e. 61m)
			// note: this is actualy Radar altitude (name is wrong)
			selection = "nm_alt";
			axis = "osa_nm_alt";
			angle = -180;
			min = 0;
			max = 61;
		};
		class IndicatorSpeed
		{
			selection = "mph";
			axis = "osa_mph";
			angle = -350;
			min = 0;
			max = 175;
		};
		class IndicatorVertSpeed
		{
			selection = "vert_speed";
			axis = "osa_vert_speed";
			angle = -300;
			min = -35;
			max = 35;
		};
		class IndicatorRPM
		{
			selection = "rpm";
			axis = "osa_rpm";
			angle = -320;
			min = 0;
			max = 12;
		};
		class IndicatorWatch
		{
			hour = "hodinova";
			minute = "minutova";
			axis = "osa_time";
			reversed = false;
		};

		class ReloadAnimations
		{
			class MachineGun30E
			{
				weapon = MachineGun30E;
				angle0 = 0;
				angle1 = -2 * 3.141592654;
				multiplier = 500;
				type = rotation;
				animPeriod = 0.5;
				selection = gatling;
				begin = "usti hlavne";
				end = "konec hlavne";
			};
		};
	}; 
	class Mi17: Helicopter
	{
		//--
		scope=public;
		crew = SoldierEPilot;
		picture=imi17;

		maxSpeed = 240;

		side=TEast;
		displayName=$STR_DN_MI17;
		nameSound="mi17";
		accuracy=0.50;
		cost=3000000;
		armor=50;
		model=mi17_HIP;
		rotorBig = hip_vrt_v;
		rotorBigBlend = hip_vrtblur_v;
		rotorSmall = vrthind_m;
		rotorSmallBlend = vrthind_m_bl;
		soundEngine[]={vehicles\Slow4blade_Loop1,db+10,1};
		weapons[]={Rocket57x192};
		magazines[]={Rocket57x192};


		driverAction = ManActMi17Pilot;
		gunnerAction = ManActMi17Pilot;

		gunnerUsesPilotView = true;

		transportSoldier = 12;
		transportAmmo = 0;

		type=VAir;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.6, 1, 0.4};

		typicalCargo[]={Soldier, Soldier, SoldierLAW, SoldierLAW};

		class IndicatorAltRadar
		{
			// max for this indicator is 1000 feet (i.e. 304m)
			// note: this is actualy Baro altitude (name is wrong)
			selection = "alt";
			axis = "osa_alt";
			angle = -360;
			min = 0;
			max = 304;
		};
		class IndicatorAltBaro
		{
			// max for this indicator is 200 feet (i.e. 61m)
			// note: this is actualy Radar altitude (name is wrong)
			selection = "nm_alt";
			axis = "osa_nm_alt";
			angle = -180;
			min = 0;
			max = 61;
		};
		class IndicatorSpeed
		{
			selection = "mph";
			axis = "osa_mph";
			angle = -350;
			min = 0;
			max = 125;
		};
		class IndicatorVertSpeed
		{
			selection = "vert_speed";
			axis = "osa_vert_speed";
			angle = -300;
			min = -30;
			max = 30;
		};
		class IndicatorRPM
		{
			selection = "rpm";
			axis = "osa_rpm";
			angle = -320;
			min = 0;
			max = 12;
		};
		class IndicatorAltRadar2 : IndicatorAltRadar
		{
			selection = "alt2";
			axis = "osa_alt2";
		};
		class IndicatorAltBaro2 : IndicatorAltBaro
		{
			selection = "nm_alt2";
			axis = "osa_nm_alt2";
		};
		class IndicatorSpeed2 : IndicatorSpeed
		{
			selection = "mph2";
			axis = "osa_mph2";
		};
		class IndicatorVertSpeed2 : IndicatorVertSpeed
		{
			selection = "vert_speed2";
			axis = "osa_vert_speed2";
		};
		class IndicatorRPM2 : IndicatorRPM
		{
			selection = "rpm2";
			axis = "osa_rpm2";
		};
		class Reflectors
		{
			class Left
			{
				color[] = {0.8, 0.8, 1.0, 1.0};
				ambient[] = {0.07, 0.07, 0.07, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 1.0;
			};
			class Right
			{
				color[] = {0.8, 0.8, 1.0, 1.0};
				ambient[] = {0.07, 0.07, 0.07, 1.0};
				position = "P svetlo";
				direction = "konec P svetla";
				hitpoint = "P svetlo";
				selection = "P svetlo";
				size = 0.5;
				brightness = 1.0;
			};
		};
	};
	class CarrierW: BigShip
	{
		//--

		vehicleClass="Armored"; // TODO: remove

		scope=public;
		crew = SoldierWB;
		side=TWest;
		displayName=$STR_DN_LST;
		model=newport;
		picture=im113;
		accuracy=0.50;

		maxSpeed=50;

		transportSoldier = 50;
		class TransportMagazines {};
		
		transportAmmo = 10000000;
		transportVehiclesCount = 15;

		cost=200000000;
		armor=10000;
		weapons[]={};
		magazines[]={};
	};

	class BoatE: SmallShip
	{
		//--
		vehicleClass="Armored";
		displayName=$STR_DN_BOAT;
		accuracy=0.50;

		scope=public;
		crew = SoldierEB;
		model="hrl";
		picture=ihrl;
		side=TEast;

		maxSpeed=60;

		driverAction = ManActHRLDriver;
		gunnerAction = ManActHRLGunner;
		cargoAction[] = {ManActCargo};

		gunnerOpticsModel = "optika_empty";

		transportSoldier = 10;
		DefaultEastMagazines(1)
		
		cost=100000;
		armor=100;

		class Turret: TurretBase
		{
			soundServo[]={,db-40,1.0};
			minElev=-5; maxElev=+20;
			minTurn=+90; maxTurn=+270;
		};
		class ViewOptics : ViewOpticsBase
		{
			initFov=0.3; minFov=0.17; maxFov=0.35;
			initAngleY=180; minAngleY=+90; maxAngleY=+270;
		};
		class ViewGunner: ViewGunnerBase
		{
			initAngleY=+180; minAngleY=+180; maxAngleY=+180;
			initAngleX=0; minAngleX=-15; maxAngleX=+25;
		};
	};

  
	//GUERRILA
	class TruckV3SG: Truck
	{
		//--
		scope=public;
		crew = SoldierGB;
		picture=iv3s;
		icon=truck;

		side=TGuerrila;
		displayName=$STR_DN_PV3S;

		accuracy=0.30;

		maxSpeed = 75;

		transportSoldier = 11;
		DefaultGuerMagazines(1)
		
		transportAmmo = 0;
		transportRepair = 0;
		
		turnCoef=6.0;

		cost=20000;
		armor=30;
		model=v3s;
		hiddenSelections[] = {ammo};

		initCargoAngleY=+185; // cargo viewing limitations

		soundEngine[]={vehicles\dieseltruckloop1,db-25,1};

		weapons[]={};
		magazines[]={};

		driverAction = ManActV3SDriver;

		cargoAction[] =
		{
			ManActV3SCoDriver,ManActCargo
		};
		cargoIsCoDriver[] = {true,false};

		typicalCargo[]={Soldier, Soldier, SoldierLAW, SoldierLAW};
		threat[]={1, 1, 0.3};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -275;
			min = 0;
			max = 80 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -275;
			min = 0;
			max = 1;
		};
	};

	class GJeep: Car
	{
		//--
		scope=public;
		/*
		\patch 1.05 Date 07/16/2001 by Jirka
		- Fixed: default resistance jeep driver was western soldier.
		*/
		crew = SoldierGB;
		picture=ijeep;

		maxSpeed=100;

		side=TGuerrila;
		displayName=$STR_DN_JEEP;
		nameSound="jeep";
		accuracy=0.50;

		armor=20;
		cost=30000;
		fuelCapacity=50;

		transportSoldier = 3;
		transportAmmo = 0;

		model=gjeep;

		armorWheels=0.12;

		driverAction = ManActJeepDriver;

		cargoAction[] =
		{
			ManActJeepCoDriver,ManActJeepCoDriverBack
		};
		cargoIsCoDriver[] = {true,false};

		soundEngine[]={Vehicles\jeeploop,db-20,1};

		typicalCargo[]={Soldier, SoldierLAW};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -240;
			min = 0;
			max = 40;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -240;
			min = 0;
			max = 1;
		};
	};

	class TruckV3SCivil: TruckV3SG
	{
		//--
		
		side=TCivilian;
		crew = Civilian;
		displayName=$STR_DN_PV3S_CIVIL;
		model=v3scivil;
		
	};

	class PaperCar: Car
	{
		scope=protected;
		picture=itruck5t;
		icon=truck;
		displayName=$STR_DN_PAPER_CAR;
		model="papAuto";
		class Reflectors {};
	};
	class TruckV3SGRefuel: TruckV3SG
	{	
		//--
		picture=iv3sfuel;
		vehicleClass="Support";
		icon="Fuel_move";
		displayName=$STR_DN_PV3S_FUEL;
		model=v3sfuel;
		transportSoldier = 1;
		hiddenSelections[] = {};
		typicalCargo[]={};
	};
	class TruckV3SGRepair: TruckV3SG
	{	
		//--
		picture=iv3srepair;
		vehicleClass="Support";
		icon="Repair_move";
		displayName=$STR_DN_PV3S_REPAIR;
		model=v3srepair;
		transportSoldier = 1;
		hiddenSelections[] = {};
		typicalCargo[]={};
	};
	class TruckV3SGReammo: TruckV3SG
	{			
		//--
		vehicleClass="Support";
		icon="Ammo_move";
		displayName=$STR_DN_PV3S_AMMO;
		transportSoldier = 1;
		hiddenSelections[] = {};
		typicalCargo[]={};
	};

	class UAZG: Car
	{
		//--
		scope=public;
		crew = SoldierGB;
		side=TGuerrila;
		displayName = $STR_DN_UAZG;

		nameSound="UAZ";
		accuracy=0.50;

		transportSoldier = 3;
		transportAmmo = 0;

		cost=25000;
		armor=20;
		model=guaz;
		picture=iuaz;
		weapons[]={};
		magazines[]={};
		typicalCargo[]={Soldier, SoldierLAW};
		threat[]={0.7, 0.7, 0.2};
		soundEngine[]={Vehicles\uazloop,db-30,1.25};
		
		driverAction=ManActUAZDriver;
		cargoAction[] =
		{
			ManActUazCoDriver,ManActCargo
		};
		cargoIsCoDriver[] = {true,false};

		// internal camera viewing limitations
		class ViewPilot: ViewPilotBase
		{
			initAngleX=10; 
		};
	};
	class SGUAZG: UAZG
	{
		//--
		vehicleClass="Support";
		displayName = $STR_DN_UAZG;
		model = sguaz;

		transportSoldier = 2;
		attendant = true;

		cargoAction[] =
		{
			ManActM113Injured, ManActCargo
		};
		cargoIsCoDriver[] = {false,false};
	};

	class SoldierGB: Soldier
	{
		//--
		// picture=ivojak;
		vehicleClass="Men";
		scope=public;
		model="MC vojakG2";
		hiddenSelections[] = {"medic"};
		moves=CfgMovesMC;
		displayName=$STR_DN_SOLDIER;
		side=TGuerrila;
		cost=10000;
		accuracy=0.7;
		weapons[]={AK47CZ, DefaultManWeapons};
		magazines[]=
		{
			AK47, AK47, AK47, AK47,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade
		};
	};
	class SoldierGMedic: SoldierGB
	{
		//--
		accuracy=1000; // never recognized
		// picture=imedic;
		picture=\misc\medik.paa;
		cost=60000;
		displayName=$STR_DN_MEDIC;
		weaponSlots = WeaponSlotPrimary + 4 * WeaponSlotItem + WeaponSlotBinocular + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;
		attendant = true;
		weapons[]={AK47CZ, DefaultManWeapons};
		magazines[]={AK47, AK47, AK47, AK47};
		nameSound="medic";
		hiddenSelections[] = {};
	};
	class SoldierGCrew: SoldierGB
	{
		//--
		nameSound="crew";
		accuracy=1000; // never recognize
		model="MC crewg.p3d";
		weapons[]={AK47CZ, NVGoggles, DefaultManWeapons};
		displayName=$STR_DN_CREW;
	};
	class SoldierGPilot: SoldierGB
	{
		//--
		nameSound="pilot";
		accuracy=1000; // never recognize
		model="MC vojakG3";
		weapons[]={AK47CZ, NVGoggles, DefaultManWeapons};
		displayName=$STR_DN_PILOT;
	};
	class SoldierGG: SoldierGB
	{
		//--
		displayName=$STR_DN_GRENADIER;
		cost=15000;
		accuracy=1000; // never recognize
		weapons[]={AK47GrenadeLauncher, DefaultManWeapons};	
		magazines[]={AK47, AK47, AK47, AK47, GrenadeLauncher, GrenadeLauncher, GrenadeLauncher};	
	};
	class SoldierGNOG: SoldierGB {scope=protected;};
	class SoldierG: SoldierGG {scope=protected;};
	class SoldierGMG: SoldierGB
	{
		//--
		//picture=ismg;
		nameSound="machineGunner";
		//model=pkg;
		displayName=$STR_DN_MGUNNER;
		cost=15000;
		model="MC vojakG3";
		accuracy=1.5;
		weapons[]={PK, DefaultManWeapons};	
		magazines[]=
		{
			PK, PK, PK, PK, PK
		};	
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.1, 0.8};
	};
	class SoldierGLAW: SoldierGB
	{
		//--
		//picture=islaw;
		nameSound="missileSoldier";
		displayName=$STR_DN_LAW_SOLDIER;
		model="MC vojakG2";
		cost=30000;
		accuracy=1.5;
		weapons[]={AK47CZ, RPGLauncher, DefaultManWeapons};	
		magazines[]={AK47, AK47, AK47, AK47, RPGLauncher, RPGLauncher, RPGLauncher};	
		nightVision=true;

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.9, 0.1};
	};
	class SoldierGAT: SoldierGLAW
	{
		//--
		//picture=isat;
		nameSound="missileSoldier";
		displayName=$STR_DN_AT4_SOLDIER;
		model="MC vojakG2";
		cost=30000;
		accuracy=1.5;
		weapons[]={AK47CZ, AT4Launcher, DefaultManWeapons};	
		magazines[]={AK47, AK47, AK47, AK47, AT4Launcher};	
		nightVision=true;

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.9, 0.1};
	};
	class SoldierGAA: SoldierGLAW
	{
		//--
		//picture=isaa;
		displayName=$STR_DN_AA_SOLDIER;
		nameSound="missileSoldier";
		accuracy=1.5;
		weapons[]={AK47CZ, 9K32Launcher, DefaultManWeapons};	
		magazines[]=
		{
			AK47, AK47, AK47, AK47,
			9K32Launcher
		};	

		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 0.5, 0.9};
	};
	class OfficerG: SoldierGB
	{
		//--
		nameSound="officer";
		scope=public;
		model = "mc vojakgo2.p3d";
		picture=\misc\frcky.paa;
		displayName=$STR_DN_OFFICER;
		accuracy=2.0;
		cost=500000;
		nightVision=true;
		weapons[]={AK47, Binocular, DefaultManWeapons};	
		magazines[]=
		{
			AK47, AK47, AK47, AK47,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade,
			SmokeShell, SmokeShell
		};	
	};
	class OfficerGNight: SoldierGB
	{
		//--
		nameSound="officer";
		scope=public;
		model = "mc vojakgo2.p3d";
		picture=\misc\frcky.paa;
		displayName=$STR_DN_OFFICERNIGHT;
		accuracy=2.0;
		cost=500000;
		nightVision=true;
		weapons[]={AK47GrenadeLauncher, Binocular, NVGoggles, DefaultManWeapons};	
		magazines[]=
		{
			AK47, AK47, AK47, AK47,
			HandGrenade, HandGrenade, HandGrenade,
			Flare, Flare, Flare
		};	
	};
	class SoldierGFakeE : SoldierEB
	{
		//--
		model="MC vojakE2";
		moves=CfgMovesMC;
		//picture=ivojak;
		vehicleClass="Men";
		scope=protected;
		side=TGuerrila;
		accuracy=2.0;
		displayName=$STR_DN_SOLDIERFAKE;
		weapons[]={AK74, DefaultManWeapons};
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade, HandGrenade
		};

		cost=40000;
	};
	class SoldierGFakeC : Civilian
	{
		//--
		//picture=ivojak;
		scope=protected;
		side=TGuerrila;
		accuracy=2.0;
		displayName=$STR_DN_CIVILFAKE;
		weaponSlots = WeaponSlotPrimary + WeaponSlotSecondary + 2 * WeaponSlotBinocular + 6 * WeaponSlotItem + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;

		weapons[]={AK74, DefaultManWeapons};
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			HandGrenade, HandGrenade
		};
		cost=40000;
	};
	class SoldierGFakeC2 : Civilian2
	{
		//--
		//picture=ivojak;
		scope=protected;
		side=TGuerrila;
		accuracy=2.0;
		displayName=$STR_DN_CIVILFAKE;
		weaponSlots = WeaponSlotPrimary + WeaponSlotSecondary + 2 * WeaponSlotBinocular + 6 * WeaponSlotItem + WeaponSlotHandGun + 4*WeaponSlotHandGunItem;
		weapons[]={AK74, DefaultManWeapons};
		magazines[]=
		{
			AK74, AK74, AK74, AK74,
			HandGrenade, HandGrenade
		};
		cost=40000;
	};
	class T55G: Tank
	{
		//--
		picture=it55;
		crew = SoldierGCrew;
		scope=public;
		side=TGuerrila;
		displayName=$STR_DN_T55;
		nameSound="t55";
		accuracy=0.70;

		maxSpeed = 50;

		armor=300;
		cost=150000;

		driverAction = ManActT55DriverOut;
		gunnerAction = ManActT55GunnerOut;
		commanderAction = ManActT55CommanderOut;

		driverInAction = ManActT55Driver;
		gunnerInAction = ManActT55Gunner;
		commanderInAction = ManActT55Commander;

	
		model=t55;
		weapons[]={Gun105,MachineGun7_6};
		magazines[]={Heat105,Shell105,MachineGun7_6};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={1, 1, 0.2};

		soundEnviron[]={Vehicles\OldRolling_Treads1,db-30,0.7};
		soundEngine[]={Vehicles\T55Sound,db-30,1};

		commanderOpticsModel = "optika_tanke_auxiliary";

		class Reflectors
		{
			class Reflector
			{
				color[] = {0.9, 0.8, 0.8, 1.0};
				ambient[] = {0.1, 0.1, 0.1, 1.0};
				position = "L svetlo";
				direction = "konec L svetla";
				hitpoint = "L svetlo";
				selection = "L svetlo";
				size = 0.5;
				brightness = 0.25;
			};
		};

		class IndicatorSpeed
		{
			selection = "ukaz_rychlo";
			axis = "osa_rychlo";
			angle = -270;
			min = 0;
			max = 100 / 3.6;
		};
		class IndicatorSpeed2
		{
			selection = "ukaz_rychlo2";
			axis = "osa_rychlo2";
			angle = -270;
			min = 0;
			max = 100 / 3.6;
		};
		class IndicatorRPM
		{
			selection = "ukaz_rpm";
			axis = "osa_rpm";
			angle = -290;
			min = 0;
			max = 1;
		};
	};

	// STATIC BUILDINGS
	class Static: All
	{
		//-- static object or building
		reversed=false; // all vehicles are reversed - except static

		hasDriver=false;
		
		icon="Unknown_object";

		displayName=$STR_DN_UNKNOWN;
		nameSound="target";
		accuracy=0.005;
		simulation="house";

		cost=0;

		picture="ivojak"; // TODO: use actual building pictures instead
		weapons[]={};
		magazines[]={};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};
		maxSpeed=0; // cannot move

		coefInside = 2;
		coefInsideHeur = 4.3;
	};

	class Fortress: Static
	{
		displayName=$STR_DN_BUNKER;
		nameSound="Bunker";
		armor=1000;
		cost=1000000;

		accuracy=0.20;
	};

	class Building: Static
	{
		displayName=$STR_DN_BUILDING;
		nameSound="building";
		armor=150;

		accuracy=0.10;
	};


	class NonStrategic : Building
	{
		side=TCivilian;
		ladders[]={};
	};
	class Strategic : Building
	{
		side=TCivilian;
		armor=250;
		ladders[]={};
	};

	// THINGS
	/*
	class Thing: Strategic
	{
	};
	*/
	/**/
	class Thing: All
	{
		reversed=false; // all vehicles are reversed - except static
		animated=false;
		
		icon="Unknown_object";
		vehicleClass="Objects";

		displayName=$STR_DN_UNKNOWN;
		nameSound="target";
		accuracy=0.005;
		simulation="thing";
		side=TCivilian;

		submerged = 0; // normal things have no submersion
		submergeSpeed = 0;
		timeToLive = 1e10; // infinite time to live
		disappearAtContact = false;
		hasDriver=false;

		picture="ivojak"; // TODO: use actual building pictures instead
		weapons[]={};
		magazines[]={};

		type=VArmor;
		//threat[] VSoft, VArmor, VAir 
		threat[]={0.0, 0.0, 0.0};
		maxSpeed=0; // cannot move

	};
#define thingsubmerged -10
#define thingspeed 0.15
#define thingtime 10+random 10
	class ThingEffect: Thing
	{
		scope=protected; // protected when finished

		simulation="thingeffect";
		irTarget = false;

		submerged = -0.5; // initial submersion, <0 inital delaty
		submergeSpeed = 0.25;
		timeToLive = 20; // always disappear after certain period of time
	};
	class FxExploGround1: ThingEffect
	{
		model = "sutr2";
		displayName=$STR_DN_FX_EXPLO_GROUND_1;
		submerged = thingsubmerged;
		submergeSpeed = thingspeed;
		timeToLive = thingtime;
	};
	class FxExploGround2: ThingEffect
	{
		model = "sutr3";
		displayName=$STR_DN_FX_EXPLO_GROUND_2;
		submerged = thingsubmerged;
		submergeSpeed = thingspeed;
		timeToLive = thingtime;
	};

	class FxExploArmor1: ThingEffect
	{
		model = "kusplechu";
		displayName="Internal: FxExploArmor1";
		submerged = thingsubmerged;
		submergeSpeed = thingspeed;
		timeToLive = thingtime;
	};
	class FxExploArmor2: ThingEffect
	{
		model = "kusplechu2";
		displayName="Internal: FxExploArmor2";
		submerged = thingsubmerged;
		submergeSpeed = thingspeed;
		timeToLive = thingtime;
	};
	class FxExploArmor3: ThingEffect
	{
		model = "ohorelavec";
		displayName="Internal: FxExploArmor3";
		submerged = thingsubmerged;
		submergeSpeed = thingspeed;
		timeToLive = thingtime;
	};
	class FxExploArmor4: ThingEffect
	{
		model = "strepina";
		displayName="Internal: FxExploArmor4";
		submerged = thingsubmerged;
		submergeSpeed = thingspeed;
		timeToLive = thingtime;
	};

	class FxCartridge: ThingEffect
	{
		model = "nabojnice";//was nabojnice;;;  \HEP\Models\127mm.p3d - good demonstrator
		displayName=$STR_DN_FX_CARTRIDGE;

		submerged = -0; // initial submersion, <0 inital delay was -0
		submergeSpeed = 0; //was 0
		timeToLive = 5; // always disappear after certain period of time def: 5

		disappearAtContact=true; //WAS TRUE
	};
	/**/

	class ReammoBox: Strategic
	{			
		//--
		animated = false;
		scope=protected;
		//scope=public;

		vehicleClass="Ammo";
		icon="Ammo_move";
		model = "hromada_beden";
		displayName=$STR_DN_AMMO_CRATES;
		accuracy=0.20;
		typicalCargo[]={};

		destrType=DestructEngine;

		class TransportMagazines
		{
			// generic ammo for all sides
			mag_xx(M16,100);
			mag_xx(AK47,100);
			mag_xx(AK74,100);
			mag_xx(M60,50);
			mag_xx(HandGrenade,30);
			mag_xx(M21,50);
			mag_xx(LAWLauncher,4);
			mag_xx(RPGLauncher,4);
			mag_xx(GrenadeLauncher,20);
		};
		transportMaxWeapons = 500;
		transportMaxMagazines = 2000;

		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;

		cost=0;
		armor=200;
		mapSize = 2.6;
	};
	class ReammoBoxWest: ReammoBox
	{
		//--
		scope = public;
		accuracy = 1000;
		displayName=$STR_DN_AMMO_CRATES_WEST;
		DefaultWestMagazines(1)
	};
	class ReammoBoxEast: ReammoBox
	{
		//--
		scope = public;
		accuracy = 1000;
		displayName=$STR_DN_AMMO_CRATES_EAST;
		DefaultEastMagazines(1)
	};
	class ReammoBoxGuer: ReammoBox
	{
		//--
		scope = public;
		accuracy = 1000;
		displayName=$STR_DN_AMMO_CRATES_RES;
		DefaultGuerMagazines(1)
	};

	class WeaponHolder : ReammoBox
	{
		scope = protected;
		model = "\misc\dummyweapon.p3d";
		accuracy = 0.20;
		class TransportMagazines
		{
		};
		forceSupply = true;
		showWeaponCargo = true;
		transportMaxMagazines = 1e9;	// unlimited
		transportMaxWeapons = 1e9;	// unlimited
		displayName=;
	};
	class SecondaryWeaponHolder : WeaponHolder
	{
		model = "\misc\dummyweapon2.p3d";
	};

	class HeavyReammoBox: Strategic
	{			
		//--
		animated = false;
		scope = protected;

		vehicleClass="Ammo";
		icon="Ammo_move";
		model = "bedna_ammo";
		displayName=$STR_DN_AMMO_CRATES_WEST2;
		accuracy=1000;
		typicalCargo[]={};

		destrType=DestructEngine;

		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;
		cost=0;
		armor=200;
		mapSize = 2.6;

		transportMaxWeapons = 500;
		transportMaxMagazines = 2000;
	};

	class HeavyReammoBoxWest: HeavyReammoBox
	{
		//--
		scope = public;
		accuracy = 1000;
		displayName=$STR_DN_AMMO_CRATES_WEST2;
		class TransportMagazines
		{
			class M16
			{
				magazine = M16;
				count = 20;
			};
			class HandGrenade
			{
				magazine = HandGrenade;
				count = 10;
			};
			class GrenadeLauncher
			{
				magazine = GrenadeLauncher;
				count = 10;
			};
			class LAWLauncher
			{
				magazine = LAWLauncher;
				count = 8;
			};
			class AALauncher
			{
				magazine = AALauncher;
				count = 3;
			};
			class Mortar
			{
				magazine = Mortar;
				count = 6;
			};
			class PipeBomb
			{
				magazine = PipeBomb;
				count = 6;
			};
			class Mine
			{
				magazine = Mine;
				count = 6;
			};
			class CarlGustavLauncher
			{
				magazine = CarlGustavLauncher;
				count = 3;
			};
		};
	};
	class HeavyReammoBoxEast: HeavyReammoBox
	{
		//--
		scope = public;
		accuracy = 1000;
		displayName=$STR_DN_AMMO_CRATES_EAST2;
		class TransportMagazines
		{
			class AK74
			{
				magazine = AK74;
				count = 20;
			};
			class HandGrenade
			{
				magazine = HandGrenade;
				count = 10;
			};
			class GrenadeLauncher
			{
				magazine = GrenadeLauncher;
				count = 10;
			};
			class RPGLauncher
			{
				magazine = RPGLauncher;
				count = 8;
			};
			class 9K32Launcher
			{
				magazine = 9K32Launcher;
				count = 3;
			};
			class PipeBomb
			{
				magazine = PipeBomb;
				count = 6;
			};
			class Mine
			{
				magazine = Mine;
				count = 6;
			};
			class AT4Launcher
			{
				magazine = AT4Launcher;
				count = 3;
			};

		};
	};
	class HeavyReammoBoxRes: HeavyReammoBox
	{
		//--
		scope = public;
		accuracy = 1000;
		displayName=$STR_DN_AMMO_CRATES_RES2;
		class TransportMagazines
		{
			class AK47
			{
				magazine = AK47;
				count = 20;
			};
			class HandGrenade
			{
				magazine = HandGrenade;
				count = 10;
			};
			class GrenadeLauncher
			{
				magazine = GrenadeLauncher;
				count = 10;
			};
			class RPGLauncher
			{
				magazine = RPGLauncher;
				count = 8;
			};
			class 9K32Launcher
			{
				magazine = 9K32Launcher;
				count = 3;
			};
			class PipeBomb
			{
				magazine = PipeBomb;
				count = 6;
			};
			class Mine
			{
				magazine = Mine;
				count = 6;
			};
			class AT4Launcher
			{
				magazine = AT4Launcher;
				count = 3;
			};

		};
	};


	class MachineGunBox: Strategic
	{			
		//--
		animated = false;
		scope=protected;

		vehicleClass="Ammo";
		icon="Ammo_move";
		model = "hromada_beden";
		displayName=$STR_DN_MACHINE_GUN;
		accuracy=0.20;
		typicalCargo[]={};

		destrType=DestructEngine;

		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;
		class TransportWeapons
		{
			class MachineGun
			{
				weapon = M60;
				count = 1;
			};
		};
		class TransportMagazines
		{
			class MachineGun
			{
				magazine = M60;
				count = 3;
			};
		};
		transportMaxWeapons = 1;
		transportMaxMagazines = 3;

		cost=0;
		armor=20;
		mapSize = 2.6;
	};

	class FlagCarrier : Strategic
	{
		//--
		scope = public;
		vehicleClass="Objects";
		icon="vlajka";
		displayName=$STR_DN_FLAG;
		simulation="flagcarrier";
		model = "vlajkstozar.p3d";

		mapSize = 5;
	};
	class Danger: FlagCarrier
	{
		//--
		model = "Danger!.p3d";
		displayName=$STR_DN_DANGER;
		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}


	class Fire: NonStrategic
	{			
		//--
		scope = public;

		simulation="fire";
		sound = "Fire";
		vehicleClass="Objects";
		icon="Unknown_object";
		model = "ohniste";
		displayName=$STR_DN_FIRE;
		accuracy=0.20;
		typicalCargo[]={};

		mapSize = 1.2;

		cost=0;
		armor=20;

		class Smoke // : FlameSpectrum
		{
			interval = 0.01;
			// single cloudlet parameters
			cloudletDuration = 0.9; // time to live (not including fades)
			cloudletAnimPeriod = 1.0; // animation speed
			cloudletSize = 0.1;
			cloudletAlpha = 0.8;
			cloudletGrowUp = 0.4; // grow-up time
			cloudletFadeIn = 0.0; // fade-in time
			cloudletFadeOut = 5.0; // fade-out time
			cloudletAccY = -0.1; // vertical acceleration
			cloudletMinYSpeed = 0.3; // vertical speed range
			cloudletMaxYSpeed = 1.5;
			cloudletShape = "cl_basic";
			cloudletColor[] = {1, 1, 1, 0};
			initT = 1000;
			deltaT = -500;
			class Table
			{
				class T1 {maxT = 0; color[] = {0.8, 0.8, 0.8, 1};}
				class T2 {maxT = 900; color[] = {0.3, 0.3, 0.3, 1};}
				class T3 {maxT = 1000; color[] = {1, 0.5, 0, 0.5};}
			};
/*
			initT = 2200;
			deltaT = -4000;
*/
			// source parameters
			density = 0.5;
			size = 0.1;
			initYSpeed = 1.7;
			timeToLive = 1e20; // time to live (not including fades)
			in = 0.0; // fade-in time
			out = 0.0; // fade-out time
		};

		class Light
		{
			color[] = {1.0, 0.5, 0.0, 1.0};
			ambient[] = {0.3, 0.15, 0.0, 1.0};
			brightness = 0.08;
			shape = "koulesvetlo";
			size = 0.3;
			position = "ohniste";
		};
	};

	class Target: Strategic
	{			
		//--
		scope = public;

		destrType=DestructTree;
		side = TCivilian;
		icon="Unknown_object";
		model = "terc";
		accuracy=0.20;

		cost=0;
		armor=10;
	};

	class TargetE : Target
	{
		//--
		scope = public;
		vehicleClass = "Objects";
		displayName = $STR_DN_TARGET_EAST;
		//side = TEast;
		accuracy = 1000;
		mapSize = 0.8;
	};


	class Camp: Strategic
	{
		//--
		scope = public;

		vehicleClass="Objects";
		icon="Unknown_object";
		model = "stan";
		displayName=$STR_DN_TENT;
		accuracy=0.20;
		typicalCargo[]={};
		destrType=DestructTent;

		irTarget = false;

		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;

		cost=0;
		armor=20;
		mapSize = 6.4;
	};
	class Cube: Camp
	{
		scope = protected;
		model = "krychlicka";
		displayName = $STR_DN_DEBUG_CUBE;
	};
	class Fortress1: Strategic
	{
		//--
		scope = public;

		vehicleClass="Objects";
		icon="Unknown_object";
		model = "fortress1";
		displayName=$STR_DN_FORTRESS_1;
		accuracy=0.20;
		typicalCargo[]={};
		destrType=DestructBuilding;

		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;

		mapSize = 11;
		cost=0;
		armor=800;
	};
	class Fortress2: Fortress1
	{
		//--
		model = "fortress2";
		displayName = $STR_DN_FORTRESS_2;
	}

	class CampEmpty: Camp
	{			
		//--
		scope = public;

		model = "stan_inside";
		displayName=$STR_DN_TENT_OPEN;
		accuracy=1000; // never recognize
	};
	class CampEast: Camp
	{			
		//--
		scope = public;

		model = "stan_east";
		displayName=$STR_DN_TENT_EAST;
		accuracy=1000; // never recognize
	};
	class CampEastC: Camp
	{			
		//--
		scope = public;

		model = "stan_eastC";
		displayName=$STR_DN_TENT_EAST_C;
		accuracy=1000; // never recognize
	};
	class Grave: Camp
	{			
		//--
		scope = public;

		model = "hrobecek.p3d";
		displayName=$STR_DN_GRAVE;
		accuracy=1000; // never recognize
	};
	class GraveCross1: Camp
	{			
		//--
		scope = public;

		model = "hrobecek_krizek1.p3d";
		displayName=$STR_DN_GRAVE_CROSS_1;
		accuracy=1000; // never recognize
	};
	class GraveCross2: Camp
	{			
		//--
		scope = public;

		model = "hrobecek_krizek2.p3d";
		displayName=$STR_DN_GRAVE_CROSS_2;
		accuracy=1000; // never recognize
	};
	class GraveCrossHelmet: Camp
	{			
		//--
		scope = public;

		model = "hrobecek_krizekhelma.p3d";
		displayName=$STR_DN_GRAVE_CROSS_HELMET;
		accuracy=1000; // never recognize
	};

	class ACamp: Camp
	{			
		//--
		scope = public;

		model = "astan";
		displayName=$STR_DN_TENT_A;
		accuracy=1000; // never recognize
		mapSize = 2.6;
	};
	class MASH: Camp
	{			
		//--
		scope = public;

		model = "mash";
		displayName=$STR_DN_MASH;
		accuracy=0.3

		attendant = true; // medical
		mapSize = 6.4;
	};

	class Fence: NonStrategic
	{			
		//--
		scope = public;

		vehicleClass="Objects";
		icon="Unknown_object";
		model = "pytle_BSL";
		displayName=$STR_DN_FENCE;
		accuracy=0.20;
		typicalCargo[]={};

		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;

		cost=0;
		armor=200;
		mapSize = 3.3;
	};

	class FenceWood : Fence
	{
		//--
		model = "pytle";
		displayName=$STR_DN_FENCE_WOOD;

		mapSize = 2.4;
		accuracy=1000; // never recognize
	};

	class Wire: Fence
	{			
		//--
		scope = public;

		model = "Barbedwire.p3d";
		displayName=$STR_DN_WIRE;
		accuracy=0.3
		mapSize = 5.5;
	};
	class WireFence: Fence
	{			
		//--
		scope = public;

		model = "plot_provizorni.p3d";
		displayName=$STR_DN_FENCE_WIRE;
		accuracy=0.3
		mapSize = 5.5;
	};

	/*!
	\patch 1.53 Date 4/26/2002 by Ondra
	- Fixed: Barrel destruction effect type changed.
	*/

	class BarrelHelper: Thing
	{
		scope = private;
		simulation="thing"

		mapSize = 0.7;

		displayName=$STR_DN_BARREL;
		accuracy=0.2;
		transportFuel = 100;
		destrType=DestructEngine;
	}
	class BarrelBase: BarrelHelper
	{
		accuracy=1000; // never recognize
		armor=100;
		cost=0;
	};

	class Barrels: BarrelBase
	{			
		//--
		scope = public;
		model = "Barels.p3d";
		displayName=$STR_DN_BARRELS;
		transportFuel = 400;
	};
	class Barrel1: BarrelBase
	{			
		//--
		scope = public;
		model = "Barel1.p3d";
		displayName=$STR_DN_BARREL_RED;
	};
	class Barrel2: BarrelBase
	{			
		//--
		scope = public;
		model = "Barel2.p3d";
		displayName=$STR_DN_BARREL_BROWN;
	};
	class Barrel3: BarrelBase
	{			
		//--
		scope = public;
		model = "Barel4.p3d";
		displayName=$STR_DN_BARREL_WHITE;
	};
	class Barrel4: BarrelBase
	{			
		//--
		scope = public;
		model = "Barel3.p3d";
		displayName=$STR_DN_BARREL_WHITE;
	};
	class Table: Thing
	{
		//--
		scope = public;
		simulation="thing"

		model = "stulsuplik_proxy.p3d";
		displayName=$STR_DN_TABLE;
		transportFuel = 0;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
		cost=0;
	}

	class Tablemap: Table
	{
		//--
		scope = public;
		simulation="thing"

		model = "stulsuplikmapa.p3d";
		displayName=$STR_DN_TABLEMAP;
		transportFuel = 0;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}

	class Chair: Table
	{
		//--
		model = "Zidle.p3d";
		displayName=$STR_DN_CHAIR;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
	
	class Phone: Table
	{
		//--
		model = "hangar_telefon.p3d";
		displayName=$STR_DN_PHONEHANG;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
	
	class PhoneBase: Table
	{
		scope=protected;
		model = "hangar_telefon_bez.p3d";
		displayName=$STR_DN_PHONEBASE;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
	class Camera1: Table
	{
		//--
		model = "betacam.p3d";
		displayName=$STR_DN_CAMERA;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
	class Computer: Table
	{
		//--
		model = "PC.p3d";
		displayName=$STR_DN_COMPUTER;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}

	class ChairHangar: Table
	{
		//--
		model = "Hangar_zidle.p3d";
		displayName=$STR_DN_CHAIR_HANGAR;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
	class ChairX: Table
	{
		//--
		model = "zidle_x.p3d";
		displayName=$STR_DN_CHAIR_X;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
	class VideoTable: Table
	{
		//--
		model = "televizesvideem.p3d";
		displayName=$STR_DN_VIDEO;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
	class TablePub: Table
	{
		//--
		model = "stul_hospodax.p3d";
		displayName=$STR_DN_TABLE_PUB;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
	class Radio: Table
	{
		//--
		model = "radio.p3d";
		displayName=$STR_DN_RADIO;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
	class ChairSmall: Table
	{
		//--
		model = "Zidlicka.p3d";
		displayName=$STR_DN_CHAIR_SMALL;

		mapSize = 0.7;
		accuracy=0.2;
		destrType=DestructBuilding;
	}
/*
	class TestObject1: BarrelBase
	{
		scope = public;
		model = "trojnozka.p3d";
		displayName=$STR_DN_TRIPOD;
	};
	class TestObject2: BarrelBase
	{
		scope = public;
		model = "podlozka.p3d";
		displayName=$STR_DN_REST;
		simulation = "house";
		coefInside = 1;
		coefInsideHeur = 1;

	};
	class TestObject3: BarrelBase
	{
		scope = public;
		model = "micuda.p3d";
		displayName=$STR_DN_BALL;
		coefInside = 1;
		coefInsideHeur = 1;
	};

*/
	class TestObject4: BarrelBase
	{
		scope = protected;
		model = "koule_10000.p3d";
		displayName=$STR_DN_SPHERE_10000;
		coefInside = 1;
		coefInsideHeur = 1;
	};

	/*
	class D: BarrelBase
	{			
		scope = public;

		mapSize = 0.7;
		model = "Barels.p3d";
		displayName="Barels";
		accuracy=0.3
		transportFuel = 100;
		destrType=DestructBuilding;
	};
	*/


	class Crawling: Camp
	{			
		//--
		scope = public;

		irTarget = false;
		mapSize = 0.7;
		model = "podlejzacka.p3d";
		displayName=$STR_DN_CRAWLING;
		accuracy=0.3
		transportFuel = 0;
		destrType=DestructBuilding;

		coefInside = 0.5;
		coefInsideHeur = 0.8;
	};
	class ExcerciseTrack: Crawling
	{
		//--
		displayName=$STR_DN_TRAINING_2;
		model = "prolejzacka.p3d";
	};
	class ExcerciseTrack2: Crawling
	{
		//--
		displayName=$STR_DN_TRAINING_3;
		model = "prebehlavka.p3d";
	};
	class ExcerciseTrack3: Crawling
	{
		//--
		displayName=$STR_DN_TRAINING_4;
		model = "obihacka.p3d";
	};

	class PaletaHelper: BarrelHelper
	{
		mapSize = 0.7;
		displayName=$STR_DN_PALLET;
		accuracy=0.2;
		transportFuel = 0;
		irTarget = false;
	};
	class PaletaBase: PaletaHelper
	{
		accuracy=1000;
		cost=0;
	};

	class Paleta1: PaletaBase
	{			
		//--
		scope = public;
		model = "PaletaA.p3d";
		displayName=$STR_DN_PALLET_A;
	};
	
	class Paleta2: PaletaBase
	{			
		//--
		scope = public;
		model = "PaletyC.p3d";
		displayName=$STR_DN_PALLETS_C;
	};



	class JeepWreck1: Camp
	{			
		//--
		scope = public;
		mapSize = 0.7;
		model = "JeepT.p3d";
		displayName=$STR_DN_JEEP_WRECK_1;
		accuracy=0.3
		transportFuel = 0;
		destrType=DestructEngine;
	};
	class JeepWreck2: Camp
	{			
		//--
		scope = public;
		mapSize = 0.7;
		model = "JeepT_horeznacky.p3d";
		displayName=$STR_DN_JEEP_WRECK_2;
		accuracy=0.3
		transportFuel = 0;
		destrType=DestructEngine;
	};
	class JeepWreck3: Camp
	{			
		//--
		scope = public;
		mapSize = 0.7;
		model = "JeepT_Tanker.p3d";
		displayName=$STR_DN_JEEP_WRECK_3;
		accuracy=0.3
		transportFuel = 0;
		destrType=DestructEngine;
	};
	class M113Wreck: Camp
	{			
		//--
		scope = public;
		mapSize = 0.7;
		model = "M113T.p3d";
		displayName=$STR_DN_M113_WRECK;
		accuracy=0.3;
		transportFuel = 0;
		destrType=DestructEngine;
	};
	class UralWreck: Camp
	{			
		//--
		scope = public;
		mapSize = 0.7;
		model = "UralT.p3d";
		displayName=$STR_DN_URAL_WRECK;
		accuracy=0.3;
		transportFuel = 0;
		destrType=DestructEngine;
	};
	class Body: Camp
	{			
		//--
		scope = public;
		mapSize = 0.7;
		model = "Mrtvola_Army1.p3d";
		displayName=$STR_DN_BODY;
		accuracy=0.3;
		transportFuel = 0;
		destrType=DestructEngine;
	};




	class Shed: Strategic
	{			
		//--
		scope = public;

		vehicleClass="Objects";
		icon="Unknown_object";
		model = "pristresek";
		displayName=$STR_DN_SHED;
		accuracy=0.20;
		typicalCargo[]={};

		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;

		mapSize = 9.8;

		cost=0;
		armor=200;
	};

	class Office: Shed
	{
		//--
		scope=protected;
		side = TCivilian;
		vehicleClass="Objects";
		icon="Unknown_object";
		model = "office";
		displayName=$STR_DN_OFFICE;
		simulation="house";
		mapSize = 7.2;
	};

	class Barracks: Shed
	{
		//--
		scope=protected;
		side = TCivilian;
		vehicleClass="Objects";
		icon="Unknown_object";
		model = "budova4_in";
		displayName=$STR_DN_BARRACKS;
		simulation="house";
		mapSize = 15.4;
	};
	class Hangar: Shed
	{
		//--
		scope=protected;
		side = TCivilian;
		vehicleClass="Objects";
		icon="Unknown_object";
		model = "hangar_in";
		displayName=$STR_DN_HANGAR;
		simulation="house";
		mapSize = 27;
	};
	class Hangar_Hall: Shed
	{
		//--
		scope=protected;
		side = TCivilian;
		vehicleClass="Objects";
		icon="Unknown_object";
		model = "HANGAR";
		displayName=$STR_DN_HANGAR_HALL;
		simulation="house";
		mapSize = 25;
	};
	class Hangar_Office: Shed
	{
		//--
		scope=protected;
		side = TCivilian;
		vehicleClass="Objects";
		icon="Unknown_object";
		model = "HANGAR_kancl";
		displayName=$STR_DN_HANGAR_OFFICE;
		simulation="house";
		mapSize = 6;
	};


	class ShedSmall : Shed
	{
		//--
		model = "pristresek_mensi";
		displayName=$STR_DN_SHED_SMALL;
		mapSize = 4.3;

		accuracy=1000; // never recognize
	};



	class Fountain: NonStrategic
	{
		animated=false;
		scope = public;

		model = "kasna";
		displayName=$STR_DN_FOUNTAIN;
		simulation = fountain;
		sound = "Fountain";

		animPeriod = 1.33;
		cost=0;
	};
	
	class House: NonStrategic
	{
		animated=false;
		scope=protected;
		model="";
		displayName=$STR_DN_HOUSE;
		nameSound="house";
		accuracy=0.20;
		cost=0;
		ladders[]={}; // default no ladder
	};
	//class House001: House {scope=protected;model="dum_mesto2";};

	#define BUILDING(x) class House##x: House {scope=protected;model=#x;}

	BUILDING(ryb_domek)
	BUILDING(majak)
	BUILDING(plechbud)
	BUILDING(deutshe_mini)
	BUILDING(bouda2_vnitrek)
	BUILDING(deutshe)
	BUILDING(dum_mesto)
	BUILDING(dum_mesto2)
	BUILDING(dum_rasovna)
	BUILDING(bouda2)
	BUILDING(bouda3)
	BUILDING(dumruina_mini)
	BUILDING(dum_mesto3)
	BUILDING(stodola_open)
	BUILDING(statek_kulna)
	BUILDING(dum_mesto2l)
	BUILDING(cihlovej_dum_mini)
	BUILDING(budova5)
	BUILDING(dumruina)
	BUILDING(dum01)
	BUILDING(cihlovej_dum)
	BUILDING(cihlovej_dum_in)
	BUILDING(budova1)
	BUILDING(budova3)
	BUILDING(budova4)
	BUILDING(budova2)
	BUILDING(garaz)
	BUILDING(garaz_bez_tanku)
	BUILDING(garaz_s_tankem)
	BUILDING(repair_center)

	BUILDING(dum02)
	BUILDING(afdum_mesto2)

	BUILDING(hospoda_mesto)
	BUILDING(stanice)
	BUILDING(dum_m2)
	BUILDING(bouda1)
	BUILDING(stodola)
	BUILDING(statek_hl_bud)
	BUILDING(hospital)
	BUILDING(mesto_dum)
	BUILDING(dum_rasovna_in)
	BUILDING(helfenburk)
	BUILDING(dum_olezlina)
	BUILDING(afdum_mesto3)
	BUILDING(afhospoda_mesto)
	BUILDING(dulni_bs)
	BUILDING(kostel_trosky)
	BUILDING(afdum_mesto2l)
	BUILDING(dum_mesto_in)
	BUILDING(afbarabizna)

	class Househruzdum: House
	{
		scope=protected;
		model="hruzdum";
		ladders[]={{"start","end"}}; // default no ladder
	};

	class Houseammostore2: House
	{
		scope=protected;
		model="ammostore2";
		ladders[]={{"start","end"},{"start1","end1"}}; // default no ladder
	};
	
	class ViewTower: House
	{
		scope=protected;
		model="hlaska";
		ladders[]={{"start","end"}}; // default no ladder
	};
	class ViewTower2: House
	{
		scope=protected;
		model="vez";
		ladders[]={{"start","end"}}; // default no ladder
	};

	class Forest: NonStrategic
	{
		scope=protected;
		model="";
		displayName=$STR_DN_FOREST;
		nameSound="forest";
		simulation=forest;
		accuracy=0.20;
		cost=5000;

		//coefInside = 1.0;
		//coefInside = 0.5;
		coefInside = 1;
		coefInsideHeur = 0.25;
	};
	class ForestSkewed: Forest {animated=false;}

	class Forest001: Forest {model="les ctverec pruchozi";};
	class Forest001T1: ForestSkewed {model="les ctverec pruchozi_T1";};
	class Forest001T2: ForestSkewed {model="les ctverec pruchozi_T2";};

	class Forest002: Forest {model="les trojuhelnik pruchozi";};

	class Forest003: Forest {model="les_su_ctver_pruhozi";};
	class Forest003T1: ForestSkewed {model="les_su_ctver_pruhozi_T1";};
	class Forest003T2: ForestSkewed {model="les_su_ctver_pruhozi_T2";};

	class Forest004: Forest {model="les_su_trojuhelnik";};

	class HeliH : NonStrategic
	{
		//--
		scope = public;
		model = "Heli_H";
		displayName=$STR_DN_HELI_H;
		vehicleClass="Objects";
		icon="Unknown_object";
		nameSound="helipad";

		accuracy=0.20;

		typicalCargo[]={};
		transportAmmo = 0;
		transportRepair = 0;
		transportFuel = 0;

		mapSize = 9.8;

		cost=0;
		armor=200;
	};
	class HeliHEmpty : HeliH
	{
		//--
		model = "empty";
		displayName=$STR_DN_HELI_H_EMPTY;
		nameSound="";
	};

	class FpLogo: Fence
	{
		scope = protected;
		model = "logofpfull.p3d";
		displayName=$STR_DN_OF_LOGO;
		nameSound="";
	};

	
	class TargetTraining : NonStrategic
	{
		//--
		nameSound="target";
		model="terc";
		side=TCivilian;
		armor=15;
		cost=0;
		scope=public;
		displayName=$STR_DN_TARGET;
		accuracy=0.25;
	};
	class TargetGrenade : TargetTraining
	{
		//--
		vehicleClass="Objects";
		nameSound="target";
		model="drevtank";
		side=TCivilian;
		armor=60;
		cost=0;
		scope=public;
		displayName=$STR_DN_ARMORED_TARGET;
		accuracy = 1000;
	};
	class Church: NonStrategic
	{
		scope=protected;
		displayName=$STR_DN_CHURCH;
		accuracy=0.25;
		simulation="church";
	};

	class Church001: Church
	{
		scope=public;model="kostel";
		ladders[]={{"start","end"}}; // default no ladder
	};
	class Church002: Church {scope=public;model="kostel2";};
	class Church003: Church {scope=public;model="kostel3";};
	
	class Chapel: NonStrategic
	{
		scope=public;
		displayName=$STR_DN_CHAPEL;
		accuracy=0.25;
	};

	class Chapel001: Chapel {model="kostelik";};

	/*
	class Objective : Strategic
	{
		displayName=$STR_DN_OBJECTIVE;
		accuracy=0.25;

		icon="vlajka";
		simulation="flag";

		scope=public;
		cost=200000;
		armor=500000;

		side=TSideUnknown;
	};

	class PrimaryObjective: Objective
	{
		scope=public;
		model="podprapornik_big";
		displayName=$STR_DN_PRIMARY_OBJECTIVE;
		accuracy=0.50;
		nameSound="primaryObjective";
	};
	class SecondaryObjective: Objective
	{
		scope=public;
		model="podprapornik";
		displayName=$STR_DN_SECONDARY_OBJECTIVE;
		accuracy=0.50;
		nameSound="secondaryObjective";
	};
	*/

	/*
	class Hospital: Strategic
	{
		icon="Ambulance_object";

		scope=public;
		model="hospital";
		displayName=$STR_DN_HOSPITAL;
		nameSound="hospital";
		accuracy=0.50;

		attendant = true;
	};
	*/

	class FuelStation: Strategic
	{
		//-- fuel station building
		icon="Fuel_object";

		scope=public;
		cost=0;		// changed from 2000000
		armor=50;
		model="fuelstation";
		displayName=$STR_DN_FUEL_STATION;
		nameSound="fuelstation";
		accuracy=0.50;

		transportFuel = 50000;
		destrType=DestructEngine;
	};
	class FuelStationNew: FuelStation
	{
		armor=100;
		model="fuelstation_new";
		displayName=$STR_DN_FUEL_STATION_2;
		accuracy=1000;
	};
	class FuelStationNew2: FuelStation
	{
		armor=100;
		model="fuelstation_army";
		displayName=$STR_DN_FUEL_STATION_3;
		accuracy=1000;
	};

	/*
	class Depot: Strategic
	{
		cost=20000000;
		displayName=$STR_DN_DEPOT;
		nameSound="depot"
		accuracy=0.50;
		transportFuel = 0;
		transportSoldier = 0;
		transportInfantryAmmo = 5000;
		transportAmmo = 5000;
		transportRepair = 5000;
	};
	class AmmoDepot: Depot
	{
		icon="Ammo_object";

		scope=public;
		displayName=$STR_DN_AMMO_DEPOT;
		model="bouda3.p3d";
		accuracy=0.70;
		transportFuel = 0;
		transportSoldier = 0;
		transportInfantryAmmo = 10000;
		transportAmmo = 100000;
		transportRepair = 0;
		nameSound="depot";
		destrType=DestructEngine;
	};
	class RepairDepot: Depot
	{
		icon="Repair_object";

		scope=public;
		model="garaz.p3d";
		displayName=$STR_DN_REPAIR_DEPOT;
		accuracy=0.70;
		transportFuel = 0;
		transportSoldier = 0;
		transportInfantryAmmo = 0;
		transportAmmo = 0;
		transportRepair = 300000;
		nameSound="depot";
	};
	*/

	// sound sources
	class Sound
	{
		scope=private;
		side = -1;
		vehicleClass = Sounds;
		icon = vlajka;
		mapSize = 10;
	};
	class Owl : Sound
	{
		scope = public;
		sound = OwlSfx;
		displayName = $STR_DN_OWL;
	};
	class Stream : Sound
	{
		scope = public;
		sound = StreamSfx;
		displayName = $STR_DN_STREAM;
	};
	class Frog : Sound
	{
		scope = public;
		sound = FrogSfx;
		displayName = $STR_DN_FROG;
	};
	class Frogs : Sound
	{
		scope = public;
		sound = FrogsSfx;
		displayName = $STR_DN_FROGS;
	};
	class Alarm : Sound
	{
		scope = public;
		sound = AlarmSfx;
		displayName = $STR_DN_ALARM;
	};
	class BirdSinging: Sound
	{
		scope = public;
		sound = BirdSingingSfx;
		displayName = $STR_DN_BIRDSING;
	};
	class Crickets1: Sound
	{
		scope = public;
		sound = Cricket1Sfx;
		displayName = $STR_DN_CRICKET1;
	};
	class Crickets2: Sound
	{
		scope = public;
		sound = Cricket2Sfx;
		displayName = $STR_DN_CRICKET2;
	};
	class Crickets3: Sound
	{
		scope = public;
		sound = Cricket3Sfx;
		displayName = $STR_DN_CRICKET3;
	};
	class Crickets4: Sound
	{
		scope = public;
		sound = CricketSfx;
		displayName = $STR_DN_CRICKET4;
	};
	class Chicken: Sound
	{
		scope = public;
		sound = ChickenSfx;
		displayName = $STR_DN_CHICKEN;
	};
	class Cock: Sound
	{
		scope = public;
		sound = CockSfx;
		displayName = $STR_DN_COCK;
	};
	class Cow: Sound
	{
		scope = public;
		sound = CowSfx;
		displayName = $STR_DN_COW;
	};
	class Crow: Sound
	{
		scope = public;
		sound = CrowSfx;
		displayName = $STR_DN_CROW;
	};
	class Wolf: Sound
	{
		scope = public;
		sound = WolfSfx;
		displayName = $STR_DN_WOLF;
	};

	class Dog: Sound
	{
		scope = public;
		sound = DogSfx;
		displayName = $STR_DN_DOG;
	};
	class BadDog: Sound
	{
		scope = public;
		sound = BadDogSfx;
		displayName = $STR_DN_BAD_DOG;
	};
	class SorrowDog: Sound
	{
		scope = public;
		sound = SorrowDogSfx;
		displayName = $STR_DN_SORROW_DOG;
	};
	class LittleDog: Sound
	{
		scope = public;
		sound = LittleDogSfx;
		displayName = $STR_DN_LITTLE_DOG;
	};
	class Music: Sound
	{
		scope = public;
		sound = FunMusicSfx;
		displayName = $STR_DN_MUSIC;
	};

	class MineGeneric
	{
		scope=private;
		side = -1;
		vehicleClass = Mines;
		icon = unknown_object;
		mapSize = 10;
	};
	class MineMine : MineGeneric
	{
		scope = public;
		displayName = $STR_DN_MINE;
		ammo = Mine;
	};
};

// note: CfgCrew is obsolete and should be removed
// use ProxyCrew instead
class CfgCrew
{

	drivers[]=
	{
		driver,
		m113driver, m113driverout,
		m60driver, m60driverout,
		m1a1driver, m1a1driverout,
		bmpdriver, bmpdriverout,
		t72driver,t72driverout,
		t80driver,t80driverout,
		zsudriver,zsudriverout,
		tankdriver,
		pilot,
		uh60pilot, mi17pilot, mi24pilot, 
		ah1pilot, a10pilot,
		traktorista, navy,
		jeepdriver,5tdriver,
		uazdriver,
		parasutista
	};
	gunners[]=
	{
		gunner,tankgunner,
		m113gunner,m113gunnerout,
		m60gunner,m60gunnerout,
		m1a1gunner,m1a1gunnerout,
		bmpgunner,bmpgunnerout,
		zsugunner,zsugunnerout,
		t72gunner,t72gunnerout,
		t80gunner,t80gunnerout,
		uh60copilot, mi17copilot,mi24gunner,
		uh60gunner, ah1gunner, ah1gunnerstat
	};
	commanders[]=
	{
		commander,tankcommander,tankcommandersit,
		m1a1commander,m1a1commanderout,
		m60commander,m60commanderout,
		bmpcommander,bmpcommanderout,
		zsucommander,zsucommanderout,
		t72commander,t72commanderout,
		t80commander,t80commanderout
	};
	cargo[]=
	{
		jeepcodriver,jeepcodriverback,5tcodriver,
		uazcodriver,
		m113medic,nemocnej,nemocnejstat,
		cargo,codriver,vojakw
	};
};

enum {CPDriver,CPGunner,CPCommander,CPCargo};

class CfgNonAIVehicles
{
	access = ReadAndCreate;
	// all vehicle classes must be described here

	class EmptyDetector
	{
		displayName=$STR_DN_EMPTY;

		simulation="detector";
		model = "empty.p3d";
		scope=public;
	};

	class Track
	{
		model = "";
		simulation=track;
	};
	class Mark
	{
		model = "";
		simulation=mark;
	};
	class SmokeSource
	{
		model = "";
		simulation=SmokeSource;
	};
	class ObjectDestructed
	{
		model = "";
		simulation=ObjectDestructed;
	};
	class Explosion
	{
		model = "";
		simulation=Explosion;
	};
	class Crater
	{
		model = "";
		simulation=Crater;
	};
	class CraterOnVehicle
	{
		model = "";
		simulation=CraterOnVehicle;
	};
	class Slop
	{
		model = "";
		simulation=Slop;
	};
	class Smoke
	{
		model = "";
		simulation=Smoke;
	};
	class DynamicSound
	{
		model = "";
		simulation=DynamicSound;
	};
	class StreetLamp
	{
		model = "";
		destrType=DestructTree;
		simulation=StreetLamp;

		colorDiffuse[] = {0.9,0.8,0.6};
		colorAmbient[] = {0.1,0.1,0.1};
		brightness = 1;

		// note: armorBulb is different from AI entitties
		// it is direct number, not relative to overall armor
		armorBulb = 1;
	};
	class StreetLampWood: StreetLamp
	{
		scope=protected;
		model = "lampadrevo";
	};
	class StreetLampMetal: StreetLamp
	{
		scope=protected;
		model = "lampazel";
	};
	class SoundOnVehicle
	{
		model = "";
		simulation=SoundOnVehicle;
	};
	class ThunderBolt
	{
		model = "";
		simulation=ThunderBolt;
	};
	class EditCursor
	{
		model = "";
		simulation=EditCursor;
	};
	class ObjView
	{
		scope=public;
		model = "";
		simulation=ObjView;
	};
	class Temp
	{
		scope=public;
		model = "";
		simulation=Temp;
	};
	class SeaGull
	{
		scope=public;
		model = "racekT";
		simulation=SeaGull;
		reversed=false;
	};
	class Camera
	{
		scope=public;
		model = "camera";
		simulation=Camera;
	};


	// proxy object classes

	class ProxyWeapon
	{
		autocenter=false; // normal vehicle are autocentered
		scope=public;
		reversed=false;
		model = "m16_proxy";
		simulation=ProxyWeapon;
	};
	class ProxySecWeapon
	{
		autocenter=false; // normal vehicle are autocentered
		scope=public;
		model = "law_proxy";
		simulation=ProxySecWeapon;
	};
	class ProxyAK_47_Proxy: ProxyWeapon {};
	class ProxyAK_47_v58_Proxy: ProxyWeapon {};
	class ProxyAK_47_granatomet_Proxy: ProxyWeapon {};
	class ProxyRPG7_Proxy: ProxySecWeapon {};
	class ProxyLAW_Proxy: ProxySecWeapon {};
	class ProxyStinger_Proxy: ProxySecWeapon {};
	//class ProxyDalekohled_Proxy: ProxySecWeapon {};

	class ProxyAT1_Proxy : ProxyWeapon {model = AT1_Proxy; simulation = "alwaysshow";}
	class ProxyMaverik_Proxy : ProxyWeapon {model = Maverik_Proxy; simulation = "maverickweapon";}
	class ProxyScud_Strela_Proxy : ProxyWeapon {model = Scud_Strela_Proxy; simulation = "scud";}

	// crew proxies
	class ProxyCrew
	{
		autocenter=false; // proxy never autocentered
		scope=protected;
		model = kursor;
		simulation=proxycrew;
		crewPosition=CPDriver;
	};
	class ProxyCommander: ProxyCrew {crewPosition=CPCommander;};
	class ProxyDriver: ProxyCrew {crewPosition=CPDriver;};
	class ProxyGunner: ProxyCrew {crewPosition=CPGunner;};
	class ProxyCargo: ProxyCrew {crewPosition=CPCargo;};

	#define TankCrewIn(Name) \
		class Proxy##Name##Commander: ProxyCommander {}; \
		class Proxy##Name##Driver: ProxyDriver {}; \
		class Proxy##Name##Gunner: ProxyGunner {};

	#define TankCrewOut(Name) \
		class Proxy##Name##CommanderOut: ProxyCommander {}; \
		class Proxy##Name##DriverOut: ProxyDriver {}; \
		class Proxy##Name##GunnerOut: ProxyGunner {};

	#define TankCrew(Name) TankCrewIn(Name);TankCrewOut(Name)

	// define tank crews
	TankCrew(M60);
	TankCrew(M1A1);
	TankCrew(M113);

	TankCrew(BMP);
	TankCrew(T72);
	TankCrew(T80);
	TankCrew(ZSU);

	TankCrew(T55);

	class ProxyMedic: ProxyCargo {};
	class ProxyNemocnej: ProxyCargo {};

	// define plane/heli crews
	class ProxyUH60Pilot: ProxyDriver {};
	class ProxyUH60CoPilot: ProxyGunner {};
	class ProxyUH60Gunner: ProxyGunner {};

	class ProxyMi17Pilot: ProxyDriver {};
	class ProxyMi17CoPilot: ProxyGunner {};

	class ProxyMi24Pilot: ProxyDriver {};
	class ProxyMi24Gunner: ProxyGunner {};

	class ProxyAH1Pilot: ProxyDriver {};
	class ProxyAH1Gunner: ProxyGunner {};
	class ProxyAH1GunnerStat: ProxyGunner {};

	class ProxyA10Pilot: ProxyDriver {};

	class ProxyCesnaPilot: ProxyDriver {};
	class ProxyCesnaCoPilot: ProxyCargo {};
	class ProxyCesnaCargo: ProxyCargo {};

	// define car crews
	class ProxyTraktorDriver: ProxyDriver {};

	class ProxyJeepDriver: ProxyDriver {};
	class ProxyJeepGunner: ProxyGunner {};
	class ProxyJeepCoDriver: ProxyCargo {};
	class ProxyJeepCoDriverBack: ProxyCargo {};

	class Proxy5tDriver: ProxyDriver {};
	class Proxy5tCoDriver: ProxyCargo {};

	class ProxyUazDriver: ProxyDriver {};
	class ProxyUazCoDriver: ProxyCargo {};

	class ProxyUralDriver: ProxyDriver {};
	class ProxyUralCoDriver: ProxyCargo {};

	class ProxySkodaDriver: ProxyDriver {};
	class ProxySkodaCoDriver: ProxyCargo {};
	class ProxySkodaCoDriverBack: ProxyCargo {};

	class ProxyV3SDriver: ProxyDriver {};
	class ProxyV3SCoDriver: ProxyCargo {};

	class ProxyPBRDriver: ProxyDriver {};
	class ProxyPBRGunner: ProxyGunner {};

	class ProxyHRLDriver: ProxyDriver {};
	class ProxyHRLGunner: ProxyGunner {};

	class ProxySCUDDriver: ProxyDriver {};
	class ProxySCUDCoDriver: ProxyCargo {};

	// special crew
	class ProxyParasutista: ProxyDriver {};
	class ProxyM2Gunner: ProxyGunner {};
	class ProxyPKGunner: ProxyGunner {};


	class ProxyFlag
	{
		autocenter=false; // normal vehicle are autocentered
		scope=public;
		reversed=false;
		model = "";
		simulation = "flag";
	};

	class ProxyFlag_Auto : ProxyFlag {model = "flag_auto";}
	class ProxyFlag_Alone : ProxyFlag {model = "flag_alone";}
	class ProxyFlag_Alone_Big : ProxyFlag {model = "flag_alone_big";}
	class ProxyFlag_Vojak : ProxyFlag {model = "flag_vojak";}
	class ProxyFlag_Stozar : ProxyFlag {model = "flag_stozar";}
	class ProxyFlag_Plane : ProxyFlag {model = "flag_plane";}
	class ProxyFlag_Plane_Big : ProxyFlag {model = "flag_plane_big";}

	#ifdef COMMENT
	class RandomInForest
	{
		//models[] = {"str smrcicicek",0.3, rosti,0.3, "pahejl smrk",1};
		models[]= {koule,0.5, cube,1};
		autocenter=false; // normal vehicle are autocentered
		scope=public;
		reversed=false;
		model = "";
		simulation="randomshape";
	};

	class RandomInHouse
	{
		models[]=
		{
			kamna_bila,0.5,
			zidlicka,1
		};
		autocenter=false; // normal vehicle are autocentered
		scope=public;
		reversed=false;
		model = "";
		simulation="randomshape";
	};
	#endif

	class ProxyAmmoInTruck
	{
		autocenter=false; // normal vehicle are autocentered
		scope=public;
		reversed=false;
		model = "";
		simulation = "alwaysshow";
	};
	class ProxyAmmo_Bedna_In : ProxyAmmoInTruck {model = "ammo_bedna_in";}
	class ProxyAmmo_Bedna2 : ProxyAmmoInTruck {model = "ammo_bedna2";}

	/*
	class Proxystr_smrcicicek: RandomInForest {};
	class Proxyrosti: RandomInForest {};
	class Proxypahejl_smrk: RandomInForest {};
	*/

	/*

	class Proxykamna_bila: RandomInHouse {}
	class Proxyzidlicka: RandomInHouse {}
	class Proxyskrin_bar: RandomInHouse {}
	class Proxytopeni: RandomInHouse {}
	class Proxydrez: RandomInHouse {}
	class Proxystulsuplik_proxy: RandomInHouse {}

	// proxy in-house randomization
	//class Proxylampa strop
	class Proxypostel_manz_kov
	class Proxytopeni
	class Proxyskrinkamini
	class Proxytelevize
	class Proxyobrazek1
	class Proxystolek_zasupovaci
	class Proxyskrin_dvojita
	class Proxyskrin_opalena
	class Proxykamna_uhli
	class Proxytruhla_stara
	class Proxydrez
	class Proxystulsuplik_proxy
	class Proxyumyvadlo
	class Proxyzachod
	//class Proxygauc cerveny
	class Proxyobrazek1
	class Proxyobrazek2
	class Proxystolek_zasupovaci
	//class Proxykreslo cerveny
	*/

};

// define surface properties

/*!
\patch 1.43 Date 1/22/2002 by Ondra
- Fixed: CfgSurfaces protected against addon modification.
*/

class CfgSurfaces
{
	// caution: wildcard pattern "files" is matched using special purpose matching
	// * may be used only as last character of the pattern
	// * matches any string in filename
	// ? matches any single character in filename
	// when six trailing question-marks are detected "??????", two patterns are matched:
	// full pattern and short pattern with ?????? omitted
	class Default
	{
		access = ReadOnly;
		files=default;
		rough=0.075;
		dust=0.1;
		soundEnviron = normalExt;
	};
	class Roadway
	{
		access = ReadOnly;
		files=silnice*;
		rough=0.005;
		dust=0.01;
		soundEnviron = road;
	};
	class Asfalt: Roadway
	{
		access = ReadOnly;
		files=asfalt*;
		rough=0.01;
		dust=0.05;
		soundEnviron = road;
	};
	class Cesta: Roadway
	{
		access = ReadOnly;
		files=cesta*;
		rough=0.08;
		dust=0.15;
		soundEnviron = gravel;
	};
	class Grass: Default
	{
		access = ReadOnly;
		files=tn??????;
		rough=0.11;
		dust=0.1;
		soundEnviron = normalExt;
	};
	class GrassAbel: Default
	{
		access = ReadOnly;
		files=tt??????;
		rough=0.11;
		dust=0.25;
		soundEnviron = grass;
	};
	class SandAbel: Default
	{
		access = ReadOnly;
		files=pi??????;
		rough=0.15;
		dust=0.6;
		soundEnviron = sand;
	};
	class RockAbel: Default
	{
		access = ReadOnly;
		files=sh??????;
		rough=0.2;
		dust=0.2;
		soundEnviron = rock;
	};

	class BetonAbel: Default
	{
		access = ReadOnly;
		files=bt??????;
		rough=0.05;
		dust=0.03;
		soundEnviron = rock;
	};
	class GrassHigh: Default
	{
		access = ReadOnly;
		files=tv??????;
		rough=0.12;
		dust=0.05;
		soundEnviron = grass;
	};
	class Forest
	{
		access = ReadOnly;
		files=pl??????;
		rough=0.12;
		dust=0.05;
		soundEnviron = forest;
	};
	class Sand: Default
	{
		access = ReadOnly;
		files=ps??????;
		rough=0.12;
		dust=0.5;
		soundEnviron = sand;
	};
	class Field: Default
	{
		access = ReadOnly;
		files=pol;
		rough=0.15;
		dust=0.3;
		soundEnviron = dirt;
	};
	class Village: Default
	{
		access = ReadOnly;
		files=bah;
		rough=0.08;
		dust=0.2;
		soundEnviron = normalExt;
	};
	class Runway: Roadway
	{ // runway is very clean
		access = ReadOnly;
		//files=lt??????;
		files=rw*;
		rough=0.001;
		dust=0.006;
		soundEnviron = road;
	};
	class Rock
	{
		access = ReadOnly;
		files=s???????;
		rough=0.15;
		dust=0.1;
		soundEnviron = rock;
	};
	class Water
	{
		access = ReadOnly;
		files=more_anim*;
		rough=0.0;
		dust=0.0;
		soundEnviron = water;
	};
	class Wood
	{
		access = ReadOnly;
		files=podlaha_prkna*;
		rough=0.15;
		dust=0.1;
		soundEnviron = wood;
	};	
	class Metal
	{
		access = ReadOnly;
		files=plechprolis*;
		rough=0.15;
		dust=0.1;
		soundEnviron = metal;
	};	
	class Beton
	{
		access = ReadOnly;
		files=kameny.pac;
		rough=0.15;
		dust=0.1;
		soundEnviron = rock;
	};	
	class Carpet
	{
		access = ReadOnly;
		files=dum_mesto_koberec*;
		rough=0.15;
		dust=0.1;
		soundEnviron = wood;
	};
	
	class SandBuilding: Default
	{
		access = ReadOnly;
		files=pisek01*;
		rough=0.12;
		dust=0.5;
		soundEnviron = sand;
	};
	class MudBuilding: Default
	{
		access = ReadOnly;
		files=hlinasterk*;
		rough=0.12;
		dust=0.5;
		soundEnviron = rock;
	};	
};

class CfgFonts
{
	class Korean
	{
/*
		TahomaB24 = GulimCheB48;
		TahomaB36 = GulimCheB48;
		TahomaB48 = GulimCheB64;
		CourierNewB64 = GulimCheB64;
		AudreysHandB48 = GulimCheB48;
		SteelfishB64 = GulimCheB64;
		Garamond64 = GulimCheB64;
		SteelfishB128 = GulimCheB128;
		AudreysHandI48 = GulimCheB48;
*/
/*
		TahomaB24 = hfont12;
		TahomaB36 = hfont16;
		TahomaB48 = hfont16;
		CourierNewB64 = hfont16;
		Garamond64 = hfont16;
		SteelfishB64 = hfont16;
		SteelfishB128 = hfont32;
		AudreysHandB48 = hfont12;
		AudreysHandI48 = hfont12;
*/
		TahomaB24 = hfont16;
		TahomaB36 = hfont16;
		TahomaB48 = hfont16;
		CourierNewB64 = hfont16;
		Garamond64 = hfont16;
		SteelfishB64 = hfont32;
		SteelfishB128 = hfont32_16;
		AudreysHandB48 = hfont16;
		AudreysHandI48 = hfont16;
	};
};

///////////////////////////////////////////////////////////////////////////////
// define UI

#define Black 0, 0, 0
// #define Green 0.2, 0.7, 0.2
#define Green 0.0, 0.6, 0.0
#define Red 0.7, 0.1, 0.0
// #define Yellow 0.7, 0.7, 0.2
#define Yellow 0.8, 0.6, 0.0
#define White 0.8, 0.8, 0.8
#define ShineGreen 0.07, 0.7, 0.2
#define ShineRed 1, 0.2, 0.2
#define ShineYellow 1, 1, 0
#define ShineWhite 1, 1, 1
#define Blue 0.1, 0.1, 0.9

#define Gray1			0.00, 0.00, 0.00
#define Gray2			0.20, 0.20, 0.20
#define Gray3			0.50, 0.50, 0.50
#define Gray4			0.60, 0.60, 0.60
#define Gray5			0.80, 0.80, 0.80

class CfgWrapperUI
{
	access = ReadAndCreate;
	class Colors
	{
		color1[] = {Gray1, 1.0};
		color2[] = {Gray2, 1.0};
		color3[] = {Gray3, 1.0};
		color4[] = {Gray4, 1.0};
		color5[] = {Gray5, 1.0};
	};
	class Background
	{
		alpha = 0.75;
		texture = "background.pac";
	};
	class TitleBar
	{
		alpha = 0.3;
		texture = "windowname.pac";
	};
	class GroupBox
	{
		alpha = 0.2;
	};
	class GroupBox2
	{
		alpha = 0.5;
		texture = "windowdisplay.pac";
	};
	class Button
	{
		color1[] = {Gray1, 0.3};
		color2[] = {Gray2, 0.3};
		color3[] = {Gray3, 0.3};
		color4[] = {Gray4, 0.3};
		color5[] = {Gray5, 0.3};
	};
	class Cursors
	{
		class Arrow
		{
			texture = kurzor_arrow;
			width = 16;
			height = 16;
			hotspotX = 0;
			hotspotY = 0;
			color[] = {White, 1};
		}
		class Track
		{
			texture = kurzor_track;
			width = 24;
			height = 24;
			hotspotX = 0.5;
			hotspotY = 0.5;
			color[] = {Red, 1};
		}
		class Move
		{
			texture = kurzor_move;
			width = 24;
			height = 24;
			hotspotX = 0.5;
			hotspotY = 0.5;
			color[] = {Green, 1};
		}
		class Scroll
		{
			texture = kurzor_scroll;
			width = 24;
			height = 24;
			hotspotX = 0.5;
			hotspotY = 0.5;
			color[] = {Yellow, 1};
		}
	};
	//soundOptions = "sound\animals\cock.wss";
};

class CfgInGameUI
{
	access = ReadAndCreate;

	imageCornerElement = cornern.paa;

	colorBackground[] = {Black, 0.8};
	colorBackgroundCommand[] = {Black, 0.3};
	colorBackgroundHelp[] = {Black, 0.2};
	colorText[] = {White, 1};
	class SideColors
	{
		colorFriendly[] = {Green, 1};
		colorEnemy[] = {Red, 1};
		colorNeutral[] = {White, 1};
		colorCivilian[] = {White, 1};
		colorUnknown[] = {Yellow, 1};
	};
	class IslandMap
	{
		colorFriendly[] = {0, 0.5, 0, 1};
		colorEnemy[] = {0.5, 0, 0, 1};
		colorNeutral[] = {0.5, 0.5, 0.5, 1};
		colorCivilian[] = {0, 0, 1, 1};
		colorUnknown[] = {0.5, 0.5, 0, 1};

		iconPlayer = you.paa;
		iconCheckpoint = target.paa;
		iconCamera = camera.paa;
		iconSelect = mkrouzek.paa;
		iconSensor = vlajka.paa;

		colorMe[] = {Red, 1};
		colorPlayable[] = {0.7, 0, 0.7, 1};
		colorSelect[] = {Green, 0.5};
		colorCamera[] = {Blue, 1};
		colorSensor[] = {Blue, 1};

		colorDragging[] = {White, 1};

		colorInactive[] = {1,1,1, 0.6};

		colorCountlines[] = {0, 0, 0, 0.33};
		colorCountlinesWater[] = {0, 0, 1, 1};
		colorExposureEnemy[] = {1.0, 0.2, 0.2, 0.5};
		colorExposureUnknown[] = {0.8, 0.8, 0.2, 0.5};
		colorRoads[] = {0.35, 0.2, 0.1, 0.8};
		colorGrid[] = {0.25, 0.25, 0.1, 0.75};
		colorGridMap[] = {0.25, 0.25, 0.1, 0.75};
		colorCheckpoints[] = {0.2, 0.2, 0.2, 1.0};
		colorMissions[] = {0.5, 0.5, 0.0, 0.5}; //remove
		colorActiveMission[] = {0.0, 0.0, 0.0, 1.0};

		colorPath[] = {0.0, 0.0, 1, 0.9};
		colorInfoMove[] = {1.0, 1.0, 1.0, 1.0};
		
		colorGroups[] = {0.0, 0.5, 0.5, 0.5}; //remove
		colorActiveGroup[] = {0.0, 1.0, 1.0, 1.0};
		
		colorSync[] = {0.0, 0.0, 1.0, 1.0};

		colorDetectorSync = {0,1,0,1} //todo

		colorLabelBackground[] = {0.0, 0.0, 0.0, 1.0};
	};
	class MPTable
	{
		color[] = {1, 1, 1, 1};
		colorBg[] = {0, 0, 0, 0.75};
		colorSelected[] = {1, 1, 1, 0.2};
		colorWest[] = {0, 1, 0, 1};
		colorEast[] = {1, 0, 0, 1};
		colorCiv[] = {0.8, 0.8, 0.8, 1};
		colorRes[] = {0.47, 0.47, 0.94, 1};
	};
	class TankDirection
	{
		left = 0.04;
		top =	0.007;
		width = 0.15;
		height = 0.195;

		color[] = {White, 1};
		colorHalfDammage[] = {Yellow, 1};
		colorFullDammage[] = {Red, 1};
		//imageHull = "tank_schema.paa";
		imageTower = "vez_schema.paa"; // TODO: remove

		//imageHull = "tank_schema.paa";
		imageTurret = "T_schema_vez.paa";
		imageGun = "T_schema_kanon.paa";
		imageObsTurret = "T_schema_velite2.paa";

		imageEngine = "T_schema_motor.paa";
		imageHull = "T_schema_trup.paa";

		imageLTrack = "T_schema_Lpas";
		imageRTrack = "T_schema_Ppas";

	};

	class Capture
	{
		colorBackground[] = {Black, 0.93};
		colorText[] = {Yellow, 1};
		colorLine[] = {White, 1};
	};
	class Picture
	{
		color[] = {White, 1};
		colorProblems[] = {Red, 1};
		imageBusy = busy.paa;
		imageWaiting = orders.paa;
		imageCommand = execute.paa;
	};
 	class Bar
	{
		imageBar = white.pac;
		colorBackground[] = {0.2, 0.5, 0.2, 0.5};
		colorGreen[] = {Green, 0.6};
		colorYellow[] = {Yellow, 0.6};
		colorRed[] = {Red, 0.8};
		colorBlinkOn[] = {ShineRed, 0.8};
		colorBlinkOff[] = {Red, 0.8};
		height = 0.01;
	};
	class Messages
	{
		color1[] = {Yellow, 1};
		color2[] = {Green, 1};
		color3[] = {White, 1};
	}
	class TacticalDisplay: SideColors
	{
		left = 0.24;
		top =	0.053;
		width = 0.52;
		height = 0.1;
		colorCamera[] = {0.1, 0.1, 0.1, 0.4};
		class Cursor
		{
			width = 0.015;
			height = 0.02;
			color[] = {White, 1};
		};
	};
	class ProgressFont
	{
		font = SteelfishB64;
	};
	class Compass
	{
		left = 0.24;
		top =	0.02;
		width = 0.52;
		height = 0.02;
		color[] = {White, 1};
		dirColor[] = {White, 1};
		turretDirColor[] = {Yellow, 1};
	};
	class Menu
	{
		left = 0.78;
		top =	0.02;
		width = 0.2;
		height = 0.28;
		colorChecked[] = {Yellow, 1};
		colorEnabled[] = {White, 1};
		colorDisabled[] = {0.4, 0.4, 0.4, 1};
		hideTime = 60;
	};
	class GameInfo
	{
		left = 0.78;
		top =	0.9;
		width = 0.2;
		height = 0.08;
	};
	class GroupDir
	{
		image = grouporient.paa;
/*
		left = 0.905;
		top = 0.64;
*/
		left = 0.05;
		top = 0.62;
		width = 0.075;
		height = 0.1;
		dimmStartTime = 10;
		dimmEndTime = 15;
	};

	class PlayerInfo
	{
		colorTime[] = {White, 1};
		left = 0.02;
		top =	0.02;
		width = 0.2;
		height = 0.28;
		class UnitPicture
		{
			width = 0.15;
			height = 0.16;
		};
		class Sign
		{
			height = 0.03;
			widthSector = 0.04;
			widthGroup = 0.02;
			widthUnit = 0.02;
		}
		class Side
		{
			height = 0.072;
			width = 0.06;
		};
		class HealthBar
		{
			width =	0.12;
		};
		class ArmorBar
		{
			width =	0.12;
		};
		class FuelBar
		{
			width =	0.12;
		};
		class ExperienceBar
		{
			width =	0.12;
			color[] = {White, 1};
		};
		dimmStartTime = 5;
		dimmEndTime = 10;
	};

	class Hint
	{
		dimmStartTime = 30;
		dimmEndTime = 35;
		sound[] = {ui\hint, db10, 1};
	};
	class Chat
	{
		sound[] = {ui\hint, db-10, 1};
	};

	class GroupInfo
	{
		left = 0.02;
		top =	0.90;
		width = 0.96;
		height = 0.08;
		colorIDNone[] = {Black, 1};
		colorIDNormal[] = {White, 1};
		colorIDSelected[] = {Green, 1};
		colorIDPlayer[] = {Yellow, 1};
		class Semaphore
		{
			imageSemaphore = white.pac;
			width = 0.0075;
			height = 0.01;
			colorHoldFire[] = {Red, 1};
		};
		imageDefaultWeapons = ivojak;
		imageNoWeapons = \misc\ibezezbrane.paa;

		dimm = 0.3; // alpha of non-active group info elements
	};
	class ConnectionLost
	{
		left = 0.0;
		top =	0.45;
		width = 1.0;
		height = 0.10;
		font = tahomaB36;
		size = 0.03;
		color[] = {1.0, 0.5, 0.25, 1.0};
	};
	class Cursor
	{
		// targeting cursor
		aim=W_weapon;
		// two colors - possible lock, locked
		weapon=W_lock;

		outArrow = UI_sipka.paa;

		select_target=target_active.paa;
		lock_target=target_locked.paa;
		
		//main battle cursors
		me=circle;
		meColor[] = {White, 0.8};
		dimmMe = 0.0;
		dimmMeStartTime = 5;
		dimmMeEndTime = 10;
		dimmCmdStartTime = 5;
		dimmCmdEndTime = 10;
		select=circle;
		selectColor[] = {Green, 0.8};
		leader=circle;
		leaderColor[] = {Green, 0.8};
		mission=M_mission;
		missionColor[] = {Yellow, 0.8};

		//tactical cursor
		tactical=T_tactical;
		move=T_basic;
		selected=T_select;
		attack=T_attack;
		getIn=T_getin;
		watch = kurzor_scroll;

		color[] = {White, 1};
		colorBackground[] = {Black, 0.6};
		colorLocked[] = {Red, 1};
		dimm = 0.15; // alpha of non-active cursor elements

		class Sign
		{
			height = 0.015;
			widthSector = 0.02;
			widthGroup = 0.01;
			widthUnit = 0.01;
		}
	
		// active targets
		activeWidth = 0.6;
		activeHeight = 0.8;
		activeMinimum = 0.05;
		activeMaximum = 0.1;
		enemyActiveColor[] = {Red, 0.7};
	};
};

class CfgDetectors
{
	objects[] = {EmptyDetector};
};

class CfgGlasses
{
	class None
	{
		name = $STR_CFG_GLASSES_NONE;
		texture = "";
	};
	class Spectacles
	{
		name = $STR_CFG_GLASSES_SPECTACLES;
		texture = "civilista_bryle";
	};
	class Sunglasses
	{
		name = $STR_CFG_GLASSES_SUNGLASSES;
		texture = "civilista_zrcadlovky";
	};
};

class CfgFaces
{
	//access = ReadAndCreate;
	// Default is needed
	class Default
	{
		name = $STR_CFG_FACES_DEFAULT;
		texture = xicht_2f.paa;
		east = false;
		west = false;
	};

	class Face1
	{
		name = "Peter P.";
		texture = xicht_a.paa;
		east = false;
		west = false;
	};
	class Face2
	{
		name = "Victor B.";
		texture = xicht_b.paa;
		east = false;
		west = true;
	};
	class Face3
	{
		name = "Bohous";
		texture = xicht_c.paa;
		east = false;
		west = false;
	};
	class Face4
	{
		name = "Mirek";
		texture = xicht_d.paa;
		east = false;
		west = true;
	};
	class Face5
	{
		name = "Peter S.";
		texture = xicht_e.paa;
		east = false;
		west = false;
	};
	class Face6
	{
		name = "Charles";
		texture = xicht_f.paa;
		east = false;
		west = false;
	};
	class Face7
	{
		name = "Peter V.";
		texture = xicht_g.paa;
		east = false;
		west = false;
	};
	class Face8
	{
		name = "Richard B.";
		texture = xicht_h.paa;
		east = false;
		west = true;
	};
	class Face9
	{
		name = "Charles M.";
		texture = xicht_i.paa;
		east = false;
		west = true;
	};
	class Face10
	{
		name = "Ian O'Hara";
		texture = xicht_j.paa;
		east = false;
		west = true;
	};
	class Face11
	{
		name = "Vojta N.";
		texture = xicht_k.paa;
		east = false;
		west = true;
	};
	class Face12
	{
		name = "Adam B.";
		texture = xicht_l.paa;
		east = false;
		west = true;
	};
	class Face13
	{
		name = "Peter B.";
		texture = xicht_m.paa;
		east = false;
		west = false;
	};
	class Face14
	{
		name = "Francesco F.";
		texture = xicht_n.paa;
		east = false;
		west = false;
	};
	class Face15
	{
		name = "Bill O.";
		texture = xicht_o.paa;
		east = false;
		west = false;
	};
	class Face16
	{
		name = "Colin F.";
		texture = xicht_p.paa;
		east = false;
		west = false;
	};
	class Face17
	{
		name = "Darren I.";
		texture = xicht_q.paa;
		east = false;
		west = false;
	};
	class Face18
	{
		name = "Eric J.";
		texture = xicht_r.paa;
		east = false;
		west = false;
	};
	class Face19
	{
		name = "Phill D.";
		texture = xicht_s.paa;
		east = false;
		west = true;
	};
	class Face20
	{
		name = "Graham U.";
		texture = xicht_t.paa;
		east = false;
		west = true;
	};
	class Face21
	{
		name = "Henry G.";
		texture = xicht_u.paa;
		east = false;
		west = false;
	};
	class Face22
	{
		name = "Ivan B.";
		texture = xicht_v.paa;
		east = false;
		west = false;
	};
	class Face23
	{
		name = "Ghulam K.";
		texture = xicht_w.paa;
		east = false;
		west = false;
	};
	class Face24
	{
		name = "Kevin B.";
		texture = xicht_x.paa;
		east = false;
		west = false;
	};
	class Face25
	{
		name = "Robert ";
		texture = xicht_y.paa;
		east = false;
		west = true;
	};
	class Face26
	{
		name = "Martin";
		texture = xicht_z.paa;
		east = false;
		west = true;
	};
	class Face27
	{
		name = "John A.";
		texture = xicht_2a.paa;
		east = false;
		west = false;
	};
	class Face28
	{
		name = "Bill G.";
		texture = xicht_2b.paa;
		east = false;
		west = true;
	};
	class Face29
	{
		name = "Peter O.";
		texture = xicht_2c.paa;
		east = false;
		west = true;
	};
	class Face30
	{
		name = "Henry H.";
		texture = xicht_2d.paa;
		east = false;
		west = true;
	};
	class Face31
	{
		name = "William G.";
		texture = xicht_2e.paa;
		east = false;
		west = true;
	};
	class Face32
	{
		name = "Arnold T.";
		texture = xicht_2f.paa;
		east = false;
		west = true;
	};
	class Face33
	{
		name = "Michael H.";
		texture = xicht_2g.paa;
		east = false;
		west = false;
	};
	class Face34
	{
		name = "John Fox";
		texture = xicht_2h.paa;
		east = false;
		west = true;
	};
	class Face35
	{
		name = "George McArthur";
		texture = xicht_2i.paa;
		east = false;
		west = true;
	};
	class Face36
	{
		name = "Peter Sun";
		texture = xicht_2j.paa;
		east = false;
		west = true;
	};
	class Face37
	{
		name = "Robert S.";
		texture = xicht_2k.paa;
		east = false;
		west = true;
	};
	class Face38
	{
		name = "John Way";
		texture = xicht_2l.paa;
		east = false;
		west = true;
	};
	class Face39
	{
		name = "Jack C.";
		texture = xicht_2m.paa;
		east = false;
		west = true;
	};
	class Face40
	{
		name = "J. C.";
		texture = xicht_2n.paa;
		east = false;
		west = false;
	};
	class Face41
	{
		name = "Mel D.";
		texture = xicht_2o.paa;
		east = false;
		west = true;
	};
	class Face42
	{
		name = "John Paul";
		texture = xicht_2p.paa;
		east = false;
		west = true;
	};
	class Face43
	{
		name = "Jirka M.";
		texture = xicht_2q.paa;
		east = false;
		west = true;
	};
	class Face44
	{
		name = "Honza K.";
		texture = xicht_2r.paa;
		east = true;
		west = true;
	};
	class Face45
	{
		name = "John A.";
		texture = xicht_2s.paa;
		east = true;
		west = true;
	};
	class Face46
	{
		name = "Ondrey N.";
		texture = xicht_2t.paa;
		east = true;
		west = true;
	};
	class Face47
	{
		name = "Ondrey S.";
		texture = xicht_2u.paa;
		east = true;
		west = true;
	};
	class Face48
	{
		name = "Gabriel K.";
		texture = xicht_2v.paa;
		east = true;
		west = true;
	};
	class Face49
	{
		name = "Oliver S.";
		texture = xicht_2w.paa;
		east = false;
		west = true;
	};
	class Face50
	{
		name = "Radan D.";
		texture = xicht_2x.paa;
		east = true;
		west = true;
	};
	class Face51
	{
		name = "George J.";
		texture = xicht_2y.paa;
		east = true;
		west = true;
	};
	class Face52
	{
		name = "Ota B.";
		texture = xicht_2z.paa;
		east= true;
		west = true;
	};

	/*
	class Face99
	{
		disabled=true;
		name = "Angelina";
		texture = xicht_a.paa;
		front = ang_face_f10.pac;
		side = ang_face_b9.pac;
		back = ang_face_z4.pac;
		east = false;
		west = false;
	};
	*/
	class Custom
	{
		name = $STR_CFG_FACES_CUSTOM;
		texture = white.pac;
		front = white.pac;
		side = white.pac;
		back = white.pac;
		east = false;
		west = false;
	};
};

class CfgFaceWounds
{
	access = ReadAndCreate;
	wounds[]=
	{
		\o\char\faceR01.paa,\o\char\faceR01_d.pac,
		\o\misc\eva.pac,\o\misc\eva_d.pac,
		\o\misc\kamila.pac,\o\misc\kamila_d.pac,
		\o\misc\lada.pac,\o\misc\lada_d.pac,
		\o\misc\lucie.pac,\o\misc\lucie_d.pac,
		\o\misc\marketa.pac,\o\misc\marketa_d.pac,
		\o\misc\nada.pac,\o\misc\nada_d.pac,xicht_a.paa,xicht_a_zranen,

		#include "woundsFace.hpp"
	};
};

class CfgMimics
{
	access = ReadAndCreate;
	class HeadPreview
	{
		microMimics=Micro;
	};
	class Micro
	{
		//          max offset (3d)       change time (min..max)
		lBrow[] =  {0.0020,0.0020,0.0010, 0.6,3.0};
		mBrow[] =  {0.0020,0.0020,0.0010, 0.6,2.5};
		rBrow[] =  {0.0020,0.0020,0.0010, 0.6,3.0};
		lMouth[] = {0.0010,0.0020,0.0010, 0.6,2.0};
		mMouth[] = {0.0000,0.0000,0.0000, 0.6,3.0};
		rMouth[] = {0.0010,0.0020,0.0010, 0.6,2.0};
	};
	class NoMicro
	{
		//          max offset (3d)       change time (min..max)
		lBrow[] =  {0.0000,0.0000,0.0000, 0.6,3.0};
		mBrow[] =  {0.0000,0.0000,0.0000, 0.6,2.5};
		rBrow[] =  {0.0000,0.0000,0.0000, 0.6,3.0};
		lMouth[] = {0.0000,0.0000,0.0000, 0.6,2.0};
		mMouth[] = {0.0000,0.0000,0.0000, 0.6,3.0};
		rMouth[] = {0.0000,0.0000,0.0000, 0.6,2.0};
	};
	class States
	{
		class Default
		{
			// {right, up} in cm
			lBrow[] = {0, 0};
			mBrow[] = {0, 0};
			rBrow[] = {0, 0};
			lMouth[] = {0, 0};
			mMouth[] = {0, 0};
			rMouth[] = {0, 0};
		};
		class Normal
		{
			// {right, up} in cm
			lBrow[] = {0, 0};
			mBrow[] = {0, 0};
			rBrow[] = {0, 0};
			lMouth[] = {0, 0};
			mMouth[] = {0, 0};
			rMouth[] = {0, 0};
		};
		class Smile
		{
			// {right, up} in cm
			lBrow[] = {0, 0.25};
			mBrow[] = {0, 0.25};
			rBrow[] = {0, 0.25};
			lMouth[] = {-0.5, 0.6};
			mMouth[] = {0, 0.0};
			rMouth[] = {0.5, 0.6};
		};
		class Hurt
		{
			// {right, up} in cm
			lBrow[] = {0, -0.35};
			mBrow[] = {0, -0.5};
			rBrow[] = {0, -0.6};
			lMouth[] = {0.5, -0.3};
			mMouth[] = {0, 0.3};
			rMouth[] = {-0.5, -0.6};
		};
		class Ironic
		{
			// {right, up} in cm
			lBrow[] = {0, -0.35};
			mBrow[] = {0, -0.35};
			rBrow[] = {0, -0.35};
			lMouth[] = {0.1, 0.3};
			mMouth[] = {0, 0.9};
			rMouth[] = {-0.1, 0.3};
		};
		class Sad
		{
			// {right, up} in cm
			lBrow[] = {0, +0.2};
			mBrow[] = {0, +0.2};
			rBrow[] = {0, +0.2};
			lMouth[] = {0.1, -0.5};
			mMouth[] = {0, -0.5};
			rMouth[] = {-0.1, -0.5};
		};
		class Cynic
		{
			// {right, up} in cm
			lBrow[] = {0, -0.35};
			mBrow[] = {0, 0.0};
			rBrow[] = {0, +0.05};
			lMouth[] = {0.2, -0.9};
			mMouth[] = {0, -0.2};
			rMouth[] = {0.0, 0};
		};
		class Surprised
		{
			// {right, up} in cm
			lBrow[] = {0, 0.5};
			mBrow[] = {0, 0.5};
			rBrow[] = {0, 0.5};
			lMouth[] = {0.0, -0.3};
			mMouth[] = {0, +0.3};
			rMouth[] = {0.0, -0.2};
		};

		class Agresive
		{
			// {right, up} in cm
			lBrow[] = {0, -0.25};
			mBrow[] = {0, -0.4};
			rBrow[] = {0, -0.3};
			lMouth[] = {+0.4, +0.5};
			mMouth[] = {0, +0.5};
			rMouth[] = {-0.4, -0.5};
		};
		class Angry
		{
			// {right, up} in cm
			lBrow[] = {+0.4, -0.5};
			mBrow[] = {+0.1, -0.4};
			rBrow[] = {-0.4, -0.5};
			lMouth[] = {+0.4, -0.9};
			mMouth[] = {0, -0.2};
			rMouth[] = {-0.4, -0.8};
		};
	
	};

	combat[]=
	{
		Sad,0.1,
		Surprised,0.1,
		Cynic,0.3,
		Angry,0.1,
		Normal
		
	
	};
	aware[]=
	{
		Angry, 0.2,
		Normal
		
	};
	safe[]=
	{
		Smile,0.1,
		Surprised,0.1,
		Normal
	};
	neutral[]=
	{
		Surprised,0.1,
		Sad,0.1,
		Normal
	};
	danger[]=
	{
		Surprised,0.4,
		Sad
	};
	dead[]={Hurt};
	hurt[]={Hurt};
};

// define sound FX

class CfgVoice
{
	access = ReadAndCreate;
	// different speakers
	voices[]={ Adam, Dan, George, Greg, John, Jonah, Marc, Patrick, Paul, Peter, Rich, Rob, Ted, Tom };
	voicePlayer = Adam;

	micOuts[]={micOut1, micOut2, micOut3};
	
	preview = "isayagain";

	class Words
	{

		//generic sounds
		micOut[] = {Mic_Out1};
		micOut1[]={static\over01};
		micOut2[]={static\over02};
		micOut3[]={static\over03};
		loop[]={static\loop};
		
		beepBeep[]={beep};
		pause[]={empty01sec};
		xmit[]={beep};

		//tank weapons
		switchTo[]={switchto};
		mgun[]={weapons\mgun};
		heat[]={weapons\sabot};
		shell[]={weapons\heat}; //change to SABOT
		weapon[]={weapons\weapon};


		// numbers - to add variants _one and one_
		all[]={numbers\all}; //missing sound
		allGroup[]={numbers\all}; //missin sound
		
		
		
		zero[]={numbers\zero};
		one[]={numbers\one};
		two[]={numbers\two};
		three[]={numbers\three};
		four[]={numbers\four};
		five[]={numbers\five};
		six[]={numbers\six};
		seven[]={numbers\seven};
		eight[]={numbers\eight};
		nine[]={numbers\nine};
		ten[]={numbers\ten};
		eleven[]={numbers\eleven};
		twelve[]={numbers\twelve};
		zerolong[]={numbers\zero};

		// phonetic alphabet
		alpha[]={alphabet\alpha};
		bravo[]={alphabet\bravo};
		charlie[]={alphabet\charlie};
		delta[]={alphabet\delta};
		echo[]={alphabet\echo};
		foxtrot[]={alphabet\foxtrot};
		golf[]={alphabet\golf};
		hotel[]={alphabet\hotel};
		india[]={alphabet\india};
		juliet[]={alphabet\juliet};
		kilo[]={alphabet\kilo};	
		lima[]={alphabet\lima};
		mike[]={alphabet\mike};	
		november[]={alphabet\november};	
		oscar[]={alphabet\oscar};
		papa[]={alphabet\papa};
		quebec[]={alphabet\quebec};
		romeo[]={alphabet\romeo};
		sierra[]={alphabet\sierra};
		tango[]={alphabet\tango};
		uniform[]={alphabet\uniform};
		victor[]={alphabet\victor};
		whiskey[]={alphabet\whiskey};
		xray[]={alphabet\xray};
		yankee[]={alphabet\yankee};
		zulu[]={alphabet\zulu};


		// teams
		whiteTeam[]={team\teamwhite};		// TODO: missing
		redTeam[]={team\teamred};			// TODO: missing
		greenTeam[]={team\teamgreen};		// TODO: missing
		blueTeam[]={team\teamblue};		// TODO: missing
		yellowTeam[]={team\teamyellow};	// TODO: missing


		//directon clock
		at10[] = {clockfacing\10oclock};
		at11[] = {clockfacing\11oclock};
		at12[] = {clockfacing\12oclock};
		at1[] = {clockfacing\1oclock};
		at2[] = {clockfacing\2oclock};
		at3[] = {clockfacing\3oclock};
		at4[] = {clockfacing\4oclock};
		at5[] = {clockfacing\5oclock};
		at6[] = {clockfacing\6oclock};
		at7[] = {clockfacing\7oclock};
		at8[] = {clockfacing\8oclock};
		at9[] = {clockfacing\9oclock};

		// TODO: record distances
		dist50[]={distance\50};
		dist100[]={distance\100};
		dist200[]={distance\200};
		dist500[]={distance\500};
		dist1000[]={distance\1000};
		dist2000[]={distance\2000};
		far[]={distance\far};

		// quarters
		north[]={north};				// TODO: missing
		northEast[]={northeast};		// TODO: missing
		east[]={east};				// TODO: missing
		southEast[]={southeast};		// TODO: missing
		south[]={south};				// TODO: missing
		southWest[]={southwest};		// TODO: missing
		west[]={west};				// TODO: missing
		northWest[]={northwest};		// TODO: missing

		//commands/messages

		//****units / objects
		ambulance[]={vehicles\ambulance};
		apc[]={vehicles\apc};
		boat[]={vehicles\boat};
		car[]={vehicles\car};
		crew[]={vehicles\crew};
		chopper[] = {vehicles\chopper};
		man[]={vehicles\man};
		machineGunner[]={vehicles\machinegunner};
		medic[]={vehicles\medic2};
		missileSoldier[]={vehicles\atsoldier};
		officer[]={vehicles\officer};
		pilot[]={pilot};
		plane[]={vehicles\plane};
		ship[]={vehicles\ship};
		soldier[]={vehicles\soldier};
		sniper[]={vehicles\sniper};
		tank[]={vehicles\tank};
		truck[]={vehicles\truck};
		tractor[]={vehicles\tractor};
		vehicle[]={vehicles\vehicle};
		specNas[]={vehicles\spetznatz};
		blackOp[]={vehicles\blackop};


		abrams[]={vehicles\abrams};
		blackhawk[]={vehicles\blackhawk};
		cobra[]={vehicles\cobra};
		jeep[]={vehicles\jeep};
		m113[]={vehicles\m113};
		m60[]={vehicles\m60};
		thunderbolt[]={vehicles\thunderbolt};


		BMP[]={vehicles\bmp};
		mi17[]={vehicles\mi17};
		hind[]={vehicles\hind};
		scudLauncher[]={vehicles\scudlauncher};
		T55[]={vehicles\T55};
		T72[]={vehicles\T72};
		T80[]={vehicles\T80};
		shilka[]={vehicles\shilka};
		UAZ[]={vehicles\UAZ};

		object[]={object};

		bunker[]={objects\bunker};
		building[]={objects\building};
		bush[]={objects\bush};
		chapel[]={objects\chapel};
		church[]={objects\church};
		cross[]={objects\cross};
		depot[]={objects\depot};
		forest[]={objects\forest};
		fuelStation[] = {objects\fuelstation};
		helipad[] ={objects\helipad};
		hospital[]={objects\hospital};
		house[]={objects\house};
		repairDepot[]={objects\repairdepot};
		rock[]={objects\rock};
		tree[]={objects\tree};

		enemy[]={people\enemy}; //has to be recorded
		friendly[]={people\friendly};
		civilian[]={people\civilian};
		resistance[]={people\resistance};
		unknown[]={people\unknown};


		// *****commands

		IsDown[]={isdown};
		Damned[]={damn}; //shall be damned???
		OhNo[]={ohno};
		
		Injured[]={injured};

		StatusRed[]={statusred};
		outOfFuel[]={outoffuel};
		outOfAmmo[]={outofammo};
		fuellow[]={fuellow};
		ammoLow[]={ammolow};
		position[]={position};

		thisIs[]={thisis};
		takingCommand[]={takingcommand};
		ISayAgain[]={isayagain};
		
		out[]={out}; //missing
		over[]={over}; //missing
		
		ready[]={ready};
		waiting[]={waiting};
		negative[]={negative};

		readyToFire[]={readytofire};
		cannotFire[]={cannotfire};

		canNotGetThere[]={cantgetthere};


		needMedic[]={medic};
		needAmmo[]={needammo};
		needFuel[]={needFuel};
		needRepairs[]={needRepairs};
		supporting[]={supporting};
		requestSupport[]={requestsupport};

		//to remove splitted formations
		form[]={form};

		column[]={column};
		StageredColumn[]={staggeredcolumn};
		Wedge[]={wedge};
		EchelonLeft[]={echelonleft};
		EchelonRight[]={echelonright};
		Vee[]={vee};
		Line[]={line};
		
		//new form commands
		formColumn[]={formcolumn};
		formStageredColumn[]={formstaggeredcolumn};
		formWedge[]={formwedge};
		formEchelonLeft[]={formechelonleft};
		formEchelonRight[]={formechelonright};
		formVee[]={formvee};
		formLine[]={formline};
		

		Careless[]={careless}; //Stand Down???
		AtEase[]={atease};
		StayAlert[]={stayalert};
		Danger[]={danger};
		FireAtWill[]={fireatwill};
		WeaponsFree[]={weaponsfree};
		GoGoGo[]={gogogo};
		HoldFire[]={holdfire};
		CeaseFire[]={ceasefire};
		DontFire[]={dontfire};

		engage[]={engage};
		engageAtWill[]={engageatwill};
		disengage[]={disengage};

		goProne[]={goprone};
		hitTheDirt[] = {hitthedirt};
		getDown[] = {getdown}; //to be added
		
		standUp[]={standup};
		keepLow[]={keeplow}; //keep low seems to be incorrect
		
		
		Advance[]={advance};
		StayBack[]={stayback};
		FlankLeft[]={flankleft};
		FlankRight[]={flankright};

		FireAt[]={fireat};
		Are[]={are}; //missing, team assignement ARE TEAM RED
		Is[]={is}; //is
		WaitForMe[]={waitforme};

		Watch[]={watch};
		scanHorizon[]={scanhorizon};

		NoTarget[]={notarget};
		KeepFormation[]={keepformation};

		TakeWeaponFrom[]={takeweaponfrom};
		TakeMagazineFrom[]={takemagazinefrom};
		ReportStatus[]={reportstatus};
		MoveTo[]={moveto};
		GoTo[]={goto};
		HealAt[]={healat};

		repairAt[]={repairat};
		refuelAt[]={refuelat};
		rearmAt[]={rearmat};

		returnToFormation[]={returntoformation};
		fallBackIntoFormation[]={fallbackintoformation};

		follow[]={follow};
		attack[]={attack};

		mount[]={getin}; //was mount
		getin[]={getin};
		boardIn[]={boardin}; //remove
		board[]={board}; //remove

		disembark[]={disembark};

		stop[]={halt}; //halt was stop
		halt[]={halt}; 
		hide[]={takecover}; //was hide
		takeCover[]={takecover}; //

		engaging[]={engaging}; 
		attacking[]={attacking}; //not in use 
		iAmOnHim[]={iamonhim};

		roger[]={roger};
		movingOn[]={movingon};
		onTheWay[]={ontheway};

		target[]={target};

		forward[]={forward};
		backward[]={reverse}; //now revers
		reverse[]={reverse};
		fast[]={fast};
		slow[]={slow};
		left[]={left};
		right[]={right};
		fire[]={fire};

		gunner[]={gunner};
		commander[]={tankcommander}; //has to be tankcommander !!!!! wrong sample name
		driver[]={driver};

		iVeGotHim[]={ivegothim};
		isHistory[]={ishistory};
		contact[]={contact};
		underFire[]={underfire};
		clear[]={clear};

		whereAreYou[]={whereareyou};
		repeat[]={repeat};
		stealth[]={stealth};
	};

	class Rob
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Rob\, Rob\};
		name="Rob";
	};

	class Adam
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Adam\, Rob\};
		name="Adam";
	};
	class Dan
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Dan\, Rob\};
		name="Dan";
	};

	class Greg
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Greg\, Rob\};
		name="Greg";
	};

	class George
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {George\, Rob\};
		name="George";
	};

	class John
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {John\, Rob\};
		name="John";
	};
	class Jonah
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Jonah\, Rob\};
		name="Jonah";
	};
	class Marc
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Marc\, Rob\};
		name="Marc";
	};	
	
	class Patrick
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Patrick\, Rob\};
		name="Patrick";
	};
	class Paul
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Paul\, Rob\};
		name="Paul";
	};	
	class Peter
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Peter\, Rob\};
		name="Peter";
	};	
	class Rich
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Rich\, Rob\};
		name="Rich";
	};
	class Ted
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Ted\, Rob\};
		name="Ted";
	};
	class Tom
	{
		variants[]={0.95, 1.0, 1.05};	// define variants - only one for player's voice
		// all speakers, single speaker
		directories[] = {Tom\, Rob\};
		name="Tom";
	};
};

class CfgHQIdentities
{
	access = ReadAndCreate;
	class Base
	{
		name = $STR_CFG_PAPABEAR;
		speaker="Dan";
		pitch=0.950000;
	};
	class HQ
	{
		name = $STR_CFG_PAPABEAR;
		speaker="Greg";
		pitch=1.050000;
	};
	class PAPA_BEAR
	{
		name = $STR_CFG_PAPABEAR;
		speaker="Greg";
		pitch=1.050000;
	};
	class AirBase
	{
		name = $STR_CFG_FIREFLYBASE;
		speaker="Greg";
		pitch=1.050000;
	};
};

class CfgSFX
{
	access = ReadAndCreate;
	// special
	// sfxfile, vol, frq, probab, min_delay, mid_delay, max_delay
	seagull[]={animals\gulls1,db-30,1, 1, 0.2, 1, 5};

	class Preview
	{
		// options volume controls
		effect[] = {"sound\weapons\m16burst.wss", db+0, 1.0};
		speech[] = {"voice\adam\isayagain.wss", db+0, 1.0};
		music[] = {"music\13.ogg", db+0, 1.0};
	};

	
	class Church
	{
		smallBell[]={Objects\bell1,db-20,1};
		largeBell[]={Objects\bell2,db-10,1};
	};

	

	
	/*
	sounds[] =
	{
		StreamSfx, AlarmSfx,
		Cricket1Sfx, Cricket2Sfx, Cricket3Sfx, CricketSfx,
		FrogSfx, FrogsSfx, OwlSfx, CowSfx,
		DogSfx, SorrowDogSfx, BadDogSfx, LittleDogSfx,
		BirdSingingSfx, CockSfx, ChickenSfx, FunMusicSfx,
		WolfSfx, CrowSfx, SeagullSfx,
		HedgeSparrow, Skylark, ForestLark, Nightingale,
		Jay, Owl, Crow2, Frog2,

		CA_AK, CA_M16, CA_Expl1
	};
	*/

	class CA_AK
	{
		sounds[]={sound1, sound2};
		name = $STR_CFG_SFX_CA_AK;
		
		sound1[]={"weapons\AK74single", db-20,1, 0.5, 0,2,5};
		sound2[]={"weapons\AK74burst", db-20,1, 0.4, 0,1,10};
		empty[]= {, , , , 1 , 5, 20};
	};
	class CA_M16
	{
		sounds[]={sound1, sound2};
		name = $STR_CFG_SFX_CA_M16;
		
		sound1[]={"weapons\M16single", db-20,1, 0.5, 0,2,5};
		sound2[]={"weapons\M16burst", db-20,1, 0.4, 0,1,10};
		empty[]= {, , , , 1 , 5, 20};
	};

	class CA_Expl1
	{
		sounds[]={sound1};
		name = $STR_CFG_SFX_CA_EXPL1;
		
		sound1[]={"weapons\explosion_large1", db-20,1, 0.5, 0,2,5};
		empty[]= {, , , , 1 , 5, 30};
	};




	class hedgesparrow	
	{
		sounds[]={sing1, sing2, sing3, sing4, sing5};
		name = $STR_CFG_SFX_HEDGESPARROW;
		
		sing1[]={"animals\hedspar1", db-50,1, 0.1, 0,0,0};
		sing2[]={"animals\hedspar2", db-50,1, 0.2, 0,0,0};
		sing3[]={"animals\hedspar3", db-50,1, 0.1, 0,0,0};
		sing4[]={"animals\hedspar4", db-50,1, 0.2, 0,0,0};
		sing5[]={"animals\hedspar5", db-50,1, 0.3, 0,0,0};
		empty[]= {, , , , 1 , 5, 80};
	};
	class skylark	
	{
		sounds[]={sing1, sing2, sing3, sing4, sing5, sing6, sing7};
		name = $STR_CFG_SFX_SKYLARK;
		
		sing1[]={"animals\skylark7", db-40,1, 0.1, 0.2,0.4,1};
		sing2[]={"animals\skylark6", db-40,1, 0.2, 0.2,0.3,1};
		sing3[]={"animals\skylark5", db-40,1, 0.1, 0.1,0.2,1.2};
		sing4[]={"animals\skylark4", db-40,1, 0.2, 0.1,0.2,1.2};
		sing5[]={"animals\skylark3", db-40,1, 0.1, 0.3,0.4,0.75};
		sing6[]={"animals\skylark2", db-40,1, 0.1, 0.2,0.4,0.8};
		sing7[]={"animals\skylark1", db-40,1, 0.1, 0.1,0.5,0.8};
		empty[]= {, , , , 1 , 5, 40};
	};
	class forestlark	
	{
		sounds[]={sing1, sing2, sing3, sing4, sing5, sing6};
		name = $STR_CFG_SFX_FORESTLARK;
		
		sing1[]={"animals\f_lark1", db-50,1, 0.1, 0.0,0.1,0.2};
		sing2[]={"animals\f_lark2", db-50,1, 0.1, 0.0,0.1,0.2};
		sing3[]={"animals\f_lark3", db-50,1, 0.1, 0.0,0.1,0.2};
		sing4[]={"animals\f_lark4", db-50,1, 0.1, 0.0,0.1,0.2};
		sing5[]={"animals\f_lark5", db-50,1, 0.2, 0.0,0.1,0.2};
		sing6[]={"animals\f_lark6", db-50,1, 0.2, 0.0,0.1,0.2};
		sing7[]={"animals\f_lark7", db-50,1, 0.2, 0.0,0.1,0.2};
		empty[]= {, , , , 1 , 5, 40};
	};
	class nightingale 	
	{
		sounds[]={sing1, sing2, sing3, sing4, sing5, sing6, sing7};
		name = $STR_CFG_SFX_NIGHTINGALE;
		
		sing1[]={"animals\n_gale1", db-50,1, 0.2, 0.1,0.2,0.3};
		sing2[]={"animals\n_gale2", db-50,1, 0.1, 0.1,0.2,0.3};
		sing3[]={"animals\n_gale3", db-50,1, 0.2, 0.1,0.2,0.3};
		sing4[]={"animals\n_gale4", db-50,1, 0.1, 0.1,0.2,0.3};
		sing5[]={"animals\n_gale5", db-50,1, 0.1, 0.1,0.2,0.3};
		sing6[]={"animals\n_gale6", db-50,1, 0.2, 0.1,0.2,0.3};
		sing7[]={"animals\n_gale7", db-50,1, 0.1, 0.1,0.2,0.3};
		empty[]= {, , , , 1 , 5, 40};
	};
	class jay	
	{
		sounds[]={sing1, sing2, sing3, sing4};
		name = $STR_CFG_SFX_JAY;
		
		sing1[]={"animals\jay1", db-40,1, 0.2, 0.2,0.4,1};
		sing2[]={"animals\jay2", db-40,1, 0.2, 0.2,0.3,1};
		sing3[]={"animals\jay3", db-40,1, 0.2, 0.1,0.2,1.2};
		sing4[]={"animals\jay4", db-40,1, 0.2, 0.1,0.2,1.2};
		empty[]= {, , , , 8 , 20, 40};
	};
	class owl	
	{
		sounds[]={sing1, sing2};
		name = $STR_CFG_SFX_OWL;
		
		sing1[]={"animals\owl2_1", db-50,1, 0.2, 0.0,0.5,1};
		sing2[]={"animals\owl2_2", db-50,1, 0.2, 0.0,0.5,1};
		empty[]= {, , , , 1 , 5, 40};
	};
	class crow2
	{
		sounds[]={sing1, sing2, sing3, sing4, sing5, sing6};
		name = $STR_CFG_SFX_CROW2;
		
		sing1[]={"animals\crow2_1", db-40,1, 0.1, 0.2,0.4,1};
		sing2[]={"animals\crow2_2", db-40,1, 0.1, 0.2,0.3,1};
		sing3[]={"animals\crow2_3", db-40,1, 0.1, 0.1,0.2,1.2};
		sing4[]={"animals\crow2_4", db-40,1, 0.1, 0.1,0.2,1.2};
		sing5[]={"animals\crow2_5", db-40,1, 0.1, 0.1,0.2,1.2};
		sing6[]={"animals\crow2_6", db-40,1, 0.1, 0.1,0.2,1.2};
		empty[]= {, , , , 1 , 5, 50};
	};
	class frog2
	{
		sounds[]={sing1, sing2, sing3};
		name = $STR_CFG_SFX_FROG2;
		
		sing1[]={"animals\frog2_1", db-40,1, 0.3, 0.0,0.1,0.2};
		sing2[]={"animals\frog2_2", db-40,1, 0.3, 0.0,0.1,0.2};
		sing3[]={"animals\frog2_3", db-40,1, 0.3, 0.0,0.1,0.2};
		empty[]= {, , , , 1 , 5, 40};
	};
	class SeagullSfx
	{
		sounds[]={seagull1, Seagull2, Seagull3, Seagull4, Seagull5};
		name = $STR_CFG_SFX_SEAGULL;
		
		seagull1[]={animals\gulls1, db-30,1, 0.15, 0.1,0.5,5};
		seagull2[]={animals\gulls2, db-30,1, 0.2, 0.1,0.5,5};
		seagull3[]={animals\gulls3, db-30,1, 0.15, 0.1,0.5,5};
		seagull4[]={animals\gulls4, db-30,1, 0.24, 0.1,0.5,5};
		seagull5[]={animals\gulls5, db-30,1, 0.2, 0.1,0.5,5};
		empty[]={ , , , , 0.2,2,20};
	};
	class StreamSfx
	{
		sounds[]={Stream01};
		name = $STR_DN_STREAM;
		
		Stream01[]={objects\stream, db-100,1, 1, 1,1,1};
		empty[]={ , , , , 0.0,0.0,0.0};
	};
	class AlarmSfx
	{
		sounds[]={Alarm};
		name = $STR_DN_ALARM;
		
		Alarm[]={objects\sirena, db-0,1, 1, 0.0,0.0,0.0};
		empty[]={ , , , , 0.0,0.0,0.0};
	};

	class Cricket1Sfx
	{
		sounds[]={Cricket01};
		name = $STR_DN_CRICKET1;
		
		Cricket01[]={animals\cricket01, db-60,1, 0.96, 0.0,0.0,0.0};
		empty[]={ , , , , 0.0,2,60};
	};
	class Cricket2Sfx
	{
		sounds[]={Cricket01};
		name = $STR_DN_CRICKET2;
		
		Cricket01[]={animals\cricket02, db-50,1, 0.97, 0.0,0.0,0.0};
		empty[]={ , , , , 0.0,3,60};
	};
	class Cricket3Sfx
	{
		sounds[]={Cricket01};
		name = $STR_DN_CRICKET3;
		
		Cricket01[]={animals\crickets06, db-60,1, 0.98, 0.0,0.0,0.0};
		empty[]={ , , , , 0.0,6,60};
	};

	class CricketSfx
	{
		sounds[]={Cricket04};
		name = $STR_DN_CRICKET4;
		
		Cricket04[]={animals\crickets04, db-60,1, 1, 0.0,0.0,0.0};
		empty[]={ , , , , 0.0,2,8};
	};

	class FrogSfx
	{
		sounds[]={Frog01, Frog02};
		name = $STR_DN_FROG;
		
		Frog01[]={animals\frog1_1, db-60.2,1, 0.8, 0.0,0.0,0.0};
		Frog02[]={animals\frog1_2, db-60,1, 0.1, 0.0,0.0,0.0};
		empty[]={ , , , , 0.1,0.5,12};
	};

	class FrogsSfx
	{
		sounds[]={Frog01};
		name = $STR_DN_FROGS;
		
		Frog01[]={animals\frogs, db-60,1, 1, 0.0,0.0,0.0};
		empty[]={ , , , , 0,0,0};
	};

	class OwlSfx
	{
		sounds[]={Owl1, Owl2};
		name = $STR_DN_OWL;
		
		Owl1[]={animals\owl1_1, db-60,1, 0.6, 0.1, 0.5, 5};
		Owl2[]={animals\owl1_2, db-60,1, 0.2, 0.1, 0.5, 5};
		empty[]={ , , , , 0.5, 2, 12};
	};
	class CowSfx
	{
		sounds[]={moo1, moo2};
		name = $STR_DN_COW;
		
		moo1[]={animals\cow_moo01, db-60,1, 0.4, 0.1,0.5,5};
		moo2[]={animals\cow_moo02, db-60,1, 0.4, 0.1,0.5,5};
		empty[]={ , , , , 0.1,0.5,2};
	};
	class WolfSfx
	{
		sounds[]={wolf1, wolf2, wolf3};
		name = $STR_DN_WOLF;
		
		wolf1[]={animals\wolf1, db-60,1, 0.3, 0.1,0.5,5};
		wolf2[]={animals\wolf2, db-60,1, 0.3, 0.1,0.5,5};
		wolf3[]={animals\wolf3, db-60,1, 0.3, 0.1,0.5,5};
		empty[]={ , , , , 0.5,4,50};
	};
	class CrowSfx
	{
		sounds[]={crow1, crow2, crow3};
		name = $STR_DN_CROW;
		
		crow1[]={animals\crow1_1, db-60,1, 0.2, 0.1,0.5,5};
		crow2[]={animals\crow1_2, db-60,1, 0.2, 0.1,0.5,5};
		crow3[]={animals\crow1_3, db-60,1, 0.2, 0.1,0.5,5};
		empty[]={ , , , , 2,10,30};
	};
	class DogSfx
	{
		sounds[]={dog1, dog2, dog3};
		name = $STR_DN_DOG;
		
		dog1[]={animals\dog_bark03, db-40,1, 0.3, 0.1,0.5,5};
		dog2[]={animals\dog_bark04, db-40,1, 0.3, 0.1,0.5,5};
		dog3[]={animals\dog_bark05, db-45,1, 0.3, 0.1,0.5,5};
		empty[]={ , , , , 3,15,90};
	};

	class SorrowDogSfx
	{
		sounds[]={sorrowdog1, sorrowdog2, sorrowdog3, sorrowdog4};
		name = $STR_DN_SORROW_DOG;
		
		sorrowdog1[]={animals\dog_bark04, db-40,1, 0.2, 0.1,0.5,5};
		sorrowdog2[]={animals\dog_bark05, db-40,1, 0.2, 0.1,0.5,5};
		sorrowdog3[]={animals\dog_yelp02, db-45,1, 0.2, 0.1,0.5,5};
		sorrowdog4[]={animals\dog_yelp03, db-50,1, 0.2, 0.1,0.5,5};
		empty[]= {, , , , 0.2,3,8};
	};
	class BadDogSfx
	{
		sounds[]={baddog1, baddog2, baddog3};
		name = $STR_DN_BAD_DOG;
		
		baddog1[]={animals\dog_bark04, db-37,1, 0.3, 0.1,0.5,5};
		baddog2[]={animals\dog_bark05, db-37,1, 0.3, 0.1,0.5,5};
		baddog3[]={animals\dog_maul01, db-35,1, 0.3, 0.1,0.5,5};
		empty[]={, , , , 0.1,2,5};
	};

	class LittleDogSfx
	{
		sounds[]={littledog1};
		name = $STR_DN_LITTLE_DOG;
		
		littledog1[]={animals\dog_bark04, db-55,1, 0.8, 0.1,0.5,5};
		empty[]={, , , , 0.2,5,3,8};
	};

	class BirdSingingSfx
	{
		sounds[]={sing1, sing1a, sing2, sing2a, sing3, sing4, sing5, sing6, sing7, sing8, sing9};
		name = $STR_DN_BIRDSING;
		
		sing1[]={animals\birdsing01, db-50,1, 0.1, 0.2,0.4,1};
		sing1a[]={animals\birdsing01, db-55,1, 0.08, 0.2,0.3,1};
		sing2[]={animals\birdsing02, db-60,1, 0.1, 0.1,0.2,1.2};
		sing2a[]={animals\birdsing02, db-45,1, 0.08, 0.1,0.2,1.2};
		sing3[]={animals\birdsing03, db-50,1, 0.08, 0.3,0.4,0.75};
		sing4[]={animals\birdsing04, db-50,1, 0.08, 0.2,0.4,0.8};
		sing5[]={animals\birdsing05, db-50,1, 0.08, 0.1,0.5,0.8};
		sing6[]={animals\birdsing06, db-50,1, 0.08, 0.1,0.3,0.8};
		sing7[]={animals\birdsing07, db-50,1, 0.08, 0.1,0.6,0.8};
		sing8[]={animals\birdsing08, db-55,1, 0.08, 0.1,0.6,0.8};
		sing9[]={animals\birdsing09, db-55,1, 0.08, 0.1,0.6,0.8};
		empty[]= {, , , , 1 , 5, 80};
	};

	class CockSfx
	{
		sounds[]={cock};
		name = $STR_DN_COCK;
		
		cock[]={animals\cock, db-40, 1, 0.5, 0.1,0.5,5};
		empty[]={, , , , , 1, 30, 90};
	};
	class ChickenSfx
	{
		sounds[]={chicken1, chicken2};
		name = $STR_DN_CHICKEN;
		
		chicken1[]={animals\chicken01, db-50,1, 0.3, 0.1,0.5,5};
		chicken2[]={animals\chicken02, db-50,1, 0.3, 0.1,0.5,5};
		empty[]={, , , , , 1, 20, 60};
	};
	class FunMusicSfx
	{
		sounds[]={music1};
		name = 'Music';
		
		music1[]={Objects\Fun_music, db-50,1, 1, 0,0,0};
		empty[]={, , , , , 0, 0, 0};
	};
};

// define environmental sounds

class CfgEnvSounds
{
	access = ReadAndCreate;
	// list of environmental sounds for editor
	/*
	sounds[] =
	{
		Default, Rain, Sea, Meadows, Trees, Hills, Combat
	};
	*/
	class Default // editor - sounds from landscape
	{
		name = $STR_CFG_ENVSOUNDS_DEFAULT;
		sound[]={"$DEFAULT$",0,1};
		soundNight[]={"$DEFAULT$",0,1};
	};
	class Rain // rain
	{
		name = $STR_DN_RAIN;
		sound[]={Environmental\Rain_hard,db-55,1};
		soundNight[]={Environmental\Rain_hard,db-55,1};
	};
	class Sea // sea
	{
		name = $STR_DN_SEA;
		sound[]={environmental\wave_break,db-70,1};
		soundNight[]={environmental\wave_break,db-70,1};
	};
	class Meadows // default - no trees, no sea, no hills ...
	{
		name = $STR_DN_MEADOWS;
		sound[]={animals\crickets07,db-85,1};
		soundNight[]={animals\crickets03,db-85,1};
	};
	class Trees // trees
	{
		name = $STR_DN_TREES;
		sound[]={environmental\treesbirds,db-75,1};
		soundNight[]={animals\crickets03,db-75,1};
	};
	class Hills // hills > 250m
	{
		name = $STR_DN_HILLS;
		sound[]={environmental\wind_heavy,db-75,1};
		soundNight[]={environmental\wind_whistle,db-75,1};
	};
	class Combat // desinger effect
	{
		name = $STR_CFG_ENVSOUNDS_COMBAT;
		sound[]={environmental\battle1,db-40,1};
		soundNight[]={environmental\battle2,db-40,1};
	};
};
// define destroy effects
class CfgDestroy
{
	access = ReadAndCreate;
	class EngineHit
	{
		sound[]={Explosions\fuel_explosion,db20,1};
	};
	class BuildingHit
	{
		sound[]={Explosions\BuildingHit,db20,1};
	};
	class TreeHit
	{
		sound[]={Explosions\Treehit1,db-30,1};
	};
};

class CfgHeads
{
	access = ReadAndCreate;
	class Air
	{
		friction=10;
		movement=160;
		maxAmp=0.05;
		maxSpeed=3;
		radius=0.2;
	};
	class Land
	{
		friction=20;
		movement=260;
		maxAmp=0.1;
		maxSpeed=4;
		radius=0.3;
	};
};
// define other effects
class CfgEffects
{
	access = ReadAndCreate;
	class ThunderboltNorm
	{
		model=blesk1.p3d;
		soundNear[]={Environmental\thundershort,db+50,1};
		soundFar[]={Environmental\thunderlong,db+50,1};
	};
	class ThunderboltHeavy
	{
		model=blesk2.p3d;
		soundNear[]={Environmental\thunderhard,db+50,1};
		soundFar[]={Environmental\thunder,db+50,1};
	};
	class Rain
	{
		texture=desta.01.paa;
	};
};

// define house windows
class CfgWindows
{
	access = ReadAndCreate;
	textureWindow=oknozhas.pac;
	textureWindowShine=oknosvit.pac;
	textureWindowBroken=strepyzhas.pac;
	textuerWindowMan=chlapvokne.pac;
	soundWindowBroken[]={43glass,1,1};
	soundDoor[]={door,0.7,1};
};


class CfgMusic
{
	access = ReadAndCreate;

	class 7thDecide
	{
		name = $STR_CFG_MUSIC_7TH_DECIDE;
		sound[] = {\Music\Seventh_decide.ogg, db+0, 1.0};
	};
	class 7thIAmGonaFly
	{
		name = $STR_CFG_MUSIC_7TH_IAMGONAFLY;
		sound[] = {\Music\Seventh_iamgonnafly.ogg, db+0, 1.0};
	};

	class 7thLifeless
	{
		name = $STR_CFG_MUSIC_7TH_LIFELESS;
		sound[] = {\Music\Seventh_lifeless.ogg, db+0, 1.0};
	};

	class 7thOverdose
	{
		name = $STR_CFG_MUSIC_7TH_OVERDOSE;
		sound[] = {\Music\Seventh_overdose.ogg, db+0, 1.0};
	};

	class Track1
	{
		name = $STR_CFG_MUSIC_TRACK1;
		sound[] = {\Music\01.ogg, db+0, 1.0};
	};
	class Track2
	{
		name = $STR_CFG_MUSIC_TRACK2;
		sound[] = {\Music\02.ogg, db+0, 1.0};
	};
	class Track3
	{
		name = $STR_CFG_MUSIC_TRACK3;
		sound[] = {\Music\03.ogg, db+0, 1.0};
	};
	class Track4
	{
		name = $STR_CFG_MUSIC_TRACK4;
		sound[] = {\Music\04.ogg, db+0, 1.0};
	};
	class Track5
	{
		name = $STR_CFG_MUSIC_TRACK5;
		sound[] = {\Music\05.ogg, db+0, 1.0};
	};
	class Track6
	{
		name = $STR_CFG_MUSIC_TRACK6;
		sound[] = {\Music\06.ogg, db+0, 1.0};
	};
	class Track7
	{
		name = $STR_CFG_MUSIC_TRACK7;
		sound[] = {\Music\07.ogg, db+0, 1.0};
	};
	class Track8
	{
		name = $STR_CFG_MUSIC_TRACK8;
		sound[] = {\Music\08.ogg, db+0, 1.0};
	};
	class Track9
	{
		name = $STR_CFG_MUSIC_TRACK9;
		sound[] = {\Music\09.ogg, db+0, 1.0};
	};
	class Track10
	{
		name = $STR_CFG_MUSIC_TRACK10;
		sound[] = {\Music\10.ogg, db+0, 1.0};
	};
	class Track11
	{
		name = $STR_CFG_MUSIC_TRACK11;
		sound[] = {\Music\11.ogg, db+0, 1.0};
	};
	class Track12
	{
		name = $STR_CFG_MUSIC_TRACK12;
		sound[] = {\Music\12.ogg, db+0, 1.0};
	};
	class Track13
	{
		name = $STR_CFG_MUSIC_TRACK13;
		sound[] = {\Music\13.ogg, db+0, 1.0};
	};
	class Track14
	{
		name = $STR_CFG_MUSIC_TRACK14;
		sound[] = {\Music\14.ogg, db+0, 1.0};
	};
	class Track15
	{
		name = $STR_CFG_MUSIC_TRACK15;
		sound[] = {\Music\15.ogg, db+0, 1.0};
	};
	class Track16
	{
		name = $STR_CFG_MUSIC_TRACK16;
		sound[] = {\Music\16.ogg, db+0, 1.0};
	};
	class Frost
	{
		name = $STR_CFG_MUSIC_FROST;
		sound[] = {\Music\frost.ogg, db+0, 1.0};
	};
};



class CfgSounds
{
	access = ReadAndCreate;
	/*
	sounds[] =
	{
		Eng1, Eng2, Eng3, Eng4, Eng5,
		Eng6, Eng7, Eng8, Eng9, Eng10,
		Eng11, Eng12, Eng13, Eng14, Eng15,
		Eng16, Eng17, Eng18, Eng19, Eng20,
		Eng21, Eng22, Eng23, Eng24, Eng25,
		Eng26, Eng27, Eng28, Eng29, Eng30,		
		Eng31, Eng32, Eng33, Eng34, Eng35,
		Eng36, Eng37, Eng38, Eng39, Eng40,		
		Eng41,
		
		Rus1, Rus2, Rus3, Rus4, Rus5,
		Rus6, Rus7, Rus8, Rus9, Rus10,
		Rus11, Rus12, Rus13, Rus14, Rus15,
		Rus16, Rus17, Rus18, Rus19, Rus20,
		
		Alarm
	};
	*/
	// name, sound


	class Rus1
	{
		name = $STR_CFG_SOUNDS_RUS1;
		sound[] = {"voices\rus_amerikanskije", db-20, 1.0};
		titles[]={ };
	};
	class Rus2
	{
		name = $STR_CFG_SOUNDS_RUS2;
		sound[] = {"voices\rus_begite", db-20, 1.0};
		titles[]={ };
	};
	class Rus3
	{
		name = $STR_CFG_SOUNDS_RUS3;
		sound[] = {"voices\rus_cjerta", db-20, 1.0};
		titles[]={ };
	};
	class Rus4
	{
		name = $STR_CFG_SOUNDS_RUS4;
		sound[] = {"voices\rus_cjort", db-20, 1.0};
		titles[]={ };
	};
	class Rus5
	{
		name = $STR_CFG_SOUNDS_RUS5;
		sound[] = {"voices\rus_cjort", db-20, 1.0};
		titles[]={ };
	};
	class Rus6
	{
		name = $STR_CFG_SOUNDS_RUS6;
		sound[] = {"voices\rus_hejty", db-20, 1.0};
		titles[]={ };
	};
	class Rus7
	{
		name = $STR_CFG_SOUNDS_RUS7;
		sound[] = {"voices\rus_jazdajus", db-20, 1.0};
		titles[]={ };
	};
	class Rus8
	{
		name = $STR_CFG_SOUNDS_RUS8;
		sound[] = {"voices\rus_mamocka", db-20, 1.0};
		titles[]={ };
	};
	class Rus9
	{
		name = $STR_CFG_SOUNDS_RUS9;
		sound[] = {"voices\rus_nestrelajte", db-20, 1.0};
		titles[]={ };
	};
	class Rus10
	{
		name = $STR_CFG_SOUNDS_RUS10;
		sound[] = {"voices\rus_ogon", db-20, 1.0};
		titles[]={ };
	};
	class Rus11
	{
		name = $STR_CFG_SOUNDS_RUS11;
		sound[] = {"voices\rus_ostonovitogon", db-20, 1.0};
		titles[]={ };
	};
	class Rus12
	{
		name = $STR_CFG_SOUNDS_RUS12;
		sound[] = {"voices\rus_otchodi", db-20, 1.0};
		titles[]={ };
	};
	class Rus13
	{
		name = $STR_CFG_SOUNDS_RUS13;
		sound[] = {"voices\rus_pamagite", db-20, 1.0};
		titles[]={ };
	};
	class Rus14
	{
		name = $STR_CFG_SOUNDS_RUS14;
		sound[] = {"voices\rus_stoj", db-20, 1.0};
		titles[]={ };
	};
	class Rus15
	{
		name = $STR_CFG_SOUNDS_RUS15;
		sound[] = {"voices\rus_trevoga", db-20, 1.0};
		titles[]={ };
	};
	class Rus16
	{
		name = $STR_CFG_SOUNDS_RUS16;
		sound[] = {"voices\rus_vodka1", db-20, 1.0};
		titles[]={ };
	};
	class Rus17
	{
		name = $STR_CFG_SOUNDS_RUS17;
		sound[] = {"voices\rus_vodka2", db-20, 1.0};
		titles[]={ };
	};
	class Rus18
	{
		name = $STR_CFG_SOUNDS_RUS18;
		sound[] = {"voices\rus_vperjod", db-20, 1.0};
		titles[]={ };
	};
	class Rus19
	{
		name = $STR_CFG_SOUNDS_RUS19;
		sound[] = {"voices\rus_zdescisto", db-20, 1.0};
		titles[]={ };
	};
	class Rus20
	{
		name = $STR_CFG_SOUNDS_RUS20;
		sound[] = {"voices\rus_zdochni", db-20, 1.0};
		titles[]={ };
	};
	class Eng1
	{
		name = $STR_CFG_SOUNDS_ENG1;
		sound[] = {"voices\eng_bastards1", db-20, 1.0};
		titles[]={ };
	};
	class Eng2
	{
		name = $STR_CFG_SOUNDS_ENG2;
		sound[] = {"voices\eng_bastards2", db-20, 1.0};
		titles[]={ };
	};	
	class Eng3
	{
		name = $STR_CFG_SOUNDS_ENG3;
		sound[] = {"voices\eng_bastards3", db-20, 1.0};
		titles[]={ };
	};	

	class Eng4
	{
		name = $STR_CFG_SOUNDS_ENG4;
		sound[] = {"voices\eng_commie1", db-20, 1.0};
		titles[]={ };
	};
	class Eng5
	{
		name = $STR_CFG_SOUNDS_ENG5;
		sound[] = {"voices\eng_commie2", db-20, 1.0};
		titles[]={ };
	};
	class Eng6
	{
		name = $STR_CFG_SOUNDS_ENG6;
		sound[] = {"voices\eng_coverme1", db-20, 1.0};
		titles[]={ };
	};
	class Eng7
	{
		name = $STR_CFG_SOUNDS_ENG7;
		sound[] = {"voices\eng_coverme2", db-20, 1.0};
		titles[]={ };
	};
	class Eng8
	{
		name = $STR_CFG_SOUNDS_ENG8;
		sound[] = {"voices\eng_die1", db-20, 1.0};
		titles[]={ };
	};
	class Eng9
	{
		name = $STR_CFG_SOUNDS_ENG9;
		sound[] = {"voices\eng_die2", db-20, 1.0};
		titles[]={ };
	};
	class Eng10
	{
		name = $STR_CFG_SOUNDS_ENG10;
		sound[] = {"voices\eng_die3", db-20, 1.0};
		titles[]={ };
	};
	class Eng11
	{
		name = $STR_CFG_SOUNDS_ENG11;
		sound[] = {"voices\eng_dontshoot", db-20, 1.0};
		titles[]={ };
	};	
	class Eng12
	{
		name = $STR_CFG_SOUNDS_ENG12;
		sound[] = {"voices\eng_enemyspotted", db-20, 1.0};
		titles[]={ };
	};	
	class Eng13
	{
		name = $STR_CFG_SOUNDS_ENG13;
		sound[] = {"voices\eng_everyoneout1", db-20, 1.0};
		titles[]={ };
	};
	class Eng14
	{
		name = $STR_CFG_SOUNDS_ENG14;
		sound[] = {"voices\eng_everyoneout2", db-20, 1.0};
		titles[]={ };
	};
	class Eng15
	{
		name = $STR_CFG_SOUNDS_ENG15;
		sound[] = {"voices\eng_forward", db-20, 1.0};
		titles[]={ };
	};
	class Eng16
	{
		name = $STR_CFG_SOUNDS_ENG16;
		sound[] = {"voices\eng_gettoutahere1", db-20, 1.0};
		titles[]={ };
	};
	class Eng17
	{
		name = $STR_CFG_SOUNDS_ENG17;
		sound[] = {"voices\eng_gettoutahere2", db-20, 1.0};
		titles[]={ };
	};
	class Eng18
	{
		name = $STR_CFG_SOUNDS_ENG18;
		sound[] = {"voices\eng_gettoyourpositions1", db-20, 1.0};
		titles[]={ };
	};
	class Eng19
	{
		name = $STR_CFG_SOUNDS_ENG19;
		sound[] = {"voices\eng_gettoyourpositions2", db-20, 1.0};
		titles[]={ };
	};
	class Eng20
	{
		name = $STR_CFG_SOUNDS_ENG20;
		sound[] = {"voices\eng_gogogo1", db-20, 1.0};
		titles[]={ };
	};
	class Eng21
	{
		name = $STR_CFG_SOUNDS_ENG21;
		sound[] = {"voices\eng_gogogo2", db-20, 1.0};
		titles[]={ };
	};
	class Eng22
	{
		name = $STR_CFG_SOUNDS_ENG22;
		sound[] = {"voices\eng_help1", db-20, 1.0};
		titles[]={ };
	};
	class Eng23
	{
		name = $STR_CFG_SOUNDS_ENG23;
		sound[] = {"voices\eng_help2", db-20, 1.0};
		titles[]={ };
	};
	class Eng24
	{
		name = $STR_CFG_SOUNDS_ENG24;
		sound[] = {"voices\eng_hey1", db-20, 1.0};
		titles[]={ };
	};
	class Eng25
	{
		name = $STR_CFG_SOUNDS_ENG25;
		sound[] = {"voices\eng_hey2", db-20, 1.0};
		titles[]={ };
	};
	class Eng26
	{
		name = $STR_CFG_SOUNDS_ENG26;
		sound[] = {"voices\eng_hey3", db-20, 1.0};
		titles[]={ };
	};	
	class Eng27
	{
		name = $STR_CFG_SOUNDS_ENG27;
		sound[] = {"voices\eng_letemhaveit1", db-20, 1.0};
		titles[]={ };
	};	
	class Eng28
	{
		name = $STR_CFG_SOUNDS_ENG28;
		sound[] = {"voices\eng_letemhaveit2", db-20, 1.0};
		titles[]={ };
	};	
	class Eng29
	{
		name = $STR_CFG_SOUNDS_ENG29;
		sound[] = {"voices\eng_lookout1", db-20, 1.0};
		titles[]={ };
	};		
	class Eng30
	{
		name = $STR_CFG_SOUNDS_ENG30;
		sound[] = {"voices\eng_lookout2", db-20, 1.0};
		titles[]={ };
	};		
	class Eng31
	{
		name = $STR_CFG_SOUNDS_ENG31;
		sound[] = {"voices\eng_lookout3", db-20, 1.0};
		titles[]={ };
	};		
	class Eng32
	{
		name = $STR_CFG_SOUNDS_ENG32;
		sound[] = {"voices\eng_medic1", db-20, 1.0};
		titles[]={ };
	};		
	class Eng33
	{
		name = $STR_CFG_SOUNDS_ENG33;
		sound[] = {"voices\eng_medic2", db-20, 1.0};
		titles[]={ };
	};		
	class Eng34
	{
		name = $STR_CFG_SOUNDS_ENG34;
		sound[] = {"voices\eng_medic3", db-20, 1.0};
		titles[]={ };
	};		
	class Eng35
	{
		name = $STR_CFG_SOUNDS_ENG35;
		sound[] = {"voices\eng_sectorclear1", db-20, 1.0};
		titles[]={ };
	};	
	class Eng36
	{
		name = $STR_CFG_SOUNDS_ENG36;
		sound[] = {"voices\eng_sectorclear2", db-20, 1.0};
		titles[]={ };
	};	
	class Eng37
	{
		name = $STR_CFG_SOUNDS_ENG37;
		sound[] = {"voices\eng_staysharp", db-20, 1.0};
		titles[]={ };
	};		
	class Eng38
	{
		name = $STR_CFG_SOUNDS_ENG38;
		sound[] = {"voices\eng_surrender", db-20, 1.0};
		titles[]={ };
	};	
	class Eng39
	{
		name = $STR_CFG_SOUNDS_ENG39;
		sound[] = {"voices\eng_underattack", db-20, 1.0};
		titles[]={ };
	};
	class Eng40
	{
		name = $STR_CFG_SOUNDS_ENG40;
		sound[] = {"voices\eng_whosthere1", db-20, 1.0};
		titles[]={ };
	};
	class Eng41
	{
		name = $STR_CFG_SOUNDS_ENG41;
		sound[] = {"voices\eng_whosthere2", db-20, 1.0};
		titles[]={ };
	};

	
	class Alarm
	{
		name = $STR_CFG_SOUNDS_ALARM;
		sound[] = {objects\air_raid, 1.0, 1.0};
		titles[] = {};
	};
	class Explosion1
	{
		name = $STR_CFG_SOUNDS_EXPLOSION1;
		sound[] = {Explosions\Explosion_Small2, 1.0, 1.0};
		titles[] = {};
	};
	class Explosion2
	{
		name = $STR_CFG_SOUNDS_EXPLOSION2;
		sound[] = {Explosions\Building_Demolition, 1.0, 1.0};
		titles[] = {};
	};
	
	class Fountain
	{
		name = $STR_CFG_SOUNDS_FOUNTAIN;
		sound[] = {Objects\stream, db-80, 1.0};
		titles[] = {};
	};
	class Fire
	{
		name = $STR_CFG_SOUNDS_FIRE;
		sound[] = {Objects\fire, db-72, 1.0};

		titles[] = {};
	};
};

class CfgTitles
{
	access = ReadAndCreate;
	titles[] = 
	{
		Sphere, BISLogo, TVSet // UbiLogo, 
		// Campaign, FirstBattle, NukeEden,
		// AttackKain, DefendEden, DefendAbel,
		// AttackEden
	};
	class Sphere
	{
		name = $STR_CFG_TITLES_SPHERE;
		model = "koule.p3d";
		duration = 5;
		camera[] = {0,0,-10};
	};
	
	class BISLogo
	{
		name = $STR_CFG_TITLES_BISLOGO;
		model = "bohemiaolor2.p3d";
		duration = 3;
		camera[] = {0,0,-200};
	};
	class TVSet
	{
		name=$STR_CFG_TITLES_TVSET;
		duration=1000; //how to do unlimited time?
		model = "TVhi.p3d"
		camera[] = {0,0,-0.7};
	};
};

class CfgIntro
{
	firstCampaign = "";
};

class CfgCredits
{
	cutscene = "xxcredits.eden";
};

#define TitleTxt 0 // faded text
#define TitleTxtDown 1 // down faded text
#define TitleRsc 2 // resource text
#define TitleObj 3 // object

class CfgCutScenes
{
	access = ReadAndCreate;
	class Refuel
	{
		sound[]={weapons\missload,0.5,0.2};
		titleType=TitleTxtDown;
		title=$STR_CFG_CUTSCENES_REFUEL;
	};
	class Rearm
	{
		sound[]={weapons\missload,0.3,1};
		titleType=TitleTxtDown;
		title=$STR_CFG_CUTSCENES_REARM;
	};
	class Repair
	{
		sound[]={weapons\missload,0.1,1};
		titleType=TitleTxtDown;
		title=$STR_CFG_CUTSCENES_REPAIR;
	};
	class Heal
	{
		sound[]={weapons\missload,0.1,1};
		titleType=TitleTxtDown;
		title=$STR_CFG_CUTSCENES_HEALING;
	};
	class TakeWeapon
	{
		sound[]={weapons\missload,0.1,1};
		titleType=TitleTxtDown;
		title=$STR_CFG_CUTSCENES_TAKEWEAPON;
	};
	class TakeMagazine
	{
		sound[]={weapons\missload,0.1,1};
		titleType=TitleTxtDown;
		title=$STR_CFG_CUTSCENES_TAKEMAGAZINE;
	};
	class DropWeapon
	{
		sound[]={weapons\missload,0.1,1};
		titleType=TitleTxtDown;
		title=$STR_CFG_CUTSCENES_DROPWEAPON;
	};
	class DropMagazine
	{
		sound[]={weapons\missload,0.1,1};
		titleType=TitleTxtDown;
		title=$STR_CFG_CUTSCENES_DROPMAGAZINE;
	};
};

#define CamExternal 0 // linked directly with object
#define CamInterpolated 0 // linked directly with object
#define CamStatic 1 // fixed point in space
#define CamStaticWithZoom 2 // fixed point in space
#define CamChained 3 // fixed point in space
#define CamTerminate 4 // fixed point in space
#define CamInternal 5 // fixed point in space

class CfgCameraEffects
{
	access = ReadAndCreate;
	class Interpolated
	{
		type=CamInterpolated;
		scale=0.1;
		duration=5;
		spline=true; // spline or linear
		show=public;
	};
	class Exact: Interpolated
	{
		scale=-1;
	};
	class Chain
	{
		type=CamChained;
		show=public;
	};

	class Array
	{
		class Terminate
		{
			name=$STR_CFG_CAMEFFECTS_TERMINATE;
			type=CamTerminate;
			show=private;
		};
		class Internal
		{
			name=$STR_CFG_CAMEFFECTS_INTERNAL;
			type=CamInternal;
			show=public;
		};

		/*
		class Camera1 : Exact
		{
			name="Face left";
			file="\dtaExt\camera1.p3d";
			duration=20;
			spline=true; // spline or linear
		};
		class Camera2 : Exact
		{
			name="Face right";
			file="\dtaExt\camera2.p3d";
			duration=20;
			spline=true; // spline or linear
		};
		class Camera3 : Exact
		{
			name="Scene zoom in";
			file="\dtaExt\camera3.p3d";
			duration=40;
			spline=true; // spline or linear
		};
		*/


		/*
		class SoldierDetail1 : Exact
		{
			name="Soldier Detail";
			file="\dtaExt\soldierMCanim1.p3d";
			scale=0.1;
			duration=60;
		};
		class SoldierDetail2 : Exact
		{
			name="Soldier Zoom In";
			file="\dtaExt\soldierMCanim2.p3d";
			scale=0.1;
			duration=20;
		};
		class SoldierDetail3 : Exact
		{
			name="Soldier Back";
			file="\dtaExt\soldierMCanim3.p3d";
			scale=0.1;
			duration=20;
		};
		*/


		class ZoomIn: Interpolated
		{
			name=$STR_CFG_CAMEFFECTS_ZOOMIN;
			file="\anim\cam_zoom_in_front";
			scale=0.1;
			duration=5;
		};
		class ZoomInSlow: Interpolated
		{
			name=$STR_CFG_CAMEFFECTS_ZOOMINSLOW;
			file="\anim\cam_zoom_in_front";
			scale=0.1;
			duration=15;
		};
		class Around: Interpolated
		{
			name=$STR_CFG_CAMEFFECTS_AROUND;
			file="\anim\cam_360";
			duration=10;
			scale=0.3;
		};
		class AroundSlow: Interpolated
		{
			name=$STR_CFG_CAMEFFECTS_AROUNDSLOW;
			file="\anim\cam_360";
			duration=20;
			scale=0.3;
		};
		class ZoomAndAround: Chain
		{
			name=$STR_CFG_CAMEFFECTS_ZOOMAROUND;
			chain[]={ZoomIn,Around};
		};
		class AroundAndZoomINSlow: Chain
		{
			name=$STR_CFG_CAMEFFECTS_AROUNDZOOMSLOW;
			chain[]={AroundSlow, ZoomInSlow};
		};
		class ZoomInS: Interpolated
		{
			name=$STR_CFG_CAMEFFECTS_ZOOMINS;
			file="cam_s_zoom_in";
			duration=5;
			scale=1;
			show = private;
		};
		class Fixed: Interpolated
		{
			name=$STR_CFG_CAMEFFECTS_FIXED;
			type=CamStatic;
			duration=10;
		};
		class FixedWithZoom: Fixed
		{
			name=$STR_CFG_CAMEFFECTS_FIXEDZOOM;
			type=CamStaticWithZoom;
			duration=10;
		};
		class External: Fixed
		{
			name=$STR_CFG_CAMEFFECTS_EXTERNAL;
			type=CamExternal;
			duration=5;
			file="";
		};

		/* 
		class Intro1 : Exact
		{
			name = "Intro 1";
			file="\anim\HANGAR_kancl_kam1";
			duration=60;
			show=private;
		};
		class Intro2 : Exact
		{

			name = "Intro 2";
			file="\anim\HANGAR_kancl_kam2";
			duration=80
			show=private;
		};
		class Intro3 : Exact
		{

			name = "Intro 3";
			file="\anim\HANGAR_kancl_kam3";
			duration=60;	
			show=private;
		};

		class IntroT: Chain
		{
			name="Intro (Terminated)";
			chain[]={Intro2, Intro3, Terminate};
		};

		class Presentation : Exact
		{
			name = "Presentation";
			file="\dtaExt\camin_b4.p3d";
			duration=150;
			show=private;
		};
		class PresentationT : Chain
		{
			name = "Presentation (Terminated)";
			chain[]={ Presentation, Terminate };
		};
		*/

	};
};

class CfgMarkers
{
	//access = ReadAndCreate;
	class Flag
	{
		name = $STR_CFG_MARKERS_FLAG;
		icon = "marker_objective.paa";
		color[] = {Red, 0.8};
		size = 32;
	};
	class Flag1
	{
		name = $STR_CFG_MARKERS_FLAG1;
		icon = "marker_waypoint.paa";
		color[] = {Red, 0.8};
		size = 32;
	};
	class Dot
	{
		name = $STR_CFG_MARKERS_DOT;
		icon = "marker_dot.paa";
		color[] = {Red, 0.8};
		size = 32;
	};
	class Destroy
	{
		name = $STR_CFG_MARKERS_DESTROY;
		icon = marker_destroy.paa;
		color[] = {Red, 0.8};
		size = 32;
	};
	class Start
	{
		name = $STR_CFG_MARKERS_START;
		icon = marker_start.paa;
		color[] = {Green, 0.8};
		size = 32;
	};
	class End
	{
		name = $STR_CFG_MARKERS_END;
		icon = marker_goal.paa;
		color[] = {Black, 0.8};
		size = 32;
	};
	class Warning
	{
		name = $STR_CFG_MARKERS_WARNING;
		icon = marker_exclamation.paa;
		color[] = {Black, 0.8};
		size = 32;
	};
	class Join
	{
		name = $STR_CFG_MARKERS_JOIN;
		icon = marker_join.paa;
		color[] = {Black, 0.8};
		size = 32;
	};
	class Pickup
	{
		name = $STR_CFG_MARKERS_PICKUP;
		icon = marker_pickup.paa;
		color[] = {Black, 0.8};
		size = 32;
	};
	class Unknown
	{
		name = $STR_CFG_MARKERS_UNKNOWN;
		icon = marker_question.paa;
		color[] = {Black, 0.8};
		size = 32;
	};
	class Marker
	{
		name = $STR_CFG_MARKERS_MARKER;
		icon = marker_x.paa;
		color[] = {Black, 0.8};
		size = 32;
	};
	class Arrow
	{
		name = $STR_CFG_MARKERS_ARROW;
		icon = "marker_sipka.paa";
		color[] = {Red, 0.8};
		size = 32;
	};
	class Empty
	{
		name = $STR_CFG_MARKERS_EMPTY;
		icon = marker_empty.paa;
		color[] = {0.0, 0.0, 0.2, 1.0};
		size = 0;
	};
};

class CfgMarkerColors
{
	//access = ReadAndCreate;
	class Default
	{
		name = $STR_CFG_MARKERCOL_DEFAULT;
		color[] = {Black, 0.8};
	};
	class ColorBlack
	{
		name = $STR_CFG_MARKERCOL_BLACK;
		color[] = {Black, 0.8};
	};
	class ColorRed
	{
		name = $STR_CFG_MARKERCOL_RED;
		color[] = {Red, 0.8};
	};
	class ColorRedAlpha
	{
		name = $STR_CFG_MARKERCOL_REDALPHA;
		color[] = {Red, 0.65};
	};
	class ColorGreen
	{
		name = $STR_CFG_MARKERCOL_GREEN;
		color[] = {Green, 0.8};
	};
	class ColorGreenAlpha
	{
		name = $STR_CFG_MARKERCOL_GREENALPHA;
		color[] = {Green, 0.65};
	};
	class ColorBlue
	{
		name = $STR_CFG_MARKERCOL_BLUE;
		color[] = {Blue, 0.8};
	};
	class ColorYellow
	{
		name = $STR_CFG_MARKERCOL_YELLOW;
		color[] = {Yellow, 0.8};
	};
	class ColorWhite
	{
		name = $STR_CFG_MARKERCOL_WHITE;
		color[] = {White, 1};
	};
};

class CfgMarkerBrushes
{
	//access = ReadAndCreate;
	class Solid
	{
		name = $STR_CFG_MARKERBR_SOLID;
		texture =;
	}
	class Horizontal
	{
		name = $STR_CFG_MARKERBR_HORIZONTAL;
		texture = 90_horizontal.paa;
	}
	class Vertical
	{
		name = $STR_CFG_MARKERBR_VERTICAL;
		texture = 90_vertical.paa;
	}
	class Grid
	{
		name = $STR_CFG_MARKERBR_GRID;
		texture = 90_mrizka.paa;
	}
	class FDiagonal
	{
		name = $STR_CFG_MARKERBR_FDIAGONAL;
		texture = 45_lp.paa;
	}
	class BDiagonal
	{
		name = $STR_CFG_MARKERBR_BDIAGONAL;
		texture = 45_pl.paa;
	}
	class DiagGrid
	{
		name = $STR_CFG_MARKERBR_DIAGGRID;
		texture = 45_mrizka.paa;
	}
	class Cross
	{
		name = $STR_CFG_MARKERBR_CROSS;
		texture = krizek.paa;
	}
};

// define initial word state
class CfgWorlds
{
	access = ReadAndCreate;
	eastSign=east_01.paa;
	westSign=west_01.paa;
	eastFlag=rus_vlajka.pac;
	westFlag=usa_vlajka.pac;
	guerrilaSign=guer_01.paa;
	guerrilaFlag=guer_01.paa;

	class GroupNameList
	{
		letters[] = 
		{
			Alpha, Bravo, Charlie, Delta, Echo, Foxtrot, Golf, Hotel, Kilo
		};
	};
	class GroupNames
	{
		// note: this is array of classes
		// it must not contain any non-class members
		class Alpha
		{
			name = $STR_CFG_GRPNAMES_ALPHA;
			image = "a.paa";
		};
		class Bravo
		{
			name = $STR_CFG_GRPNAMES_BRAVO;
			image = "b.paa";
		};
		class Charlie
		{
			name = $STR_CFG_GRPNAMES_CHARLIE;
			image = "c.paa";
		};
		class Delta
		{
			name = $STR_CFG_GRPNAMES_DELTA;
			image = "d.paa";
		};
		class Echo
		{
			name = $STR_CFG_GRPNAMES_ECHO;
			image = "e.paa";
		};
		class Foxtrot
		{
			name = $STR_CFG_GRPNAMES_FOXTROT;
			image = "f.paa";
		};
		class Golf
		{
			name = $STR_CFG_GRPNAMES_GOLF;
			image = "g.paa";
		};
		class Hotel
		{
			name = $STR_CFG_GRPNAMES_HOTEL;
			image = "h.paa";
		};
		class November
		{
			name = $STR_CFG_GRPNAMES_NOVEMBER;
			image = "a.paa";
		};
		class Kilo
		{
			name = $STR_CFG_GRPNAMES_KILO;
			image = "a.paa";
		};
		class Yankee
		{
			name = $STR_CFG_GRPNAMES_YANKEE;
			image = "a.paa";
		};
		class Zulu
		{
			name = $STR_CFG_GRPNAMES_ZULU;
			image = "a.paa";
		};
		class Two
		{
			name = $STR_CFG_GRPNAMES_TWO;
			image = "a.paa";
		};
		class Three
		{
			name = $STR_CFG_GRPNAMES_THREE;
			image = "a.paa";
		};
		class Buffalo
		{
			name = $STR_CFG_GRPNAMES_BUFFALO;
			image = "a.paa";
		};
		class Guardian
		{
			name = $STR_CFG_GRPNAMES_GUARDIAN;
			image = "a.paa";
		};
		class Convoy
		{
			name = $STR_CFG_GRPNAMES_CONVOY;
			image = "a.paa";
		};
		class Fox
		{
			name = $STR_CFG_GRPNAMES_FOX;
			image = "a.paa";
		};
	};
	class GroupColorList
	{
		colors[] = 
		{
			GroupColor1, GroupColor2, GroupColor3, GroupColor4, GroupColor5, GroupColor6, GroupColor7
		};
	};
	class GroupColors
	{
		//access = ReadOnlyVerified;
		// note: this is array of classes
		// it must not contain any non-class members
		class GroupColor1
		{
			name = $STR_CFG_GRPCOL_BLACK;
			image = "black.paa";
		};
		class GroupColor2
		{
			name = $STR_CFG_GRPCOL_RED;
			image = "red.paa";
		};
		class GroupColor3
		{
			name = $STR_CFG_GRPCOL_GREEN;
			image = "green.paa";
		};
		class GroupColor4
		{
			name = $STR_CFG_GRPCOL_BLUE;
			image = "blue.paa";
		};
		class GroupColor5
		{
			name = $STR_CFG_GRPCOL_YELLOW;
			image = "yellow.paa";
		};
		class GroupColor6
		{
			name = $STR_CFG_GRPCOL_ORANGE;
			image = "orange.paa";
		};
		class GroupColor7
		{
			name = $STR_CFG_GRPCOL_PINK;
			image = "pink.paa";
		};
		class GroupColor0
		{
			name = "";
			image = "";
		};
		class Six
		{
			name = $STR_CFG_GRPNAMES_SIX;
			image = "a.paa";
		};
	};

	class East	// East army definition
	{
		access = ReadAndWrite;
		#include "russiannames.hpp"
	};
	class West	// East army definition
	{
		#include "englishnames.hpp"
	};
	class Guerrila
	{
		#include "civiliannames.hpp"
	};
	class Civilian
	{
		#include "czechnames.hpp"
	};

	class DefaultWorld
	{
		access = ReadOnlyVerified;

		plateFormat="$$$  ## - ##";
		plateLetters="ABCDEFHIKLMOPRSTVXYZ"

		//default center position
		centerPosition[] = {6400, 6400, 0};

		latitude = -40; // positive is south
		longitude = +15; // positive is east

		class Music: CfgMusic {};
		class EnvSounds: CfgEnvSounds {};

		cutscenes[] = {intro}; 

		// forests
		forestOldTriangle = "data3D\les trojuhelnik.p3d";
		forestOldSquare = "data3D\les ctverec.p3d";
		forestInner = "data3D\les ctverec dark.p3d";
		forestOuter = "data3D\les ctverec pruchozi.p3d";
		forestOuterT1 = "data3D\les ctverec pruchozi_T1.p3d";
		forestOuterT2 = "data3D\les ctverec pruchozi_T2.p3d";
		forestTriangle = "data3D\les trojuhelnik pruchozi.p3d";
		forestBorder = "data3D\les ctverec mlazi.p3d";

		class ReplaceObjects
		{
			class ForestBorder
			{
				replace = "data3D\les ctverec mlazi.p3d";
				with[] = {};
			};
			class ForestTriangle
			{
				replace = "data3D\les trojuhelnik.p3d";
				with[] = {"data3D\les trojuhelnik pruchozi.p3d"};
			};
			class ForestSquare
			{
				replace = "data3D\les ctverec.p3d";
				with[] = 
				{
					"data3D\les ctverec pruchozi_T1.p3d",
					"data3D\les ctverec pruchozi_T2.p3d"
				};
				center = true;
			};
    };
    
		landGrid = 50; // grid size
		// landRange is stored directly in WRP file

		class Grid
		{
			offsetX = 0;
			offsetY = 0;
      class Zoom1
      {
				zoomMax = 0.2;
				format = "XY";
				formatX = "Aa";
				formatY = "00";
				stepX = 128;
				stepY = 128;
      };
      class Zoom2
      {
        zoomMax = 1e30;
        format = "XY";
        formatX = "A";
        formatY = "0";
        stepX = 1280;
        stepY = 1280;
      };
		};

		// fractal and white noise random offset are added
		// white noise generated more "wild" terrain
		// fractal tends to generate smooth, varied terrain
		class Subdivision
		{
			// fractal component of subdivision
			// changes are smaller for smaller rectangles
			class Fractal
			{
				// texture roughness factor
				rougness = 10;
				// max. value for squares containing road
				maxRoad = 0.2;
				// max. value for squares containing track
				maxTrack = 1.0;
				// max. coeficient depending on slope
				maxSlopeFactor = 0.05;
			};
			// white noise component of subdivision
			// change size is independent on rectangle size 
			class WhiteNoise
			{
				rougness = 5;
				// max. value for squares containing road
				maxRoad = 0.1;
				// max. value for squares containing track
				maxTrack = 0.5;
				// max. coeficient depending on slope
				maxSlopeFactor = 0.025;
			};

			// do not divide surfaces that are under given limit
			minY = -0.0;
			// do not divide flat surfaces
			minSlope = 0.02;
		};
	};
	class Eden: DefaultWorld
	{
		access = ReadOnlyVerified;

		plateFormat="ER$  ## - ##";
		plateLetters="ABCDEFHIKLMOPRSTVXYZ"

		worldName=eden.wrp;
		description = "Everon";
		icon=_eden.paa;
		startTime = 8:30;
		startDate = 30/4/84;
		startWeather = 0.3;
		startFog = 0.0;
		forecastWeather = 0.3;
		forecastFog = 0.0;
		seagullPos[] = {10738,8509};
		// landing place - airport
		ilsPosition[] ={4772,10923};
		ilsDirection[] ={0,0.08,-1};
		ilsTaxiIn[]=
		{
			4772+69,10923+400, // service path middle point
			4772+69,10923+95, // point on runway to start there
		
			4772+61,10923+87, // point on runway to start there

			4772+8,10923+87, // point on runway to start there
			4772,10923+95, // point on runway to start there
			4772,10923+150 // align with runway
		};
		ilsTaxiOff[]=
		{
			4772,10923, //ilsPos, // touchdown point on runway

			4772,10923+878, // move to taxi-off point
			4772+8,10923+886, // start turning

			4772+61,10923+886, // move to taxi-path
			4772+69,10923+878, // turn to service path

			4772+69,10923+400, // move on service path to middle point
		};
		// sound sources
		class Sounds
		{
			sounds[]={
				/*
				BadDog1,LittleDog1,BadDog2,LittleDog2,
				SorrowDog1, Owl1, Owl2, Cow1, Cow2, 
				Cikade1, Cikade2 */
			};
/*
			class BadDog1
			{
				simulation=BadDogSfx;
				position[] = edenobjDog1;
			};
			class LittleDog1
			{
				simulation=LittleDogSfx;
				position[] = edenobjDog2;
			};
			class SorrowDog1
			{
				simulation=SorrowDogSfx;
				position[] = edenobjDog3;
			};
			class BadDog2
			{
				simulation=DogSfx;
				position[] = edenobjDog4;
			};
			class LittleDog2
			{
				simulation=LittleDogSfx;
				position[] = edenobjDog5;
			};
			class Owl1
			{
				simulation=OwlSfx;
				position[] = eden_nightOwl;
			};
			class Owl2
			{
				simulation=OwlSfx;
				position[] = eden_nightOwl1;
			};
			class Cow1
			{
				simulation=CowSfx;
				position[] = edenobjKravin;
			};
			class Cow2
			{
				simulation=CowSfx;
				position[] = edenobjCow1;
			};
			class Cikade1
			{
				simulation=CricketSfx;
				position[] = edenobjCikade;
			};
			class Cikade2
			{
				simulation=CricketSfx;
				position[] = edenobjCvrcci;
			};
			*/
		};
		class Animation {vehicles[]={};}; // default - no film
		class Names
		{
			class SaintPhillippe
			{
				name = "Saint Phillippe";
				position[] = eden_vil_SaintPhillippe;
			};
			class Regina
			{
				name = "Regina";
				position[] = eden_vil_Regina;
			};
			class Meaux
			{
				name = "Meaux";
				position[] = eden_vil_Meaux;
			};
			class Tyrone
			{
				name = "Tyrone";
				position[] = eden_vil_Tyrone;
			};
			class Montignac
			{
				name = "Montignac";
				position[] = eden_vil_Montignac;
			};
			class Gravette
			{
				name = "Gravette";
				position[] = eden_vil_Gravette;
			};
			class EnreDeux
			{
				name = "Entre Deux";
				position[] = eden_vil_EnreDeux;
			};
			class Provins
			{
				name = "Provins";
				position[] = eden_vil_Provins;
			};
			class Chotain
			{
				name = "Chotain";
				position[] = eden_vil_Chotain;
			};
			class Laruns
			{
				name = "Laruns";
				position[] = eden_vil_Laruns;
			};
			class Figari
			{
				name = "Figari";
				position[] = eden_vil_Figari;
			};
			class LeMoule
			{
				name = "Le Moule";
				position[] = eden_vil_LeMoule;
			};
			class Morton
			{
				name = "Morton";
				position[] = eden_vil_Morton;
			};
			class Lamentin
			{
				name = "Lamentin";
				position[] = eden_vil_Lamentin;
			};
			class Levie
			{
				name = "Levie";
				position[] = eden_vil_Levie;
			};
			class Durras
			{
				name = "Durras";
				position[] = eden_vil_Durras;
			};
			class Vernon
			{
				name = "Vernon";
				position[] = eden_vil_Vernon;
			};
			class SaintPierre
			{
				name = "Saint Pierre";
				position[] = eden_vil_SaintPierre;
			};
		};
		cutscenes[] = {intro, intro1}; 
	};

	class Abel: DefaultWorld
	{
		access = ReadOnlyVerified;

		plateFormat="ML$ - #####";
		plateLetters="ABCDEGHIKLMNOPRSTVXZ"

		worldName=abel.wrp;
		description = "Malden";
		icon=_abel.paa;
		startTime = 8:30;
		startDate = 30/4/84;
		startWeather = 0.3;
		startFog = 0.0;
		forecastWeather = 0.3;
		forecastFog = 0.0;
		seagullPos[] = abelWestInvasion;
		// landing place - airport
		ilsPosition[] ={7922,9590,0};
		ilsDirection[] ={0,0.08,-1};

		ilsTaxiIn[]=
		{
			7922+69,9590+400, // service path middle point
			7922+69,9590+45-18, // point on runway to start there
		
			7922+61,9590+37-18, // point on runway to start there

			7922+8,9590+37-18, // point on runway to start there
			7922,9590+45-18, // point on runway to start there
			7922,9590+100-18 // align with runway
		};
		ilsTaxiOff[]=
		{
			7922,9590, //ilsPos, // touchdown point on runway

			7922,9590+878-18, // move to taxi-off point
			7922+8,9590+886-18, // start turning

			7922+61,9590+886-18, // move to taxi-path
			7922+69,9590+878-18, // turn to service path

			7922+69,9590+400, // move on service path to middle point
		};

		// forests
		forestOldTriangle = "data3D\les_su_trojuhelnik.p3d";
		forestOldSquare = "data3D\les_su_ctver.p3d";
		forestInner = "data3D\les_su_ctver.p3d";
		forestOuter = "data3D\les_su_ctver_pruhozi.p3d";
		forestOuterT1 = "data3D\les_su_ctver_pruhozi_T1.p3d";
		forestOuterT2 = "data3D\les_su_ctver_pruhozi_T2.p3d";
		forestTriangle = "data3D\les_su_trojuhelnik.p3d";
		forestBorder = "data3D\les_su_ctver_mlaz.p3d";

		class ReplaceObjects
		{
			class ForestBorder
			{
				replace = "data3D\les_su_ctver_mlaz.p3d";
				with[] = {};
			};
			class ForestSquare
			{
				replace = "data3D\les_su_ctver.p3d";
				with[] = 
				{
					"data3D\les_su_ctver_pruhozi_T1.p3d",
					"data3D\les_su_ctver_pruhozi_T2.p3d"
				};
				center = true;
			};
    };
		
		// sound sources
		class EnvSounds: CfgEnvSounds
		{
			class Rain // rain
			{
				sound[]={Environmental\Rain_hard,db-60,1};
				soundNight[]={Environmental\Rain_hard,db-60,1};
			};
			class Sea // sea
			{
				sound[]={Environmental\wave_break,db-80,1};
				soundNight[]={Environmental\wave_break,db-80,1};
			};
			class Meadows // default - no trees, no sea, no hills ...
			{
				sound[]={animals\crickets03,db-95,1};
				soundNight[]={animals\crickets03,db-95,1};
			};
			class Trees // trees
			{
				sound[]={animals\crickets03,db-80,1};
				soundNight[]={animals\crickets03,db-80,1};
			};
			class Hills // hills > 250m
			{
				sound[]={Environmental\wind_heavy,db-90,1};
				soundNight[]={Environmental\wind_whistle,db-90,1};
			};
		};
		class Sounds
		{
			sounds[]={};
		};
		class Animation {vehicles[]={};}; // default - no film
		class Names
		{
			class SaintLouis
			{
				name = "Saint Louis";
				position[] = Abel_vil_SaintLouis;
			};
			class Larche
			{
				name = "Larche";
				position[] = Abel_vil_Larche;
			};
			class LaTrinite
			{
				name = "La Trinite";
				position[] = Abel_vil_LaTrinite;
			};
			class Goisee
			{
				name = "Goisse";
				position[] =  Abel_vil_Goisse;
			};
			class LaPessagne
			{
				name = "La Pessagne";
				position[] = Abel_vil_LaPessagne;
			};
			class Vigny
			{
				name = "Vigny";
				position[] = Abel_vil_Vigny;
			};
			class Houdan
			{
				name = "Houdan";
				position[] = Abel_vil_Houdan;
			};
			class SainteMarie
			{
				name = "Sainte Marie";
				position[] = Abel_vil_SainteMarie;
			};
			class Chapoi
			{
				name = "Chapoi";
				position[] = Abel_vil_Chapoi;
			};
			class LePort
			{
				name = "Le Port";
				position[] = Abel_vil_LePort;
			};
			class Cancon
			{
				name = "Cancon";
				position[] = Abel_vil_Cancon;
			};
			class LaRiviere
			{
				name = "La Riviere";
				position[] = Abel_vil_LaRiviere;
			};
			class Arudy
			{
				name = "Arudy";
				position[] = Abel_vil_Arudy;
			};
			class Dourdan
			{
				name = "Dourdan";
				position[] = Abel_vil_Dourdan;
			};
			/*class Lolisse
			{
				name = "Lolisse";
				position[] = Abel_vil_Lolisse;
			};*/
		};
		cutscenes[] = {intro, intro1}; 
	};
	
	class Demo: Abel
	{
		access = ReadOnlyVerified;
		worldName=\demo\demo.wrp;
		description = "Malden - Demo";
	//	cutscenes[] = {intro, intro2, intro3}; 
		cutscenes[] = {intro}; 
	};
	
	class Cain: DefaultWorld
	{
		access = ReadOnlyVerified;
		plateFormat="## - KO$ - #";
		plateLetters="ABCEHKMOPT";

		worldName=cain.wrp;
		description = "Kolgujev";
		icon=_cain.paa;
		startTime = 8:30;
		startDate = 30/4/84;
		startWeather = 0.3;
		startFog = 0.0;
		forecastWeather = 0.3;
		forecastFog = 0.0;
		seagullPos[] = abelWestInvasion;
		// landing place - airport
		ilsPosition[] ={0,0,0}; // no airport?
		ilsDirection[] ={0,0.08,-1};
		ilsTaxiIn[]={};
		ilsTaxiOff[]={};
		// sound sources
		class Sounds
		{
			sounds[]={};
		};
		class Animation {vehicles[]={};}; // default - no film
		class Names
		{
		};
		cutscenes[] = {intro, intro1}; 
/*
		class Grid
		{
			offsetX = 0;
			offsetY = 256 * 50;
      class Zoom1
      {
				zoomMax = 0.2;
				format = "X.Y";
				formatX = "000";
				formatY = "000";
				stepX = 100;
				stepY = -100;
      };
      class Zoom2
      {
        zoomMax = 1e30;
        format = "X.Y";
        formatX = "00";
        formatY = "00";
        stepX = 1000;
        stepY = -1000;
      };
		};
*/
	};
	class Intro: DefaultWorld
	{
		access = ReadOnlyVerified;
		description = "Desert Island";
		icon=_training.paa;

		worldName=intro.wrp;

		plateFormat="ML$ - #####";
		plateLetters="ABCDEGHIKLMNOPRSTVXZ"

		//longitude = +140; // positive is east
		//latitude = +40; // positive is south

		startTime = 4:30;
		startDate = 10/4/82;
		startWeather = 0.4;
		startFog = 0.0;
		forecastWeather = 0.4;
		forecastFog = 0.0;
		seagullPos[] = minimalSeagullPos1;
		// landing place - airport
		ilsPosition[] ={0,0,0};
		ilsDirection[] ={0,0.08,1};
		ilsTaxiIn[]={};
		ilsTaxiOff[]={};

		//default center position
		centerPosition[] = {9735, 3964, 0};

		// sound sources
		class Sounds
		{
			sounds[]={};
		};
		class Animation {vehicles[]={};}; // default - no film
		class Names
		{
		};
		cutscenes[] = {intro}; 
	};


	initWorld = Intro;
	demoWorld = Demo;
	
/*	
	worlds[] =
	{
		Eden,
		Abel,
		Cain,
		Demo,
		//Minimal,
		Intro
		ArtyTestIsland
	};
*/
};

class CfgWorldList
{
	// allow register new worlds here
	access = ReadAndCreate;
	class Eden {};
	class Abel {};
	class Cain {};
	class Demo {};
	class Intro {};
};

class CfgGroups
{
	//access = ReadAndCreate;
	// groups templates used in Insert group dialog

/*!
\patch 1.52 Date 4/19/2002 by Viktor
- Fixed: Bad position of last soldier when inserting group
*/

	class West
	{
		name = $STR_WEST;
		class Armored
		{
			name = $STR_CFG_GRP_ARMORED;

			class M1Platoon
			{
				name = $STR_CFG_GRP_M1PLATOON;
				class Unit0
				{
					side = TWest;
					vehicle = "M1Abrams";
					rank = "CAPTAIN";
					position[] = {0, +5, 0};
				}
				class Unit1
				{
					side = TWest;
					vehicle = "M1Abrams";
					rank = "Lieutnant";
					position[] = {-20, 0, 0};
				}
				class Unit2
				{
					side = TWest;
					vehicle = "M1Abrams";
					rank = "Lieutnant";
					position[] = {20, 0, 0};
				}
				class Unit3
				{
					side = TWest;
					vehicle = "M1Abrams";
					rank = "Corporal";
					position[] = {40, 0, 0};
				}
			};

			class M60Platoon
			{
				name = $STR_CFG_GRP_M60PLATOON;
				class Unit0
				{
					side = TWest;
					vehicle = "M60";
					rank = "CAPTAIN";
					position[] = {0, +5, 0};
				}
				class Unit1
				{
					side = TWest;
					vehicle = "M60";
					rank = "Lieutnant";
					position[] = {-20, 0, 0};
				}
				class Unit2
				{
					side = TWest;
					vehicle = "M60";
					rank = "Lieutnant";
					position[] = {20, 0, 0};
				}
				class Unit3
				{
					side = TWest;
					vehicle = "M60";
					rank = "Corporal";
					position[] = {40, 0, 0};
				}
			};
		};

		class Infantry
		{
			name = $STR_CFG_GRP_INFANTRY;

			class BasicInfantry
			{
				name = $STR_CFG_GRP_INFANTRY_BASIC;

				class Unit0
				{
					side = TWest;
					vehicle = "OfficerW";
					rank = "Sergeant";
					position[] = {0, +5, 0};
				};
				class Unit1
				{
					side = TWest;
					vehicle = "SoldierWMG";
					rank = "CORPORAL";
					position[] = {3, 0, 0};
				};
				class Unit2
				{
					side = TWest;
					vehicle = "SoldierWG";
					rank = "CORPORAL";
					position[] = {5,0,0};
				};
				class Unit3
				{
					side = TWest;
					vehicle = "SoldierWG";
					rank = "CORPORAL";
					position[] = {7,0,0};
				};
				class Unit4
				{
					side = TWest;
					vehicle = "SoldierWLAW";
					rank = "CORPORAL";
					position[] = {9,0,0};
				};
				class Unit5
				{
					side = TWest;
					vehicle = "SoldierWMG";
					rank = "Private";
					position[] = {11,0,0};
				};
				class Unit6
				{
					side = TWest;
					vehicle = "SoldierWB";
					rank = "Private";
					position[] = {13,0,0};
				};
				class Unit7
				{
					side = TWest;
					vehicle = "SoldierWB";
					rank = "Private";
					position[] = {15,0, 0};
				};
				class Unit8
				{
					side = TWest;
					vehicle = "SoldierWB";
					rank = "Private";
					position[] = {17,0, 0};
				};
			};

			class MechanizedInfantry
			{
				name = $STR_CFG_GRP_INFANTRY_MECHANIZED;

				class Unit0
				{
					side = TWest;
					vehicle = "OfficerW";
					rank = "Sergeant";
					position[] = {0, +5, 0};
				};
				class Unit1
				{
					side = TWest;
					vehicle = "M113";
					rank = "CORPORAL";
					position[] = {-5, 0, 0};
				};
				class Unit2
				{
					side = TWest;
					vehicle = "SoldierWG";
					rank = "CORPORAL";
					position[] = {5,0,0};
				};
				class Unit3
				{
					side = TWest;
					vehicle = "SoldierWG";
					rank = "CORPORAL";
					position[] = {7,0,0};
				};
				class Unit4
				{
					side = TWest;
					vehicle = "SoldierWLAW";
					rank = "CORPORAL";
					position[] = {9,0,0};
				};
				class Unit5
				{
					side = TWest;
					vehicle = "SoldierWMG";
					rank = "Private";
					position[] = {11,0,0};
				};
				class Unit6
				{
					side = TWest;
					vehicle = "SoldierWB";
					rank = "Private";
					position[] = {13,0,0};
				};
				class Unit7
				{
					side = TWest;
					vehicle = "SoldierWB";
					rank = "Private";
					position[] = {15,0, 0};
				};
			};
		};
	};

	class East
	{
		name = $STR_EAST;
		class Armored
		{
			name = $STR_CFG_GRP_ARMORED;

			class T80Platoon
			{
				name = $STR_CFG_GRP_T80PLATOON;
				class Unit0
				{
					side = TEast;
					vehicle = "T80";
					rank = "CAPTAIN";
					position[] = {0, +5, 0};
				}
				class Unit1
				{
					side = TEast;
					vehicle = "T80";
					rank = "Lieutnant";
					position[] = {-20, 0, 0};
				}
				class Unit2
				{
					side = TEast;
					vehicle = "T80";
					rank = "Lieutnant";
					position[] = {20, 0, 0};
				}
				class Unit3
				{
					side = TEast;
					vehicle = "T80";
					rank = "Corporal";
					position[] = {40, 0, 0};
				}
			};

			class T72Platoon
			{
				name = $STR_CFG_GRP_T72PLATOON;
				class Unit0
				{
					side = TEast;
					vehicle = "T72";
					rank = "CAPTAIN";
					position[] = {0, +5, 0};
				}
				class Unit1
				{
					side = TEast;
					vehicle = "T72";
					rank = "Lieutnant";
					position[] = {-20, 0, 0};
				}
				class Unit2
				{
					side = TEast;
					vehicle = "T72";
					rank = "Lieutnant";
					position[] = {20, 0, 0};
				}
				class Unit3
				{
					side = TEast;
					vehicle = "T72";
					rank = "Corporal";
					position[] = {40, 0, 0};
				}
			};
		};

		class Infantry
		{
			name = $STR_CFG_GRP_INFANTRY;

			class BasicInfantry
			{
				name = $STR_CFG_GRP_INFANTRY_BASIC;

				class Unit0
				{
					side = TEast;
					vehicle = "OfficerE";
					rank = "Sergeant";
					position[] = {0, +5, 0};
				};
				class Unit1
				{
					side = TEast;
					vehicle = "SoldierEMG";
					rank = "CORPORAL";
					position[] = {3, 0, 0};
				};
				class Unit2
				{
					side = TEast;
					vehicle = "SoldierEG";
					rank = "CORPORAL";
					position[] = {5,0,0};
				};
				class Unit3
				{
					side = TEast;
					vehicle = "SoldierEB";
					rank = "CORPORAL";
					position[] = {7,0,0};
				};
				class Unit4
				{
					side = TEast;
					vehicle = "SoldierELAW";
					rank = "CORPORAL";
					position[] = {9,0,0};
				};
				class Unit5
				{
					side = TEast;
					vehicle = "SoldierEMG";
					rank = "Private";
					position[] = {11,0,0};
				};
				class Unit6
				{
					side = TEast;
					vehicle = "SoldierEB";
					rank = "Private";
					position[] = {13,0,0};
				};
				class Unit7
				{
					side = TEast;
					vehicle = "SoldierEB";
					rank = "Private";
					position[] = {15,0, 0};
				};
				class Unit8
				{
					side = TEast;
					vehicle = "SoldierEB";
					rank = "Private";
					position[] = {17,0, 0};
				};
			};

			class MechanizedInfantry
			{
				name = $STR_CFG_GRP_INFANTRY_MECHANIZED;

				class Unit0
				{
					side = TEast;
					vehicle = "OfficerE";
					rank = "Sergeant";
					position[] = {0, +5, 0};
				};
				class Unit1
				{
					side = TEast;
					vehicle = "BMP";
					rank = "CORPORAL";
					position[] = {-5, 0, 0};
				};
				class Unit2
				{
					side = TEast;
					vehicle = "SoldierEG";
					rank = "CORPORAL";
					position[] = {5,0,0};
				};
				class Unit3
				{
					side = TEast;
					vehicle = "SoldierEB";
					rank = "CORPORAL";
					position[] = {7,0,0};
				};
				class Unit4
				{
					side = TEast;
					vehicle = "SoldierELAW";
					rank = "CORPORAL";
					position[] = {9,0,0};
				};
				class Unit5
				{
					side = TEast;
					vehicle = "SoldierEMG";
					rank = "Private";
					position[] = {11,0,0};
				};
				class Unit6
				{
					side = TEast;
					vehicle = "SoldierEB";
					rank = "Private";
					position[] = {13,0,0};
				};
				class Unit7
				{
					side = TEast;
					vehicle = "SoldierEB";
					rank = "Private";
					position[] = {15,0, 0};
				};
			};
		};
	};

};

class CfgAddons
{
	// addon configuration
	access = ReadOnly;
	// Following official addons should be always loaded if present
	// this should help to minimize compatibility problems
	// with older missions that do not have correct addons[] list
	// (This applies especially to mission using official weapons).
	class PreloadBanks
	{
		class WeaponBIStudio
		{
			list[]=
			{
				"LaserGuided\","ABox\","6G30\","Kozl\","G36A\","MM-1\","Steyr\",
				"Bizon\","XMS\","M41a\"
			};
		};
		class MiscBIStudio
		{
			list[]=
			{
				"Flags\","VoiceRH\"
			};
		};
	};
	class PreloadAddons
	{
		// all addons in this list are always considered to be active
		class WeaponBIStudio
		{
			list[]=
			{
				LaserGuided,6G30,Kozlice,G36A,MM1,Steyr,Bizon,XMS,M41a
			};
		};
		class MiscBIStudio
		{
			list[]={Flags1,VoiceRH};
		};
		class ResistanceBIStudio
		{
			list[]={Noe};
		};
	};
};
