#include "..\script_component.hpp" /* * Author: Glowbal, mharis001 * Checks if the given treatment can be performed. * * Arguments: * 0: Medic * 1: Patient * 2: Body Part * 3: Treatment * * Return Value: * Can Treat * * Example: * [player, cursorObject, "Head", "SurgicalKit"] call ace_medical_treatment_fnc_canTreat * * Public: No */ params ["_medic", "_patient", "_bodyPart", "_classname"]; private _config = configFile >> QGVAR(actions) >> _classname; isClass _config && {_patient isKindOf "CAManBase"} && {_medic != _patient || {GET_NUMBER_ENTRY(_config >> "allowSelfTreatment") == 1}} && {[_medic, GET_NUMBER_ENTRY(_config >> "medicRequired")] call FUNC(isMedic)} && {[_medic, _patient, _config] call FUNC(canTreat_holsterCheck)} && { private _selections = getArray (_config >> "allowedSelections") apply {toLower _x}; "all" in _selections || {_bodyPart in _selections} } && { private _items = getArray (_config >> "items"); _items isEqualTo [] || {[_medic, _patient, _items] call FUNC(hasItem)} } && { GET_FUNCTION(_condition,_config >> "condition"); if (_condition isEqualType {}) then { if (_condition isEqualTo {}) exitWith { _condition = true; }; _condition = call _condition; }; _condition } && { switch (GET_NUMBER_ENTRY(_config >> "treatmentLocations")) do { case TREATMENT_LOCATIONS_ALL: {true}; case TREATMENT_LOCATIONS_VEHICLES: { IN_MED_VEHICLE(_medic) || {IN_MED_VEHICLE(_patient)} }; case TREATMENT_LOCATIONS_FACILITIES: { IN_MED_FACILITY(_medic) || {IN_MED_FACILITY(_patient)} }; case TREATMENT_LOCATIONS_VEHICLES_AND_FACILITIES: { IN_MED_VEHICLE(_medic) || {IN_MED_VEHICLE(_patient)} || {IN_MED_FACILITY(_medic)} || {IN_MED_FACILITY(_patient)} }; default {false}; }; } && { ((getNumber (_config >> "allowedUnderwater")) == 1) || {!([_medic] call ace_common_fnc_isSwimming)} }