#define DLC_META \
	author = "$STR_EF_AUTHOR"; \
	DLC = "ef"
	
#define DLC_META_PUBLIC \
	author = "$STR_EF_AUTHOR"; \
	scope = 2; \
	scopeCurator = 2; \
	DLC = "ef"

// scope
#define private 0
#define protected 1
#define public 2

#define EDITORPREVIEWVEHICLES(classname) editorPreview = \ef\ef_data\editorpreviews\cfgvehicles\##classname##.jpg

#define mag_2(a) a,a
#define mag_3(a) a,a,a
#define mag_4(a) a,a,a,a
#define mag_5(a) a,a,a,a,a
#define mag_6(a) a,a,a,a,a,a
#define mag_7(a) a,a,a,a,a,a,a
#define mag_8(a) a,a,a,a,a,a,a,a
#define mag_9(a) a,a,a,a,a,a,a,a,a
#define mag_10(a) a,a,a,a,a,a,a,a,a,a
#define mag_11(a) a,a,a,a,a,a,a,a,a,a,a
#define mag_12(a) a,a,a,a,a,a,a,a,a,a,a,a
#define mag_13(a) a,a,a,a,a,a,a,a,a,a,a,a,a
#define mag_14(a) a,a,a,a,a,a,a,a,a,a,a,a,a,a
#define mag_15(a) a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
#define mag_16(a) a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
#define mag_17(a) a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
#define mag_18(a) a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
#define mag_19(a) a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
#define mag_20(a) a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a

#define mag_xx(a,b) class _xx_##a {magazine = a; count = b;}
#define weap_xx(a,b) class _xx_##a {weapon = a; count = b;}
#define item_xx(a,b) class _xx_##a {name = a; count = b;}
#define bag_xx(a,b) class _xx_##a {backpack = a; count = b;}

#define LINKEDITEMS_OPTIC(OPTIC)	\
	class LinkedItemsOptic			\
	{								\
		slot = "CowsSlot";			\
		item = OPTIC;				\
	}
#define LINKEDITEMS_ACC(ACC)		\
	class LinkedItemsAcc			\
	{								\
		slot = "PointerSlot";		\
		item = ACC;					\
	}
#define LINKEDITEMS_MUZZLE(MUZZLE)	\
	class LinkedItemsMuzzle			\
	{								\
		slot = "MuzzleSlot";		\
		item = MUZZLE;				\
	}
#define LINKEDITEMS_UNDER(UNDER)	\
	class LinkedItemsMuzzle			\
	{								\
		slot = "UnderBarrelSlot";	\
		item = UNDER;				\
	}
	
	
// item bags
#define VEST_HOLDER(a,b)                        \
	class Item_##a: Item_Base_F                  \
	{                                            \
		DLC_META;                                 \
		scope = 2;                                \
		scopeCurator = 2;                         \
		displayName = b;                          \
		editorCategory = "EdCat_Equipment";       \
		editorSubcategory = "EdSubcat_Vests";     \
		vehicleClass = "ItemsUniforms";           \
      model = "\A3\Weapons_F\DummyVest.p3d";    \
		class TransportItems                      \
		{                                         \
         item_xx(a, 1);                         \
		};                                        \
	}
   
#define UNIFORM_HOLDER(a,b)                     \
	class Item_##a: Item_Base_F                  \
	{                                            \
		DLC_META;                                 \
		scope = 2;                                \
		scopeCurator = 2;                         \
		displayName = b;                          \
		editorCategory = "EdCat_Equipment";       \
		editorSubcategory = "EdSubcat_Uniforms";  \
		vehicleClass = "ItemsUniforms";           \
		model = "\A3\Weapons_f\dummyweapon.p3d";  \
		class TransportItems                      \
		{                                         \
         item_xx(a, 1);                         \
		};                                        \
	}

#define HEADGEAR_HOLDER(a,b)                    \
	class Headgear_##a: Headgear_Base_F          \
	{                                            \
		DLC_META;                                 \
		scope = public;                           \
		scopeCurator = public;                    \
		displayName = b;                          \
		editorCategory = EdCat_Equipment;         \
		editorSubcategory = EdSubcat_Hats;        \
		vehicleClass = ItemsHeadgear;             \
		class TransportItems                      \
		{                                         \
         item_xx(a, 1);                         \
		};                                        \
	}
	
#define NVG_HOLDER(a,b)      			          \
	class Item_##a: Item_Base_F       			   \
	{                                            \
		DLC_META;                                 \
		scope = public;                           \
		scopeCurator = public;                    \
		displayName = b;                          \
		editorCategory = EdCat_Equipment;         \
		editorSubcategory = EdSubcat_InventoryItems; \
		vehicleClass = Items;         		    \
		model = "\A3\Weapons_F\DummyNVG.p3d";	\
		class TransportItems                      \
		{                                         \
			item_xx(a, 1);                         \
		};                                        \
	}
   
