ACE3/optionals/compat_gm/CfgVehicles.hpp
Dystopian 0321545098
Rearm - Add enable setting (#8067)
* Add enable setting

* Update test

* Optimize eden macro

* Fix bad command name in eden

* Apply suggestions from code review

Co-authored-by: jonpas <jonpas33@gmail.com>

* Cleanup unused argument

* Handle RHS config

* Optimize init function a little

* Improve macro

Co-authored-by: jonpas <jonpas33@gmail.com>

* compats and leftovers

* function header (sorry jonpas)

* add enabled check to initSupplyVehicle

* use toString

* fix validate

* inheritance cleanup

---------

Co-authored-by: jonpas <jonpas33@gmail.com>
Co-authored-by: LinkIsGrim <salluci.lovi@gmail.com>
2023-07-28 12:47:23 +03:00

451 lines
14 KiB
C++

class CfgVehicles {
// EXPLOSIVES
class Items_base_F;
class ACE_Explosives_Place: Items_base_F {
class ACE_Actions {
class ACE_MainActions;
};
};
// CHARGE
class ACE_Explosives_Place_gm_explosive_petn: ACE_Explosives_Place {
displayName = "PETN Charge";
model = "gm\gm_weapons\gm_put\gm_explosive_charge_petn";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.002, 0.022, 0.02]";
};
};
};
class ACE_Explosives_Place_gm_explosive_plnp: ACE_Explosives_Place {
displayName = "PLNP Charge";
model = "gm\gm_weapons\gm_put\gm_explosive_charge_plnp";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.002, 0.022, 0.02]";
};
};
};
// AT MINE
class ACE_Explosives_Place_gm_mine_tm46: ACE_Explosives_Place {
displayName = "AT Mine TM46";
model = "gm\gm_weapons\gm_put\gm_mine_at_tm46";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.002, 0.022, 0.02]";
};
};
};
class ACE_Explosives_Place_gm_explosive_dm21: ACE_Explosives_Place {
displayName = "AT Mine DM21";
model = "gm\gm_weapons\gm_put\gm_mine_at_dm21";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.002, 0.022, 0.02]";
};
};
};
class ACE_Explosives_Place_gm_explosive_m111: ACE_Explosives_Place {
displayName = "MN 111";
model = "gm\gm_weapons\gm_launchers\gm_platan\gm_mine_at_mn111_disarmed";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.002, 0.022, 0.02]";
};
};
};
// AP
class ACE_Explosives_Place_gm_explosive_dm31: ACE_Explosives_Place {
displayName = "AP Mine DM31";
model = "gm\gm_weapons\gm_put\gm_mine_ap_dm31";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.002, 0.022, 0.02]";
};
};
};
// REPAIR, REFUEL, REARM
class ReammoBox_F;
class gm_AmmoBox_base: ReammoBox_F {
EGVAR(cargo,size) = 1;
EGVAR(cargo,canLoad) = 1;
EGVAR(dragging,canCarry) = 1;
EGVAR(dragging,carryPosition)[] = {0,1,1};
EGVAR(dragging,carryDirection) = 0;
EGVAR(dragging,canDrag) = 1;
EGVAR(dragging,dragPosition)[] = {0,1.2,0};
EGVAR(dragging,dragDirection) = 0;
};
class gm_jerrycan_base;
class gm_jerrycan: gm_jerrycan_base {
EGVAR(cargo,size) = 1;
EGVAR(cargo,canLoad) = 1;
EGVAR(dragging,canCarry) = 1;
EGVAR(dragging,carryPosition)[] = {0,1,1};
EGVAR(dragging,carryDirection) = 0;
EGVAR(dragging,canDrag) = 1;
EGVAR(dragging,dragPosition)[] = {0,1.2,0};
EGVAR(dragging,dragDirection) = 0;
};
// STATIC
class gm_ge_army_shelteraceII_repair_base;
class gm_ge_army_shelteraceII_repair: gm_ge_army_shelteraceII_repair_base {
EGVAR(repair,canRepair) = 1;
};
class gm_gc_army_shelterlakII_repair_base;
class gm_gc_army_shelterlakII_repair: gm_gc_army_shelterlakII_repair_base {
EGVAR(repair,canRepair) = 1;
};
// W H E E L E D
class gm_wheeled_base;
class gm_wheeled_truck_base;
class gm_wheeled_APC_base;
class gm_wheeled_motorcycle_base;
// EAST
class gm_wheeled_car_base: gm_wheeled_base {
EGVAR(cargo,hasCargo) = 1;
EGVAR(cargo,space) = 4;
EGVAR(refuel,canReceive) = 1;
EGVAR(vehicle_damage,hullDetonationProb) = 0.2;
EGVAR(vehicle_damage,turretDetonationProb) = 0.03;
EGVAR(vehicle_damage,engineDetonationProb) = 0.03;
EGVAR(vehicle_damage,hullFireProb) = 0.6;
EGVAR(vehicle_damage,turretFireProb) = 0.1;
EGVAR(vehicle_damage,engineFireProb) = 0.2;
EGVAR(vehicle_damage,detonationDuringFireProb) = 0.2;
EGVAR(vehicle_damage,canHaveFireRing) = 0.1;
};
class gm_wheeled_bicycle_base: gm_wheeled_base {
EGVAR(cargo,hasCargo) = 0;
EGVAR(refuel,canReceive) = 0;
};
class gm_uaz469_base: gm_wheeled_car_base {
EGVAR(refuel,fuelCapacity) = 78;
};
class gm_p601_base: gm_wheeled_car_base {
EGVAR(refuel,fuelCapacity) = 26;
};
class gm_brdm2_base: gm_wheeled_APC_base {
EGVAR(refuel,fuelCapacity) = 290;
};
class gm_btr60_base: gm_wheeled_APC_base {
EGVAR(refuel,fuelCapacity) = 290;
EGVAR(cookoff,cookoffSelections)[] = {"commanderturret_hatch"};
};
class gm_ural4320_base: gm_wheeled_truck_base {
EGVAR(refuel,fuelCapacity) = 360;
};
class gm_ural4320_reammo_base: gm_ural4320_base {
EGVAR(rearm,defaultSupply) = 1200;
};
class gm_ural4320_refuel_base: gm_ural4320_base {
transportFuel = 0;
EGVAR(refuel,hooks)[] = {{-0.05,-3.6,-0.45}};
EGVAR(refuel,fuelCargo) = 10000;
};
class gm_ural4320_medic_base: gm_ural4320_base {
EGVAR(medical,medicClass) = 1;
};
class gm_ural4320_repair_base: gm_ural4320_base {
transportRepair = 0;
EGVAR(repair,canRepair) = 1;
};
// WEST
class gm_k125_base: gm_wheeled_motorcycle_base {
EGVAR(refuel,fuelCapacity) = 14.5;
};
class gm_typ1_base: gm_wheeled_car_base {
EGVAR(refuel,fuelCapacity) = 47.3;
};
class gm_iltis_base: gm_wheeled_car_base {
EGVAR(refuel,fuelCapacity) = 83;
};
class gm_u1300l_base: gm_wheeled_truck_base {
EGVAR(refuel,fuelCapacity) = 90;
};
class gm_u1300l_medic_base: gm_u1300l_base {
EGVAR(medical,medicClass) = 1;
};
class gm_kat1_base: gm_wheeled_truck_base {
EGVAR(refuel,fuelCapacity) = 270;
};
class gm_kat1_451_base;
class gm_kat1_451_refuel_base: gm_kat1_451_base {
gm_InsigniasDefaultHazardSign = "gm_insignia_hazard_fuelF54_wht";
EGVAR(refuel,fuelCargo) = 4600;
EGVAR(refuel,hooks)[] = {{-0.60,-3.44,-0.919689},{0.60,-3.44,-0.919689}};
};
class gm_kat1_454_base;
class gm_kat1_454_cargo_base: gm_kat1_454_base {
EGVAR(cargo,space) = 10;
};
class gm_fuchs_base: gm_wheeled_APC_base {
EGVAR(refuel,fuelCapacity) = 390;
};
class gm_fuchsa0_base;
class gm_fuchsa0_engineer_base: gm_fuchsa0_base {
transportRepair = 0;
EGVAR(repair,canRepair) = 1;
};
class gm_luchs_base: gm_wheeled_APC_base {
EGVAR(refuel,fuelCapacity) = 500;
EGVAR(cookoff,cookoffSelections)[] = {"mainturret_hatch", "commanderturret_hatch"};
};
// T R A C K E D
class Tank_F;
class gm_tracked_base: Tank_F {
EGVAR(cargo,hasCargo) = 1;
EGVAR(cargo,space) = 4;
EGVAR(refuel,canReceive) = 1;
};
class gm_tracked_APC_base: gm_tracked_base {
EGVAR(vehicle_damage,hullDetonationProb) = 0.03;
EGVAR(vehicle_damage,turretDetonationProb) = 0.03;
EGVAR(vehicle_damage,engineDetonationProb) = 0.03;
EGVAR(vehicle_damage,hullFireProb) = 0.3;
EGVAR(vehicle_damage,turretFireProb) = 0.1;
EGVAR(vehicle_damage,engineFireProb) = 0.2;
EGVAR(vehicle_damage,detonationDuringFireProb) = 0.2;
EGVAR(vehicle_damage,canHaveFireRing) = 0.1;
};
class gm_tracked_Tank_base: gm_tracked_base {
EGVAR(vehicle_damage,hullDetonationProb) = 0.01;
EGVAR(vehicle_damage,turretDetonationProb) = 0.01;
EGVAR(vehicle_damage,engineDetonationProb) = 0.01;
EGVAR(vehicle_damage,hullFireProb) = 0.2;
EGVAR(vehicle_damage,turretFireProb) = 0.1;
EGVAR(vehicle_damage,engineFireProb) = 0.2;
EGVAR(vehicle_damage,detonationDuringFireProb) = 0.2;
EGVAR(vehicle_damage,canHaveFireRing) = 0.1;
};
// EAST
class gm_bmp1_base: gm_tracked_APC_base {
EGVAR(map,vehicleLightColor)[] = {0,1,0,0.1};
EGVAR(refuel,fuelCapacity) = 460;
EGVAR(cookoff,cookoffSelections)[] = {"mainturret_hatch","commanderturret_hatch"};
};
class gm_pt76_base: gm_tracked_Tank_base {
EGVAR(refuel,fuelCapacity) = 250;
};
class gm_t55_base: gm_tracked_Tank_base {
EGVAR(refuel,fuelCapacity) = 900; // only with external tanks
EGVAR(cookoff,cookoffSelections)[] = {"machinegunturret_01_hatch","commanderturret_hatch"};
};
class gm_zsu234_base: gm_tracked_Tank_base {
EGVAR(refuel,fuelCapacity) = 812;
};
// WEST
class gm_Leopard1_base;
class gm_Leopard1a0_base: gm_Leopard1_base {
EGVAR(refuel,fuelCapacity) = 955;
EGVAR(cookoff,cookoffSelections)[] = {"mainturret_hatch_1","commanderturret_hatch"};
};
class gm_Gepard_base: gm_Leopard1_base {
EGVAR(refuel,fuelCapacity) = 985;
};
class gm_BPz2_base;
class gm_BPz2a0_base: gm_BPz2_base {
EGVAR(refuel,fuelCapacity) = 1160;
EGVAR(cookoff,cookoffSelections)[] = {"commanderturret_hatch"};
};
class gm_marder1_base: gm_tracked_APC_base {
EGVAR(refuel,fuelCapacity) = 652;
EGVAR(cookoff,cookoffSelections)[] = {"observerturret_hatch", "commanderturret_hatch"};
};
class gm_m113_base: gm_tracked_APC_base {
EGVAR(refuel,fuelCapacity) = 360;
};
class gm_m113a1g_base;
class gm_m113a1g_medic_base: gm_m113a1g_base {
EGVAR(medical,medicClass) = 1;
};
class gm_m113a1dk_base;
class gm_m113a1dk_engineer_base: gm_m113a1dk_base {
transportRepair = 0;
EGVAR(repair,canRepair) = 1;
};
class gm_m113a1dk_medic_base: gm_m113a1dk_base {
EGVAR(medical,medicClass) = 1;
};
// H E L I C O P T E R S
class Helicopter_Base_F;
class Helicopter_Base_H: Helicopter_Base_F {
class EventHandlers;
};
class gm_helicopter_base: Helicopter_Base_H {};
// WEST
class gm_bo105_base: gm_helicopter_base {
EGVAR(map,vehicleLightColor)[] = {1,0,0,0.1};
EGVAR(refuel,fuelCapacity) = 3700;
EGVAR(fastroping,enabled) = 0;
class UserActions {
class openDoor_L {
displayNameDefault = "Open left Door";
displayName = "Open left Door";
position = "";
radius = 2.7;
onlyForPlayer = 1;
condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
statement = "this animateDoor ['door_2_1_source',1]";
};
class openDoor_R: openDoor_L {
displayNameDefault = "Open right Door";
displayName = "Open right Door";
condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
statement = "this animateDoor ['door_2_2_source',1]";
};
class closeDoor_L {
displayNameDefault = "Close left Door";
displayName = "Close left Door";
position = "";
radius = 2.7;
onlyForPlayer = 1;
condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
statement = "this animateDoor ['door_2_1_source',0]";
};
class closeDoor_R: closeDoor_L {
displayNameDefault = "Close right Door";
displayName = "Close right Door";
condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
statement = "this animateDoor ['door_2_2_source',0]";
};
};
};
class gm_bo105p1m_vbh_base;
class gm_bo105p1m_vbh_swooper_base: gm_bo105p1m_vbh_base {
EGVAR(fastroping,enabled) = 1;
EGVAR(fastroping,ropeOrigins)[] = {{-1.34,0.695,-0.0757732},{1.34,0.695,-0.0973468}};
EGVAR(fastroping,onCut) = QFUNC(onCut);
EGVAR(fastroping,onCutRopes) = QFUNC(onCutRopes);
EGVAR(fastroping,onDeployRopes) = QFUNC(onDeployRopes);
EGVAR(fastroping,onPrepare) = QFUNC(onPrepare);
};
class gm_ch53_base: gm_helicopter_base {
EGVAR(map,vehicleLightColor)[] = {1,0,0,0.1};
EGVAR(fastroping,enabled) = 1;
EGVAR(fastroping,ropeOrigins)[] = {{0.6, -5.2, -0.8},{-0.6, -5.2, -0.8}};
EGVAR(refuel,fuelCapacity) = 3850;
EGVAR(fastroping,onCut) = QFUNC(onCut);
EGVAR(fastroping,onPrepare) = QFUNC(onPrepare);
};
class gm_ch53g_base: gm_ch53_base {
EGVAR(refuel,fuelCapacity) = 8770;
};
// EAST
class gm_mi2_base: gm_helicopter_base {
EGVAR(map,vehicleLightColor)[] = {1,0,0,0.1};
EGVAR(fastroping,enabled) = 1;
EGVAR(fastroping,ropeOrigins)[] = {{-1.17969,0.0205078,-0.178533}};
EGVAR(refuel,fuelCapacity) = 600;
EGVAR(fastroping,onCut) = QFUNC(onCut);
EGVAR(fastroping,onPrepare) = QFUNC(onPrepare);
};
class gm_mi2sr_base: gm_mi2_base {
EGVAR(refuel,fuelCapacity) = 1076;
};
class gm_mi2p_base: gm_mi2_base {
EGVAR(refuel,fuelCapacity) = 1076;
};
class gm_mi2ch_base: gm_mi2_base {
EGVAR(refuel,fuelCapacity) = 1076;
};
class gm_mi2platan_base: gm_mi2_base {
EGVAR(refuel,fuelCapacity) = 1076;
};
// P L A N E S
class Plane_Base_F;
class gm_plane_base: Plane_Base_F {
EGVAR(refuel,canReceive) = 1;
EGVAR(cargo,hasCargo) = 1;
EGVAR(cargo,space) = 4;
};
// EAST
class gm_l410_base: gm_plane_base {
EGVAR(refuel,fuelCapacity) = 1300;
};
// WEST
class gm_do28d2_base: gm_plane_base {
EGVAR(refuel,fuelCapacity) = 894; // source mondkalb
};
class gm_do28d2_medevac_base: gm_do28d2_base {
EGVAR(medical,medicClass) = 1;
};
};