From 39cbf21278cfc1b8ad648f6c0884b6e733cc1ea9 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Thu, 9 Apr 2015 20:12:30 +0200 Subject: [PATCH 1/4] Removed deprecated carry functions --- addons/medical/XEH_preInit.sqf | 4 - .../medical/functions/fnc_actionCarryUnit.sqf | 87 ------------------- .../medical/functions/fnc_actionDropUnit.sqf | 23 ----- addons/medical/functions/fnc_canCarry.sqf | 29 ------- .../functions/fnc_onCarryObjectDropped.sqf | 85 ------------------ 5 files changed, 228 deletions(-) delete mode 100644 addons/medical/functions/fnc_actionCarryUnit.sqf delete mode 100644 addons/medical/functions/fnc_actionDropUnit.sqf delete mode 100644 addons/medical/functions/fnc_canCarry.sqf delete mode 100644 addons/medical/functions/fnc_onCarryObjectDropped.sqf diff --git a/addons/medical/XEH_preInit.sqf b/addons/medical/XEH_preInit.sqf index 56056de0c6..c18a116e31 100644 --- a/addons/medical/XEH_preInit.sqf +++ b/addons/medical/XEH_preInit.sqf @@ -11,8 +11,6 @@ PREP(actionPlaceInBodyBag); PREP(actionRemoveTourniquet); PREP(actionLoadUnit); PREP(actionUnloadUnit); -PREP(actionCarryUnit); -PREP(actionDropUnit); PREP(addHeartRateAdjustment); PREP(addToInjuredCollection); PREP(addToLog); @@ -22,7 +20,6 @@ PREP(addUnloadPatientActions); PREP(canAccessMedicalEquipment); PREP(canTreat); PREP(canTreatCached); -PREP(canCarry); PREP(createLitter); PREP(determineIfFatal); PREP(getBloodLoss); @@ -61,7 +58,6 @@ PREP(itemCheck); PREP(onMedicationUsage); PREP(onWoundUpdateRequest); PREP(onPropagateWound); -PREP(onCarryObjectDropped); PREP(parseConfigForInjuries); PREP(playInjuredSound); PREP(selectionNameToNumber); diff --git a/addons/medical/functions/fnc_actionCarryUnit.sqf b/addons/medical/functions/fnc_actionCarryUnit.sqf deleted file mode 100644 index 1653c11027..0000000000 --- a/addons/medical/functions/fnc_actionCarryUnit.sqf +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Author: Glowbal - * makes the calling unit start carrying the specified unit - * - * Arguments: - * 0: The caller - * 1: The target - * 2: Carry object. True is carry, false is dragging - * - * Return Value: - * NONE - * - * Public: No - */ - -#include "script_component.hpp" - -private ["_caller", "_target", "_positionUnit", "_carry"]; -_caller = _this select 0; -_target = _this select 1; -_carry = _this select 2; - -if (!(_target isKindOf "CaManBase") || !(_caller isKindOf "CaManBase")) exitwith{ }; -if (vehicle _caller != _caller || vehicle _target != _target) exitwith {}; -if (!([_caller] call EFUNC(common,canInteract)) || {_caller == _target} || {(([_target] call EFUNC(common,isAwake)))}) exitwith {}; - -if (!alive _target) exitwith { - if (GVAR(allowDeadBodyMovement)) then { - [{ - _this call FUNC(actionCarryUnit); - }, [_caller, ([_target,_caller] call FUNC(copyDeadBody)), _carry], 0.25, 0.25] call EFUNC(common,waitAndExecute); - }; -}; - -if !([_caller,_target] call EFUNC(common,carryObj)) exitwith {}; - -if (primaryWeapon _caller == "") then { - _caller addWeapon "ACE_FakePrimaryWeapon"; -}; -if (currentWeapon _caller != (primaryWeapon _caller)) then { - _caller selectWeapon (primaryWeapon _caller); -}; - -if (_carry) then { - _target attachTo [_caller, [0.1, -0.1, -1.25], "LeftShoulder"]; - [_target, "AinjPfalMstpSnonWnonDf_carried_dead", 2, true] call EFUNC(common,doAnimation); - [_caller, "acinpercmstpsraswrfldnon", 1] call EFUNC(common,doAnimation); -} else { - _target attachTo [_caller, [0.125, 1.007, 0]]; - _target setDir (getDir _target + 180) % 360; - _target setPos ((getPos _target) vectorAdd ((vectorDir _caller) vectorMultiply 1.5)); - [_caller, "AcinPknlMstpSrasWrflDnon", 1] call EFUNC(common,doAnimation); - [_target, "AinjPpneMstpSnonWrflDb", 2, true] call EFUNC(common,doAnimation); -}; - -[ - 2, - [_caller, _target, _carry], - { - private ["_caller","_target", "_carry", "_args"]; - _args = _this select 0; - _caller = _args select 0; - _target = _args select 1; - _carry = _args select 2; - - _target setvariable [QGVAR(beingCarried), _caller, true]; - _caller setvariable [QGVAR(carrying), _target, true]; - _caller setvariable [QGVAR(isCarrying), if (_carry) then {1} else {0}, true]; - - // Removing any old drop scroll wheel actions - // TODO Do we still want scroll wheel actions? - if (!isnil QGVAR(DROP_ADDACTION)) then { - _caller removeAction GVAR(DROP_ADDACTION); - GVAR(DROP_ADDACTION) = nil; - }; - // Adding the drop scroll wheel action. - GVAR(DROP_ADDACTION) = _caller addAction [format["Drop %1",[_target] call EFUNC(common,getName)], {[_this select 1, _this select 2] call FUNC(actionDropUnit);}]; - - [_target, true] call EFUNC(common,disableAI); - }, - { - [(_this select 0), objNull,[0, 0, 0]] call EFUNC(common,carryObj); - // TODO reset animations.. - }, - if (_carry) then {localize "STR_ACE_MEDICAL_ACTION_CARRY"} else {localize "STR_ACE_MEDICAL_ACTION_DRAG"}, - {true} -] call EFUNC(common,progressBar); diff --git a/addons/medical/functions/fnc_actionDropUnit.sqf b/addons/medical/functions/fnc_actionDropUnit.sqf deleted file mode 100644 index 53883c93c1..0000000000 --- a/addons/medical/functions/fnc_actionDropUnit.sqf +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Author: Glowbal - * Drop a unit if the caller nit is currently dragging or carrying a unit - * - * Arguments: - * 0: The caller - * - * Return Value: - * NONE - * - * Public: No - */ - -#include "script_component.hpp" - -private "_caller"; -_caller = _this select 0; - -if (!isnil QGVAR(DROP_ADDACTION)) then { - [_caller,objNull] call EFUNC(common,carryObj); - _caller removeAction GVAR(DROP_ADDACTION); - GVAR(DROP_ADDACTION) = nil; -}; diff --git a/addons/medical/functions/fnc_canCarry.sqf b/addons/medical/functions/fnc_canCarry.sqf deleted file mode 100644 index a7db1f6cc3..0000000000 --- a/addons/medical/functions/fnc_canCarry.sqf +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Author: Glowbal - * Check if caller can carry or drag the target - * - * Arguments: - * 0: The caller - * 1: The target - * - * Return Value: - * NONE - * - * Public: No - */ - -#include "script_component.hpp" - - private ["_caller", "_target", "_positionUnit", "_carry"]; -_caller = _this select 0; -_target = _this select 1; - -if (!(_target isKindOf "CaManBase") || !(_caller isKindOf "CaManBase")) exitwith{false}; - -if (vehicle _caller != _caller || vehicle _target != _target) exitwith {false}; - -if (!([_caller] call EFUNC(common,canInteract)) || {_caller == _target} || {(([_target] call EFUNC(common,isAwake)))}) exitwith {false}; - -if (!alive _target) exitwith {GVAR(allowDeadBodyMovement)}; - -((isNull ([_caller] call FUNC(getCarriedObj))) && {isNull ([_target] call FUNC(getCarriedObj))} && {isNull ([_caller] call FUNC(getCarriedBy))} && {isNull ([_target] call FUNC(getCarriedBy))}) diff --git a/addons/medical/functions/fnc_onCarryObjectDropped.sqf b/addons/medical/functions/fnc_onCarryObjectDropped.sqf deleted file mode 100644 index 6a6a990d53..0000000000 --- a/addons/medical/functions/fnc_onCarryObjectDropped.sqf +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Author: Glowbal - * Called on event CarryObjectDropped - * - * Arguments: - * 0: The caller - * - * Return Value: - * NONE - * - * Public: No - */ - -#include "script_component.hpp" - -private ["_unit","_params"]; -_caller = _this select 0; -_target = _caller getvariable [QGVAR(carrying), objNull]; -_carrying = _caller getvariable [QGVAR(isCarrying), -1]; - -if (_carrying >= 0) then { - if !(isNull (_target getvariable [QGVAR(copyOfUnit), objNull])) then { - _copy = _target; - _target = _copy getvariable [QGVAR(copyOfUnit), objNull]; - if (isMultiplayer) then { - _target hideObjectGlobal false; - } else { - _target hideObject false; - }; - detach _copy; - deleteVehicle _copy; - _target setvariable [QGVAR(disableInteraction), nil, true]; - _target setvariable [QGVAR(hasCopy), nil, true]; - }; - - _caller setvariable [QGVAR(isCarrying), -1, true]; - if (primaryWeapon _caller == "ACE_FakePrimaryWeapon") then { - _caller removeWeapon "ACE_FakePrimaryWeapon"; - }; - - [_target, false] call EFUNC(common,disableAI); - _caller setvariable[QGVAR(onStartMovingUnitParams), nil]; - - // handle the drag & carry administration - if (_carrying == 0) then { - _target setvariable [QGVAR(beingDragged), nil, true]; - _caller setvariable [QGVAR(dragging), nil, true]; - } else { - _target setvariable [QGVAR(beingCarried), nil, true]; - _caller setvariable [QGVAR(carrying), nil, true]; - }; - - // handle the drag & carry animiations - if ([_caller] call EFUNC(common,isAwake) && (vehicle _caller == _caller)) then { - [_caller,"amovpercmstpsraswrfldnon_amovpknlmstpslowwrfldnon", 1] call EFUNC(common,doAnimation); - }; - - if (vehicle _target == _target) then { - if (_carrying == 0) then { - [_target,"AinjPpneMstpSnonWrflDb_release", 2, true] call EFUNC(common,doAnimation); - } else { - [_target,"AinjPfalMstpSnonWrflDnon_carried_Down", 2, true] call EFUNC(common,doAnimation); - }; - } else { - if ([_target] call EFUNC(common,isAwake)) then { - [_target,"", 2] call EFUNC(common,doAnimation); // TODO play animation for the current seat instead - } else { - // this might not work properly - [_target,([_target] call EFUNC(common,getDeathAnim)), 1] call EFUNC(common,doAnimation); - }; - }; - - // Ensure that the unit does not get dropped through the floor of a building - if (!surfaceIsWater getPos _caller) then { - [{ - EXPLODE_3_PVT(_this,_caller,_target,_killOnDrop); - if (vehicle _target == _target && (vehicle _caller == _caller)) then { - // This will set the target body/unit on the correct position, so it doesn't fall through floors. - _positionUnit = getPosATL _target; - _positionUnit set [2, (getPosATL _caller) select 2]; - _target setPosATL _positionUnit; - }; - }, [_caller,_target], 0.5, 0.5] call EFUNC(common,waitAndExecute); - }; -}; \ No newline at end of file From 0926397ab456c711cc53b586cf2ad3a1c7b7f747 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Thu, 9 Apr 2015 20:13:46 +0200 Subject: [PATCH 2/4] Removed deadcode and obvious comments --- addons/medical/functions/fnc_setUnconscious.sqf | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/addons/medical/functions/fnc_setUnconscious.sqf b/addons/medical/functions/fnc_setUnconscious.sqf index dcd3f98f05..c518b93a97 100644 --- a/addons/medical/functions/fnc_setUnconscious.sqf +++ b/addons/medical/functions/fnc_setUnconscious.sqf @@ -28,12 +28,10 @@ if !(_set) exitwith { if !(!(isNull _unit) && {(_unit isKindOf "CaManBase") && ([_unit] call EFUNC(common,isAwake))}) exitwith{}; -// We only want this function to work on local machines if (!local _unit) exitwith { [[_unit], QUOTE(DFUNC(setUnconscious)), _unit, false] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ }; -// Set the unit in the unconscious state. _unit setvariable ["ACE_isUnconscious", true, true]; _unit setUnconscious true; @@ -85,9 +83,8 @@ _startingTime = time; _startingTime = _args select 3; _minWaitingTime = _args select 4; _hasMovedOut = _args select 5; - // Since the unit is no longer alive, get rid of this PFH. + if (!alive _unit) exitwith { - // EXIT PFH [(_this select 1)] call cba_fnc_removePerFrameHandler; }; @@ -132,19 +129,10 @@ _startingTime = time; // Ensure we are waiting at least a minimum period before checking if we can wake up the unit again, allows for temp knock outs if ((time - _startingTime) >= _minWaitingTime) exitwith { - // Wait until the unit is no longer unconscious if (!([_unit] call FUNC(getUnconsciousCondition))) then { - // Move unit out of unconscious state _unit setvariable ["ACE_isUnconscious", false, true]; }; }; - - // A check to ensure that the animation is being played properly. - // TODO: Might no longer be necessary: Have to test this in MP. - // if (vehicle _unit == _unit && {animationState _unit != "deadState" && animationState _unit != "unconscious"} && {(isNull ([_unit] call EFUNC(common,getCarriedBy)))} && (time - _startingTime >= 0.5)) then { - //[_unit,([_unit] call FUNC(getDeathAnim)), 1, true] call EFUNC(common,doAnimation); // Reset animations if unit starts doing wierd things. - //}; - }, 0.1, [_unit,_animState, _originalPos, _startingTime, _minWaitingTime, false] ] call CBA_fnc_addPerFrameHandler; ["medical_onUnconscious", [_unit, true]] call EFUNC(common,globalEvent); From 093d340ee7108abda5e901ab010c792f2010ac42 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Thu, 9 Apr 2015 21:23:10 +0200 Subject: [PATCH 3/4] Changed: Dragging/carrying now works for units with broken legs Added unload and load of unconscious units --- addons/dragging/functions/fnc_canCarry.sqf | 2 +- addons/dragging/functions/fnc_canDrag.sqf | 2 +- .../functions/fnc_handleUnconscious.sqf | 2 + addons/medical/ACE_Medical_Actions.hpp | 1497 +++++++++-------- addons/medical/CfgVehicles.hpp | 100 +- .../medical/functions/fnc_actionLoadUnit.sqf | 6 + addons/medical/stringtable.xml | 3 + 7 files changed, 782 insertions(+), 830 deletions(-) diff --git a/addons/dragging/functions/fnc_canCarry.sqf b/addons/dragging/functions/fnc_canCarry.sqf index 24426d0e3a..41fe91cc42 100644 --- a/addons/dragging/functions/fnc_canCarry.sqf +++ b/addons/dragging/functions/fnc_canCarry.sqf @@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false}; // a static weapon has to be empty for dragging if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false}; -alive _target && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false])} +alive _target && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || ((_target getHitPointDamage "HitLeftLeg") + (_target getHitPointDamage "HitRightLeg") > 0.4)} diff --git a/addons/dragging/functions/fnc_canDrag.sqf b/addons/dragging/functions/fnc_canDrag.sqf index f0e269983a..95ce15222b 100644 --- a/addons/dragging/functions/fnc_canDrag.sqf +++ b/addons/dragging/functions/fnc_canDrag.sqf @@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false}; // a static weapon has to be empty for dragging if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false}; -alive _target && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false])} +alive _target && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || ((_target getHitPointDamage "HitLeftLeg") + (_target getHitPointDamage "HitRightLeg") > 0.4)} diff --git a/addons/dragging/functions/fnc_handleUnconscious.sqf b/addons/dragging/functions/fnc_handleUnconscious.sqf index 6ca9609b63..41562756a2 100644 --- a/addons/dragging/functions/fnc_handleUnconscious.sqf +++ b/addons/dragging/functions/fnc_handleUnconscious.sqf @@ -9,6 +9,8 @@ _isUnconscious = _this select 1; private "_player"; _player = ACE_player; +if ((_unit getHitPointDamage "HitLeftLeg") + (_unit getHitPointDamage "HitRightLeg") > 0.4) exitwith {}; + if (_player getVariable [QGVAR(isDragging), false]) then { private "_draggedObject"; diff --git a/addons/medical/ACE_Medical_Actions.hpp b/addons/medical/ACE_Medical_Actions.hpp index 1fd6a99252..72263c0b45 100644 --- a/addons/medical/ACE_Medical_Actions.hpp +++ b/addons/medical/ACE_Medical_Actions.hpp @@ -1,760 +1,761 @@ - class ACE_Head { - displayName = "$STR_ACE_Interaction_Head"; - runOnHover = 1; - statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); - EXCEPTIONS - icon = PATHTOF(UI\icons\medical_cross.paa); - distance = MEDICAL_ACTION_DISTANCE; - class Bandage { - displayName = "$STR_ACE_Medical_Bandage_HitHead"; - distance = 2.0; - condition = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 1; - priority = 2; - hotkey = "B"; - icon = PATHTOF(UI\icons\bandage.paa); - }; - // Advanced medical - class FieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; - distance = 5.0; - condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 0; - priority = 2; - hotkey = ""; - icon = PATHTOF(UI\icons\bandage.paa); - }; - class PackingBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; - condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\packingBandage.paa); - }; - class ElasticBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; - condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\bandage.paa); - }; - class QuikClot: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; - condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\bandage.paa); - }; - class CheckPulse: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; - condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment)); - EXCEPTIONS - icon = ""; - }; - class CheckBloodPressure: CheckPulse { - displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; - condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment)); - EXCEPTIONS - }; - class CheckResponse: CheckPulse { - displayName = "Check Response"; - condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(treatment)); - EXCEPTIONS - }; - }; - class ACE_Torso { - displayName = "$STR_ACE_Interaction_Torso"; - runOnHover = 1; - statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation)); - EXCEPTIONS - icon = PATHTOF(UI\icons\medical_cross.paa); - distance = MEDICAL_ACTION_DISTANCE; - class Bandage { - displayName = "$STR_ACE_Medical_Bandage_HitBody"; - distance = 2.0; - condition = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 1; - priority = 2; - hotkey = "B"; - enableInside = 1; - icon = PATHTOF(UI\icons\bandage.paa); - }; - class PlaceInBodyBag { - displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag"; - distance = 2.0; - condition = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 1; - priority = 2; - hotkey = ""; - enableInside = 1; - }; - class TriageCard { - displayName = "Triage Card"; - distance = 2.0; - condition = "true"; - statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard)); - EXCEPTIONS - showDisabled = 1; - priority = 2; - hotkey = ""; - enableInside = 1; - icon = PATHTOF(UI\icons\triageCard.paa); - }; - // Advanced medical - class FieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; - distance = 5.0; - condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 0; - priority = 2; - hotkey = ""; - enableInside = 1; - icon = PATHTOF(UI\icons\bandage.paa); - }; - class PackingBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; - condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\packingBandage.paa); - }; - class ElasticBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; - condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\bandage.paa); - }; - class QuikClot: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; - condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\bandage.paa); - }; - class SurgicalKit: fieldDressing { - displayName = "Use Surgical Kit"; - condition = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\surgicalKit.paa); - }; - class PersonalAidKit: fieldDressing { - displayName = "Use Personal Aid Kit"; - condition = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(treatment)); - EXCEPTIONS - icon = ""; - }; - class CPR: fieldDressing { - displayName = "CPR"; - condition = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(treatment)); - EXCEPTIONS - icon = ""; - }; - }; - class ACE_ArmLeft { - displayName = "$STR_ACE_Interaction_ArmLeft"; - runOnHover = 1; - statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation)); - EXCEPTIONS - icon = PATHTOF(UI\icons\medical_cross.paa); - distance = MEDICAL_ACTION_DISTANCE; +class ACE_Head { + displayName = "$STR_ACE_Interaction_Head"; + runOnHover = 1; + statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); + EXCEPTIONS + icon = PATHTOF(UI\icons\medical_cross.paa); + distance = MEDICAL_ACTION_DISTANCE; + class Bandage { + displayName = "$STR_ACE_Medical_Bandage_HitHead"; + distance = 2.0; + condition = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 1; + priority = 2; + hotkey = "B"; + icon = PATHTOF(UI\icons\bandage.paa); + }; + // Advanced medical + class FieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; + distance = 5.0; + condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 0; + priority = 2; + hotkey = ""; + icon = PATHTOF(UI\icons\bandage.paa); + }; + class PackingBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; + condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\packingBandage.paa); + }; + class ElasticBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; + condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\bandage.paa); + }; + class QuikClot: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; + condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\bandage.paa); + }; + class CheckPulse: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; + condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment)); + EXCEPTIONS + icon = ""; + }; + class CheckBloodPressure: CheckPulse { + displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; + condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment)); + EXCEPTIONS + }; + class CheckResponse: CheckPulse { + displayName = "Check Response"; + condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(treatment)); + EXCEPTIONS + }; +}; +class ACE_Torso { + displayName = "$STR_ACE_Interaction_Torso"; + runOnHover = 1; + statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation)); + EXCEPTIONS + icon = PATHTOF(UI\icons\medical_cross.paa); + distance = MEDICAL_ACTION_DISTANCE; + class Bandage { + displayName = "$STR_ACE_Medical_Bandage_HitBody"; + distance = 2.0; + condition = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 1; + priority = 2; + hotkey = "B"; + enableInside = 1; + icon = PATHTOF(UI\icons\bandage.paa); + }; + class PlaceInBodyBag { + displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag"; + distance = 2.0; + condition = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 1; + priority = 2; + hotkey = ""; + enableInside = 1; + }; + class TriageCard { + displayName = "Triage Card"; + distance = 2.0; + condition = "true"; + statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard)); + EXCEPTIONS + showDisabled = 1; + priority = 2; + hotkey = ""; + enableInside = 1; + icon = PATHTOF(UI\icons\triageCard.paa); + }; - class Bandage { - displayName = "$STR_ACE_Medical_Bandage_HitLeftArm"; - distance = 2.0; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 1; - priority = 2; - hotkey = "B"; - icon = PATHTOF(UI\icons\bandage.paa); - }; + // Advanced medical + class FieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; + distance = 5.0; + condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 0; + priority = 2; + hotkey = ""; + enableInside = 1; + icon = PATHTOF(UI\icons\bandage.paa); + }; + class PackingBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; + condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\packingBandage.paa); + }; + class ElasticBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; + condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\bandage.paa); + }; + class QuikClot: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; + condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\bandage.paa); + }; + class SurgicalKit: fieldDressing { + displayName = "Use Surgical Kit"; + condition = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\surgicalKit.paa); + }; + class PersonalAidKit: fieldDressing { + displayName = "Use Personal Aid Kit"; + condition = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(treatment)); + EXCEPTIONS + icon = ""; + }; + class CPR: fieldDressing { + displayName = "CPR"; + condition = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(treatment)); + EXCEPTIONS + icon = ""; + }; +}; +class ACE_ArmLeft { + displayName = "$STR_ACE_Interaction_ArmLeft"; + runOnHover = 1; + statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation)); + EXCEPTIONS + icon = PATHTOF(UI\icons\medical_cross.paa); + distance = MEDICAL_ACTION_DISTANCE; - // Advanced medical - class FieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; - distance = 5.0; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 0; - priority = 2; - hotkey = ""; - icon = PATHTOF(UI\icons\bandage.paa); - }; - class PackingBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\packingBandage.paa); - }; - class ElasticBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\bandage.paa); - }; - class QuikClot: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\bandage.paa); - }; - class Tourniquet: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\tourniquet.paa); - }; - class Morphine: fieldDressing { - displayName = "$STR_ACE_Medical_Inject_Morphine"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Morphine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Morphine')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\autoInjector.paa); - }; - class Atropine: Morphine { - displayName = "$STR_ACE_Medical_Inject_Atropine"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\autoInjector.paa); - }; - class Epinephrine: Morphine { - displayName = "$STR_ACE_Medical_Inject_Epinephrine"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Epinephrine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Epinephrine')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\autoInjector.paa); - }; - class BloodIV: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\iv.paa); - }; - class BloodIV_500: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class BloodIV_250: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV_500: PlasmaIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV_250: PlasmaIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV_500: SalineIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV_250: SalineIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class CheckPulse: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment)); - EXCEPTIONS - icon = ""; - }; - class CheckBloodPressure: CheckPulse { - displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment)); - EXCEPTIONS - }; - class RemoveTourniquet: Tourniquet { - displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; - condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment)); - EXCEPTIONS - }; - }; - class ACE_ArmRight { - displayName = "$STR_ACE_Interaction_ArmRight"; - runOnHover = 1; - statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation)); - EXCEPTIONS - icon = PATHTOF(UI\icons\medical_cross.paa); - distance = MEDICAL_ACTION_DISTANCE; + class Bandage { + displayName = "$STR_ACE_Medical_Bandage_HitLeftArm"; + distance = 2.0; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 1; + priority = 2; + hotkey = "B"; + icon = PATHTOF(UI\icons\bandage.paa); + }; - class Bandage { - displayName = "$STR_ACE_Medical_Bandage_HitRightArm"; - distance = 2.0; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 1; - priority = 2; - hotkey = "B"; - icon = PATHTOF(UI\icons\bandage.paa); - }; + // Advanced medical + class FieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; + distance = 5.0; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 0; + priority = 2; + hotkey = ""; + icon = PATHTOF(UI\icons\bandage.paa); + }; + class PackingBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\packingBandage.paa); + }; + class ElasticBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\bandage.paa); + }; + class QuikClot: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\bandage.paa); + }; + class Tourniquet: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\tourniquet.paa); + }; + class Morphine: fieldDressing { + displayName = "$STR_ACE_Medical_Inject_Morphine"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Morphine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Morphine')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\autoInjector.paa); + }; + class Atropine: Morphine { + displayName = "$STR_ACE_Medical_Inject_Atropine"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\autoInjector.paa); + }; + class Epinephrine: Morphine { + displayName = "$STR_ACE_Medical_Inject_Epinephrine"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Epinephrine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Epinephrine')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\autoInjector.paa); + }; + class BloodIV: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\iv.paa); + }; + class BloodIV_500: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class BloodIV_250: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV_500: PlasmaIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV_250: PlasmaIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV_500: SalineIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV_250: SalineIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class CheckPulse: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment)); + EXCEPTIONS + icon = ""; + }; + class CheckBloodPressure: CheckPulse { + displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment)); + EXCEPTIONS + }; + class RemoveTourniquet: Tourniquet { + displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; + condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment)); + EXCEPTIONS + }; +}; +class ACE_ArmRight { + displayName = "$STR_ACE_Interaction_ArmRight"; + runOnHover = 1; + statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation)); + EXCEPTIONS + icon = PATHTOF(UI\icons\medical_cross.paa); + distance = MEDICAL_ACTION_DISTANCE; - // Advanced medical - class FieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; - distance = 5.0; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 0; - priority = 2; - hotkey = ""; - icon = PATHTOF(UI\icons\bandage.paa); - }; - class PackingBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\packingBandage.paa); - }; - class ElasticBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment)); - EXCEPTIONS - }; - class QuikClot: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment)); - EXCEPTIONS - }; - class Tourniquet: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\tourniquet.paa); - }; - class Morphine: fieldDressing { - displayName = "$STR_ACE_Medical_Inject_Morphine"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Morphine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Morphine')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\autoInjector.paa); - }; - class Atropine: Morphine { - displayName = "$STR_ACE_Medical_Inject_Atropine"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(treatment)); - EXCEPTIONS - }; - class Epinephrine: Morphine { - displayName = "$STR_ACE_Medical_Inject_Epinephrine"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(treatment)); - EXCEPTIONS - }; - class BloodIV: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\iv.paa); - }; - class BloodIV_500: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class BloodIV_250: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV_500: PlasmaIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV_250: PlasmaIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV_500: SalineIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV_250: SalineIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class CheckPulse: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment)); - EXCEPTIONS - icon = ""; - }; - class CheckBloodPressure: CheckPulse { - displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment)); - EXCEPTIONS - }; - class RemoveTourniquet: Tourniquet { - displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; - condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment)); - EXCEPTIONS - }; + class Bandage { + displayName = "$STR_ACE_Medical_Bandage_HitRightArm"; + distance = 2.0; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 1; + priority = 2; + hotkey = "B"; + icon = PATHTOF(UI\icons\bandage.paa); + }; - }; - class ACE_LegLeft { - displayName = "$STR_ACE_Interaction_LegLeft"; - runOnHover = 1; - statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation)); - EXCEPTIONS - icon = PATHTOF(UI\icons\medical_cross.paa); - distance = MEDICAL_ACTION_DISTANCE; + // Advanced medical + class FieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; + distance = 5.0; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 0; + priority = 2; + hotkey = ""; + icon = PATHTOF(UI\icons\bandage.paa); + }; + class PackingBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\packingBandage.paa); + }; + class ElasticBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment)); + EXCEPTIONS + }; + class QuikClot: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment)); + EXCEPTIONS + }; + class Tourniquet: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\tourniquet.paa); + }; + class Morphine: fieldDressing { + displayName = "$STR_ACE_Medical_Inject_Morphine"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Morphine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Morphine')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\autoInjector.paa); + }; + class Atropine: Morphine { + displayName = "$STR_ACE_Medical_Inject_Atropine"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(treatment)); + EXCEPTIONS + }; + class Epinephrine: Morphine { + displayName = "$STR_ACE_Medical_Inject_Epinephrine"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(treatment)); + EXCEPTIONS + }; + class BloodIV: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\iv.paa); + }; + class BloodIV_500: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class BloodIV_250: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV_500: PlasmaIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV_250: PlasmaIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV_500: SalineIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV_250: SalineIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class CheckPulse: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment)); + EXCEPTIONS + icon = ""; + }; + class CheckBloodPressure: CheckPulse { + displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment)); + EXCEPTIONS + }; + class RemoveTourniquet: Tourniquet { + displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; + condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment)); + EXCEPTIONS + }; - class Bandage { - displayName = "$STR_ACE_Medical_Bandage_HitLeftLeg"; - distance = 2.0; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 1; - priority = 2; - hotkey = "B"; - icon = PATHTOF(UI\icons\bandage.paa); - }; +}; +class ACE_LegLeft { + displayName = "$STR_ACE_Interaction_LegLeft"; + runOnHover = 1; + statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation)); + EXCEPTIONS + icon = PATHTOF(UI\icons\medical_cross.paa); + distance = MEDICAL_ACTION_DISTANCE; + + class Bandage { + displayName = "$STR_ACE_Medical_Bandage_HitLeftLeg"; + distance = 2.0; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 1; + priority = 2; + hotkey = "B"; + icon = PATHTOF(UI\icons\bandage.paa); + }; - // Advanced medical - class FieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; - distance = 5.0; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 0; - priority = 2; - hotkey = ""; - icon = PATHTOF(UI\icons\bandage.paa); - }; - class PackingBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\packingBandage.paa); - }; - class ElasticBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment)); - EXCEPTIONS - }; - class QuikClot: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment)); - EXCEPTIONS - }; - class Tourniquet: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\tourniquet.paa); - }; - class Morphine: fieldDressing { - displayName = "$STR_ACE_Medical_Inject_Morphine"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\autoInjector.paa); - }; - class Atropine: Morphine { - displayName = "$STR_ACE_Medical_Inject_Atropine"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\autoInjector.paa); - }; - class Epinephrine: Morphine { - displayName = "$STR_ACE_Medical_Inject_Epinephrine"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(treatment)); - EXCEPTIONS - }; - class BloodIV: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\iv.paa); - }; - class BloodIV_500: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class BloodIV_250: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV_500: PlasmaIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV_250: PlasmaIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV_500: SalineIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV_250: SalineIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class RemoveTourniquet: Tourniquet { - displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; - condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment)); - EXCEPTIONS - }; - }; - class ACE_LegRight { - displayName = "$STR_ACE_Interaction_LegRight"; - runOnHover = 1; - statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation)); - EXCEPTIONS - icon = PATHTOF(UI\icons\medical_cross.paa); - distance = MEDICAL_ACTION_DISTANCE; + // Advanced medical + class FieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; + distance = 5.0; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 0; + priority = 2; + hotkey = ""; + icon = PATHTOF(UI\icons\bandage.paa); + }; + class PackingBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\packingBandage.paa); + }; + class ElasticBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment)); + EXCEPTIONS + }; + class QuikClot: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment)); + EXCEPTIONS + }; + class Tourniquet: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\tourniquet.paa); + }; + class Morphine: fieldDressing { + displayName = "$STR_ACE_Medical_Inject_Morphine"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\autoInjector.paa); + }; + class Atropine: Morphine { + displayName = "$STR_ACE_Medical_Inject_Atropine"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\autoInjector.paa); + }; + class Epinephrine: Morphine { + displayName = "$STR_ACE_Medical_Inject_Epinephrine"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(treatment)); + EXCEPTIONS + }; + class BloodIV: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\iv.paa); + }; + class BloodIV_500: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class BloodIV_250: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV_500: PlasmaIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV_250: PlasmaIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV_500: SalineIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV_250: SalineIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class RemoveTourniquet: Tourniquet { + displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; + condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment)); + EXCEPTIONS + }; +}; +class ACE_LegRight { + displayName = "$STR_ACE_Interaction_LegRight"; + runOnHover = 1; + statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation)); + EXCEPTIONS + icon = PATHTOF(UI\icons\medical_cross.paa); + distance = MEDICAL_ACTION_DISTANCE; - class Bandage { - displayName = "$STR_ACE_Medical_Bandage_HitRightLeg"; - distance = 2.0; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 1; - priority = 2; - hotkey = "B"; - icon = PATHTOF(UI\icons\bandage.paa); - }; + class Bandage { + displayName = "$STR_ACE_Medical_Bandage_HitRightLeg"; + distance = 2.0; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 1; + priority = 2; + hotkey = "B"; + icon = PATHTOF(UI\icons\bandage.paa); + }; - // Advanced medical - class FieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; - distance = 5.0; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment)); - EXCEPTIONS - showDisabled = 0; - priority = 2; - hotkey = ""; - icon = PATHTOF(UI\icons\bandage.paa); - }; - class PackingBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\packingBandage.paa); - }; - class ElasticBandage: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment)); - EXCEPTIONS - }; - class QuikClot: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment)); - EXCEPTIONS - }; - class Tourniquet: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\tourniquet.paa); - }; - class Morphine: fieldDressing { - displayName = "$STR_ACE_Medical_Inject_Morphine"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Morphine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Morphine')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\autoInjector.paa); - }; - class Atropine: Morphine { - displayName = "$STR_ACE_Medical_Inject_Atropine"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(treatment)); - EXCEPTIONS - }; - class Epinephrine: Morphine { - displayName = "$STR_ACE_Medical_Inject_Epinephrine"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(treatment)); - EXCEPTIONS - }; - class BloodIV: fieldDressing { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(treatment)); - EXCEPTIONS - icon = PATHTOF(UI\icons\iv.paa); - }; - class BloodIV_500: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class BloodIV_250: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV_500: PlasmaIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class PlasmaIV_250: PlasmaIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV: BloodIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV_500: SalineIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(treatment)); - EXCEPTIONS - }; - class SalineIV_250: SalineIV { - displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(treatment)); - EXCEPTIONS - }; - class RemoveTourniquet: Tourniquet { - displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; - condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached)); - statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment)); - EXCEPTIONS - }; - }; + // Advanced medical + class FieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; + distance = 5.0; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment)); + EXCEPTIONS + showDisabled = 0; + priority = 2; + hotkey = ""; + icon = PATHTOF(UI\icons\bandage.paa); + }; + class PackingBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\packingBandage.paa); + }; + class ElasticBandage: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment)); + EXCEPTIONS + }; + class QuikClot: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment)); + EXCEPTIONS + }; + class Tourniquet: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\tourniquet.paa); + }; + class Morphine: fieldDressing { + displayName = "$STR_ACE_Medical_Inject_Morphine"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Morphine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Morphine')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\autoInjector.paa); + }; + class Atropine: Morphine { + displayName = "$STR_ACE_Medical_Inject_Atropine"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(treatment)); + EXCEPTIONS + }; + class Epinephrine: Morphine { + displayName = "$STR_ACE_Medical_Inject_Epinephrine"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(treatment)); + EXCEPTIONS + }; + class BloodIV: fieldDressing { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(treatment)); + EXCEPTIONS + icon = PATHTOF(UI\icons\iv.paa); + }; + class BloodIV_500: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class BloodIV_250: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV_500: PlasmaIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class PlasmaIV_250: PlasmaIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV: BloodIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV_500: SalineIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(treatment)); + EXCEPTIONS + }; + class SalineIV_250: SalineIV { + displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(treatment)); + EXCEPTIONS + }; + class RemoveTourniquet: Tourniquet { + displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; + condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached)); + statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment)); + EXCEPTIONS + }; +}; diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index d257812c67..4d7b23463a 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -444,6 +444,26 @@ class CfgVehicles { #define EXCEPTIONS exceptions[] = {"isNotInside"}; #include "ACE_Medical_Actions.hpp" }; + class GVAR(loadPatient) { + displayName = "$STR_ACE_Medical_LoadPatient"; + distance = 5; + condition = QUOTE(_target getvariable[ARR_2(QUOTE(QUOTE(ACE_isUnconscious)),false)] && vehicle _target == _target); + statement = QUOTE([ARR_2(_player, _target)] call DFUNC(actionLoadUnit)); + showDisabled = 0; + priority = 2; + icon = PATHTOF(UI\icons\medical_cross.paa); + exceptions[] = {"isNotDragging", "isNotCarrying"}; + }; + class GVAR(UnLoadPatient) { + displayName = "$STR_ACE_Medical_UnloadPatient"; + distance = 5; + condition = QUOTE(_target getvariable[ARR_2(QUOTE(QUOTE(ACE_isUnconscious)),false)] && vehicle _target != _target); + statement = QUOTE([ARR_2(_player, _target)] call DFUNC(actionUnloadUnit)); + showDisabled = 0; + priority = 2; + icon = PATHTOF(UI\icons\medical_cross.paa); + exceptions[] = {"isNotDragging", "isNotCarrying"}; + }; }; }; }; @@ -972,84 +992,4 @@ class CfgVehicles { }; }; }; - - // Patient unload from vehicle actions - class LandVehicle; - class Car: LandVehicle { - class ACE_Actions { - class ACE_MainActions { - class ACE_UnloadPatients { - displayName = "$STR_ACE_Medical_UnloadPatient"; - condition = "true"; - statement = ""; - insertChildren = QUOTE(_this call FUNC(addUnloadPatientActions)); - }; - }; - }; - }; - class Tank: LandVehicle { - class ACE_Actions { - class ACE_MainActions { - class ACE_UnloadPatients { - displayName = "$STR_ACE_Medical_UnloadPatient"; - condition = "true"; - statement = ""; - insertChildren = QUOTE(_this call FUNC(addUnloadPatientActions)); - }; - }; - }; - }; - - class Air; - class Helicopter: Air { - class ACE_Actions { - class ACE_MainActions { - class ACE_UnloadPatients { - displayName = "$STR_ACE_Medical_UnloadPatient"; - condition = "true"; - statement = ""; - insertChildren = QUOTE(_this call FUNC(addUnloadPatientActions)); - }; - }; - }; - }; - class Plane: Air { - class ACE_Actions { - class ACE_MainActions { - class ACE_UnloadPatients { - displayName = "$STR_ACE_Medical_UnloadPatient"; - condition = "true"; - statement = ""; - insertChildren = QUOTE(_this call FUNC(addUnloadPatientActions)); - }; - }; - }; - }; - - class Ship; - class Ship_F: Ship { - class ACE_Actions { - class ACE_MainActions { - class ACE_UnloadPatients { - displayName = "$STR_ACE_Medical_UnloadPatient"; - condition = "true"; - statement = ""; - insertChildren = QUOTE(_this call FUNC(addUnloadPatientActions)); - }; - }; - }; - }; - - class StaticWeapon: LandVehicle { - class ACE_Actions { - class ACE_MainActions { - class ACE_UnloadPatients { - displayName = "$STR_ACE_Medical_UnloadPatient"; - condition = "true"; - statement = ""; - insertChildren = QUOTE(_this call FUNC(addUnloadPatientActions)); - }; - }; - }; - }; }; diff --git a/addons/medical/functions/fnc_actionLoadUnit.sqf b/addons/medical/functions/fnc_actionLoadUnit.sqf index b4320d8d73..5606f15d19 100644 --- a/addons/medical/functions/fnc_actionLoadUnit.sqf +++ b/addons/medical/functions/fnc_actionLoadUnit.sqf @@ -22,6 +22,12 @@ if ([_target] call EFUNC(common,isAwake)) exitwith { // TODO localization ["displayTextStructured", [_caller], [["This person (%1) is awake and cannot be loaded", [_target] call EFUNC(common,getName)], 1.5, _caller]] call EFUNC(common,targetEvent); }; +if ([_target] call FUNC(isBeingCarried)) then { + [_caller, _target] call FUNC(dropObject_carry); +}; +if ([_target] call FUNC(isBeingDragged)) then { + [_caller, _target] call FUNC(dropObject); +}; _vehicle = [_caller, _target] call EFUNC(common,loadPerson); if (!isNull _vehicle) then { diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 70506fa3e0..ec01d3b626 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -876,6 +876,9 @@ Unload patient + + Load patient + Place body in bodybag From d94943a9ff897f097a2253cce61cdb386c2166ec Mon Sep 17 00:00:00 2001 From: Glowbal Date: Thu, 9 Apr 2015 21:38:35 +0200 Subject: [PATCH 4/4] getting hitpoint damage on non existing hitpoint returns type instead of bool --- addons/dragging/functions/fnc_canCarry.sqf | 2 +- addons/dragging/functions/fnc_canDrag.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/dragging/functions/fnc_canCarry.sqf b/addons/dragging/functions/fnc_canCarry.sqf index 41fe91cc42..4067b366d6 100644 --- a/addons/dragging/functions/fnc_canCarry.sqf +++ b/addons/dragging/functions/fnc_canCarry.sqf @@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false}; // a static weapon has to be empty for dragging if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false}; -alive _target && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || ((_target getHitPointDamage "HitLeftLeg") + (_target getHitPointDamage "HitRightLeg") > 0.4)} +alive _target && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLeftLeg") + (_target getHitPointDamage "HitRightLeg") > 0.4})} diff --git a/addons/dragging/functions/fnc_canDrag.sqf b/addons/dragging/functions/fnc_canDrag.sqf index 95ce15222b..dc2d64168b 100644 --- a/addons/dragging/functions/fnc_canDrag.sqf +++ b/addons/dragging/functions/fnc_canDrag.sqf @@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false}; // a static weapon has to be empty for dragging if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false}; -alive _target && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || ((_target getHitPointDamage "HitLeftLeg") + (_target getHitPointDamage "HitRightLeg") > 0.4)} +alive _target && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLeftLeg") + (_target getHitPointDamage "HitRightLeg") > 0.4})}; \ No newline at end of file