#define MACRO_BASE_CLASS_COMMON \
    author = "IDSolutions"; \
    scope = 0; \
    side = 2; \
    identityTypes[] = {"LanguageENG_F","Head_NATO","G_NATO_default"}; \
    faction = QCLASS(IND); \
    backpack = ""; \
    weapons[] = {"Throw", "Put"}; \
    respawnWeapons[] = {"Throw", "Put"}; \
    magazines[] = {}; \
    respawnMagazines[] = {}; \
    items[] = {}; \
    respawnItems[] = {}; \
    linkedItems[] = {}; \
    respawnLinkedItems[] = {}; \
    facewear = ""; \
	allowedFacewear[] = {}; \
	allowedHeadgear[] = {}; \
	allowedHeadgearB[] = {}; \
	headgearList[] = {}; \
    DLC = QUOTE(PREFIX); \
    tLightInfluence = 0.015; \
    class EventHandlers;

class CfgVehicles {
    class Man;
    class CAManBase: Man {
        class EventHandlers;
        class ACE_Actions;
        class ACE_SelfActions;
    };
    class Item_Base_F;

    class B_CTRG_Soldier_base_F;
    class CLASS(Unit_Combat_LS_Base): B_CTRG_Soldier_base_F {
        MACRO_BASE_CLASS_COMMON
        hiddenSelections[] = {"camo", "insignia"};
    };
    class CLASS(Unit_Combat_LS_PMC_RGR): CLASS(Unit_Combat_LS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_LS_PMC_RGR);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_rgr_co.paa"};
    };
    class CLASS(Unit_Combat_LS_PMC_TN): CLASS(Unit_Combat_LS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_LS_PMC_TN);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_tn_co.paa"};
    };
    class CLASS(Unit_Combat_LS_PMC_BLK_TN): CLASS(Unit_Combat_LS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_LS_PMC_BLK_TN);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_blk_tn_co.paa"};
    };
    class CLASS(Unit_Combat_LS_PMC_RGR_TN): CLASS(Unit_Combat_LS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_LS_PMC_RGR_TN);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_rgr_tn_co.paa"};
    };
    class CLASS(Unit_Combat_LS_PMC_BLK): CLASS(Unit_Combat_LS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_LS_PMC_BLK);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_blk_co.paa"};
    };

    class B_CTRG_Soldier_2_F;
    class CLASS(Unit_Combat_TS_Base): B_CTRG_Soldier_2_F {
        MACRO_BASE_CLASS_COMMON
        hiddenSelections[] = {"camo", "camo2"};
    };
    class CLASS(Unit_Combat_TS_PMC_RGR): CLASS(Unit_Combat_TS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_TS_PMC_RGR);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_rgr_co.paa","\A3\Characters_F\Common\Data\basicbody_black_co.paa"};
    };
    class CLASS(Unit_Combat_TS_PMC_TN): CLASS(Unit_Combat_TS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_TS_PMC_TN);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_tn_co.paa","\A3\Characters_F\Common\Data\basicbody_black_co.paa"};
    };
    class CLASS(Unit_Combat_TS_PMC_BLK_TN): CLASS(Unit_Combat_TS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_TS_PMC_BLK_TN);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_blk_tn_co.paa","\A3\Characters_F\Common\Data\basicbody_black_co.paa"};
    };
    class CLASS(Unit_Combat_TS_PMC_RGR_TN): CLASS(Unit_Combat_TS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_TS_PMC_RGR_TN);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_rgr_tn_co.paa","\A3\Characters_F\Common\Data\basicbody_black_co.paa"};
    };
    class CLASS(Unit_Combat_TS_PMC_BLK): CLASS(Unit_Combat_TS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_TS_PMC_BLK);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_blk_co.paa","\A3\Characters_F\Common\Data\basicbody_black_co.paa"};
    };

    class B_CTRG_Soldier_3_F;
    class CLASS(Unit_Combat_RS_Base): B_CTRG_Soldier_3_F {
        MACRO_BASE_CLASS_COMMON
        hiddenSelections[] = {"camo", "insignia"};
    };
    class CLASS(Unit_Combat_RS_PMC_RGR): CLASS(Unit_Combat_RS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_RS_PMC_RGR);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_rgr_co.paa"};
    };
    class CLASS(Unit_Combat_RS_PMC_TN): CLASS(Unit_Combat_RS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_RS_PMC_TN);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_tn_co.paa"};
    };
    class CLASS(Unit_Combat_RS_PMC_BLK_TN): CLASS(Unit_Combat_RS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_RS_PMC_BLK_TN);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_blk_tn_co.paa"};
    };
    class CLASS(Unit_Combat_RS_PMC_RGR_TN): CLASS(Unit_Combat_RS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_RS_PMC_RGR_TN);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_rgr_tn_co.paa"};
    };
    class CLASS(Unit_Combat_RS_PMC_BLK): CLASS(Unit_Combat_RS_Base)  {
        scope = 1;
        uniformClass = QCLASS(Uniform_Combat_RS_PMC_BLK);
        hiddenSelectionsTextures[] = {"\z\forge_factions\addons\pmc\data\uniform_combat_pmc_blk_co.paa"};
    };

    #include "CfgVehicles_GroundItems.hpp"
    #include "CfgVehicles_PublicUnits.hpp"
};