From c65ef5b178d70286bd2ed3433517b17a10320bc9 Mon Sep 17 00:00:00 2001 From: DartRuffian Date: Tue, 29 Oct 2024 12:16:20 -0500 Subject: [PATCH 1/2] Add eat/drink action to magazines --- addons/field_rations/XEH_postInit.sqf | 39 +++++++++++++++------------ 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/addons/field_rations/XEH_postInit.sqf b/addons/field_rations/XEH_postInit.sqf index 54feeef659f..6a2b454521e 100644 --- a/addons/field_rations/XEH_postInit.sqf +++ b/addons/field_rations/XEH_postInit.sqf @@ -74,26 +74,31 @@ if !(hasInterface) exitWith {}; } forEach _subActions; // Add inventory context menu option to consume items - ["ACE_ItemCore", ["CONTAINER"], LSTRING(EatDrink), [], QPATHTOF(ui\icon_survival.paa), - [ - {true}, - { - params ["", "", "_item"]; + private _eatOrDrinkCondition = [ + {true}, + { + params ["", "", "_item"]; - XGVAR(enabled) && { - private _config = configFile >> "CfgWeapons" >> _item; - getNumber (_config >> QXGVAR(thirstQuenched)) > 0 - || {getNumber (_config >> QXGVAR(hungerSatiated)) > 0} - } + XGVAR(enabled) && { + private _config = _item call CBA_fnc_getItemConfig; + getNumber (_config >> QXGVAR(thirstQuenched)) > 0 + || {getNumber (_config >> QXGVAR(hungerSatiated)) > 0} } - ], - { - params ["_unit", "", "_item"]; - private _itemConfig = configFile >> "CfgWeapons" >> _item; - [objNull, _unit, [_item, _itemConfig, false]] call FUNC(consumeItem); - false } - ] call CBA_fnc_addItemContextMenuOption; + ]; + private _eatOrDrinkStatement = { + params ["_unit", "", "_item"]; + private _itemConfig = _item call CBA_fnc_getItemConfig; + private _isMagazine = _item isKindOf ["CA_Magazine", configFile >> "CfgMagazines"]; + [objNull, _unit, [_item, _itemConfig, _isMagazine]] call FUNC(consumeItem); + false // Close context menu + }; + + { + [_x, ["CONTAINER"], LSTRING(EatDrink), [], QPATHTOF(ui\icon_survival.paa), + _eatOrDrinkCondition, _eatOrDrinkStatement + ] call CBA_fnc_addItemContextMenuOption; + } forEach ["ACE_ItemCore", "CA_Magazine"]; // Add water source helpers when interaction menu is opened ["ace_interactMenuOpened", LINKFUNC(addWaterSourceInteractions)] call CBA_fnc_addEventHandler; From d8ee97aab55bb43f95435e00610aa709220c650a Mon Sep 17 00:00:00 2001 From: Dart <59131299+DartRuffian@users.noreply.github.com> Date: Tue, 29 Oct 2024 14:16:04 -0500 Subject: [PATCH 2/2] Use isClass instead of isKindOf --- addons/field_rations/XEH_postInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/field_rations/XEH_postInit.sqf b/addons/field_rations/XEH_postInit.sqf index 6a2b454521e..ee921c5139a 100644 --- a/addons/field_rations/XEH_postInit.sqf +++ b/addons/field_rations/XEH_postInit.sqf @@ -89,7 +89,7 @@ if !(hasInterface) exitWith {}; private _eatOrDrinkStatement = { params ["_unit", "", "_item"]; private _itemConfig = _item call CBA_fnc_getItemConfig; - private _isMagazine = _item isKindOf ["CA_Magazine", configFile >> "CfgMagazines"]; + private _isMagazine = isClass (configFile >> "CfgMagazines" >> _item); [objNull, _unit, [_item, _itemConfig, _isMagazine]] call FUNC(consumeItem); false // Close context menu };