ACE3/optionals/compat_rhs_afrf3/CfgVehicles.hpp
Fadi 4080482c38 ACE rearm/refuel/repair actions for RHS vehicles (#4230)
* Rearm/refuel/repair support for RHS USF vehicles
Particularily the HEMTT A4 family and M113 supply vehicle

* Rearm/refuel/repair support for RHS AFRF vehicles
Particularily the GAZ-66 and Ural family

* Fixing macro formatting, updating requiredAddons for #4230

* Fix inheritance for ace_actions
2016-08-27 03:45:35 -05:00

432 lines
17 KiB
C++

#define MACRO_REARM_TRUCK_ACTIONS \
class ACE_Actions: ACE_Actions { \
class ACE_MainActions: ACE_MainActions { \
class EGVAR(rearm,TakeAmmo) { \
displayName = ECSTRING(rearm,TakeAmmo); \
distance = 7; \
condition = QUOTE(_this call EFUNC(rearm,canTakeAmmo)); \
insertChildren = QUOTE(_target call EFUNC(rearm,addRearmActions)); \
exceptions[] = {"isNotInside"}; \
showDisabled = 0; \
priority = 2; \
icon = QPATHTOEF(rearm,ui\icon_rearm_interact.paa); \
}; \
class EGVAR(rearm,StoreAmmo) { \
displayName = ECSTRING(rearm,StoreAmmo); \
distance = 7; \
condition = QUOTE(_this call EFUNC(rearm,canStoreAmmo)); \
statement = QUOTE(_this call EFUNC(rearm,storeAmmo)); \
exceptions[] = {"isNotInside"}; \
icon = QPATHTOEF(rearm,ui\icon_rearm_interact.paa); \
}; \
}; \
};
#define MACRO_REFUEL_ACTIONS \
class ACE_Actions: ACE_Actions { \
class ACE_MainActions: ACE_MainActions { \
class EGVAR(refuel,Refuel) { \
displayName = ECSTRING(refuel,Refuel); \
distance = 7; \
condition = "true"; \
statement = ""; \
showDisabled = 0; \
priority = 2; \
icon = QPATHTOEF(refuel,ui\icon_refuel_interact.paa); \
class EGVAR(refuel,TakeNozzle) { \
displayName = ECSTRING(refuel,TakeNozzle); \
condition = QUOTE([ARR_2(_player,_target)] call EFUNC(refuel,canTakeNozzle)); \
statement = QUOTE([ARR_3(_player,_target,objNull)] call EFUNC(refuel,TakeNozzle)); \
exceptions[] = {"isNotInside"}; \
icon = QPATHTOEF(refuel,ui\icon_refuel_interact.paa); \
}; \
class EGVAR(refuel,CheckFuelCounter) { \
displayName = ECSTRING(refuel,CheckFuelCounter); \
condition = "true"; \
statement = QUOTE([ARR_2(_player,_target)] call EFUNC(refuel,readFuelCounter)); \
exceptions[] = {"isNotInside"}; \
icon = QPATHTOEF(refuel,ui\icon_refuel_interact.paa); \
}; \
class EGVAR(refuel,CheckFuel) { \
displayName = ECSTRING(refuel,CheckFuel); \
condition = QUOTE([ARR_2(_player,_target)] call EFUNC(refuel,canCheckFuel)); \
statement = QUOTE([ARR_2(_player,_target)] call EFUNC(refuel,checkFuel)); \
exceptions[] = {"isNotInside"}; \
icon = QPATHTOEF(refuel,ui\icon_refuel_interact.paa); \
}; \
class EGVAR(refuel,Connect) { \
displayName = ECSTRING(refuel,Connect); \
condition = QUOTE([ARR_2(_player,_target)] call EFUNC(refuel,canConnectNozzle)); \
statement = QUOTE([ARR_2(_player,_target)] call DEFUNC(refuel,connectNozzle)); \
exceptions[] = {"isNotInside"}; \
icon = QPATHTOEF(refuel,ui\icon_refuel_interact.paa); \
}; \
class EGVAR(refuel,Return) { \
displayName = ECSTRING(refuel,Return); \
condition = QUOTE([ARR_2(_player,_target)] call EFUNC(refuel,canReturnNozzle)); \
statement = QUOTE([ARR_2(_player,_target)] call DEFUNC(refuel,returnNozzle)); \
exceptions[] = {"isNotInside"}; \
icon = QPATHTOEF(refuel,ui\icon_refuel_interact.paa); \
}; \
}; \
}; \
};
class CfgVehicles {
class LandVehicle;
class Tank: LandVehicle {
class NewTurret;
};
class Tank_F: Tank {
class Turrets {
class MainTurret: NewTurret {
class Turrets {
class CommanderOptics;
};
};
};
};
class Car: LandVehicle {
class ACE_Actions {
class ACE_MainActions {};
};
};
class Car_F: Car {
class ViewPilot;
class NewTurret;
};
class Wheeled_APC_F: Car_F {
class NewTurret;
class Turrets {
class MainTurret: NewTurret
{
class ViewOptics;
};
};
class CommanderOptics;
};
class rhs_bmd_base: Tank_F {
EGVAR(refuel,fuelCapacity) = 300;
class Turrets: Turrets {
class CommanderOptics: NewTurret {
EGVAR(fcs,enabled) = 0;
};
class MainTurret: MainTurret {
EGVAR(fcs,enabled) = 0;
};
class GPMGTurret1: NewTurret {
EGVAR(fcs,enabled) = 0;
};
};
};
class rhs_bmp1tank_base: Tank_F {
EGVAR(refuel,fuelCapacity) = 460;
class Turrets: Turrets {
class MainTurret: MainTurret {
EGVAR(fcs,enabled) = 0;
};
class Com_BMP1: NewTurret {
EGVAR(fcs,enabled) = 0;
};
};
};
class rhs_bmp_base: rhs_bmp1tank_base {};
class rhs_bmp1_vdv: rhs_bmp_base {};
class rhs_bmp2e_vdv : rhs_bmp1_vdv {
class Turrets: Turrets {
class MainTurret: MainTurret {
class Turrets: Turrets {
class CommanderOptics : CommanderOptics {
EGVAR(fcs,enabled) = 0;
};
};
};
};
};
class rhs_bmp3tank_base: Tank_F {
EGVAR(refuel,fuelCapacity) = 460;
class Turrets: Turrets {
class MainTurret: MainTurret {
EGVAR(fcs,enabled) = 0;
class Turrets: Turrets {
class CommanderOptics: CommanderOptics {
EGVAR(fcs,enabled) = 0;
};
};
};
class GPMGTurret1: NewTurret {
EGVAR(fcs,enabled) = 0;
};
};
};
class rhs_btr_base: Wheeled_APC_F {
EGVAR(refuel,fuelCapacity) = 300;
class Turrets: Turrets {
class MainTurret: MainTurret {
EGVAR(fcs,enabled) = 0;
};
class CommanderOptics: CommanderOptics {
EGVAR(fcs,enabled) = 0;
};
};
};
class rhs_a3spruttank_base: Tank_F {
EGVAR(refuel,fuelCapacity) = 400;
class Turrets: Turrets {
class MainTurret: MainTurret {
EGVAR(fcs,enabled) = 0;
class Turrets: Turrets {
class CommanderOptics: CommanderOptics
{
EGVAR(fcs,enabled) = 0;
};
};
};
};
};
class rhs_bmd4_vdv: rhs_a3spruttank_base {
class Turrets: Turrets {
class MainTurret: MainTurret {
class Turrets: Turrets {
class CommanderOptics: CommanderOptics {};
};
};
class GPMGTurret1: NewTurret {
EGVAR(fcs,enabled) = 0;
};
};
};
class rhs_bmd4m_vdv: rhs_bmd4_vdv {
class Turrets: Turrets {
class MainTurret: MainTurret {
class Turrets: Turrets {
class CommanderOptics: CommanderOptics {};
};
};
class GPMGTurret1: GPMGTurret1 {};
class GPMGTurret2: GPMGTurret1 {
EGVAR(fcs,enabled) = 0;
};
};
};
class rhs_a3t72tank_base: Tank_F {
EGVAR(refuel,fuelCapacity) = 1200;
class Turrets: Turrets {
class MainTurret: MainTurret {
EGVAR(fcs,enabled) = 0;
class Turrets: Turrets {
class CommanderOptics: CommanderOptics {
EGVAR(fcs,enabled) = 0;
};
class CommanderMG: CommanderOptics {
EGVAR(fcs,enabled) = 0;
};
};
};
};
};
class rhs_t72bb_tv: rhs_a3t72tank_base {
ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}};
ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint", "era_29_hitpoint", "era_30_hitpoint", "era_31_hitpoint"}}};
};
class rhs_t72bc_tv: rhs_a3t72tank_base {
ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}};
ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint", "era_29_hitpoint", "era_30_hitpoint", "era_31_hitpoint", "era_32_hitpoint"}}};
};
class rhs_t72bd_tv: rhs_a3t72tank_base {
class rhs_t72bd_tv: rhs_a3t72tank_base {
ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}};
ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint", "era_29_hitpoint", "era_30_hitpoint", "era_31_hitpoint", "era_32_hitpoint"}}};
};
};
class rhs_t90_tv: rhs_t72bd_tv {
class Turrets: Turrets {
class MainTurret: MainTurret {
EGVAR(fcs,enabled) = 0;
class Turrets: Turrets {
class CommanderOptics: CommanderOptics {
EGVAR(fcs,enabled) = 0;
};
};
};
};
};
class rhs_tank_base: Tank_F {
EGVAR(refuel,fuelCapacity) = 1200;
class Turrets: Turrets {
class MainTurret: MainTurret {
EGVAR(fcs,enabled) = 0;
class Turrets: Turrets {
class CommanderOptics: CommanderOptics {
EGVAR(fcs,enabled) = 0;
};
class CommanderMG: CommanderOptics {
EGVAR(fcs,enabled) = 0;
};
};
};
};
};
class rhs_infantry_msv_base;
class rhs_pilot_base : rhs_infantry_msv_base
{
ace_gforcecoef = 0.55;
};
class O_Plane_CAS_02_F;
class RHS_su25_base : O_Plane_CAS_02_F {
EGVAR(refuel,fuelCapacity) = 3600;
};
class Helicopter_Base_F;
class Helicopter_Base_H: Helicopter_Base_F {
class EventHandlers;
};
class Heli_Light_02_base_F: Helicopter_Base_H {};
class RHS_Mi8_base : Heli_Light_02_base_F {
EGVAR(refuel,fuelCapacity) = 3700;
EGVAR(fastroping,enabled) = 0;
class EventHandlers: EventHandlers {
class RHS_EventHandlers;
};
};
class RHS_Mi8amt_base: RHS_Mi8_base {
EGVAR(fastroping,enabled) = 1;
EGVAR(fastroping,ropeOrigins)[] = {{-1.13, 4.67, -0.89}};
EGVAR(fastroping,onCut) = QFUNC(onCut);
EGVAR(fastroping,onPrepare) = QFUNC(onPrepare);
class UserActions {
class openDoor;
class closeDoor_L: openDoor {
condition = QUOTE((this doorPhase 'LeftDoor' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
};
};
class EventHandlers: EventHandlers {
class RHS_EventHandlers: RHS_EventHandlers {
getOut = QUOTE(if !((_this select 0) getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)]) then {_this call rhs_fnc_mi8_doors});
};
};
};
class RHS_Mi8_VVS_Base: RHS_Mi8_base {};
class RHS_Mi8mt_vvs: RHS_Mi8_VVS_Base {};
class RHS_Mi8mt_Cargo_vvs: RHS_Mi8mt_vvs {
EGVAR(fastroping,enabled) = 1;
EGVAR(fastroping,ropeOrigins)[] = {{-1.13, 4.67, -0.89}};
EGVAR(fastroping,onCut) = QFUNC(onCut);
EGVAR(fastroping,onPrepare) = QFUNC(onPrepare);
class UserActions {
class openDoor_L;
class closeDoor_L: openDoor_L {
condition = QUOTE((this doorPhase 'LeftDoor' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
};
};
class EventHandlers: EventHandlers {
class RHS_EventHandlers: RHS_EventHandlers {
getOut = QUOTE(if !((_this select 0) getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)]) then {_this call rhs_fnc_mi8_doors});
};
};
};
class Heli_Attack_02_base_F;
class RHS_Ka52_base : Heli_Attack_02_base_F {
EGVAR(refuel,fuelCapacity) = 1870;
EGVAR(fastroping,enabled) = 0;
};
class RHS_Mi24_base : Heli_Attack_02_base_F {
EGVAR(refuel,fuelCapacity) = 1851;
EGVAR(fastroping,enabled) = 0;
};
class rhs_t80b : rhs_tank_base {
EGVAR(refuel,fuelCapacity) = 1100;
};
class rhs_t80bv: rhs_t80b {
ace_repair_hitpointPositions[] = {{"era_1_hitpoint", {0,0,0}}};
ace_repair_hitpointGroups[] = {{"era_1_hitpoint", {"era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint", "era_8_hitpoint", "era_9_hitpoint", "era_10_hitpoint", "era_11_hitpoint", "era_12_hitpoint", "era_13_hitpoint", "era_14_hitpoint", "era_15_hitpoint", "era_16_hitpoint", "era_17_hitpoint", "era_18_hitpoint", "era_19_hitpoint", "era_20_hitpoint", "era_21_hitpoint", "era_22_hitpoint", "era_23_hitpoint", "era_24_hitpoint", "era_25_hitpoint", "era_26_hitpoint", "era_27_hitpoint", "era_28_hitpoint"}}};
};
class Truck_F: Car_F {};
class RHS_Ural_BaseTurret: Truck_F {
EGVAR(refuel,fuelCapacity) = 360;
};
class RHS_Ural_Base: RHS_Ural_BaseTurret {};
class RHS_Ural_MSV_Base: RHS_Ural_Base {};
class RHS_Ural_Support_MSV_Base_01: RHS_Ural_MSV_Base {};
class RHS_Ural_Fuel_MSV_01: RHS_Ural_Support_MSV_Base_01 {
transportFuel = 0;
MACRO_REFUEL_ACTIONS
EGVAR(refuel,hooks)[] = {{-0.05,-3.6,-0.45}};
EGVAR(refuel,fuelCargo) = 10000;
};
class rhs_truck : Truck_F {
EGVAR(refuel,fuelCapacity) = 210;
};
class rhs_gaz66_vmf: rhs_truck {};
class rhs_gaz66_repair_base: rhs_gaz66_vmf {
transportRepair = 0;
EGVAR(repair,canRepair) = 1;
};
class rhs_gaz66_ammo_base: rhs_gaz66_vmf {
transportAmmo = 0;
MACRO_REARM_TRUCK_ACTIONS
};
class MRAP_02_base_F;
class rhs_tigr_base : MRAP_02_base_F {
EGVAR(refuel,fuelCapacity) = 138;
};
class Offroad_01_base_f;
class RHS_UAZ_Base : Offroad_01_base_f {
EGVAR(refuel,fuelCapacity) = 78;
};
class APC_Tracked_02_base_F: Tank_F {
class Turrets: Turrets {
class MainTurret: MainTurret {};
};
};
class rhs_zsutank_base : APC_Tracked_02_base_F {
EGVAR(refuel,fuelCapacity) = 515;
class Turrets: Turrets {
class MainTurret: MainTurret {
EGVAR(fcs,enabled) = 0;
};
};
};
class rhs_btr60_base : rhs_btr_base {
EGVAR(refuel,fuelCapacity) = 290;
};
class rhs_btr70_vmf : rhs_btr_base {
EGVAR(refuel,fuelCapacity) = 350;
};
class rhs_btr70_msv : rhs_btr70_vmf {};
class rhs_btr80_msv : rhs_btr70_msv {
EGVAR(refuel,fuelCapacity) = 300;
};
class rhs_2s3tank_base : Tank_F {
EGVAR(refuel,fuelCapacity) = 830;
};
class OTR21_Base : Truck_F {
EGVAR(refuel,fuelCapacity) = 500;
};
};