#include "script_component.hpp" /* * Author: Glowbal * Use Equipment items if any is available. Priority: 1) Medic, 2) Patient. If in vehicle: 3) Crew * * Arguments: * 0: Medic * 1: Patient * 2: Items > * * Return Value: * 0: success * 1: Unit * * Example: * [unit, patient, ["bandage"]] call ACE_medical_treatment_fnc_useItems * * Public: Yes */ #define HAS_USED_ITEM(itemUsedInfo) (itemUsedInfo select 0) #define GET_ITEM_USED_BY(itemUsedInfo) (itemUsedInfo select 1) params ["_medic", "_patient", "_items"]; private _itemsUsedBy = []; { // handle a one of type use item if (_x isEqualType []) then { { private _itemUsedInfo = [_medic, _patient, _x] call FUNC(useItem); if (HAS_USED_ITEM(_itemUsedInfo)) exitWith { _itemsUsedBy pushBack [GET_ITEM_USED_BY(_itemUsedInfo), _x]; }; } forEach _x; }; // handle required item if (_x isEqualType "") then { private _itemUsedInfo = [_medic, _patient, _x] call FUNC(useItem); if (HAS_USED_ITEM(_itemUsedInfo)) exitWith { _itemsUsedBy pushBack [GET_ITEM_USED_BY(_itemUsedInfo), _x]; }; }; } forEach _items; [count _items == count _itemsUsedBy, _itemsUsedBy];