mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
4080482c38
* 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
432 lines
17 KiB
C++
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;
|
|
};
|
|
};
|