From 05c9e4247b15baa7912d0ab9be6c5c0701c85a89 Mon Sep 17 00:00:00 2001 From: Will <100206101+SpicyBagpipes@users.noreply.github.com> Date: Sun, 9 Jul 2023 17:37:30 +0100 Subject: [PATCH] Logistics Wirecutter - Add modded class support (#9235) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update script_component.hpp Change check for wire cutters for all child classes in addition to current class * Update script_component.hpp fix bracket * Change isKindOf for alt syntax Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> * Update addons/logistics_wirecutter/script_component.hpp Better performing searching for wirecutter Co-authored-by: BrettMayson * Update XEH_postInit.sqf Index all possible wirecutters * Update script_component.hpp arrayIntersect with possible wirecutters * Update XEH_postInit.sqf Incorrect quotes * Update CfgWeapons.hpp Add iswirecutter to wirecutter * Update XEH_postInit.sqf Remove pointless parentheses * Update addons/logistics_wirecutter/script_component.hpp fix for incorrect arrayintersect check Co-authored-by: PabstMirror * Update addons/logistics_wirecutter/XEH_postInit.sqf Incorrect quoting Co-authored-by: Jouni Järvinen * use configClasses and cache at preStart --------- Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> Co-authored-by: BrettMayson Co-authored-by: PabstMirror Co-authored-by: Jouni Järvinen --- addons/logistics_wirecutter/CfgWeapons.hpp | 1 + addons/logistics_wirecutter/XEH_postInit.sqf | 2 ++ addons/logistics_wirecutter/XEH_preStart.sqf | 4 ++++ addons/logistics_wirecutter/script_component.hpp | 2 +- 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/logistics_wirecutter/CfgWeapons.hpp b/addons/logistics_wirecutter/CfgWeapons.hpp index cfaa6c3259..5c66196f4a 100644 --- a/addons/logistics_wirecutter/CfgWeapons.hpp +++ b/addons/logistics_wirecutter/CfgWeapons.hpp @@ -8,6 +8,7 @@ class CfgWeapons { descriptionShort = CSTRING(wirecutterDescription); model = QPATHTOF(data\ace_wirecutter.p3d); picture = QPATHTOF(ui\item_wirecutter_ca.paa); + ACE_isWirecutter = 1; scope = 2; class ItemInfo: CBA_MiscItem_ItemInfo { mass = 25; diff --git a/addons/logistics_wirecutter/XEH_postInit.sqf b/addons/logistics_wirecutter/XEH_postInit.sqf index a22479e7e1..29dc506396 100644 --- a/addons/logistics_wirecutter/XEH_postInit.sqf +++ b/addons/logistics_wirecutter/XEH_postInit.sqf @@ -7,3 +7,5 @@ if (hasInterface) then { if (isServer) then { [QGVAR(destroyFence), {_this call FUNC(destroyFence)}] call CBA_fnc_addEventHandler; }; + +GVAR(possibleWirecutters) = call (uiNamespace getVariable [QGVAR(possibleWirecutters), {[]}]); diff --git a/addons/logistics_wirecutter/XEH_preStart.sqf b/addons/logistics_wirecutter/XEH_preStart.sqf index 022888575e..75567fe26e 100644 --- a/addons/logistics_wirecutter/XEH_preStart.sqf +++ b/addons/logistics_wirecutter/XEH_preStart.sqf @@ -1,3 +1,7 @@ #include "script_component.hpp" #include "XEH_PREP.hpp" + +// Cache wirecutter item classes, see XEH_postInit.sqf +private _possibleWirecutters = ("getNumber (_x >> 'ACE_isWirecutter') == 1" configClasses (configFile >> "CfgWeapons")) apply {configName _x}; +uiNamespace setVariable [QGVAR(possibleWirecutters), compileFinal str _possibleWirecutters]; diff --git a/addons/logistics_wirecutter/script_component.hpp b/addons/logistics_wirecutter/script_component.hpp index a499b6ae32..7335ef2e57 100644 --- a/addons/logistics_wirecutter/script_component.hpp +++ b/addons/logistics_wirecutter/script_component.hpp @@ -88,7 +88,7 @@ #define CUT_TIME_ENGINEER 7.5 #define HAS_WIRECUTTER(unit) (\ - "ACE_wirecutter" in (unit call EFUNC(common,uniqueItems)) \ + ((unit call EFUNC(common,uniqueItems)) arrayIntersect GVAR(possibleWirecutters)) isNotEqualTo []\ || {getNumber ((configOf (backpackContainer unit)) >> QGVAR(hasWirecutter)) == 1} \ || {getNumber (configFile >> "CfgWeapons" >> (vest unit) >> QGVAR(hasWirecutter)) == 1} \ )