diff --git a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf index 9eb214d8c2..3f31a7e841 100644 --- a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf +++ b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf @@ -60,7 +60,7 @@ if !(_unit call EFUNC(common,isSwimming)) then { !isNull _fence && {damage _fence < 1} - && {"ACE_wirecutter" in ([_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems)} + && {HAS_WIRECUTTER(_player)} }, ["isNotSwimming"] ] call EFUNC(common,progressBar); diff --git a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf index 7a9bb01602..9e64f9edb4 100644 --- a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf +++ b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf @@ -24,7 +24,7 @@ params ["_interactionType"]; if ( _interactionType != 0 || {vehicle ACE_player != ACE_player} - || {!("ACE_wirecutter" in ([ACE_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems))} + || {!HAS_WIRECUTTER(ACE_player)} ) exitWith {}; TRACE_1("Starting wirecuter interact PFH",_interactionType); @@ -53,7 +53,7 @@ TRACE_1("Starting wirecuter interact PFH",_interactionType); !isNull _attachedFence && {damage _attachedFence < 1} - && {"ACE_wirecutter" in ([_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems)} + && {HAS_WIRECUTTER(_player)} && {[_player, _attachedFence, ["isNotSwimming"]] call EFUNC(common,canInteractWith)} && { // Custom LOS check for fence diff --git a/addons/logistics_wirecutter/script_component.hpp b/addons/logistics_wirecutter/script_component.hpp index 19d1b159b7..f971acd88f 100644 --- a/addons/logistics_wirecutter/script_component.hpp +++ b/addons/logistics_wirecutter/script_component.hpp @@ -56,3 +56,9 @@ #define SOUND_CLIP_TIME_SPACING 1.5 #define CUT_TIME_DEFAULT 11 #define CUT_TIME_ENGINEER 7.5 + +#define HAS_WIRECUTTER(unit) (\ + "ACE_wirecutter" in ([ARR_6(unit, false, true, true, true, false)] call CBA_fnc_uniqueUnitItems) \ + || {1 == getNumber (configFile >> "CfgVehicles" >> (backpack unit) >> QGVAR(hasWirecutter))} \ + || {1 == getNumber (configFile >> "CfgWeapons" >> (vest unit) >> QGVAR(hasWirecutter))} \ +) diff --git a/optionals/compat_rhs_afrf3/CfgVehicles.hpp b/optionals/compat_rhs_afrf3/CfgVehicles.hpp index 60c6b78d9a..6d27039836 100644 --- a/optionals/compat_rhs_afrf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_afrf3/CfgVehicles.hpp @@ -218,4 +218,9 @@ class CfgVehicles { class OTR21_Base: Truck_F { EGVAR(refuel,fuelCapacity) = 500; }; + + class rhs_assault_umbts; + class rhs_assault_umbts_engineer: rhs_assault_umbts { + EGVAR(logistics_wirecutter,hasWirecutter) = 1; + }; };