#define HEADGEAR_HOLDER_HELMET(a,b)             \
	class Headgear_##a: Headgear_Base_F          \
	{                                            \
		DLC_META;                                 \
		scope = public;                           \
		scopeCurator = public;                    \
		displayName = b;                          \
		editorCategory = EdCat_Equipment;         \
		editorSubcategory = EdSubcat_Helmets;     \
		vehicleClass = ItemsHeadgear;             \
		class TransportItems                      \
		{                                         \
         item_xx(a, 1);                         \
		};                                        \
	}
	
#define WEAPON_HOLDER(a,b,c,d)           \
	class Weapon_##a: Weapon_Base_F              \
	{                                            \
		DLC_META;                                 \
		scope = public;                           \
		scopeCurator = public;                    \
		displayName = b;                          \
		editorCategory = EdCat_Weapons;           \
		editorSubcategory = c;                    \
		vehicleClass = WeaponsPrimary;           \
		class TransportWeapons                    \
		{                                         \
			class a             				  \
			{                                      \
				weapon = a;                           \
				count = 1;                          \
			};                                     \
		};                                        \
		class TransportMagazines                  \
		{                                         \
			class d             				  \
			{                                      \
				magazine = d;                        \
				count = 1;                          \
			};                                     \
		};                                        \
	}
	
#define WEAPON_HOLDER_LAUNCHER(a,b,c,d)           \
	class Weapon_##a: Weapon_Base_F              \
	{                                            \
		DLC_META;                                 \
		scope = public;                           \
		scopeCurator = public;                    \
		displayName = b;                          \
		editorCategory = EdCat_Weapons;           \
		editorSubcategory = c;                    \
		vehicleClass = WeaponsSecondary;           \
		class TransportWeapons                    \
		{                                         \
			class a             				  \
			{                                      \
				weapon = a;                           \
				count = 1;                          \
			};                                     \
		};                                        \
		class TransportMagazines                  \
		{                                         \
			class d             				  \
			{                                      \
				magazine = d;                        \
				count = 1;                          \
			};                                     \
		};                                        \
	}

#define WEAPON_HOLDER_PISTOL(a,b,c,d)           \
	class Weapon_##a: Pistol_Base_F              \
	{                                            \
		DLC_META;                                 \
		scope = public;                           \
		scopeCurator = public;                    \
		displayName = b;                          \
		editorCategory = EdCat_Weapons;           \
		editorSubcategory = c;                    \
		vehicleClass = WeaponsHandguns;           \
		class TransportWeapons                    \
		{                                         \
			class a             				  \
			{                                      \
				weapon = a;                           \
				count = 1;                          \
			};                                     \
		};                                        \
		class TransportMagazines                  \
		{                                         \
			class d             				  \
			{                                      \
				magazine = d;                        \
				count = 1;                          \
			};                                     \
		};                                        \
	}

#define WEAPON_ACCESSORY_HOLDER(a,b,c)          \
	class Item_##a: Item_Base_F                  \
	{                                            \
		DLC_META;                                 \
		scope = public;                           \
		scopeCurator = public;                    \
		displayName = b;                          \
		editorCategory = EdCat_WeaponAttachments; \
		editorSubcategory = c;                    \
		vehicleClass = "WeaponAccessories";       \
		class TransportItems                      \
		{                                         \
			class a             				  \
			{                                      \
				name = a;                           \
				count = 1;                          \
			};                                     \
		};                                        \
	}

#define MFD_GRID(minX,minY,maxX,maxY)			\
pos[] = {{minX,minY},1};						\
right[] = {{maxX,minY},1};						\
down[] = {{minX,maxY},1}

#define MFD_GRID_BOUND(minX,minY,boundX,boundY)			\
pos[] = {{minX,minY},1};								\
right[] = {{minX+boundX,minY},1};						\
down[] = {{minX,minY+boundY},1}

#define SENSORS_SENDMAN	class AttributeValues {ReportRemoteTargets = 1;};ReportRemoteTargets = 1;

#define SENSORS_SEND							\
	ReportRemoteTargets = 1;

#define SENSORS_SENDRECEIVE						\
	ReportRemoteTargets = 1;					\
	ReceiveRemoteTargets = 1;
	
#define SENSORS_SENDRECEIVEPOS					\
	ReportRemoteTargets = 1;					\
	ReportOwnPosition = 1;						\
	ReceiveRemoteTargets = 1;


#define ANIMDUMMY(animsource,phase)		\
	class animsource					\
	{									\
		source = "user";				\
		animPeriod = 1;					\
		initPhase = phase;				\
	};