ACE3/addons/csw/CfgVehicles.hpp
Grim ee79decb45
CSW - Code cleanup (#9777)
Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
2024-02-07 20:36:13 -03:00

288 lines
10 KiB
C++

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";
};
};