#include "script_component.hpp" /* * Author: BaerMitUmlaut, mharis001 * Creates actions for treatments from config and adds them to the interaction menu. * * Arguments: * None * * Return Value: * None * * Example: * [] call ace_medical_gui_fnc_addTreatmentActions * * Public: No */ private _actionsConfig = configFile >> QEGVAR(medical_treatment,actions); private _actionPaths = ["ACE_Head", "ACE_Torso", "ACE_ArmLeft", "ACE_ArmRight", "ACE_LegLeft", "ACE_LegRight"]; private _fnc_statement = { params ["_target", "_player", "_args"]; _args params ["_bodyPart", "_treatmentName"]; [_player, _target, _bodyPart, _treatmentName] call EFUNC(medical_treatment,treatment); }; private _fnc_condition = { params ["_target", "_player", "_args"]; _args params ["_bodyPart", "_treatmentName"]; [_player, _target, _bodyPart, _treatmentName] call EFUNC(medical_treatment,canTreatCached); }; { private _configName = configName _x; private _actionName = format [QGVAR(_%1), _configName]; private _displayName = getText (_x >> "displayName"); private _icon = getText (_x >> "icon"); private _allowedBodyParts = getArray (_x >> "allowedSelections") apply {toLower _x}; if (_allowedBodyParts isEqualTo ["all"]) then { _allowedBodyParts = ALL_BODY_PARTS apply {toLower _x}; }; { private _bodyPart = _x; private _actionPath = _actionPaths select (ALL_BODY_PARTS find toLower _bodyPart); private _action = [ _actionName, _displayName, _icon, _fnc_statement, _fnc_condition, {}, [_bodyPart, _configName], {[0, 0, 0]}, 2, [false, true, false, false, false] ] call EFUNC(interact_menu,createAction); ["CAManBase", 0, [_actionPath], _action, true] call EFUNC(interact_menu,addActionToClass); ["CAManBase", 0, ["ACE_MainActions", "ACE_Medical_Radial", _actionPath], _action, true] call EFUNC(interact_menu,addActionToClass); GVAR(selfInteractionActions) pushBack ["", 1, ["ACE_SelfActions", "ACE_Medical", _actionPath], _action]; } forEach _allowedBodyParts; } forEach configProperties [_actionsConfig, "isClass _x"];