class CfgVehicles { class Man; class CAManBase: Man { class ACE_SelfActions { class GVAR(deploy) { displayName = CSTRING(PlaceTripod_displayName); condition = QUOTE(call FUNC(canDeployTripod)); statement = QUOTE(call FUNC(assemble_deployTripod)); exceptions[] = {}; }; }; }; // Tripods: class ThingX; class GVAR(baseTripod): ThingX { side = 3; typicalCargo[] = {}; armor = 500000; mapSize = 0.4; nameSound = "Bunker"; accuracy = 1000; destrType = "DestructDefault"; EGVAR(dragging,canDrag) = 1; EGVAR(dragging,dragPosition)[] = {0, 2, 0}; EGVAR(dragging,canCarry) = 1; EGVAR(dragging,carryPosition)[] = {0, 2, 0}; class ACE_Actions { class ACE_MainActions { displayName = CSTRING(genericTripod_displayName); selection = ""; distance = 2.5; condition = "true"; class GVAR(pickUp) { displayName = CSTRING(Pickup_displayName); condition = QUOTE(call FUNC(canPickupTripod)); statement = QUOTE(call FUNC(assemble_pickupTripod)); }; class GVAR(mountWeapon) { displayName = CSTRING(MountWeapon_displayName); condition = QUOTE(call FUNC(assemble_canDeployWeapon)); statement = QUOTE(call FUNC(assemble_deployWeapon)); modifierFunction = QUOTE(call FUNC(assemble_deployWeaponModifier)); }; }; }; }; class GVAR(m3Tripod): GVAR(baseTripod) { author = ECSTRING(common,ACETeam); scope = 2; model = QPATHTOEF(apl,ACE_CSW_m3_tripod.p3d); editorPreview = QPATHTOF(data\ace_csw_m3Tripod.jpg); displayName = CSTRING(m3Tripod_displayName); class ADDON { disassembleTo = QGVAR(m3CarryTripod); }; }; class GVAR(m3TripodLow): GVAR(m3Tripod) { class ADDON { disassembleTo = QGVAR(m3CarryTripodLow); }; }; class GVAR(kordTripod): GVAR(baseTripod) { author = ECSTRING(common,ACETeam); scope = 2; model = QPATHTOEF(apl,ace_csw_tripod_kord.p3d); editorPreview = QPATHTOF(data\ace_csw_kordTripod.jpg); displayName = CSTRING(kordTripod_displayName); class ADDON { disassembleTo = QGVAR(kordCarryTripod); }; }; class GVAR(kordTripodLow): GVAR(kordTripod) { class ADDON { disassembleTo = QGVAR(kordCarryTripodLow); }; }; class GVAR(sag30Tripod): GVAR(baseTripod) { author = ECSTRING(common,ACETeam); scope = 2; model = QPATHTOEF(apl,ace_csw_tripod_ags30.p3d); editorPreview = QPATHTOF(data\ace_csw_sag30Tripod.jpg); displayName = CSTRING(sag30Tripod_displayName); class ADDON { disassembleTo = QGVAR(sag30CarryTripod); }; }; class GVAR(m220Tripod): GVAR(baseTripod) { author = ECSTRING(common,ACETeam); scope = 2; model = QPATHTOEF(apl,ace_csw_tripod_m220.p3d); editorPreview = QPATHTOF(data\ace_csw_m220Tripod.jpg); displayName = CSTRING(m220Tripod_displayName); class ADDON { disassembleTo = QGVAR(m220CarryTripod); }; }; class GVAR(spg9Tripod): GVAR(baseTripod) { author = ECSTRING(common,ACETeam); scope = 2; model = QPATHTOEF(apl,ace_csw_tripod_spg9.p3d); editorPreview = QPATHTOF(data\ace_csw_spg9Tripod.jpg); displayName = CSTRING(spg9_Tripod); class ADDON { disassembleTo = QGVAR(spg9CarryTripod); }; }; class GVAR(mortarBaseplate): GVAR(baseTripod) { author = ECSTRING(common,ACETeam); scope = 2; model = QPATHTOEF(apl,ACE_CSW_mortarBaseplate.p3d); editorPreview = QPATHTOF(data\ace_csw_mortarBaseplate.jpg); displayName = CSTRING(mortarBaseplate_displayName); class ADDON { disassembleTo = QGVAR(carryMortarBaseplate); }; }; // Static Weapons: class LandVehicle; class StaticWeapon: LandVehicle { class ACE_Actions { class ACE_MainActions { // Workaround for static weapons' Get In memory point being at the front of the gun class GVAR(getIn) { displayName = CSTRING(GetIn_displayName); condition = QUOTE(call FUNC(canGetIn)); statement = QUOTE(_player moveInTurret [ARR_2(_target,[0])]); }; }; }; }; class StaticMGWeapon: StaticWeapon {}; class HMG_01_base_F: StaticMGWeapon { // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; proxyWeapon = QGVAR(HMG_Static); magazineLocation = "_target selectionPosition 'magazine'"; disassembleWeapon = QGVAR(staticHMGCarry); // carry weapon [CfgWeapons] disassembleTurret = QGVAR(m3TripodLow); // turret [CfgVehicles] desiredAmmo = 100; ammoLoadTime = 7; ammoUnloadTime = 5; }; }; class HMG_01_high_base_F: HMG_01_base_F { class ADDON { enabled = 1; proxyWeapon = QGVAR(HMG_Static); magazineLocation = "_target selectionPosition 'magazine'"; disassembleWeapon = QGVAR(staticHMGCarry); // carry weapon [CfgWeapons] disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles] desiredAmmo = 100; ammoLoadTime = 7; ammoUnloadTime = 5; }; }; class HMG_01_A_base_F: HMG_01_base_F { class ADDON { enabled = 0; }; }; class HMG_02_base_F: StaticMGWeapon { class ADDON { enabled = 1; proxyWeapon = QGVAR(HMG_M2_Mounted); magazineLocation = "_target selectionPosition 'magazine'"; disassembleWeapon = QGVAR(staticM2ShieldCarry); // carry weapon [CfgWeapons] disassembleTurret = QGVAR(m3TripodLow); // turret [CfgVehicles] desiredAmmo = 100; ammoLoadTime = 7; ammoUnloadTime = 5; }; }; class HMG_02_high_base_F: HMG_02_base_F { class ADDON { enabled = 1; proxyWeapon = QGVAR(HMG_M2_Mounted); magazineLocation = "_target selectionPosition 'magazine'"; disassembleWeapon = QGVAR(staticM2ShieldCarry); // carry weapon [CfgWeapons] disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles] desiredAmmo = 100; ammoLoadTime = 7; ammoUnloadTime = 5; }; }; class GMG_TriPod; class GMG_01_base_F: GMG_TriPod { // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; proxyWeapon = QGVAR(GMG_20mm); // Weapon Proxy (Shorter Reload Time) [CfgWeapons] magazineLocation = "_target selectionPosition 'magazine'"; disassembleWeapon = QGVAR(staticGMGCarry); // carry weapon [CfgWeapons] disassembleTurret = QGVAR(m3TripodLow); // turret [CfgVehicles] desiredAmmo = 40; ammoLoadTime = 7; ammoUnloadTime = 5; }; }; class GMG_01_high_base_F: GMG_01_base_F { class ADDON { enabled = 1; proxyWeapon = QGVAR(GMG_20mm); // Weapon Proxy (Shorter Reload Time) [CfgWeapons] magazineLocation = "_target selectionPosition 'magazine'"; disassembleWeapon = QGVAR(staticGMGCarry); // carry weapon [CfgWeapons] disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles] desiredAmmo = 40; ammoLoadTime = 7; ammoUnloadTime = 5; }; }; class GMG_01_A_base_F: GMG_01_base_F { class ADDON { enabled = 0; }; }; class AT_01_base_F: StaticMGWeapon { // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; proxyWeapon = QGVAR(Titan_AT_Static); magazineLocation = "_target selectionPosition 'magazine'"; disassembleWeapon = QGVAR(staticATCarry); // carry weapon [CfgWeapons] disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles] desiredAmmo = 40; ammoLoadTime = 15; // 4 rounds per minute ammoUnloadTime = 10; }; }; class AA_01_base_F: StaticMGWeapon { // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; proxyWeapon = QGVAR(Titan_AA_Static); // Weapon Proxy (Shorter Reload Time) [CfgWeapons] magazineLocation = "_target selectionPosition 'magazine'"; disassembleWeapon = QGVAR(staticAACarry); // carry weapon [CfgWeapons] disassembleTurret = QGVAR(m3Tripod); // turret [CfgVehicles] desiredAmmo = 40; ammoLoadTime = 15; // 4 rounds per minute ammoUnloadTime = 10; }; }; class StaticMortar: StaticWeapon {}; class Mortar_01_base_F: StaticMortar { // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; magazineLocation = ""; disassembleWeapon = QGVAR(staticMortarCarry); // carry weapon [CfgWeapons] disassembleTurret = QGVAR(mortarBaseplate); // turret [CfgVehicles] desiredAmmo = 1; ammoLoadTime = 3; ammoUnloadTime = 3; }; }; // Ammo holder for returning ammo class ReammoBox_F; class GVAR(ammo_holder): ReammoBox_F { EGVAR(cargo,canLoad) = 0; EGVAR(cargo,noRename) = 1; EGVAR(dragging,canCarry) = 1; // Allow this to be moved alongside the weapon EGVAR(dragging,canDrag) = 1; scope = 1; maximumLoad = 0; // don't allow anything to be placed inside, only removed model = "\A3\Structures_F_EPB\Items\Military\Ammobox_rounds_F.p3d"; }; };