From aec5357a4ce4067c494f57f485bfadafd524950f Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Dec 2023 20:35:18 -0800 Subject: [PATCH 01/39] Ultrasound + REBOA Starter --- .../fnc_treatmentAdvanced_overstretchHead.sqf | 50 +++++++++++++ addons/gui/functions/fnc_updateBodyImage.sqf | 3 +- addons/gui/functions/fnc_updateInjuryList.sqf | 8 ++- addons/main/script_macros.hpp | 4 +- addons/misc/functions/fnc_fullHealLocal.sqf | 4 ++ addons/misc/functions/fnc_handleRespawn.sqf | 3 + addons/misc/functions/fnc_hasStableVitals.sqf | 1 + .../functions/fnc_updateDamageEffects.sqf | 7 ++ .../pharma/functions/fnc_tourniquetRemove.sqf | 4 +- .../surgery/ACE_Medical_Treatment_Actions.hpp | 64 ++++++++++++++++- addons/surgery/CfgWeapons.hpp | 22 ++++++ addons/surgery/XEH_PREP.hpp | 9 +++ addons/surgery/XEH_postInit.sqf | 5 ++ addons/surgery/config.cpp | 4 +- .../fnc_hasTourniquetAppliedToAdditional.sqf | 23 ++++++ addons/surgery/functions/fnc_init.sqf | 3 + addons/surgery/functions/fnc_reboaApply.sqf | 22 ++++++ .../surgery/functions/fnc_reboaApplyLocal.sqf | 42 +++++++++++ .../surgery/functions/fnc_reboaDeepApply.sqf | 22 ++++++ .../functions/fnc_reboaDeepApplyLocal.sqf | 37 ++++++++++ addons/surgery/functions/fnc_reboaRemove.sqf | 22 ++++++ .../functions/fnc_reboaRemoveLocal.sqf | 68 ++++++++++++++++++ .../surgery/functions/fnc_ultraAssessment.sqf | 22 ++++++ .../functions/fnc_ultraAssessmentLocal.sqf | 62 ++++++++++++++++ addons/surgery/stringtable.xml | 72 +++++++++++++++++++ 25 files changed, 575 insertions(+), 8 deletions(-) create mode 100644 addons/airway/functions/fnc_treatmentAdvanced_overstretchHead.sqf create mode 100644 addons/surgery/functions/fnc_hasTourniquetAppliedToAdditional.sqf create mode 100644 addons/surgery/functions/fnc_reboaApply.sqf create mode 100644 addons/surgery/functions/fnc_reboaApplyLocal.sqf create mode 100644 addons/surgery/functions/fnc_reboaDeepApply.sqf create mode 100644 addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf create mode 100644 addons/surgery/functions/fnc_reboaRemove.sqf create mode 100644 addons/surgery/functions/fnc_reboaRemoveLocal.sqf create mode 100644 addons/surgery/functions/fnc_ultraAssessment.sqf create mode 100644 addons/surgery/functions/fnc_ultraAssessmentLocal.sqf diff --git a/addons/airway/functions/fnc_treatmentAdvanced_overstretchHead.sqf b/addons/airway/functions/fnc_treatmentAdvanced_overstretchHead.sqf new file mode 100644 index 000000000..4215aca79 --- /dev/null +++ b/addons/airway/functions/fnc_treatmentAdvanced_overstretchHead.sqf @@ -0,0 +1,50 @@ +#include "..\script_component.hpp" +/* + * Author: Katalam + * Overstretch the head of the patient for airway management without items + * + * Arguments: + * 0: Medic + * 1: Patient + * + * Return Value: + * Succesful treatment + * + * Example: + * [player, cursorTarget] call kat_airway_fnc_treatmentAdvanced_overstretchHead; + * + * Public: No + */ + +params ["_medic", "_patient"]; + +if (_patient getVariable [QGVAR(overstretch), false]) exitWith { + private _output = LLSTRING(Airway_already); + [_output, 2, _medic] call ACEFUNC(common,displayTextStructured); +}; +if !(_patient getVariable [QGVAR(obstruction), false]) exitWith { + private _output = LLSTRING(Airway_NA); + [_output, 2, _medic] call ACEFUNC(common,displayTextStructured); +}; + +_patient setVariable [QGVAR(overstretch), true, true]; + +private _output = LLSTRING(overstretch_info); +[_output, 2, _medic] call ACEFUNC(common,displayTextStructured); + +[{ + params ["_medic", "_patient"]; + (_patient distance2D _medic) > 5; +}, { + params ["_medic", "_patient"]; + if (_patient getVariable [QGVAR(recovery), false]) exitWith {}; + _patient setVariable [QGVAR(overstretch), false, true]; + _output = LLSTRING(overstretch_cancel); + [_output, 1.5, _medic] call ACEFUNC(common,displayTextStructured); +}, [_medic, _patient], 3600, { + params ["_medic", "_patient"]; + if (_patient getVariable [QGVAR(recovery), false]) exitWith {}; + _patient setVariable [QGVAR(overstretch), false, true]; + _output = LLSTRING(overstretch_cancel); + [_output, 1.5, _medic] call ACEFUNC(common,displayTextStructured); +}] call CBA_fnc_waitUntilAndExecute; diff --git a/addons/gui/functions/fnc_updateBodyImage.sqf b/addons/gui/functions/fnc_updateBodyImage.sqf index 2b1132252..623988b2c 100644 --- a/addons/gui/functions/fnc_updateBodyImage.sqf +++ b/addons/gui/functions/fnc_updateBodyImage.sqf @@ -22,6 +22,7 @@ params ["_ctrlGroup", "_target", "_selectionN"]; // Get tourniquets, damage, and blood loss for target private _tourniquets = GET_TOURNIQUETS(_target); +private _surgicalBlock = _target getVariable [QEGVAR(surgery,surgicalBlock), [0, 0, 0, 0, 0, 0]]; private _fractures = GET_FRACTURES(_target); private _bodyPartDamage = _target getVariable [QACEGVAR(medical,bodyPartDamage), [0, 0, 0, 0, 0, 0]]; private _damageThreshold = GET_DAMAGE_THRESHOLD(_target); @@ -47,7 +48,7 @@ private _bodyPartBloodLoss = [0, 0, 0, 0, 0, 0]; // Show or hide the tourniquet icon if (_tourniquetIDC != -1) then { - private _hasTourniquet = _tourniquets select _forEachIndex > 0; + private _hasTourniquet = (_tourniquets select _forEachIndex > 0) && (_surgicalBlock select _forEachIndex == 0); private _ctrlTourniquet = _ctrlGroup controlsGroupCtrl _tourniquetIDC; _ctrlTourniquet ctrlShow _hasTourniquet; }; diff --git a/addons/gui/functions/fnc_updateInjuryList.sqf b/addons/gui/functions/fnc_updateInjuryList.sqf index 01efcaf2b..1167da723 100644 --- a/addons/gui/functions/fnc_updateInjuryList.sqf +++ b/addons/gui/functions/fnc_updateInjuryList.sqf @@ -196,10 +196,14 @@ if (ACEGVAR(medical_gui,showDamageEntry)) then { }; // Indicate if a tourniquet is applied -if (HAS_TOURNIQUET_APPLIED_ON(_target,_selectionN)) then { +if (HAS_TOURNIQUET_ACTUAL(_target,_selectionN)) then { _entries pushBack [localize ACELSTRING(medical_gui,Status_Tourniquet_Applied), [0.77, 0.51, 0.08, 1]]; }; +if (GET_SURGICAL_TOURNIQUETS(_target) select _selectionN != 0) then { + _entries pushBack [LELSTRING(surgery,Reboa_Status), [0.77, 0.20, 0.08, 1]]; +}; + // Indicate current body part fracture status switch (GET_FRACTURES(_target) select _selectionN) do { case 1: { @@ -213,7 +217,7 @@ switch (GET_FRACTURES(_target) select _selectionN) do { }; // Display cyanosis in overview tab, only when head/arms are selected -if (EGVAR(breathing,showCyanosis) && _selectionN in [0,2,3]) then { +if (EGVAR(breathing,showCyanosis) && _selectionN in [0,2,3,4,5]) then { private _spO2 = 0; if (alive _target) then { diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 9bf611232..182338003 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -176,7 +176,9 @@ #define DEFAULT_TOURNIQUET_VALUES [0,0,0,0,0,0] #define GET_TOURNIQUETS(unit) (unit getVariable [VAR_TOURNIQUET, DEFAULT_TOURNIQUET_VALUES]) -#define HAS_TOURNIQUET_APPLIED_ON(unit,index) ((GET_TOURNIQUETS(unit) select index) > 0) +#define GET_SURGICAL_TOURNIQUETS(unit) (unit getVariable [QEGVAR(surgery,surgicalBlock), DEFAULT_TOURNIQUET_VALUES]) +#define HAS_TOURNIQUET_APPLIED_ON(unit,index) ((GET_TOURNIQUETS(unit) select index) > 0 ) +#define HAS_TOURNIQUET_ACTUAL(unit,index) (((GET_TOURNIQUETS(unit) select index) > 0) && ((GET_SURGICAL_TOURNIQUETS(unit) select index) < 1)) #define PAIN_UNCONSCIOUS ACEGVAR(medical,painUnconsciousThreshold) diff --git a/addons/misc/functions/fnc_fullHealLocal.sqf b/addons/misc/functions/fnc_fullHealLocal.sqf index a8a01e824..b494ad7ac 100644 --- a/addons/misc/functions/fnc_fullHealLocal.sqf +++ b/addons/misc/functions/fnc_fullHealLocal.sqf @@ -121,6 +121,10 @@ _unit setVariable [QEGVAR(surgery,fractures), [0,0,0,0,0,0], true]; _unit setVariable [QEGVAR(surgery,lidocaine), false, true]; _unit setVariable [QEGVAR(surgery,etomidate), false, true]; _unit setVariable [QEGVAR(surgery,sedated), false, true]; +_unit setVariable [QEGVAR(surgery,etomidate), false, true]; +_unit setVariable [QEGVAR(surgery,imaging), false, true]; +_unit setVariable [QEGVAR(surgery,reboa), false, true]; +_unit setVariable [QEGVAR(surgery,surgicalBlock), [0,0,0,0,0,0], true]; // KAT Misc _unit setVariable [QGVAR(Tourniquet_ArmNecrosis), 0]; diff --git a/addons/misc/functions/fnc_handleRespawn.sqf b/addons/misc/functions/fnc_handleRespawn.sqf index 8e4961925..9f92c6cc0 100644 --- a/addons/misc/functions/fnc_handleRespawn.sqf +++ b/addons/misc/functions/fnc_handleRespawn.sqf @@ -117,6 +117,9 @@ _unit setVariable [QEGVAR(surgery,fractures), [0,0,0,0,0,0], true]; _unit setVariable [QEGVAR(surgery,lidocaine), false, true]; _unit setVariable [QEGVAR(surgery,etomidate), false, true]; _unit setVariable [QEGVAR(surgery,sedated), false, true]; +_unit setVariable [QEGVAR(surgery,imaging), false, true]; +_unit setVariable [QEGVAR(surgery,reboa), false, true]; +_unit setVariable [QEGVAR(surgery,surgicalBlock), [0,0,0,0,0,0], true]; //KAT Chemical diff --git a/addons/misc/functions/fnc_hasStableVitals.sqf b/addons/misc/functions/fnc_hasStableVitals.sqf index 7b3095148..3815e1306 100644 --- a/addons/misc/functions/fnc_hasStableVitals.sqf +++ b/addons/misc/functions/fnc_hasStableVitals.sqf @@ -22,6 +22,7 @@ if (_bloodVolume < ACEGVAR(medical,const_stableVitalsBloodThreshold)) exitWith { if IN_CRDC_ARRST(_unit) exitWith { false }; if (_unit getVariable [QEGVAR(surgery,sedated), false]) exitWith { false }; +if (_unit getVariable [QEGVAR(surgery,reboa), false]) exitWith { false }; private _cardiacOutput = [_unit] call ACEFUNC(medical_status,getCardiacOutput); private _bloodLoss = _unit call EFUNC(pharma,getBloodLoss); diff --git a/addons/misc/functions/fnc_updateDamageEffects.sqf b/addons/misc/functions/fnc_updateDamageEffects.sqf index 56d90706d..a5a0cfca4 100644 --- a/addons/misc/functions/fnc_updateDamageEffects.sqf +++ b/addons/misc/functions/fnc_updateDamageEffects.sqf @@ -91,6 +91,13 @@ if (_unit getVariable [QGVAR(Tourniquet_LegNecrosis_Threshold), 0] >= 90) then { _isLimping = true; }; +if (_unit getVariable [QEGVAR(surgery,reboa), false]) then { + _isLimping = true; + _noJog = true; + _noSprint = true; +}; + + [_unit, "blockSprint", QACEGVAR(medical,fracture), _noSprint] call ACEFUNC(common,statusEffect_set); [_unit, "forceWalk", QACEGVAR(medical,fracture), _noJog] call ACEFUNC(common,statusEffect_set); diff --git a/addons/pharma/functions/fnc_tourniquetRemove.sqf b/addons/pharma/functions/fnc_tourniquetRemove.sqf index 53632faa2..135824569 100644 --- a/addons/pharma/functions/fnc_tourniquetRemove.sqf +++ b/addons/pharma/functions/fnc_tourniquetRemove.sqf @@ -36,14 +36,14 @@ _patient setVariable [VAR_TOURNIQUET, _tourniquets, true]; private _nearPlayers = (_patient nearEntities ["CAManBase", 6]) select {_x call ACEFUNC(common,isPlayer)}; TRACE_1("clearConditionCaches: tourniquetRemove",_nearPlayers); -[QEGVAR(interact_menu,clearConditionCaches), [], _nearPlayers] call CBA_fnc_targetEvent; +[QACEGVAR(interact_menu,clearConditionCaches), [], _nearPlayers] call CBA_fnc_targetEvent; // Add tourniquet item to medic or patient private _receiver = [_patient, _medic, _medic] select ACEGVAR(medical_treatment,allowSharedEquipment); [_receiver, "ACE_tourniquet"] call ACEFUNC(common,addToInventory); // Handle occluded medications that were blocked due to tourniquet -private _occludedMedications = _patient getVariable [QEGVAR(medical,occludedMedications), []]; +private _occludedMedications = _patient getVariable [QACEGVAR(medical,occludedMedications), []]; private _arrayModified = false; if !(((_patient getVariable [QGVAR(IV), [0,0,0,0,0,0]]) select _partIndex) isEqualTo 3) then { diff --git a/addons/surgery/ACE_Medical_Treatment_Actions.hpp b/addons/surgery/ACE_Medical_Treatment_Actions.hpp index 187162953..23bcb70b2 100644 --- a/addons/surgery/ACE_Medical_Treatment_Actions.hpp +++ b/addons/surgery/ACE_Medical_Treatment_Actions.hpp @@ -1,7 +1,13 @@ class ACE_Medical_Treatment_Actions { class BasicBandage; class CheckPulse; - + class ApplyTourniquet; + class ApplyTourniquet: BasicBandage { + condition = QUOTE(!([ARR_2(_patient,_bodyPart)] call ACEFUNC(medical_treatment,hasTourniquetAppliedTo)) && ([ARR_2(_patient,_bodyPart)] call FUNC(hasTourniquetAppliedToAdditional))); + }; + class RemoveTourniquet: ApplyTourniquet { + condition = QUOTE(([ARR_2(_patient,_bodyPart)] call ACEFUNC(medical_treatment,hasTourniquetAppliedTo)) && ([ARR_2(_patient,_bodyPart)] call FUNC(hasTourniquetAppliedToAdditional))); + }; class CheckFracture: CheckPulse { displayName = CSTRING(fracture_check); displayNameProgress = CSTRING(fracture_checking); @@ -112,4 +118,60 @@ class ACE_Medical_Treatment_Actions { callbackProgress = QFUNC(npwtTreatmentProgress); callbackSuccess = ""; }; + class UltraAssessment: BasicBandage { + displayName = CSTRING(Ultra_Use); + displayNameProgress = CSTRING(Ultra_Action); + category = "surgery"; + treatmentLocations = QGVAR(surgicalLocation); + allowedSelections[] = {"Body"}; + allowSelfTreatment = 0; + medicRequired = QGVAR(surgicalAction_MedLevel); + treatmentTime = QGVAR(intermediateTime); + items[] = {"kat_ultrasound"}; + condition = ""; + consumeItem = 0; + callbackSuccess = QFUNC(ultraAssessment); + }; + class ReboaPlacement: BasicBandage { + displayName = CSTRING(Reboa_Use); + displayNameProgress = CSTRING(Reboa_Action); + category = "surgery"; + treatmentLocations = QGVAR(surgicalLocation); + allowedSelections[] = {"LeftLeg"}; + allowSelfTreatment = 0; + medicRequired = QGVAR(surgicalAction_MedLevel); + treatmentTime = QGVAR(intermediateTime); + items[] = {"kat_ultrasound", "kat_reboa"}; + condition = QUOTE((_patient getVariable [ARR_2(QQGVAR(imaging),false)]) && (!(_patient getVariable [ARR_2(QQGVAR(reboa),false)]))); + consumeItem = 0; + callbackSuccess = QFUNC(reboaApply); + }; + class ReboaAdvancement: BasicBandage { + displayName = CSTRING(Reboa_Deep_Use); + displayNameProgress = CSTRING(Reboa_Deep_Action); + category = "surgery"; + treatmentLocations = QGVAR(surgicalLocation); + allowedSelections[] = {"LeftLeg"}; + allowSelfTreatment = 0; + medicRequired = QGVAR(surgicalAction_MedLevel); + treatmentTime = QGVAR(intermediateTime); + items[] = {"kat_ultrasound"}; + condition = QUOTE(_patient getVariable [ARR_2(QQGVAR(reboa),false)]); + consumeItem = 0; + callbackSuccess = QFUNC(reboaDeepApply); + }; + class ReboaRemoval: BasicBandage { + displayName = CSTRING(Reboa_Remove_Use); + displayNameProgress = CSTRING(Reboa_Remove_Action); + category = "surgery"; + treatmentLocations = QGVAR(reboaTime); + allowedSelections[] = {"LeftLeg"}; + allowSelfTreatment = 0; + medicRequired = QGVAR(surgicalAction_MedLevel); + treatmentTime = QGVAR(intermediateTime); + items[] = {"kat_ultrasound"}; + condition = QUOTE(_patient getVariable [ARR_2(QQGVAR(reboa),false)]); + consumeItem = 0; + callbackSuccess = QFUNC(reboaRemove); + }; }; diff --git a/addons/surgery/CfgWeapons.hpp b/addons/surgery/CfgWeapons.hpp index 9d6c5b065..8fac2ba4a 100644 --- a/addons/surgery/CfgWeapons.hpp +++ b/addons/surgery/CfgWeapons.hpp @@ -57,4 +57,26 @@ class CfgWeapons { mass = 5; }; }; + class kat_ultrasound: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Ultra_DescShort); //Not an error - it has the same description as display name + picture = QPATHTOF(ui\vacuum.paa); + model = "\A3\Props_F_Exp_A\Military\Equipment\Tablet_02_F.p3d"; + descriptionShort = CSTRING(Ultra_DescShort); + descriptionUse = CSTRING(Ultra_DescShort); + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 5; + }; + }; + class kat_reboa: ACE_ItemCore { + scope = 2; + displayName = CSTRING(Reboa_DescShort); //Not an error - it has the same description as display name + picture = QPATHTOF(ui\vacuum.paa); + model = "\A3\Props_F_Exp_A\Military\Equipment\Tablet_02_F.p3d"; + descriptionShort = CSTRING(Reboa_DescShort); + descriptionUse = CSTRING(Reboa_DescUse); + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 1; + }; + }; }; diff --git a/addons/surgery/XEH_PREP.hpp b/addons/surgery/XEH_PREP.hpp index ab21c7209..3fc0ae1f7 100644 --- a/addons/surgery/XEH_PREP.hpp +++ b/addons/surgery/XEH_PREP.hpp @@ -14,3 +14,12 @@ PREP(openReductionCheck); PREP(openReductionLocal); PREP(openReductionProgress); PREP(openReductionProgressLocal); +PREP(ultraAssessment); +PREP(ultraAssessmentLocal); +PREP(reboaApply); +PREP(reboaApplyLocal); +PREP(reboaDeepApply); +PREP(reboaDeepApplyLocal); +PREP(reboaRemove); +PREP(reboaRemoveLocal); +PREP(hasTourniquetAppliedToAdditional); \ No newline at end of file diff --git a/addons/surgery/XEH_postInit.sqf b/addons/surgery/XEH_postInit.sqf index 61d7f32bd..f004dfc8d 100644 --- a/addons/surgery/XEH_postInit.sqf +++ b/addons/surgery/XEH_postInit.sqf @@ -5,3 +5,8 @@ [QGVAR(openReduction), LINKFUNC(openReductionLocal)] call CBA_fnc_addEventHandler; [QGVAR(incision), LINKFUNC(incisionLocal)] call CBA_fnc_addEventHandler; [QGVAR(openReductionProgress), LINKFUNC(openReductionProgressLocal)] call CBA_fnc_addEventHandler; +[QGVAR(ultraAssessment), LINKFUNC(ultraAssessmentLocal)] call CBA_fnc_addEventHandler; +[QGVAR(reboaApply), LINKFUNC(reboaApplyLocal)] call CBA_fnc_addEventHandler; +[QGVAR(reboaDeepApply), LINKFUNC(reboaDeepApplyLocal)] call CBA_fnc_addEventHandler; +[QGVAR(reboaRemove), LINKFUNC(reboaRemoveLocal)] call CBA_fnc_addEventHandler; + diff --git a/addons/surgery/config.cpp b/addons/surgery/config.cpp index 1fe4bee31..607045ea0 100644 --- a/addons/surgery/config.cpp +++ b/addons/surgery/config.cpp @@ -11,7 +11,9 @@ class CfgPatches { "kat_retractor", "kat_clamp", "kat_vacuum", - "kat_plate" + "kat_plate", + "kat_ultrasound", + "kat_reboa" }; magazines[] = { }; requiredAddons[] = { diff --git a/addons/surgery/functions/fnc_hasTourniquetAppliedToAdditional.sqf b/addons/surgery/functions/fnc_hasTourniquetAppliedToAdditional.sqf new file mode 100644 index 000000000..ab0b72fd1 --- /dev/null +++ b/addons/surgery/functions/fnc_hasTourniquetAppliedToAdditional.sqf @@ -0,0 +1,23 @@ +#include "..\script_component.hpp" +/* + * Author: Glowbal + * Checks if the unit has a tourniquet applied on the specified body part. + * + * Arguments: + * 0: Unit + * 1: Body Part + * + * Return Value: + * Has Tourniquet Been Applied + * + * Example: + * [player, "leftleg"] call ace_medical_treatment_fnc_hasTourniquetAppliedTo + * + * Public: No + */ + +params ["_unit", "_bodyPart"]; + +private _index = ALL_BODY_PARTS find toLower _bodyPart; + +_index >= 0 && {GET_SURGICAL_TOURNIQUETS(_unit) select _index == 0} \ No newline at end of file diff --git a/addons/surgery/functions/fnc_init.sqf b/addons/surgery/functions/fnc_init.sqf index 780d23fe6..b0f3b462b 100644 --- a/addons/surgery/functions/fnc_init.sqf +++ b/addons/surgery/functions/fnc_init.sqf @@ -23,6 +23,9 @@ _unit setVariable [QGVAR(fractures), [0,0,0,0,0,0], true]; _unit setVariable [QGVAR(lidocaine), false, true]; _unit setVariable [QGVAR(etomidate), false, true]; _unit setVariable [QGVAR(sedated), false, true]; +_unit setVariable [QGVAR(imaging), false, true]; +_unit setVariable [QGVAR(reboa), false, true]; +_unit setVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0], true]; /* * 0 = Unaffected diff --git a/addons/surgery/functions/fnc_reboaApply.sqf b/addons/surgery/functions/fnc_reboaApply.sqf new file mode 100644 index 000000000..8b54fb59f --- /dev/null +++ b/addons/surgery/functions/fnc_reboaApply.sqf @@ -0,0 +1,22 @@ +#include "..\script_component.hpp" +/* + * Author: 1LT.Mazinski.H + * Fully heals a fracture on the selected limb. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg"] call kat_surgery_closedFracture + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +[QGVAR(reboaApply), [_medic, _patient, _bodyPart], _patient] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_reboaApplyLocal.sqf b/addons/surgery/functions/fnc_reboaApplyLocal.sqf new file mode 100644 index 000000000..deb58b4c4 --- /dev/null +++ b/addons/surgery/functions/fnc_reboaApplyLocal.sqf @@ -0,0 +1,42 @@ +#include "..\script_component.hpp" +/* + * Author: 1LT.Mazinski.H + * Local call for fully healing a fracture. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * 3: Entry + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg", "_entry"] call kat_surgery_fnc_closedFractureLocal + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; +private _tourniquets = GET_TOURNIQUETS(_patient); +private _surgicalBlock = _patient getVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0]]; + +_tourniquets set [4, CBA_missionTime]; +_tourniquets set [5, CBA_missionTime]; +_patient setVariable [VAR_TOURNIQUET, _tourniquets, true]; + +_surgicalBlock set [4, 1]; +_surgicalBlock set [5, 1]; +_patient setVariable [QGVAR(surgicalBlock), _surgicalBlock, true]; +_patient setVariable [QGVAR(reboa), true, true]; + +[_patient] call ACEFUNC(medical_status,updateWoundBloodLoss); + +[_patient] call EFUNC(misc,updateDamageEffects); + +private _nearPlayers = (_patient nearEntities ["CAManBase", 6]) select {_x call ACEFUNC(common,isPlayer)}; +TRACE_1("clearConditionCaches: tourniquetLocal",_nearPlayers); +[QACEGVAR(interact_menu,clearConditionCaches), [], _nearPlayers] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_reboaDeepApply.sqf b/addons/surgery/functions/fnc_reboaDeepApply.sqf new file mode 100644 index 000000000..ef1ff97ff --- /dev/null +++ b/addons/surgery/functions/fnc_reboaDeepApply.sqf @@ -0,0 +1,22 @@ +#include "..\script_component.hpp" +/* + * Author: 1LT.Mazinski.H + * Fully heals a fracture on the selected limb. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg"] call kat_surgery_closedFracture + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +[QGVAR(reboaDeepApply), [_medic, _patient, _bodyPart], _patient] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf new file mode 100644 index 000000000..d4f8df878 --- /dev/null +++ b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf @@ -0,0 +1,37 @@ +#include "..\script_component.hpp" +/* + * Author: 1LT.Mazinski.H + * Local call for fully healing a fracture. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * 3: Entry + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg", "_entry"] call kat_surgery_fnc_closedFractureLocal + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; +private _tourniquets = GET_TOURNIQUETS(_patient); +private _surgicalBlock = _patient getVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0]]; + +_tourniquets set [1, CBA_missionTime]; +_patient setVariable [VAR_TOURNIQUET, _tourniquets, true]; + +_surgicalBlock set [1, 1]; +_patient setVariable [QGVAR(surgicalBlock), _surgicalBlock, true]; + +[_patient] call ACEFUNC(medical_status,updateWoundBloodLoss); + +private _nearPlayers = (_patient nearEntities ["CAManBase", 6]) select {_x call ACEFUNC(common,isPlayer)}; +TRACE_1("clearConditionCaches: tourniquetLocal",_nearPlayers); +[QACEGVAR(interact_menu,clearConditionCaches), [], _nearPlayers] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_reboaRemove.sqf b/addons/surgery/functions/fnc_reboaRemove.sqf new file mode 100644 index 000000000..c0bcad7d3 --- /dev/null +++ b/addons/surgery/functions/fnc_reboaRemove.sqf @@ -0,0 +1,22 @@ +#include "..\script_component.hpp" +/* + * Author: 1LT.Mazinski.H + * Fully heals a fracture on the selected limb. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg"] call kat_surgery_closedFracture + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +[QGVAR(reboaRemove), [_medic, _patient, _bodyPart], _patient] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf new file mode 100644 index 000000000..213344893 --- /dev/null +++ b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf @@ -0,0 +1,68 @@ +#include "..\script_component.hpp" +/* + * Author: 1LT.Mazinski.H + * Local call for fully healing a fracture. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * 3: Entry + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg", "_entry"] call kat_surgery_fnc_closedFractureLocal + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; +private _tourniquets = GET_TOURNIQUETS(_patient); +private _surgicalBlock = _patient getVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0]]; + +_tourniquets set [1, 0]; +_tourniquets set [4, 0]; +_tourniquets set [5, 0]; +_patient setVariable [VAR_TOURNIQUET, _tourniquets, true]; + +_surgicalBlock set [1, 0]; +_surgicalBlock set [4, 0]; +_surgicalBlock set [5, 0]; +_patient setVariable [QGVAR(surgicalBlock), _surgicalBlock, true]; + +_patient setVariable [QGVAR(reboa), false, true]; + +[_patient] call ACEFUNC(medical_status,updateWoundBloodLoss); + +[_patient] call EFUNC(misc,updateDamageEffects); + +private _nearPlayers = (_patient nearEntities ["CAManBase", 6]) select {_x call ACEFUNC(common,isPlayer)}; +TRACE_1("clearConditionCaches: tourniquetRemove",_nearPlayers); +[QACEGVAR(interact_menu,clearConditionCaches), [], _nearPlayers] call CBA_fnc_targetEvent; + +// Handle occluded medications that were blocked due to tourniquet +private _occludedMedications = _patient getVariable [QACEGVAR(medical,occludedMedications), []]; +private _arrayModified = false; + +if !(((_patient getVariable [QEGVAR(pharma,IV), [0,0,0,0,0,0]]) select _partIndex) isEqualTo 3) then { + { + _x params ["_bodyPartN", "_medication"]; + + if (_partIndex == _bodyPartN) then { + TRACE_1("delayed medication call after tourniquet removal",_x); + [QEGVAR(pharma,medicationLocal), [_patient, _bodyPart, _medication], _patient] call CBA_fnc_targetEvent; + _occludedMedications set [_forEachIndex, []]; + _arrayModified = true; + }; + + } forEach _occludedMedications; + + if (_arrayModified) then { + _occludedMedications = _occludedMedications - [[]]; + _patient setVariable [QACEGVAR(medical,occludedMedications), _occludedMedications, true]; + }; +}; diff --git a/addons/surgery/functions/fnc_ultraAssessment.sqf b/addons/surgery/functions/fnc_ultraAssessment.sqf new file mode 100644 index 000000000..a62442bd7 --- /dev/null +++ b/addons/surgery/functions/fnc_ultraAssessment.sqf @@ -0,0 +1,22 @@ +#include "..\script_component.hpp" +/* + * Author: 1LT.Mazinski.H + * Fully heals a fracture on the selected limb. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg"] call kat_surgery_closedFracture + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +[QGVAR(ultraAssessment), [_medic, _patient, _bodyPart], _patient] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf new file mode 100644 index 000000000..edf9f5e98 --- /dev/null +++ b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf @@ -0,0 +1,62 @@ +#include "..\script_component.hpp" +/* + * Author: 1LT.Mazinski.H + * Local call for fully healing a fracture. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * 3: Entry + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg", "_entry"] call kat_surgery_fnc_closedFractureLocal + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +private _airway = LSTRING(Ultra_Airway_Normal); +private _cardiac = LSTRING(Ultra_Airway_Normal); +private _thorasic = LSTRING(Ultra_Airway_Normal); + +_patient setVariable [QGVAR(imaging), true, true]; + +if (_patient getVariable [QEGVAR(breathing,hemopneumothorax), false]) then { + _airway = LSTRING(Ultra_Thorasic_Hemo); +}; + +/*if (_patient getVariable [QEGVAR(breathing,pneumothorax, false]) then { + _airway = LSTRING(Ultra_Airway_PTX); +};*/ + +if (_patient getVariable [QEGVAR(breathing,tensionpneumothorax), false]) then { + _airway = LSTRING(Ultra_Thorasic_Tension); +}; + +switch (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0]) do { + case 4: { + _cardiac = LSTRING(Ultra_Cardiac_VT); + }; + case 3: { + _cardiac = LSTRING(Ultra_Cardiac_VF); + }; + case 2: { + _cardiac = LSTRING(Ultra_Cardiac_PEA); + }; + case 1: { + _cardiac = LSTRING(Ultra_Cardiac_Asystole); + }; + default { + _cardiac = LSTRING(Ultra_Airway_Normal); + }; +}; + +[_patient, "quick_view", LSTRING(Ultra_Airway), [_airway]] call ace_medical_treatment_fnc_addToLog; +[_patient, "quick_view", LSTRING(Ultra_Cardiac), [_cardiac]] call ace_medical_treatment_fnc_addToLog; +[_patient, "quick_view", LSTRING(Ultra_Thorasic), [_thorasic]] call ace_medical_treatment_fnc_addToLog; + diff --git a/addons/surgery/stringtable.xml b/addons/surgery/stringtable.xml index 608c0694b..5e682ad66 100644 --- a/addons/surgery/stringtable.xml +++ b/addons/surgery/stringtable.xml @@ -505,6 +505,78 @@ Colocando Aplicando + + Handheld Ultrasound + + + Used to assess internal injuries + + + Conduct EFAST Assessment + + + Assessing + + + Airway Status: %1 + + + Lung Status: %1 + + + Cardiac Status: %1 + + + Normal + + + Pneumothorax + + + Hemopneumothorax + + + Tension Pneumothorax + + + VT + + + VF + + + PEA + + + Asystole + + + REBOA Unit + + + Used to block the aorta and prevent bleeding below the heart + + + Place REBOA Unit + + + Placing + + + REBOA + + + Advance REBOA Unit + + + Advancing + + + Remove REBOA Unit + + + Removing + Kidney damage/failure 肾损伤/衰竭 From c736cdf069a80b009c1af6a13420fec5275a8cb2 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 16 Dec 2023 19:20:47 -0800 Subject: [PATCH 02/39] Cleanup to REBOA/Ultrasound Functions + H&Ts --- .../fnc_treatmentAdvanced_overstretchHead.sqf | 50 -------------- addons/breathing/XEH_preInit.sqf | 40 +++++++++++ .../functions/fnc_checkBreathing.sqf | 2 +- .../functions/fnc_handleBreathing.sqf | 21 +++++- .../functions/fnc_handlePulmoHit.sqf | 69 +++++++++++++++++++ addons/breathing/stringtable.xml | 18 +++++ addons/circulation/XEH_preInit.sqf | 31 +++++++++ .../functions/fnc_handleCardiacArrest.sqf | 8 +++ addons/circulation/functions/fnc_init.sqf | 3 + addons/circulation/stringtable.xml | 9 +++ addons/misc/functions/fnc_fullHealLocal.sqf | 3 +- addons/misc/functions/fnc_handleRespawn.sqf | 42 ++++++++--- addons/pharma/functions/fnc_alphaAction.sqf | 2 +- addons/pharma/functions/fnc_init.sqf | 14 +++- .../fnc_treatmentAdvanced_Dialysis.sqf | 2 +- .../fnc_treatmentAdvanced_DialysisLocal.sqf | 2 +- .../functions/fnc_vehicleCheckDialysis.sqf | 2 +- .../surgery/ACE_Medical_Treatment_Actions.hpp | 14 ++++ addons/surgery/XEH_PREP.hpp | 2 + addons/surgery/XEH_postInit.sqf | 2 + .../surgery/functions/fnc_closedReduction.sqf | 2 +- .../functions/fnc_closedReductionLocal.sqf | 2 +- .../surgery/functions/fnc_fractureCheck.sqf | 2 +- .../surgery/functions/fnc_fractureSelect.sqf | 2 +- .../functions/fnc_fractureSelectLocal.sqf | 2 +- addons/surgery/functions/fnc_incision.sqf | 2 +- .../surgery/functions/fnc_incisionLocal.sqf | 2 +- .../surgery/functions/fnc_openReduction.sqf | 2 +- .../functions/fnc_openReductionCheck.sqf | 2 +- .../functions/fnc_openReductionLocal.sqf | 2 +- .../functions/fnc_openReductionProgress.sqf | 2 +- .../fnc_openReductionProgressLocal.sqf | 2 +- .../surgery/functions/fnc_pericardialTap.sqf | 22 ++++++ .../functions/fnc_pericardialTapLocal.sqf | 23 +++++++ addons/surgery/functions/fnc_reboaApply.sqf | 6 +- .../surgery/functions/fnc_reboaApplyLocal.sqf | 7 +- .../surgery/functions/fnc_reboaDeepApply.sqf | 6 +- .../functions/fnc_reboaDeepApplyLocal.sqf | 7 +- addons/surgery/functions/fnc_reboaRemove.sqf | 6 +- .../functions/fnc_reboaRemoveLocal.sqf | 7 +- .../surgery/functions/fnc_ultraAssessment.sqf | 6 +- .../functions/fnc_ultraAssessmentLocal.sqf | 23 +++---- addons/surgery/stringtable.xml | 26 +++---- 43 files changed, 369 insertions(+), 130 deletions(-) delete mode 100644 addons/airway/functions/fnc_treatmentAdvanced_overstretchHead.sqf create mode 100644 addons/surgery/functions/fnc_pericardialTap.sqf create mode 100644 addons/surgery/functions/fnc_pericardialTapLocal.sqf diff --git a/addons/airway/functions/fnc_treatmentAdvanced_overstretchHead.sqf b/addons/airway/functions/fnc_treatmentAdvanced_overstretchHead.sqf deleted file mode 100644 index 4215aca79..000000000 --- a/addons/airway/functions/fnc_treatmentAdvanced_overstretchHead.sqf +++ /dev/null @@ -1,50 +0,0 @@ -#include "..\script_component.hpp" -/* - * Author: Katalam - * Overstretch the head of the patient for airway management without items - * - * Arguments: - * 0: Medic - * 1: Patient - * - * Return Value: - * Succesful treatment - * - * Example: - * [player, cursorTarget] call kat_airway_fnc_treatmentAdvanced_overstretchHead; - * - * Public: No - */ - -params ["_medic", "_patient"]; - -if (_patient getVariable [QGVAR(overstretch), false]) exitWith { - private _output = LLSTRING(Airway_already); - [_output, 2, _medic] call ACEFUNC(common,displayTextStructured); -}; -if !(_patient getVariable [QGVAR(obstruction), false]) exitWith { - private _output = LLSTRING(Airway_NA); - [_output, 2, _medic] call ACEFUNC(common,displayTextStructured); -}; - -_patient setVariable [QGVAR(overstretch), true, true]; - -private _output = LLSTRING(overstretch_info); -[_output, 2, _medic] call ACEFUNC(common,displayTextStructured); - -[{ - params ["_medic", "_patient"]; - (_patient distance2D _medic) > 5; -}, { - params ["_medic", "_patient"]; - if (_patient getVariable [QGVAR(recovery), false]) exitWith {}; - _patient setVariable [QGVAR(overstretch), false, true]; - _output = LLSTRING(overstretch_cancel); - [_output, 1.5, _medic] call ACEFUNC(common,displayTextStructured); -}, [_medic, _patient], 3600, { - params ["_medic", "_patient"]; - if (_patient getVariable [QGVAR(recovery), false]) exitWith {}; - _patient setVariable [QGVAR(overstretch), false, true]; - _output = LLSTRING(overstretch_cancel); - [_output, 1.5, _medic] call ACEFUNC(common,displayTextStructured); -}] call CBA_fnc_waitUntilAndExecute; diff --git a/addons/breathing/XEH_preInit.sqf b/addons/breathing/XEH_preInit.sqf index e5b20d13d..a028f5122 100644 --- a/addons/breathing/XEH_preInit.sqf +++ b/addons/breathing/XEH_preInit.sqf @@ -38,6 +38,26 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +// Cardiac Arrest SpO2 value +[ + QGVAR(SpO2_cardiacValue), + "SLIDER", + LLSTRING(SETTING_SpO2_cardiacValue), + [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], + [5, 95, 75, 0], + true +] call CBA_Settings_fnc_init; + +// Enables cardiac arrest in cause of SpO2 cardiac value +[ + QGVAR(SpO2_cardiacActive), + "CHECKBOX", + LLSTRING(SETTING_SpO2_cardiacActive), + [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], + [true], + true +] call CBA_Settings_fnc_init; + // Turn to unconscious in cause of SpO2 unconscious value [ QGVAR(SpO2_unconscious), @@ -259,6 +279,26 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +//Deteriorating pneumothorax arrest countdown +[ + QGVAR(PneumothoraxArrest), + "CHECKBOX", + [LLSTRING(SETTING_PneumothoraxArrest), LLSTRING(SETTING_PneumothoraxArrest_DESCRIPTION)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_ThoraxInjuries)], + [true], + true +] call CBA_Settings_fnc_init; + +//Deteriorating pneumothorax arrest countdown +[ + QGVAR(arrestPneumothorax_interval), + "SLIDER", + [LLSTRING(SETTING_arrestPneumothorax_interval), LLSTRING(SETTING_arrestPneumothorax_interval_Desc)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_ThoraxInjuries)], + [1, 3600, 30, 0], + true +] call CBA_Settings_fnc_init; + // Set if pneumothorax injury should always be visible in medical menu [ QGVAR(PneumothoraxAlwaysVisible), diff --git a/addons/breathing/functions/fnc_checkBreathing.sqf b/addons/breathing/functions/fnc_checkBreathing.sqf index c577f86dc..33df1fa9f 100644 --- a/addons/breathing/functions/fnc_checkBreathing.sqf +++ b/addons/breathing/functions/fnc_checkBreathing.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Modified: Blue * Check how patient is breathing and the patient's PH levels * diff --git a/addons/breathing/functions/fnc_handleBreathing.sqf b/addons/breathing/functions/fnc_handleBreathing.sqf index b11956ade..4521cafde 100644 --- a/addons/breathing/functions/fnc_handleBreathing.sqf +++ b/addons/breathing/functions/fnc_handleBreathing.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: Katalam, edited by Tomcat, Kygan, YetheSamartaka and MJSTIC + * Author: Katalam, edited by Tomcat, Kygan, YetheSamartaka and Mazinski * Handling oxygen saturation for breathing * * Arguments: @@ -64,6 +64,25 @@ if (!local _unit) then { private _multiplierOxygen = GVAR(BVMOxygen_Multiplier); private _perfusionActive = false; + if (GVAR(SpO2_cardiacActive)) then { + private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; + + if (GVAR(SpO2_cardiacValue) >= _status) then { + if ((_ht findIf {_x isEqualTo "hypox"}) == -1) then { + _ht pushBack "hypox"; + + if (_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; + }; + + _unit setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + } else { + _ht deleteAt (_ht find "hypox"); + _unit setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }; + //if lethal SpO2 value is activated and lower the value x, then kill _unit if ((_status <= GVAR(SpO2_dieValue)) && { GVAR(SpO2_dieActive) && { !_blockDeath } }) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; diff --git a/addons/breathing/functions/fnc_handlePulmoHit.sqf b/addons/breathing/functions/fnc_handlePulmoHit.sqf index eb85597ee..c4585cb08 100644 --- a/addons/breathing/functions/fnc_handlePulmoHit.sqf +++ b/addons/breathing/functions/fnc_handlePulmoHit.sqf @@ -42,6 +42,26 @@ private _fnc_inflictAdvancedPneumothorax = { _unit setVariable [QGVAR(tensionpneumothorax), true, true]; _unit setVariable [QGVAR(pneumothorax), 4, true]; }; + + if (GVAR(PneumothoraxArrest)) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_unit"]; + + if ((_unit getVariable[QGVAR(pneumothorax), 0]) == 4) then { + private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "tension"}) == -1) then { + _ht pushBack "tension"; + + if(_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; + }; + + _unit setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }; + }, [_unit], GVAR(arrestPneumothorax_interval)] call CBA_fnc_waitAndExecute; + }; }; }; @@ -113,5 +133,54 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { if (floor (random 100) <= GVAR(deepPenetratingInjuryChance)) then { _unit setVariable [QGVAR(deepPenetratingInjury), true, true]; _unit setVariable [QGVAR(activeChestSeal), false, true]; + + if ((floor (random 100) <= EGVAR(circulation,tamponadeChance)) && (_unit getVariable [QEGVAR(circulation,effusion), 0] == 0)) then { + _unit setVariable [QEGVAR(circulation,effusion), 1, true]; + + [{ + params ["_unit"]; + + if(_unit getVariable [QEGVAR(circulation,effusion), 0] > 0) then { + // Try to deteriorate at set interval + [{ + params ["_args", "_idPFH"]; + _args params ["_unit"]; + + private _effusion = _unit getVariable [QEGVAR(circulation,effusion), 0]; + + // If patient is dead, already treated or has already deteriorated into advanced pneumothorax, kill the PFH + if((_effusion == 0) || !(alive _unit) || (_effusion > 4)) exitWith { + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + + if (floor (random 100) <= EGVAR(circulation,deterioratingTamponade_chance)) then { + private _effusionTarget = _effusion + 1; + + // Once deteriorated far enough try to inflict tamponade + if (_effusionTarget == 4) exitWith { + private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; + + if ((_ht findIf {_x isEqualTo "tampo"}) == -1) then { + _ht pushBack "tampo"; + + if (_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; + }; + + _unit setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + + [_idPFH] call CBA_fnc_removePerFrameHandler; + }; + + _unit setVariable [QEGVAR(circulation,effusion), _effusionTarget, true]; + [_unit, 0.5 * (_effusionTarget / 4)] call ACEFUNC(medical_status,adjustPainLevel); // Adjust pain based on severity + [_unit, -20, -20, "cardiac_tension"] call EFUNC(circulation,updateBloodPressureChange); // Emulate low blood pressure and low heart rate caused by tamponade + }; + + }, EGVAR(circulation,deterioratingTamponade_interval), [_unit]] call CBA_fnc_addPerFrameHandler; + }; + }, [_unit], EGVAR(circulation,deterioratingTamponade_interval)] call CBA_fnc_waitAndExecute; + }; }; }; diff --git a/addons/breathing/stringtable.xml b/addons/breathing/stringtable.xml index 91f77990c..1b06a5948 100644 --- a/addons/breathing/stringtable.xml +++ b/addons/breathing/stringtable.xml @@ -49,6 +49,12 @@ SpO2の致命値を有効化 Ativar o valor letal de SpO2 + + Cardiac arrest SpO2 value + + + Activate cardiac arrest SpO2 value + SpO2 positive multiplier SpO2 positiver Multiplikator @@ -1158,6 +1164,18 @@ Após cada intervalo, uma chance será lançada para determinar se o pneumotórax deteriorará. Después de cada intervalo, se lanzará una probabilidad para determinar si el neumotórax empeorará + + Enable Pneumothorax Arrest + + + Enables a chance for cardiac arrest following pneumothorax + + + Deteriorating pneumothorax arrest interval + + + After each interval a chance will be rolled whether or not a pneumothorax will result in cardiac arrest + Breathing items Settings Impostazioni oggetti respirazione diff --git a/addons/circulation/XEH_preInit.sqf b/addons/circulation/XEH_preInit.sqf index d42671780..f8f7dce2d 100644 --- a/addons/circulation/XEH_preInit.sqf +++ b/addons/circulation/XEH_preInit.sqf @@ -509,4 +509,35 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +// Chance of tamponade from chest wounds +[ + QGVAR(tamponadeChance), + "SLIDER", + LLSTRING(SETTING_tamponadeChance), + [CBA_SETTINGS_CAT, LSTRING(SubCategory_AdvRhythms)], + [0,100,10,0], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(deterioratingTamponade_chance), + "SLIDER", + LLSTRING(SETTING_tamponadeChance_deterioration), + [CBA_SETTINGS_CAT, LSTRING(SubCategory_AdvRhythms)], + [0,100,35,0], + true +] call CBA_Settings_fnc_init; + +// Tamponade deterioration timer +[ + QGVAR(deterioratingTamponade_interval), + "SLIDER", + LLSTRING(SETTING_tamponadeInterval), + [CBA_SETTINGS_CAT, LSTRING(SubCategory_AdvRhythms)], + [0,3600,60,0], + true +] call CBA_Settings_fnc_init; + + + ADDON = true; \ No newline at end of file diff --git a/addons/circulation/functions/fnc_handleCardiacArrest.sqf b/addons/circulation/functions/fnc_handleCardiacArrest.sqf index 56e80bc9a..da077c254 100644 --- a/addons/circulation/functions/fnc_handleCardiacArrest.sqf +++ b/addons/circulation/functions/fnc_handleCardiacArrest.sqf @@ -49,6 +49,10 @@ if (_initial) then { }; }; + if ((count(_unit getVariable [QGVAR(ht), []])) != 0) then { + _cardiacArrestType = 2; + }; + _unit setVariable [QGVAR(cardiacArrestType), _cardiacArrestType, true]; } else { _cardiacArrestType = _unit getVariable [QGVAR(cardiacArrestType), 0]; @@ -85,6 +89,8 @@ if (GVAR(AdvRhythm_canDeteriorate)) then { { params ["_unit"]; + if (!((count(_unit getVariable [QGVAR(ht), []])) == 0)) exitWith{}; + if (_unit getVariable [QACEGVAR(medical,CPR_provider), objNull] isEqualTo objNull) then { // Don't deteriorate during CPR // chance to deteriorate straight into asystole (PEA) if (GVAR(AdvRhythm_Hardcore_Enable) && {floor (random 100) < GVAR(AdvRhythm_hardcoreDeteriorationChance) && {_unit getVariable [QGVAR(cardiacArrestType), 0] isEqualTo 4}}) then { @@ -122,6 +128,8 @@ if (GVAR(AdvRhythm_canDeteriorate)) then { { params ["_unit"]; + if (!((count(_unit getVariable [QGVAR(ht), []])) == 0)) exitWith{}; + if (_unit getVariable [QACEGVAR(medical,CPR_provider), objNull] isEqualTo objNull) then { // Don't deteriorate during CPR if (_unit getVariable [QGVAR(cardiacArrestType), 0] isEqualTo 3) then {// if VF skip PEA _unit setVariable [QGVAR(cardiacArrestType), 1, true]; diff --git a/addons/circulation/functions/fnc_init.sqf b/addons/circulation/functions/fnc_init.sqf index 6e57679de..cc16f7e98 100644 --- a/addons/circulation/functions/fnc_init.sqf +++ b/addons/circulation/functions/fnc_init.sqf @@ -18,3 +18,6 @@ params ["_unit"]; _unit setVariable [QGVAR(cprCount), 2, true]; +_unit setVariable [QGVAR(ht), [], true]; +_unit setVariable [QGVAR(effusion), 0, true]; + diff --git a/addons/circulation/stringtable.xml b/addons/circulation/stringtable.xml index 56a4514d8..4f4e97b30 100644 --- a/addons/circulation/stringtable.xml +++ b/addons/circulation/stringtable.xml @@ -2529,5 +2529,14 @@ Taxa de sangramento após parada cardíaca Tasa de sangrado en paro cardíaco + + Chance for tamponade in penetrating wounds + + + Tamponade progression timer + + + Tamponade progression chance + diff --git a/addons/misc/functions/fnc_fullHealLocal.sqf b/addons/misc/functions/fnc_fullHealLocal.sqf index b494ad7ac..4197f9916 100644 --- a/addons/misc/functions/fnc_fullHealLocal.sqf +++ b/addons/misc/functions/fnc_fullHealLocal.sqf @@ -87,6 +87,8 @@ _unit setVariable [QEGVAR(circulation,cprCount), 2, true]; _unit setVariable [QEGVAR(circulation,heartRestart), false, true]; _unit setVariable [QEGVAR(circulation,cardiacArrestType), 0, true]; +_unit setVariable [QEGVAR(circulation,ht), [], true]; +_unit setVariable [QEGVAR(circulation,effusion), 0, true]; _unit setVariable [VAR_BLOODPRESSURE_CHANGE, nil, true]; _unit setVariable [QEGVAR(circulation,isPerformingCPR), false, true]; @@ -121,7 +123,6 @@ _unit setVariable [QEGVAR(surgery,fractures), [0,0,0,0,0,0], true]; _unit setVariable [QEGVAR(surgery,lidocaine), false, true]; _unit setVariable [QEGVAR(surgery,etomidate), false, true]; _unit setVariable [QEGVAR(surgery,sedated), false, true]; -_unit setVariable [QEGVAR(surgery,etomidate), false, true]; _unit setVariable [QEGVAR(surgery,imaging), false, true]; _unit setVariable [QEGVAR(surgery,reboa), false, true]; _unit setVariable [QEGVAR(surgery,surgicalBlock), [0,0,0,0,0,0], true]; diff --git a/addons/misc/functions/fnc_handleRespawn.sqf b/addons/misc/functions/fnc_handleRespawn.sqf index 9f92c6cc0..90a0192c8 100644 --- a/addons/misc/functions/fnc_handleRespawn.sqf +++ b/addons/misc/functions/fnc_handleRespawn.sqf @@ -81,6 +81,9 @@ _unit setVariable [QEGVAR(circulation,bloodtype), [_unit, _dead, true] call EFUN _unit setVariable [QEGVAR(circulation,internalBleeding), 0, true]; _unit setVariable [QEGVAR(circulation,StoredBloodPressure), [0,0], true]; +_unit setVariable [QEGVAR(circulation,ht), [], true]; +_unit setVariable [QEGVAR(circulation,effusion), 0, true]; + _unit setVariable [VAR_BLOODPRESSURE_CHANGE, nil, true]; _unit setVariable [QEGVAR(circulation,isPerformingCPR), false, true]; @@ -170,43 +173,60 @@ if (EGVAR(pharma,kidneyAction)) then { _args params ["_unit"]; private _alive = alive _unit; + private _ht = _unit getVariable [QEGVAR(circulation, ht), []]; if (!_alive) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _ph = _unit getVariable [QEGVAR(pharma,pH), 1500]; - if (_ph == 1500) exitWith {}; + private _ph = _unit getVariable [QGVAR(pH), 1500]; + if (_ph == 1500) exitWith { + _unit setVariable [QGVAR(kidneyArrest), false, true]; + _unit setVariable [QGVAR(kidneyPressure), false, true]; + _unit setVariable [QGVAR(kidneyFail), false, true]; + + _ht deleteAt (_ht find "hydro"); + _unit setVariable [QEGVAR(circulation,ht), _ht, true]; + }; - private _kidneyFail = _unit getVariable [QEGVAR(pharma,kidneyFail), false]; - private _kidneyArrest = _unit getVariable [QEGVAR(pharma,kidneyArrest), false]; - private _kidneyPressure = _unit getVariable [QEGVAR(pharma,kidneyPressure), false]; + private _kidneyFail = _unit getVariable [QGVAR(kidneyFail), false]; + private _kidneyArrest = _unit getVariable [QGVAR(kidneyArrest), false]; + private _kidneyPressure = _unit getVariable [QGVAR(kidneyPressure), false]; if (_ph <= 0) exitWith { - _unit setVariable [QEGVAR(pharma,kidneyFail), true, true]; + _unit setVariable [QGVAR(kidneyFail), true, true]; + _unit setVariable [QGVAR(pH), 0, true]; if !(_kidneyArrest) then { private _random = random 1; if (_random >= 0.5) then { - [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; - _unit setVariable [QEGVAR(pharma,kidneyArrest), true, true]; + if ((_ht findIf {_x isEqualTo "hydro"}) == -1) then { + _ht pushBack "hydro"; + + if(_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; + }; + + _unit setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + _unit setVariable [QGVAR(kidneyArrest), true, true]; }; }; }; if (_ph < 750) exitWith { _ph = (_ph + 25) min 1500; - _unit setVariable [QEGVAR(pharma,pH), _ph, true]; + _unit setVariable [QGVAR(pH), _ph, true]; if !(_kidneyPressure) then { - _unit setVariable [QEGVAR(pharma,kidneyPressure), true, true]; + _unit setVariable [QGVAR(kidneyPressure), true, true]; [_unit, "KIDNEY", 15, 1200, 30, 0, 15] call ACEFUNC(medical_status,addMedicationAdjustment); }; }; _ph = (_ph + 50) min 1500; - _unit setVariable [QEGVAR(pharma,pH), _ph, true]; + _unit setVariable [QGVAR(pH), _ph, true]; }, 20, [_unit]] call CBA_fnc_addPerFrameHandler; }; diff --git a/addons/pharma/functions/fnc_alphaAction.sqf b/addons/pharma/functions/fnc_alphaAction.sqf index d7dd9b739..d45b5132c 100644 --- a/addons/pharma/functions/fnc_alphaAction.sqf +++ b/addons/pharma/functions/fnc_alphaAction.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: MJSTIC + * Author: Mazinski * Adds the alpha factor value from medications to the patient. * * Arguments: diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index 6025d6f64..db1bc49cd 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -71,6 +71,7 @@ if (GVAR(kidneyAction)) then { _args params ["_unit"]; private _alive = alive _unit; + private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; if (!_alive) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; @@ -81,6 +82,9 @@ if (GVAR(kidneyAction)) then { _unit setVariable [QGVAR(kidneyArrest), false, true]; _unit setVariable [QGVAR(kidneyPressure), false, true]; _unit setVariable [QGVAR(kidneyFail), false, true]; + + _ht deleteAt (_ht find "hydro"); + _unit setVariable [QEGVAR(circulation,ht), _ht, true]; }; private _kidneyFail = _unit getVariable [QGVAR(kidneyFail), false]; @@ -95,7 +99,15 @@ if (GVAR(kidneyAction)) then { private _random = random 1; if (_random >= 0.5) then { - [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; + if ((_ht findIf {_x isEqualTo "hydro"}) == -1) then { + _ht pushBack "hydro"; + + if(_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; + }; + + _unit setVariable [QEGVAR(circulation,ht), _ht, true]; + }; _unit setVariable [QGVAR(kidneyArrest), true, true]; }; }; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_Dialysis.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_Dialysis.sqf index 54fc16a85..9f45c337b 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_Dialysis.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_Dialysis.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Treatment call for dialysis procedure * * Arguments: diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_DialysisLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_DialysisLocal.sqf index 8be16adae..2365eaa4a 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_DialysisLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_DialysisLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Local treatment call for dialysis procedure * * Arguments: diff --git a/addons/pharma/functions/fnc_vehicleCheckDialysis.sqf b/addons/pharma/functions/fnc_vehicleCheckDialysis.sqf index 767375667..204675bb7 100644 --- a/addons/pharma/functions/fnc_vehicleCheckDialysis.sqf +++ b/addons/pharma/functions/fnc_vehicleCheckDialysis.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Allows for dialysis to occur around medical vehicles * * Arguments: diff --git a/addons/surgery/ACE_Medical_Treatment_Actions.hpp b/addons/surgery/ACE_Medical_Treatment_Actions.hpp index 23bcb70b2..df1e37d9f 100644 --- a/addons/surgery/ACE_Medical_Treatment_Actions.hpp +++ b/addons/surgery/ACE_Medical_Treatment_Actions.hpp @@ -174,4 +174,18 @@ class ACE_Medical_Treatment_Actions { consumeItem = 0; callbackSuccess = QFUNC(reboaRemove); }; + class PericardialTap: BasicBandage { + displayName = CSTRING(Pericardial_Tap_Use); + displayNameProgress = CSTRING(Pericardial_Tap_Action); + category = "surgery"; + treatmentLocations = QGVAR(intermediateTime); + allowedSelections[] = {"Body"}; + allowSelfTreatment = 0; + medicRequired = QGVAR(surgicalAction_MedLevel); + treatmentTime = QGVAR(intermediateTime); + items[] = {"kat_ultrasound"}; + condition = ""; + consumeItem = 0; + callbackSuccess = QFUNC(pericardialTap); + }; }; diff --git a/addons/surgery/XEH_PREP.hpp b/addons/surgery/XEH_PREP.hpp index 3fc0ae1f7..d845cf86a 100644 --- a/addons/surgery/XEH_PREP.hpp +++ b/addons/surgery/XEH_PREP.hpp @@ -16,6 +16,8 @@ PREP(openReductionProgress); PREP(openReductionProgressLocal); PREP(ultraAssessment); PREP(ultraAssessmentLocal); +PREP(pericardialTap); +PREP(pericardialTapLocal); PREP(reboaApply); PREP(reboaApplyLocal); PREP(reboaDeepApply); diff --git a/addons/surgery/XEH_postInit.sqf b/addons/surgery/XEH_postInit.sqf index f004dfc8d..e15e2108a 100644 --- a/addons/surgery/XEH_postInit.sqf +++ b/addons/surgery/XEH_postInit.sqf @@ -9,4 +9,6 @@ [QGVAR(reboaApply), LINKFUNC(reboaApplyLocal)] call CBA_fnc_addEventHandler; [QGVAR(reboaDeepApply), LINKFUNC(reboaDeepApplyLocal)] call CBA_fnc_addEventHandler; [QGVAR(reboaRemove), LINKFUNC(reboaRemoveLocal)] call CBA_fnc_addEventHandler; +[QGVAR(pericardialTap), LINKFUNC(pericardialTapLocal)] call CBA_fnc_addEventHandler; + diff --git a/addons/surgery/functions/fnc_closedReduction.sqf b/addons/surgery/functions/fnc_closedReduction.sqf index 675cf8867..ba84659c4 100644 --- a/addons/surgery/functions/fnc_closedReduction.sqf +++ b/addons/surgery/functions/fnc_closedReduction.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Fully heals a fracture on the selected limb. * * Arguments: diff --git a/addons/surgery/functions/fnc_closedReductionLocal.sqf b/addons/surgery/functions/fnc_closedReductionLocal.sqf index b1fe22238..6ba1e7143 100644 --- a/addons/surgery/functions/fnc_closedReductionLocal.sqf +++ b/addons/surgery/functions/fnc_closedReductionLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Local call for fully healing a fracture. * * Arguments: diff --git a/addons/surgery/functions/fnc_fractureCheck.sqf b/addons/surgery/functions/fnc_fractureCheck.sqf index 92b585d70..9dda9d942 100644 --- a/addons/surgery/functions/fnc_fractureCheck.sqf +++ b/addons/surgery/functions/fnc_fractureCheck.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Checks if the patient has a fracture * * Arguments: diff --git a/addons/surgery/functions/fnc_fractureSelect.sqf b/addons/surgery/functions/fnc_fractureSelect.sqf index bb9aeea10..8befff6f2 100644 --- a/addons/surgery/functions/fnc_fractureSelect.sqf +++ b/addons/surgery/functions/fnc_fractureSelect.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Selects the patient's fracture state * * Arguments: diff --git a/addons/surgery/functions/fnc_fractureSelectLocal.sqf b/addons/surgery/functions/fnc_fractureSelectLocal.sqf index bddd6f4a8..6911a0d67 100644 --- a/addons/surgery/functions/fnc_fractureSelectLocal.sqf +++ b/addons/surgery/functions/fnc_fractureSelectLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Local call to select the patient's fracture state * * Arguments: diff --git a/addons/surgery/functions/fnc_incision.sqf b/addons/surgery/functions/fnc_incision.sqf index d3e5d5241..1de81a0a9 100644 --- a/addons/surgery/functions/fnc_incision.sqf +++ b/addons/surgery/functions/fnc_incision.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Starts the surgical process for a fracture * * Arguments: diff --git a/addons/surgery/functions/fnc_incisionLocal.sqf b/addons/surgery/functions/fnc_incisionLocal.sqf index 7b2745655..c70b4421a 100644 --- a/addons/surgery/functions/fnc_incisionLocal.sqf +++ b/addons/surgery/functions/fnc_incisionLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Local call to start the surgical process for a fracture * * Arguments: diff --git a/addons/surgery/functions/fnc_openReduction.sqf b/addons/surgery/functions/fnc_openReduction.sqf index 3507a5d7b..90c6cc62e 100644 --- a/addons/surgery/functions/fnc_openReduction.sqf +++ b/addons/surgery/functions/fnc_openReduction.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Removes the fracture status from an open fracture * * Arguments: diff --git a/addons/surgery/functions/fnc_openReductionCheck.sqf b/addons/surgery/functions/fnc_openReductionCheck.sqf index 6c9f5f305..c6d62deae 100644 --- a/addons/surgery/functions/fnc_openReductionCheck.sqf +++ b/addons/surgery/functions/fnc_openReductionCheck.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Local call to check if a patient has a complex fracture * * Arguments: diff --git a/addons/surgery/functions/fnc_openReductionLocal.sqf b/addons/surgery/functions/fnc_openReductionLocal.sqf index fdc2f6acb..2fd8a9c46 100644 --- a/addons/surgery/functions/fnc_openReductionLocal.sqf +++ b/addons/surgery/functions/fnc_openReductionLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Local call to remove the fracture status from an open fracture * * Arguments: diff --git a/addons/surgery/functions/fnc_openReductionProgress.sqf b/addons/surgery/functions/fnc_openReductionProgress.sqf index 62aba277a..bc6849517 100644 --- a/addons/surgery/functions/fnc_openReductionProgress.sqf +++ b/addons/surgery/functions/fnc_openReductionProgress.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Progresses the treatment process for a complex fracture * Arguments: * 0: Medic diff --git a/addons/surgery/functions/fnc_openReductionProgressLocal.sqf b/addons/surgery/functions/fnc_openReductionProgressLocal.sqf index 22ed946e6..6b10dd5c2 100644 --- a/addons/surgery/functions/fnc_openReductionProgressLocal.sqf +++ b/addons/surgery/functions/fnc_openReductionProgressLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H + * Author: Mazinski * Progresses the treatment process for a complex fracture * * Arguments: diff --git a/addons/surgery/functions/fnc_pericardialTap.sqf b/addons/surgery/functions/fnc_pericardialTap.sqf new file mode 100644 index 000000000..f6fbdb972 --- /dev/null +++ b/addons/surgery/functions/fnc_pericardialTap.sqf @@ -0,0 +1,22 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski + * Runs the Pericardial Tap. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg"] call kat_surgery_pericardialTap + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +[QGVAR(pericardialTap), [_medic, _patient, _bodyPart], _patient] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_pericardialTapLocal.sqf b/addons/surgery/functions/fnc_pericardialTapLocal.sqf new file mode 100644 index 000000000..fd6c5c841 --- /dev/null +++ b/addons/surgery/functions/fnc_pericardialTapLocal.sqf @@ -0,0 +1,23 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski + * Local call for running the Pericardial Tap. + * + * Arguments: + * 0: Medic + * 1: Patient + * 2: Body Part + * + * Return Value: + * Nothing + * + * Example: + * [player, cursorObject, "LeftLeg"] call kat_surgery_fnc_ultraAssessmentLocal + * + * Public: No + */ + +params ["_medic", "_patient", "_bodyPart"]; + +_patient setVariable [QEGVAR(circulation,effusion), 0, true]; + diff --git a/addons/surgery/functions/fnc_reboaApply.sqf b/addons/surgery/functions/fnc_reboaApply.sqf index 8b54fb59f..f5a54a175 100644 --- a/addons/surgery/functions/fnc_reboaApply.sqf +++ b/addons/surgery/functions/fnc_reboaApply.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H - * Fully heals a fracture on the selected limb. + * Author: Mazinski + * Applies the REBOA function. * * Arguments: * 0: Medic @@ -12,7 +12,7 @@ * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_closedFracture + * [player, cursorObject, "LeftLeg"] call kat_surgery_reboaApply * * Public: No */ diff --git a/addons/surgery/functions/fnc_reboaApplyLocal.sqf b/addons/surgery/functions/fnc_reboaApplyLocal.sqf index deb58b4c4..8bf008de1 100644 --- a/addons/surgery/functions/fnc_reboaApplyLocal.sqf +++ b/addons/surgery/functions/fnc_reboaApplyLocal.sqf @@ -1,19 +1,18 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H - * Local call for fully healing a fracture. + * Author: Mazinski + * Local call for applying REBOA. * * Arguments: * 0: Medic * 1: Patient * 2: Body Part - * 3: Entry * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg", "_entry"] call kat_surgery_fnc_closedFractureLocal + * [player, cursorObject, "LeftLeg"] call kat_surgery_fnc_reboaApplyLocal * * Public: No */ diff --git a/addons/surgery/functions/fnc_reboaDeepApply.sqf b/addons/surgery/functions/fnc_reboaDeepApply.sqf index ef1ff97ff..6bc90e636 100644 --- a/addons/surgery/functions/fnc_reboaDeepApply.sqf +++ b/addons/surgery/functions/fnc_reboaDeepApply.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H - * Fully heals a fracture on the selected limb. + * Author: Mazinski + * Applies the Deep REBOA function. * * Arguments: * 0: Medic @@ -12,7 +12,7 @@ * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_closedFracture + * [player, cursorObject, "LeftLeg"] call kat_surgery_reboaDeepApply * * Public: No */ diff --git a/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf index d4f8df878..ddbf06a97 100644 --- a/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf +++ b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf @@ -1,19 +1,18 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H - * Local call for fully healing a fracture. + * Author: Mazinski + * Local call for applying Deep REBOA. * * Arguments: * 0: Medic * 1: Patient * 2: Body Part - * 3: Entry * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg", "_entry"] call kat_surgery_fnc_closedFractureLocal + * [player, cursorObject, "LeftLeg"] call kat_surgery_fnc_reboaDeepApplyLocal * * Public: No */ diff --git a/addons/surgery/functions/fnc_reboaRemove.sqf b/addons/surgery/functions/fnc_reboaRemove.sqf index c0bcad7d3..42d649eec 100644 --- a/addons/surgery/functions/fnc_reboaRemove.sqf +++ b/addons/surgery/functions/fnc_reboaRemove.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H - * Fully heals a fracture on the selected limb. + * Author: Mazinski + * Removes the REBOA from the patient. * * Arguments: * 0: Medic @@ -12,7 +12,7 @@ * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_closedFracture + * [player, cursorObject, "LeftLeg"] call kat_surgery_reboaRemove * * Public: No */ diff --git a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf index 213344893..c22ff3f14 100644 --- a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf +++ b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf @@ -1,19 +1,18 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H - * Local call for fully healing a fracture. + * Author: Mazinski + * Local call for removing REBOA. * * Arguments: * 0: Medic * 1: Patient * 2: Body Part - * 3: Entry * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg", "_entry"] call kat_surgery_fnc_closedFractureLocal + * [player, cursorObject, "LeftLeg"] call kat_surgery_fnc_reboaRemoveLocal * * Public: No */ diff --git a/addons/surgery/functions/fnc_ultraAssessment.sqf b/addons/surgery/functions/fnc_ultraAssessment.sqf index a62442bd7..deb974150 100644 --- a/addons/surgery/functions/fnc_ultraAssessment.sqf +++ b/addons/surgery/functions/fnc_ultraAssessment.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H - * Fully heals a fracture on the selected limb. + * Author: Mazinski + * Runs the Ultrasound Assessment. * * Arguments: * 0: Medic @@ -12,7 +12,7 @@ * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_closedFracture + * [player, cursorObject, "LeftLeg"] call kat_surgery_ultraAssessment * * Public: No */ diff --git a/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf index edf9f5e98..374161e96 100644 --- a/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf +++ b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf @@ -1,19 +1,18 @@ #include "..\script_component.hpp" /* - * Author: 1LT.Mazinski.H - * Local call for fully healing a fracture. + * Author: Mazinski + * Local call for running the Ultrasound Assessment. * * Arguments: * 0: Medic * 1: Patient * 2: Body Part - * 3: Entry * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg", "_entry"] call kat_surgery_fnc_closedFractureLocal + * [player, cursorObject, "LeftLeg"] call kat_surgery_fnc_ultraAssessmentLocal * * Public: No */ @@ -26,30 +25,30 @@ private _thorasic = LSTRING(Ultra_Airway_Normal); _patient setVariable [QGVAR(imaging), true, true]; +if ((_patient getVariable [QEGVAR(breathing,pneumothorax), 0]) != 0) then { + _airway = LSTRING(Ultra_Thorasic_PTX); +}; + if (_patient getVariable [QEGVAR(breathing,hemopneumothorax), false]) then { _airway = LSTRING(Ultra_Thorasic_Hemo); }; -/*if (_patient getVariable [QEGVAR(breathing,pneumothorax, false]) then { - _airway = LSTRING(Ultra_Airway_PTX); -};*/ - if (_patient getVariable [QEGVAR(breathing,tensionpneumothorax), false]) then { _airway = LSTRING(Ultra_Thorasic_Tension); }; switch (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0]) do { case 4: { - _cardiac = LSTRING(Ultra_Cardiac_VT); + _cardiac = LSTRING(Ultra_Cardiac_Shockable); }; case 3: { - _cardiac = LSTRING(Ultra_Cardiac_VF); + _cardiac = LSTRING(Ultra_Cardiac_Shockable); }; case 2: { - _cardiac = LSTRING(Ultra_Cardiac_PEA); + _cardiac = LSTRING(Ultra_Cardiac_Unshockable); }; case 1: { - _cardiac = LSTRING(Ultra_Cardiac_Asystole); + _cardiac = LSTRING(Ultra_Cardiac_Unshockable); }; default { _cardiac = LSTRING(Ultra_Airway_Normal); diff --git a/addons/surgery/stringtable.xml b/addons/surgery/stringtable.xml index 5e682ad66..ecc7bae27 100644 --- a/addons/surgery/stringtable.xml +++ b/addons/surgery/stringtable.xml @@ -529,26 +529,20 @@ Normal - + Pneumothorax - + Hemopneumothorax - + Tension Pneumothorax - - VT + + Arrest - Shockable - - VF - - - PEA - - - Asystole + + Arrest - Not Shockable REBOA Unit @@ -577,6 +571,12 @@ Removing + + Pericardial Tap + + + Performing + Kidney damage/failure 肾损伤/衰竭 From 343b01f14f9756c63857e447dcdb571fe8cc6927 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 19 Dec 2023 23:48:07 -0800 Subject: [PATCH 03/39] Clearing pneumo conditions --- .../fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf | 4 ++++ .../fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf | 4 ++++ addons/pharma/functions/fnc_init.sqf | 6 +++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/addons/breathing/functions/fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf b/addons/breathing/functions/fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf index 087b6a4ff..3c5d5860e 100644 --- a/addons/breathing/functions/fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf +++ b/addons/breathing/functions/fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf @@ -24,6 +24,10 @@ if (_patient getVariable [QGVAR(activeChestSeal), false]) then { [_patient] call EFUNC(circulation,updateInternalBleeding); }; +private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; +_ht deleteAt (_ht find "tension"); +_unit setVariable [QEGVAR(circulation,ht), _ht, true]; + if (!(_patient getVariable [QGVAR(pneumothorax), 0] > 0) && !(_patient getVariable [QGVAR(hemopneumothorax), false]) && !(_patient getVariable [QGVAR(tensionpneumothorax), false])) then { [_patient, 0, 0, "ptx_tension", true] call EFUNC(circulation,updateBloodPressureChange); if (GVAR(clearChestSealAfterTreatment)) then { diff --git a/addons/breathing/functions/fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf b/addons/breathing/functions/fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf index 587a0bf5f..d5ec4d561 100644 --- a/addons/breathing/functions/fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf +++ b/addons/breathing/functions/fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf @@ -23,6 +23,10 @@ if (_patient getVariable [QGVAR(activeChestSeal), false]) then { _patient setVariable [QGVAR(tensionpneumothorax), false, true]; }; +private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; +_ht deleteAt (_ht find "tension"); +_unit setVariable [QEGVAR(circulation,ht), _ht, true]; + if (!(_patient getVariable [QGVAR(pneumothorax), 0] > 0) && !(_patient getVariable [QGVAR(hemopneumothorax), false]) && !(_patient getVariable [QGVAR(tensionpneumothorax), false])) then { [_patient, 0, 0, "ptx_tension", true] call EFUNC(circulation,updateBloodPressureChange); if (GVAR(clearChestSealAfterTreatment)) then { diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index db1bc49cd..6cb4d75bd 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -78,12 +78,12 @@ if (GVAR(kidneyAction)) then { }; private _ph = _unit getVariable [QGVAR(pH), 1500]; - if (_ph == 1500) exitWith { + if (_ph > 750) exitWith { _unit setVariable [QGVAR(kidneyArrest), false, true]; _unit setVariable [QGVAR(kidneyPressure), false, true]; _unit setVariable [QGVAR(kidneyFail), false, true]; - _ht deleteAt (_ht find "hydro"); + ht deleteAt (_ht find "hydro"); _unit setVariable [QEGVAR(circulation,ht), _ht, true]; }; @@ -175,4 +175,4 @@ if (GVAR(coagulation)) then { } forEach _openWounds; }; }, 8, [_unit]] call CBA_fnc_addPerFrameHandler; -}; +}; \ No newline at end of file From 7841b4ecafdbbeade38c0e101c41c6ece5cd4f55 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Fri, 22 Dec 2023 00:34:36 -0800 Subject: [PATCH 04/39] REBOA/Ultra Completion --- addons/pharma/functions/fnc_init.sqf | 2 +- .../surgery/ACE_Medical_Treatment_Actions.hpp | 10 +++++----- addons/surgery/CfgWeapons.hpp | 8 ++++---- .../functions/fnc_pericardialTapLocal.sqf | 6 +++++- .../surgery/functions/fnc_reboaApplyLocal.sqf | 2 ++ addons/surgery/ui/reboa.paa | Bin 0 -> 294197 bytes addons/surgery/ui/ultra.paa | Bin 0 -> 121955 bytes 7 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 addons/surgery/ui/reboa.paa create mode 100644 addons/surgery/ui/ultra.paa diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index 6cb4d75bd..94511bfad 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -83,7 +83,7 @@ if (GVAR(kidneyAction)) then { _unit setVariable [QGVAR(kidneyPressure), false, true]; _unit setVariable [QGVAR(kidneyFail), false, true]; - ht deleteAt (_ht find "hydro"); + _ht deleteAt (_ht find "hydro"); _unit setVariable [QEGVAR(circulation,ht), _ht, true]; }; diff --git a/addons/surgery/ACE_Medical_Treatment_Actions.hpp b/addons/surgery/ACE_Medical_Treatment_Actions.hpp index df1e37d9f..e96a06240 100644 --- a/addons/surgery/ACE_Medical_Treatment_Actions.hpp +++ b/addons/surgery/ACE_Medical_Treatment_Actions.hpp @@ -128,7 +128,7 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(surgicalAction_MedLevel); treatmentTime = QGVAR(intermediateTime); items[] = {"kat_ultrasound"}; - condition = ""; + condition = QUOTE(!(_patient getVariable [ARR_2(QQGVAR(imaging),false)])); consumeItem = 0; callbackSuccess = QFUNC(ultraAssessment); }; @@ -141,9 +141,9 @@ class ACE_Medical_Treatment_Actions { allowSelfTreatment = 0; medicRequired = QGVAR(surgicalAction_MedLevel); treatmentTime = QGVAR(intermediateTime); - items[] = {"kat_ultrasound", "kat_reboa"}; + items[] = {"kat_reboa"}; condition = QUOTE((_patient getVariable [ARR_2(QQGVAR(imaging),false)]) && (!(_patient getVariable [ARR_2(QQGVAR(reboa),false)]))); - consumeItem = 0; + consumeItem = 1; callbackSuccess = QFUNC(reboaApply); }; class ReboaAdvancement: BasicBandage { @@ -178,13 +178,13 @@ class ACE_Medical_Treatment_Actions { displayName = CSTRING(Pericardial_Tap_Use); displayNameProgress = CSTRING(Pericardial_Tap_Action); category = "surgery"; - treatmentLocations = QGVAR(intermediateTime); + treatmentLocations = QGVAR(surgicalLocation); allowedSelections[] = {"Body"}; allowSelfTreatment = 0; medicRequired = QGVAR(surgicalAction_MedLevel); treatmentTime = QGVAR(intermediateTime); items[] = {"kat_ultrasound"}; - condition = ""; + condition = QUOTE(_patient getVariable [ARR_2(QQGVAR(imaging),false)]); consumeItem = 0; callbackSuccess = QFUNC(pericardialTap); }; diff --git a/addons/surgery/CfgWeapons.hpp b/addons/surgery/CfgWeapons.hpp index 8fac2ba4a..c6aa8d6c9 100644 --- a/addons/surgery/CfgWeapons.hpp +++ b/addons/surgery/CfgWeapons.hpp @@ -60,7 +60,7 @@ class CfgWeapons { class kat_ultrasound: ACE_ItemCore { scope = 2; displayName = CSTRING(Ultra_DescShort); //Not an error - it has the same description as display name - picture = QPATHTOF(ui\vacuum.paa); + picture = QPATHTOF(ui\ultra.paa); model = "\A3\Props_F_Exp_A\Military\Equipment\Tablet_02_F.p3d"; descriptionShort = CSTRING(Ultra_DescShort); descriptionUse = CSTRING(Ultra_DescShort); @@ -71,12 +71,12 @@ class CfgWeapons { class kat_reboa: ACE_ItemCore { scope = 2; displayName = CSTRING(Reboa_DescShort); //Not an error - it has the same description as display name - picture = QPATHTOF(ui\vacuum.paa); - model = "\A3\Props_F_Exp_A\Military\Equipment\Tablet_02_F.p3d"; + picture = QPATHTOF(ui\reboa.paa); + model = "\A3\Structures_F_Heli\Items\Electronics\HDMICable_01_F.p3d"; descriptionShort = CSTRING(Reboa_DescShort); descriptionUse = CSTRING(Reboa_DescUse); class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; }; -}; +}; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_pericardialTapLocal.sqf b/addons/surgery/functions/fnc_pericardialTapLocal.sqf index fd6c5c841..7b90abc3b 100644 --- a/addons/surgery/functions/fnc_pericardialTapLocal.sqf +++ b/addons/surgery/functions/fnc_pericardialTapLocal.sqf @@ -19,5 +19,9 @@ params ["_medic", "_patient", "_bodyPart"]; -_patient setVariable [QEGVAR(circulation,effusion), 0, true]; +private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; +_ht deleteAt (_ht find "tampo"); +_patient setVariable [QEGVAR(circulation,ht), _ht, true]; +_patient setVariable [QEGVAR(circulation,effusion), 0, true]; +_patient setVariable [QGVAR(imaging), false, true]; diff --git a/addons/surgery/functions/fnc_reboaApplyLocal.sqf b/addons/surgery/functions/fnc_reboaApplyLocal.sqf index 8bf008de1..346fc0c57 100644 --- a/addons/surgery/functions/fnc_reboaApplyLocal.sqf +++ b/addons/surgery/functions/fnc_reboaApplyLocal.sqf @@ -32,6 +32,8 @@ _surgicalBlock set [5, 1]; _patient setVariable [QGVAR(surgicalBlock), _surgicalBlock, true]; _patient setVariable [QGVAR(reboa), true, true]; +_patient setVariable [QGVAR(imaging), false, true]; + [_patient] call ACEFUNC(medical_status,updateWoundBloodLoss); [_patient] call EFUNC(misc,updateDamageEffects); diff --git a/addons/surgery/ui/reboa.paa b/addons/surgery/ui/reboa.paa new file mode 100644 index 0000000000000000000000000000000000000000..0519189f77f7303b631175b9eb63b3061e070c5d GIT binary patch literal 294197 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 z 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

NNNtsN{(X%E8U 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®OiCDnxnqnbX!?kcXJZe$^K2}rQ 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 literal 0 HcmV?d00001 diff --git a/addons/surgery/ui/ultra.paa b/addons/surgery/ui/ultra.paa new file mode 100644 index 0000000000000000000000000000000000000000..3acf35ccb6e73a3b816d6538988d6309d984658c GIT binary patch literal 121955 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 literal 0 HcmV?d00001 From 4a2c5f121f302d8e50e0a6c108ccdec21c15bdd3 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Fri, 29 Dec 2023 13:27:25 -0800 Subject: [PATCH 05/39] Update addons/breathing/functions/fnc_handleBreathing.sqf Co-authored-by: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> --- addons/breathing/functions/fnc_handleBreathing.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/breathing/functions/fnc_handleBreathing.sqf b/addons/breathing/functions/fnc_handleBreathing.sqf index 4521cafde..0ab331065 100644 --- a/addons/breathing/functions/fnc_handleBreathing.sqf +++ b/addons/breathing/functions/fnc_handleBreathing.sqf @@ -67,7 +67,7 @@ if (!local _unit) then { if (GVAR(SpO2_cardiacActive)) then { private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; - if (GVAR(SpO2_cardiacValue) >= _status) then { + if (GVAR(SpO2_cardiacValue) =< _status) then { if ((_ht findIf {_x isEqualTo "hypox"}) == -1) then { _ht pushBack "hypox"; From bfd33a02d30ed6a1b95b030775287e82b20093d1 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Fri, 29 Dec 2023 13:27:35 -0800 Subject: [PATCH 06/39] Update addons/breathing/functions/fnc_handleBreathing.sqf Co-authored-by: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> --- addons/breathing/functions/fnc_handleBreathing.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/breathing/functions/fnc_handleBreathing.sqf b/addons/breathing/functions/fnc_handleBreathing.sqf index 0ab331065..a7585739c 100644 --- a/addons/breathing/functions/fnc_handleBreathing.sqf +++ b/addons/breathing/functions/fnc_handleBreathing.sqf @@ -71,7 +71,7 @@ if (!local _unit) then { if ((_ht findIf {_x isEqualTo "hypox"}) == -1) then { _ht pushBack "hypox"; - if (_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + if (_unit getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; }; From c59ce7e5a1e17dbb975412986681b1e3277d8c39 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Fri, 29 Dec 2023 13:27:48 -0800 Subject: [PATCH 07/39] Update addons/breathing/functions/fnc_handlePulmoHit.sqf Co-authored-by: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> --- addons/breathing/functions/fnc_handlePulmoHit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/breathing/functions/fnc_handlePulmoHit.sqf b/addons/breathing/functions/fnc_handlePulmoHit.sqf index c4585cb08..cdd3b42d5 100644 --- a/addons/breathing/functions/fnc_handlePulmoHit.sqf +++ b/addons/breathing/functions/fnc_handlePulmoHit.sqf @@ -48,7 +48,7 @@ private _fnc_inflictAdvancedPneumothorax = { params ["_args", "_idPFH"]; _args params ["_unit"]; - if ((_unit getVariable[QGVAR(pneumothorax), 0]) == 4) then { + if ((_unit getVariable [QGVAR(pneumothorax), 0]) == 4) then { private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; if ((_ht findIf {_x isEqualTo "tension"}) == -1) then { _ht pushBack "tension"; From 2723d7a31b7a849cfdfee0f6ee2eac776ae59550 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Fri, 29 Dec 2023 13:27:56 -0800 Subject: [PATCH 08/39] Update addons/breathing/functions/fnc_handlePulmoHit.sqf Co-authored-by: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> --- addons/breathing/functions/fnc_handlePulmoHit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/breathing/functions/fnc_handlePulmoHit.sqf b/addons/breathing/functions/fnc_handlePulmoHit.sqf index cdd3b42d5..42d148211 100644 --- a/addons/breathing/functions/fnc_handlePulmoHit.sqf +++ b/addons/breathing/functions/fnc_handlePulmoHit.sqf @@ -53,7 +53,7 @@ private _fnc_inflictAdvancedPneumothorax = { if ((_ht findIf {_x isEqualTo "tension"}) == -1) then { _ht pushBack "tension"; - if(_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + if (_unit getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; }; From 91e8375d6143f63bf7660a0775feeee123ea98f9 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Fri, 29 Dec 2023 13:34:18 -0800 Subject: [PATCH 09/39] Apply suggestions from code review Co-authored-by: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> --- addons/breathing/functions/fnc_handlePulmoHit.sqf | 6 +++--- addons/circulation/functions/fnc_handleCardiacArrest.sqf | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/breathing/functions/fnc_handlePulmoHit.sqf b/addons/breathing/functions/fnc_handlePulmoHit.sqf index 42d148211..17466f014 100644 --- a/addons/breathing/functions/fnc_handlePulmoHit.sqf +++ b/addons/breathing/functions/fnc_handlePulmoHit.sqf @@ -140,7 +140,7 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { [{ params ["_unit"]; - if(_unit getVariable [QEGVAR(circulation,effusion), 0] > 0) then { + if (_unit getVariable [QEGVAR(circulation,effusion), 0] > 0) then { // Try to deteriorate at set interval [{ params ["_args", "_idPFH"]; @@ -149,7 +149,7 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { private _effusion = _unit getVariable [QEGVAR(circulation,effusion), 0]; // If patient is dead, already treated or has already deteriorated into advanced pneumothorax, kill the PFH - if((_effusion == 0) || !(alive _unit) || (_effusion > 4)) exitWith { + if ((_effusion == 0) || !(alive _unit) || (_effusion > 4)) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; @@ -163,7 +163,7 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { if ((_ht findIf {_x isEqualTo "tampo"}) == -1) then { _ht pushBack "tampo"; - if (_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + if (_unit getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; }; diff --git a/addons/circulation/functions/fnc_handleCardiacArrest.sqf b/addons/circulation/functions/fnc_handleCardiacArrest.sqf index da077c254..d2d435d8c 100644 --- a/addons/circulation/functions/fnc_handleCardiacArrest.sqf +++ b/addons/circulation/functions/fnc_handleCardiacArrest.sqf @@ -89,7 +89,7 @@ if (GVAR(AdvRhythm_canDeteriorate)) then { { params ["_unit"]; - if (!((count(_unit getVariable [QGVAR(ht), []])) == 0)) exitWith{}; + if (!((count(_unit getVariable [QGVAR(ht), []])) == 0)) exitWith {}; if (_unit getVariable [QACEGVAR(medical,CPR_provider), objNull] isEqualTo objNull) then { // Don't deteriorate during CPR // chance to deteriorate straight into asystole (PEA) @@ -128,7 +128,7 @@ if (GVAR(AdvRhythm_canDeteriorate)) then { { params ["_unit"]; - if (!((count(_unit getVariable [QGVAR(ht), []])) == 0)) exitWith{}; + if (!((count(_unit getVariable [QGVAR(ht), []])) == 0)) exitWith {}; if (_unit getVariable [QACEGVAR(medical,CPR_provider), objNull] isEqualTo objNull) then { // Don't deteriorate during CPR if (_unit getVariable [QGVAR(cardiacArrestType), 0] isEqualTo 3) then {// if VF skip PEA From 30621999b66d8bf0f64146d45cb4ae6174641f6b Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Fri, 29 Dec 2023 13:52:54 -0800 Subject: [PATCH 10/39] Review pt.1 --- .../functions/fnc_handleBreathing.sqf | 6 ++-- .../functions/fnc_handlePulmoHit.sqf | 4 +-- addons/circulation/functions/fnc_init.sqf | 3 ++ addons/misc/functions/fnc_handleRespawn.sqf | 30 +++++++++---------- addons/pharma/functions/fnc_init.sqf | 6 ++-- .../surgery/ACE_Medical_Treatment_Actions.hpp | 10 +++---- addons/surgery/CfgWeapons.hpp | 2 -- addons/surgery/XEH_PREP.hpp | 6 ++-- .../fnc_hasTourniquetAppliedToAdditional.sqf | 3 +- .../surgery/functions/fnc_pericardialTap.sqf | 7 ++--- .../functions/fnc_pericardialTapLocal.sqf | 7 ++--- addons/surgery/functions/fnc_reboaApply.sqf | 7 ++--- .../surgery/functions/fnc_reboaApplyLocal.sqf | 6 ++-- .../surgery/functions/fnc_reboaDeepApply.sqf | 7 ++--- .../functions/fnc_reboaDeepApplyLocal.sqf | 6 ++-- 15 files changed, 52 insertions(+), 58 deletions(-) diff --git a/addons/breathing/functions/fnc_handleBreathing.sqf b/addons/breathing/functions/fnc_handleBreathing.sqf index 4521cafde..36b5e39b3 100644 --- a/addons/breathing/functions/fnc_handleBreathing.sqf +++ b/addons/breathing/functions/fnc_handleBreathing.sqf @@ -68,8 +68,8 @@ if (!local _unit) then { private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; if (GVAR(SpO2_cardiacValue) >= _status) then { - if ((_ht findIf {_x isEqualTo "hypox"}) == -1) then { - _ht pushBack "hypox"; + if ((_ht findIf {_x isEqualTo "hypoxia"}) == -1) then { + _ht pushBack "hypoxia"; if (_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; @@ -78,7 +78,7 @@ if (!local _unit) then { _unit setVariable [QEGVAR(circulation,ht), _ht, true]; }; } else { - _ht deleteAt (_ht find "hypox"); + _ht deleteAt (_ht find "hypoxia"); _unit setVariable [QEGVAR(circulation,ht), _ht, true]; }; }; diff --git a/addons/breathing/functions/fnc_handlePulmoHit.sqf b/addons/breathing/functions/fnc_handlePulmoHit.sqf index c4585cb08..8461f30c6 100644 --- a/addons/breathing/functions/fnc_handlePulmoHit.sqf +++ b/addons/breathing/functions/fnc_handlePulmoHit.sqf @@ -160,8 +160,8 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { if (_effusionTarget == 4) exitWith { private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; - if ((_ht findIf {_x isEqualTo "tampo"}) == -1) then { - _ht pushBack "tampo"; + if ((_ht findIf {_x isEqualTo "tamponade"}) == -1) then { + _ht pushBack "tamponade"; if (_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; diff --git a/addons/circulation/functions/fnc_init.sqf b/addons/circulation/functions/fnc_init.sqf index cc16f7e98..f560e5aba 100644 --- a/addons/circulation/functions/fnc_init.sqf +++ b/addons/circulation/functions/fnc_init.sqf @@ -18,6 +18,9 @@ params ["_unit"]; _unit setVariable [QGVAR(cprCount), 2, true]; + +// Currently four HT conditions: Tamponade, Tension, Hypoxia, and Hydrogen (Ions) _unit setVariable [QGVAR(ht), [], true]; + _unit setVariable [QGVAR(effusion), 0, true]; diff --git a/addons/misc/functions/fnc_handleRespawn.sqf b/addons/misc/functions/fnc_handleRespawn.sqf index 90a0192c8..3a1e91642 100644 --- a/addons/misc/functions/fnc_handleRespawn.sqf +++ b/addons/misc/functions/fnc_handleRespawn.sqf @@ -181,28 +181,28 @@ if (EGVAR(pharma,kidneyAction)) then { private _ph = _unit getVariable [QGVAR(pH), 1500]; if (_ph == 1500) exitWith { - _unit setVariable [QGVAR(kidneyArrest), false, true]; - _unit setVariable [QGVAR(kidneyPressure), false, true]; - _unit setVariable [QGVAR(kidneyFail), false, true]; + _unit setVariable [QEGVAR(pharma,kidneyArrest), false, true]; + _unit setVariable [QEGVAR(pharma,kidneyPressure), false, true]; + _unit setVariable [QEGVAR(pharma,kidneyFail), false, true]; - _ht deleteAt (_ht find "hydro"); + _ht deleteAt (_ht find "hydrogen"); _unit setVariable [QEGVAR(circulation,ht), _ht, true]; }; - private _kidneyFail = _unit getVariable [QGVAR(kidneyFail), false]; - private _kidneyArrest = _unit getVariable [QGVAR(kidneyArrest), false]; - private _kidneyPressure = _unit getVariable [QGVAR(kidneyPressure), false]; + private _kidneyFail = _unit getVariable [QEGVAR(pharma,kidneyFail), false]; + private _kidneyArrest = _unit getVariable [QEGVAR(pharma,kidneyArrest), false]; + private _kidneyPressure = _unit getVariable [QEGVAR(pharma,kidneyPressure), false]; if (_ph <= 0) exitWith { - _unit setVariable [QGVAR(kidneyFail), true, true]; - _unit setVariable [QGVAR(pH), 0, true]; + _unit setVariable [QEGVAR(pharma,kidneyFail), true, true]; + _unit setVariable [QEGVAR(pharma,pH), 0, true]; if !(_kidneyArrest) then { private _random = random 1; if (_random >= 0.5) then { - if ((_ht findIf {_x isEqualTo "hydro"}) == -1) then { - _ht pushBack "hydro"; + if ((_ht findIf {_x isEqualTo "hydrogen"}) == -1) then { + _ht pushBack "hydrogen"; if(_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; @@ -210,23 +210,23 @@ if (EGVAR(pharma,kidneyAction)) then { _unit setVariable [QEGVAR(circulation,ht), _ht, true]; }; - _unit setVariable [QGVAR(kidneyArrest), true, true]; + _unit setVariable [QEGVAR(pharma,kidneyArrest), true, true]; }; }; }; if (_ph < 750) exitWith { _ph = (_ph + 25) min 1500; - _unit setVariable [QGVAR(pH), _ph, true]; + _unit setVariable [QEGVAR(pharma,pH), _ph, true]; if !(_kidneyPressure) then { - _unit setVariable [QGVAR(kidneyPressure), true, true]; + _unit setVariable [QEGVAR(pharma,kidneyPressure), true, true]; [_unit, "KIDNEY", 15, 1200, 30, 0, 15] call ACEFUNC(medical_status,addMedicationAdjustment); }; }; _ph = (_ph + 50) min 1500; - _unit setVariable [QGVAR(pH), _ph, true]; + _unit setVariable [QEGVAR(pharma,pH), _ph, true]; }, 20, [_unit]] call CBA_fnc_addPerFrameHandler; }; diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index 94511bfad..5f6d653cf 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -83,7 +83,7 @@ if (GVAR(kidneyAction)) then { _unit setVariable [QGVAR(kidneyPressure), false, true]; _unit setVariable [QGVAR(kidneyFail), false, true]; - _ht deleteAt (_ht find "hydro"); + _ht deleteAt (_ht find "hydrogen"); _unit setVariable [QEGVAR(circulation,ht), _ht, true]; }; @@ -99,8 +99,8 @@ if (GVAR(kidneyAction)) then { private _random = random 1; if (_random >= 0.5) then { - if ((_ht findIf {_x isEqualTo "hydro"}) == -1) then { - _ht pushBack "hydro"; + if ((_ht findIf {_x isEqualTo "hydrogen"}) == -1) then { + _ht pushBack "hydrogen"; if(_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; diff --git a/addons/surgery/ACE_Medical_Treatment_Actions.hpp b/addons/surgery/ACE_Medical_Treatment_Actions.hpp index e96a06240..05365714d 100644 --- a/addons/surgery/ACE_Medical_Treatment_Actions.hpp +++ b/addons/surgery/ACE_Medical_Treatment_Actions.hpp @@ -118,7 +118,7 @@ class ACE_Medical_Treatment_Actions { callbackProgress = QFUNC(npwtTreatmentProgress); callbackSuccess = ""; }; - class UltraAssessment: BasicBandage { + class Ultrasound: BasicBandage { displayName = CSTRING(Ultra_Use); displayNameProgress = CSTRING(Ultra_Action); category = "surgery"; @@ -137,7 +137,7 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(Reboa_Action); category = "surgery"; treatmentLocations = QGVAR(surgicalLocation); - allowedSelections[] = {"LeftLeg"}; + allowedSelections[] = {"LeftLeg", "RightLeg"}; allowSelfTreatment = 0; medicRequired = QGVAR(surgicalAction_MedLevel); treatmentTime = QGVAR(intermediateTime); @@ -146,7 +146,7 @@ class ACE_Medical_Treatment_Actions { consumeItem = 1; callbackSuccess = QFUNC(reboaApply); }; - class ReboaAdvancement: BasicBandage { + class ReboaAdvancement: ReboaPlacement { displayName = CSTRING(Reboa_Deep_Use); displayNameProgress = CSTRING(Reboa_Deep_Action); category = "surgery"; @@ -160,7 +160,7 @@ class ACE_Medical_Treatment_Actions { consumeItem = 0; callbackSuccess = QFUNC(reboaDeepApply); }; - class ReboaRemoval: BasicBandage { + class ReboaRemoval: ReboaPlacement { displayName = CSTRING(Reboa_Remove_Use); displayNameProgress = CSTRING(Reboa_Remove_Action); category = "surgery"; @@ -174,7 +174,7 @@ class ACE_Medical_Treatment_Actions { consumeItem = 0; callbackSuccess = QFUNC(reboaRemove); }; - class PericardialTap: BasicBandage { + class PericardialTap: ReboaPlacement { displayName = CSTRING(Pericardial_Tap_Use); displayNameProgress = CSTRING(Pericardial_Tap_Action); category = "surgery"; diff --git a/addons/surgery/CfgWeapons.hpp b/addons/surgery/CfgWeapons.hpp index c6aa8d6c9..36cadb406 100644 --- a/addons/surgery/CfgWeapons.hpp +++ b/addons/surgery/CfgWeapons.hpp @@ -63,7 +63,6 @@ class CfgWeapons { picture = QPATHTOF(ui\ultra.paa); model = "\A3\Props_F_Exp_A\Military\Equipment\Tablet_02_F.p3d"; descriptionShort = CSTRING(Ultra_DescShort); - descriptionUse = CSTRING(Ultra_DescShort); class ItemInfo: CBA_MiscItem_ItemInfo { mass = 5; }; @@ -74,7 +73,6 @@ class CfgWeapons { picture = QPATHTOF(ui\reboa.paa); model = "\A3\Structures_F_Heli\Items\Electronics\HDMICable_01_F.p3d"; descriptionShort = CSTRING(Reboa_DescShort); - descriptionUse = CSTRING(Reboa_DescUse); class ItemInfo: CBA_MiscItem_ItemInfo { mass = 1; }; diff --git a/addons/surgery/XEH_PREP.hpp b/addons/surgery/XEH_PREP.hpp index d845cf86a..5d1750eba 100644 --- a/addons/surgery/XEH_PREP.hpp +++ b/addons/surgery/XEH_PREP.hpp @@ -5,6 +5,7 @@ PREP(fractureCheck); PREP(fractureSelect); PREP(fractureSelectLocal); PREP(getNPWTTime); +PREP(hasTourniquetAppliedToAdditional); PREP(incision); PREP(incisionLocal); PREP(init); @@ -14,8 +15,6 @@ PREP(openReductionCheck); PREP(openReductionLocal); PREP(openReductionProgress); PREP(openReductionProgressLocal); -PREP(ultraAssessment); -PREP(ultraAssessmentLocal); PREP(pericardialTap); PREP(pericardialTapLocal); PREP(reboaApply); @@ -24,4 +23,5 @@ PREP(reboaDeepApply); PREP(reboaDeepApplyLocal); PREP(reboaRemove); PREP(reboaRemoveLocal); -PREP(hasTourniquetAppliedToAdditional); \ No newline at end of file +PREP(ultraAssessment); +PREP(ultraAssessmentLocal); \ No newline at end of file diff --git a/addons/surgery/functions/fnc_hasTourniquetAppliedToAdditional.sqf b/addons/surgery/functions/fnc_hasTourniquetAppliedToAdditional.sqf index ab0b72fd1..eab277a7d 100644 --- a/addons/surgery/functions/fnc_hasTourniquetAppliedToAdditional.sqf +++ b/addons/surgery/functions/fnc_hasTourniquetAppliedToAdditional.sqf @@ -1,6 +1,7 @@ #include "..\script_component.hpp" /* * Author: Glowbal + * Modified: Mazinski * Checks if the unit has a tourniquet applied on the specified body part. * * Arguments: @@ -11,7 +12,7 @@ * Has Tourniquet Been Applied * * Example: - * [player, "leftleg"] call ace_medical_treatment_fnc_hasTourniquetAppliedTo + * [player, "leftleg"] call kat_surgery_fnc_hasTourniquetAppliedToAdditional * * Public: No */ diff --git a/addons/surgery/functions/fnc_pericardialTap.sqf b/addons/surgery/functions/fnc_pericardialTap.sqf index f6fbdb972..a64971d54 100644 --- a/addons/surgery/functions/fnc_pericardialTap.sqf +++ b/addons/surgery/functions/fnc_pericardialTap.sqf @@ -6,17 +6,16 @@ * Arguments: * 0: Medic * 1: Patient - * 2: Body Part * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_pericardialTap + * [player, cursorObject] call kat_surgery_pericardialTap * * Public: No */ -params ["_medic", "_patient", "_bodyPart"]; +params ["_medic", "_patient"]; -[QGVAR(pericardialTap), [_medic, _patient, _bodyPart], _patient] call CBA_fnc_targetEvent; \ No newline at end of file +[QGVAR(pericardialTap), [_medic, _patient], _patient] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_pericardialTapLocal.sqf b/addons/surgery/functions/fnc_pericardialTapLocal.sqf index 7b90abc3b..cd8345c4a 100644 --- a/addons/surgery/functions/fnc_pericardialTapLocal.sqf +++ b/addons/surgery/functions/fnc_pericardialTapLocal.sqf @@ -6,21 +6,20 @@ * Arguments: * 0: Medic * 1: Patient - * 2: Body Part * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_fnc_ultraAssessmentLocal + * [player, cursorObject, "LeftLeg"] call kat_surgery_fnc_pericardialTapLocal * * Public: No */ -params ["_medic", "_patient", "_bodyPart"]; +params ["_medic", "_patient"]; private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; -_ht deleteAt (_ht find "tampo"); +_ht deleteAt (_ht find "tamponade"); _patient setVariable [QEGVAR(circulation,ht), _ht, true]; _patient setVariable [QEGVAR(circulation,effusion), 0, true]; diff --git a/addons/surgery/functions/fnc_reboaApply.sqf b/addons/surgery/functions/fnc_reboaApply.sqf index f5a54a175..5b83a7ab5 100644 --- a/addons/surgery/functions/fnc_reboaApply.sqf +++ b/addons/surgery/functions/fnc_reboaApply.sqf @@ -6,17 +6,16 @@ * Arguments: * 0: Medic * 1: Patient - * 2: Body Part * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_reboaApply + * [player, cursorObject] call kat_surgery_reboaApply * * Public: No */ -params ["_medic", "_patient", "_bodyPart"]; +params ["_medic", "_patient"]; -[QGVAR(reboaApply), [_medic, _patient, _bodyPart], _patient] call CBA_fnc_targetEvent; \ No newline at end of file +[QGVAR(reboaApply), [_medic, _patient], _patient] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_reboaApplyLocal.sqf b/addons/surgery/functions/fnc_reboaApplyLocal.sqf index 346fc0c57..17bccea36 100644 --- a/addons/surgery/functions/fnc_reboaApplyLocal.sqf +++ b/addons/surgery/functions/fnc_reboaApplyLocal.sqf @@ -6,20 +6,18 @@ * Arguments: * 0: Medic * 1: Patient - * 2: Body Part * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_fnc_reboaApplyLocal + * [player, cursorObject] call kat_surgery_fnc_reboaApplyLocal * * Public: No */ -params ["_medic", "_patient", "_bodyPart"]; +params ["_medic", "_patient"]; -private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _tourniquets = GET_TOURNIQUETS(_patient); private _surgicalBlock = _patient getVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0]]; diff --git a/addons/surgery/functions/fnc_reboaDeepApply.sqf b/addons/surgery/functions/fnc_reboaDeepApply.sqf index 6bc90e636..8503117d2 100644 --- a/addons/surgery/functions/fnc_reboaDeepApply.sqf +++ b/addons/surgery/functions/fnc_reboaDeepApply.sqf @@ -6,17 +6,16 @@ * Arguments: * 0: Medic * 1: Patient - * 2: Body Part * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_reboaDeepApply + * [player, cursorObject] call kat_surgery_reboaDeepApply * * Public: No */ -params ["_medic", "_patient", "_bodyPart"]; +params ["_medic", "_patient"]; -[QGVAR(reboaDeepApply), [_medic, _patient, _bodyPart], _patient] call CBA_fnc_targetEvent; \ No newline at end of file +[QGVAR(reboaDeepApply), [_medic, _patient], _patient] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf index ddbf06a97..2e7903467 100644 --- a/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf +++ b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf @@ -6,20 +6,18 @@ * Arguments: * 0: Medic * 1: Patient - * 2: Body Part * * Return Value: * Nothing * * Example: - * [player, cursorObject, "LeftLeg"] call kat_surgery_fnc_reboaDeepApplyLocal + * [player, cursorObject] call kat_surgery_fnc_reboaDeepApplyLocal * * Public: No */ -params ["_medic", "_patient", "_bodyPart"]; +params ["_medic", "_patient"]; -private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _tourniquets = GET_TOURNIQUETS(_patient); private _surgicalBlock = _patient getVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0]]; From d03d1808128062f3fba5c3122903e8c2d6461d7a Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 30 Dec 2023 15:35:24 -0800 Subject: [PATCH 11/39] Final review --- addons/gui/functions/fnc_updateBodyImage.sqf | 2 +- .../surgery/ACE_Medical_Treatment_Actions.hpp | 4 ++-- addons/surgery/XEH_PREP.hpp | 2 +- .../fnc_hasAdditionalTourniquetAppliedTo.sqf | 24 +++++++++++++++++++ .../functions/fnc_pericardialTapLocal.sqf | 3 +++ .../surgery/functions/fnc_reboaApplyLocal.sqf | 2 +- .../functions/fnc_reboaDeepApplyLocal.sqf | 2 +- .../functions/fnc_reboaRemoveLocal.sqf | 2 +- .../functions/fnc_ultraAssessmentLocal.sqf | 9 ++++--- addons/surgery/stringtable.xml | 5 +++- 10 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 addons/surgery/functions/fnc_hasAdditionalTourniquetAppliedTo.sqf diff --git a/addons/gui/functions/fnc_updateBodyImage.sqf b/addons/gui/functions/fnc_updateBodyImage.sqf index 623988b2c..7a1685ace 100644 --- a/addons/gui/functions/fnc_updateBodyImage.sqf +++ b/addons/gui/functions/fnc_updateBodyImage.sqf @@ -22,7 +22,7 @@ params ["_ctrlGroup", "_target", "_selectionN"]; // Get tourniquets, damage, and blood loss for target private _tourniquets = GET_TOURNIQUETS(_target); -private _surgicalBlock = _target getVariable [QEGVAR(surgery,surgicalBlock), [0, 0, 0, 0, 0, 0]]; +private _surgicalBlock = GET_SURGICAL_TOURNIQUETS(_target); private _fractures = GET_FRACTURES(_target); private _bodyPartDamage = _target getVariable [QACEGVAR(medical,bodyPartDamage), [0, 0, 0, 0, 0, 0]]; private _damageThreshold = GET_DAMAGE_THRESHOLD(_target); diff --git a/addons/surgery/ACE_Medical_Treatment_Actions.hpp b/addons/surgery/ACE_Medical_Treatment_Actions.hpp index 05365714d..25808cba0 100644 --- a/addons/surgery/ACE_Medical_Treatment_Actions.hpp +++ b/addons/surgery/ACE_Medical_Treatment_Actions.hpp @@ -3,10 +3,10 @@ class ACE_Medical_Treatment_Actions { class CheckPulse; class ApplyTourniquet; class ApplyTourniquet: BasicBandage { - condition = QUOTE(!([ARR_2(_patient,_bodyPart)] call ACEFUNC(medical_treatment,hasTourniquetAppliedTo)) && ([ARR_2(_patient,_bodyPart)] call FUNC(hasTourniquetAppliedToAdditional))); + condition = QUOTE(!([ARR_2(_patient,_bodyPart)] call ACEFUNC(medical_treatment,hasTourniquetAppliedTo)) && ([ARR_2(_patient,_bodyPart)] call FUNC(hasAdditionalTourniquetAppliedTo))); }; class RemoveTourniquet: ApplyTourniquet { - condition = QUOTE(([ARR_2(_patient,_bodyPart)] call ACEFUNC(medical_treatment,hasTourniquetAppliedTo)) && ([ARR_2(_patient,_bodyPart)] call FUNC(hasTourniquetAppliedToAdditional))); + condition = QUOTE(([ARR_2(_patient,_bodyPart)] call ACEFUNC(medical_treatment,hasTourniquetAppliedTo)) && ([ARR_2(_patient,_bodyPart)] call FUNC(hasAdditionalTourniquetAppliedTo))); }; class CheckFracture: CheckPulse { displayName = CSTRING(fracture_check); diff --git a/addons/surgery/XEH_PREP.hpp b/addons/surgery/XEH_PREP.hpp index 5d1750eba..d2c22fe2e 100644 --- a/addons/surgery/XEH_PREP.hpp +++ b/addons/surgery/XEH_PREP.hpp @@ -5,7 +5,7 @@ PREP(fractureCheck); PREP(fractureSelect); PREP(fractureSelectLocal); PREP(getNPWTTime); -PREP(hasTourniquetAppliedToAdditional); +PREP(hasAdditionalTourniquetAppliedTo); PREP(incision); PREP(incisionLocal); PREP(init); diff --git a/addons/surgery/functions/fnc_hasAdditionalTourniquetAppliedTo.sqf b/addons/surgery/functions/fnc_hasAdditionalTourniquetAppliedTo.sqf new file mode 100644 index 000000000..e6f957c1f --- /dev/null +++ b/addons/surgery/functions/fnc_hasAdditionalTourniquetAppliedTo.sqf @@ -0,0 +1,24 @@ +#include "..\script_component.hpp" +/* + * Author: Glowbal + * Modified: Mazinski + * Checks if the unit has a tourniquet applied on the specified body part. + * + * Arguments: + * 0: Unit + * 1: Body Part + * + * Return Value: + * Has Tourniquet Been Applied + * + * Example: + * [player, "leftleg"] call kat_surgery_fnc_hasAdditionalTourniquetAppliedTo + * + * Public: No + */ + +params ["_unit", "_bodyPart"]; + +private _index = ALL_BODY_PARTS find toLower _bodyPart; + +_index >= 0 && {GET_SURGICAL_TOURNIQUETS(_unit) select _index == 0} \ No newline at end of file diff --git a/addons/surgery/functions/fnc_pericardialTapLocal.sqf b/addons/surgery/functions/fnc_pericardialTapLocal.sqf index cd8345c4a..d6e16bfb1 100644 --- a/addons/surgery/functions/fnc_pericardialTapLocal.sqf +++ b/addons/surgery/functions/fnc_pericardialTapLocal.sqf @@ -24,3 +24,6 @@ _patient setVariable [QEGVAR(circulation,ht), _ht, true]; _patient setVariable [QEGVAR(circulation,effusion), 0, true]; _patient setVariable [QGVAR(imaging), false, true]; + +[_patient, "quick_view", LSTRING(Pericardial_Tap_Log), [[_medic] call ACEFUNC(common,getName)]] call ACEFUNC(medical_treatment,addToLog); + diff --git a/addons/surgery/functions/fnc_reboaApplyLocal.sqf b/addons/surgery/functions/fnc_reboaApplyLocal.sqf index 17bccea36..61058c269 100644 --- a/addons/surgery/functions/fnc_reboaApplyLocal.sqf +++ b/addons/surgery/functions/fnc_reboaApplyLocal.sqf @@ -19,7 +19,7 @@ params ["_medic", "_patient"]; private _tourniquets = GET_TOURNIQUETS(_patient); -private _surgicalBlock = _patient getVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0]]; +private _surgicalBlock = GET_SURGICAL_TOURNIQUETS(_patient); _tourniquets set [4, CBA_missionTime]; _tourniquets set [5, CBA_missionTime]; diff --git a/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf index 2e7903467..f5935e593 100644 --- a/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf +++ b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf @@ -19,7 +19,7 @@ params ["_medic", "_patient"]; private _tourniquets = GET_TOURNIQUETS(_patient); -private _surgicalBlock = _patient getVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0]]; +private _surgicalBlock = GET_SURGICAL_TOURNIQUETS(_patient); _tourniquets set [1, CBA_missionTime]; _patient setVariable [VAR_TOURNIQUET, _tourniquets, true]; diff --git a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf index c22ff3f14..556ce8232 100644 --- a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf +++ b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf @@ -21,7 +21,7 @@ params ["_medic", "_patient", "_bodyPart"]; private _partIndex = ALL_BODY_PARTS find toLower _bodyPart; private _tourniquets = GET_TOURNIQUETS(_patient); -private _surgicalBlock = _patient getVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0]]; +private _surgicalBlock = GET_SURGICAL_TOURNIQUETS(_patient); _tourniquets set [1, 0]; _tourniquets set [4, 0]; diff --git a/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf index 374161e96..14cba8dee 100644 --- a/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf +++ b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf @@ -25,6 +25,7 @@ private _thorasic = LSTRING(Ultra_Airway_Normal); _patient setVariable [QGVAR(imaging), true, true]; +//Reads Thorasic Condition if ((_patient getVariable [QEGVAR(breathing,pneumothorax), 0]) != 0) then { _airway = LSTRING(Ultra_Thorasic_PTX); }; @@ -37,6 +38,8 @@ if (_patient getVariable [QEGVAR(breathing,tensionpneumothorax), false]) then { _airway = LSTRING(Ultra_Thorasic_Tension); }; + +//Reads Cardiac Arrest Type, 4 and 3 are VT/VF and are output as "Shockable", 2 and 1 are PEA/Asystole and output as "Not Shockable", 0 is No Arrest switch (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0]) do { case 4: { _cardiac = LSTRING(Ultra_Cardiac_Shockable); @@ -55,7 +58,7 @@ switch (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0]) do { }; }; -[_patient, "quick_view", LSTRING(Ultra_Airway), [_airway]] call ace_medical_treatment_fnc_addToLog; -[_patient, "quick_view", LSTRING(Ultra_Cardiac), [_cardiac]] call ace_medical_treatment_fnc_addToLog; -[_patient, "quick_view", LSTRING(Ultra_Thorasic), [_thorasic]] call ace_medical_treatment_fnc_addToLog; +[_patient, "quick_view", LSTRING(Ultra_Airway), [_airway]] call ACEFUNC(medical_treatment,addToLog); +[_patient, "quick_view", LSTRING(Ultra_Cardiac), [_cardiac]] call ACEFUNC(medical_treatment,addToLog); +[_patient, "quick_view", LSTRING(Ultra_Thorasic), [_thorasic]] call ACEFUNC(medical_treatment,addToLog); diff --git a/addons/surgery/stringtable.xml b/addons/surgery/stringtable.xml index ecc7bae27..408673374 100644 --- a/addons/surgery/stringtable.xml +++ b/addons/surgery/stringtable.xml @@ -512,7 +512,7 @@ Used to assess internal injuries - Conduct EFAST Assessment + Conduct Ultrasound Assessment Assessing @@ -577,6 +577,9 @@ Performing + + %1 performed a pericardial tap + Kidney damage/failure 肾损伤/衰竭 From 61e85574afa9476a076d92b1ab8594393d05aff0 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Fri, 5 Jan 2024 15:59:34 -0800 Subject: [PATCH 12/39] Resolve Changes --- addons/breathing/XEH_preInit.sqf | 2 +- addons/gui/functions/fnc_updateInjuryList.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/breathing/XEH_preInit.sqf b/addons/breathing/XEH_preInit.sqf index a028f5122..ac35aeb81 100644 --- a/addons/breathing/XEH_preInit.sqf +++ b/addons/breathing/XEH_preInit.sqf @@ -44,7 +44,7 @@ PREP_RECOMPILE_END; "SLIDER", LLSTRING(SETTING_SpO2_cardiacValue), [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], - [5, 95, 75, 0], + [0, 100, 75, 0], true ] call CBA_Settings_fnc_init; diff --git a/addons/gui/functions/fnc_updateInjuryList.sqf b/addons/gui/functions/fnc_updateInjuryList.sqf index 1167da723..df18a4f29 100644 --- a/addons/gui/functions/fnc_updateInjuryList.sqf +++ b/addons/gui/functions/fnc_updateInjuryList.sqf @@ -217,7 +217,7 @@ switch (GET_FRACTURES(_target) select _selectionN) do { }; // Display cyanosis in overview tab, only when head/arms are selected -if (EGVAR(breathing,showCyanosis) && _selectionN in [0,2,3,4,5]) then { +if (EGVAR(breathing,showCyanosis) && _selectionN in [0,2,3]) then { private _spO2 = 0; if (alive _target) then { From e850c7741570f4da170321be21c751680736bf8f Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Fri, 5 Jan 2024 16:56:08 -0800 Subject: [PATCH 13/39] Update fnc_handlePulmoHit.sqf --- addons/breathing/functions/fnc_handlePulmoHit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/breathing/functions/fnc_handlePulmoHit.sqf b/addons/breathing/functions/fnc_handlePulmoHit.sqf index 0455da7be..da522a9ee 100644 --- a/addons/breathing/functions/fnc_handlePulmoHit.sqf +++ b/addons/breathing/functions/fnc_handlePulmoHit.sqf @@ -148,7 +148,7 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { private _effusion = _unit getVariable [QEGVAR(circulation,effusion), 0]; - // If patient is dead, already treated or has already deteriorated into advanced pneumothorax, kill the PFH + // If patient is dead, already treated or has already deteriorated into full tamponade, kill the PFH if ((_effusion == 0) || !(alive _unit) || (_effusion > 4)) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; From 727d6305a2556373c9f2561afc60ca5a3bf34471 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:06:20 -0800 Subject: [PATCH 14/39] Update addons/breathing/functions/fnc_handleBreathing.sqf Co-authored-by: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> --- addons/breathing/functions/fnc_handleBreathing.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/breathing/functions/fnc_handleBreathing.sqf b/addons/breathing/functions/fnc_handleBreathing.sqf index 36b5e39b3..61ca8983f 100644 --- a/addons/breathing/functions/fnc_handleBreathing.sqf +++ b/addons/breathing/functions/fnc_handleBreathing.sqf @@ -67,7 +67,7 @@ if (!local _unit) then { if (GVAR(SpO2_cardiacActive)) then { private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; - if (GVAR(SpO2_cardiacValue) >= _status) then { + if (_status <= GVAR(SpO2_cardiacValue)) then { if ((_ht findIf {_x isEqualTo "hypoxia"}) == -1) then { _ht pushBack "hypoxia"; From 6cdd90e99cdc3880a3d3e79a04e8e37ab6f03fbd Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:26:20 -0800 Subject: [PATCH 15/39] Merge of opioid PR --- .../airway/ACE_Medical_Treatment_Actions.hpp | 12 ++-- ...reatmentAdvanced_RecoveryPositionLocal.sqf | 2 +- .../functions/fnc_handleBreathing.sqf | 6 +- .../functions/fnc_handlePulmoHit.sqf | 4 +- addons/chemical/CfgMagazineGroups.hpp | 6 ++ addons/chemical/CfgWeapons.hpp | 2 +- addons/main/script_macros.hpp | 5 +- addons/misc/XEH_postInit.sqf | 4 +- addons/misc/functions/fnc_FAK_unpack.sqf | 16 ++++- addons/misc/functions/fnc_fullHealLocal.sqf | 2 + addons/misc/functions/fnc_handleRespawn.sqf | 49 ++++++------- .../misc/functions/fnc_treatmentSuccess.sqf | 18 ++++- addons/pharma/ACE_Medical_Treatment.hpp | 67 ++++++++++++++++-- .../pharma/ACE_Medical_Treatment_Actions.hpp | 19 +++-- addons/pharma/CfgWeapons.hpp | 11 +++ addons/pharma/XEH_PREP.hpp | 2 + addons/pharma/XEH_postInit.sqf | 4 +- addons/pharma/config.cpp | 3 +- addons/pharma/functions/fnc_init.sqf | 37 +++++----- .../pharma/functions/fnc_medicationLocal.sqf | 19 ++++- .../fnc_treatmentAdvanced_FentanylLocal.sqf | 21 ++++-- .../fnc_treatmentAdvanced_MorphineLocal.sqf | 26 +++++++ .../fnc_treatmentAdvanced_NalbuphineLocal.sqf | 26 +++++++ addons/pharma/stringtable.xml | 25 ++++++- addons/pharma/ui/icon_Atropine.paa | Bin 2897 -> 35563 bytes addons/pharma/ui/icon_PhenylephrineAuto.paa | Bin 0 -> 46564 bytes .../surgery/ACE_Medical_Treatment_Actions.hpp | 2 +- .../functions/fnc_reboaDeepApplyLocal.sqf | 2 + .../functions/fnc_ultraAssessmentLocal.sqf | 10 ++- addons/surgery/stringtable.xml | 3 + 30 files changed, 310 insertions(+), 93 deletions(-) create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf create mode 100644 addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf create mode 100644 addons/pharma/ui/icon_PhenylephrineAuto.paa diff --git a/addons/airway/ACE_Medical_Treatment_Actions.hpp b/addons/airway/ACE_Medical_Treatment_Actions.hpp index 8440429d5..d922e27f2 100644 --- a/addons/airway/ACE_Medical_Treatment_Actions.hpp +++ b/addons/airway/ACE_Medical_Treatment_Actions.hpp @@ -12,7 +12,8 @@ class ACE_Medical_Treatment_Actions { condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && !(_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == 'Larynxtubus') && !(_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == 'Guedeltubus')); callbackSuccess = QUOTE([ARR_3(_medic,_patient,(_patient getVariable [ARR_2(QQGVAR(occluded),false)]))] call FUNC(handleRecoveryPosition); [ARR_6(_medic,_patient,_bodyPart,_className,objNull,_usedItem)] call FUNC(treatmentAdvanced_airway);); callbackFailure = ""; - callbackProgress = QUOTE(!([(_args select 1)] call ACEFUNC(common,isAwake)) && !((_args select 1) getVariable [ARR_2(QQGVAR(airway_item),'')] == 'Larynxtubus') && !((_args select 1) getVariable [ARR_2(QQGVAR(airway_item),'')] == 'Guedeltubus')); + callbackProgress = ""; + callbackCondition = "useCondition"; consumeItem = 1; animationPatient = ""; animationPatientUnconscious = "AinjPpneMstpSnonWrflDnon_rolltoback"; @@ -74,7 +75,8 @@ class ACE_Medical_Treatment_Actions { icon = ""; condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && !(_patient getVariable [ARR_2(QQGVAR(overstretch),false)]) && !(_patient getVariable [ARR_2(QQGVAR(recovery),false)]) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && !(_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == 'Guedeltubus') && !(_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == 'Larynxtubus')); callbackSuccess = QFUNC(treatmentAdvanced_hyperextendHead); - callbackProgress = QUOTE(!([(_args select 1)] call ACEFUNC(common,isAwake)) && !((_args select 1) getVariable [ARR_2(QQGVAR(overstretch),false)]) && !((_args select 1) getVariable [ARR_2(QQGVAR(recovery),false)]) && !((_args select 1) getVariable [ARR_2(QQGVAR(airway_item),'')] == 'Guedeltubus') && !((_args select 1) getVariable [ARR_2(QQGVAR(airway_item),'')] == 'Larynxtubus')); + callbackProgress = ""; + callbackCondition = "useCondition"; }; class BeginHeadTurning: Larynxtubus { displayName = CSTRING(headTurning_begin); @@ -99,7 +101,8 @@ class ACE_Medical_Treatment_Actions { condition = QUOTE((!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && !(_patient getVariable [ARR_2(QQGVAR(recovery),false)])) && [ARR_2(_medic,_patient)] call FUNC(checkRecovery)); icon = ""; callbackSuccess = QFUNC(treatmentAdvanced_RecoveryPosition); - callbackProgress = QUOTE(!([(_args select 1)] call ACEFUNC(common,isAwake) && !((_args select 1) getVariable [ARR_2(QQGVAR(recovery),false)])) && [ARR_2((_args select 0),(_args select 1))] call FUNC(checkRecovery)); + callbackProgress = ""; + callbackCondition = "useCondition"; animationPatientUnconsciousExcludeOn[] = {"ainjppnemstpsnonwrfldnon", "kat_recoveryposition"}; }; class CancelRecoveryPosition: Larynxtubus { @@ -113,7 +116,8 @@ class ACE_Medical_Treatment_Actions { condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && (_patient getVariable [ARR_2(QQGVAR(recovery),false)])); icon = ""; callbackSuccess = QUOTE([ARR_2(_medic,_patient)] call FUNC(treatmentAdvanced_CancelRecoveryPosition)); - callbackProgress = QUOTE(!([(_args select 1)] call ACEFUNC(common,isAwake)) && ((_args select 1) getVariable [ARR_2(QQGVAR(recovery),false)])); + callbackProgress = ""; + callbackCondition = "useCondition"; animationPatientUnconscious = ""; animationPatientUnconsciousExcludeOn[] = {"ainjppnemstpsnonwrfldnon"}; }; diff --git a/addons/airway/functions/fnc_treatmentAdvanced_RecoveryPositionLocal.sqf b/addons/airway/functions/fnc_treatmentAdvanced_RecoveryPositionLocal.sqf index fa18f5e51..03d4e6da6 100644 --- a/addons/airway/functions/fnc_treatmentAdvanced_RecoveryPositionLocal.sqf +++ b/addons/airway/functions/fnc_treatmentAdvanced_RecoveryPositionLocal.sqf @@ -26,7 +26,7 @@ private _output = LLSTRING(RecoveryPosition_Ready); _patient setVariable [QGVAR(wasOccluded), (_patient getVariable [QGVAR(occluded), false])]; -if (GVAR(RecoveryPosition_TimeToDrain) > 0 && GVAR(wasOccluded)) then { +if (GVAR(RecoveryPosition_TimeToDrain) > 0 && _patient getVariable [QGVAR(wasOccluded), false]) then { [{ params ["_patient"]; diff --git a/addons/breathing/functions/fnc_handleBreathing.sqf b/addons/breathing/functions/fnc_handleBreathing.sqf index 61ca8983f..305184611 100644 --- a/addons/breathing/functions/fnc_handleBreathing.sqf +++ b/addons/breathing/functions/fnc_handleBreathing.sqf @@ -67,7 +67,7 @@ if (!local _unit) then { if (GVAR(SpO2_cardiacActive)) then { private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; - if (_status <= GVAR(SpO2_cardiacValue)) then { + if (GVAR(SpO2_cardiacValue) >= _status) then { if ((_ht findIf {_x isEqualTo "hypoxia"}) == -1) then { _ht pushBack "hypoxia"; @@ -108,9 +108,9 @@ if (!local _unit) then { _perfusionActive = true; if(_BVMInUse) then { if(_oxygenAssisted) then { - _output = -0.01; + _output = 0.3; } else { - _output = -0.1; + _output = 0.1; }; }; }; diff --git a/addons/breathing/functions/fnc_handlePulmoHit.sqf b/addons/breathing/functions/fnc_handlePulmoHit.sqf index da522a9ee..e06733624 100644 --- a/addons/breathing/functions/fnc_handlePulmoHit.sqf +++ b/addons/breathing/functions/fnc_handlePulmoHit.sqf @@ -149,7 +149,7 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { private _effusion = _unit getVariable [QEGVAR(circulation,effusion), 0]; // If patient is dead, already treated or has already deteriorated into full tamponade, kill the PFH - if ((_effusion == 0) || !(alive _unit) || (_effusion > 4)) exitWith { + if ((_effusion == 0) || !(alive _unit) || (_effusion == 4)) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; @@ -175,7 +175,7 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { _unit setVariable [QEGVAR(circulation,effusion), _effusionTarget, true]; [_unit, 0.5 * (_effusionTarget / 4)] call ACEFUNC(medical_status,adjustPainLevel); // Adjust pain based on severity - [_unit, -20, -20, "cardiac_tension"] call EFUNC(circulation,updateBloodPressureChange); // Emulate low blood pressure and low heart rate caused by tamponade + [_unit, -10, -10, "cardiac_tension"] call EFUNC(circulation,updateBloodPressureChange); // Emulate low blood pressure and low heart rate caused by tamponade }; }, EGVAR(circulation,deterioratingTamponade_interval), [_unit]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/chemical/CfgMagazineGroups.hpp b/addons/chemical/CfgMagazineGroups.hpp index 7396137a3..3c5321e9c 100644 --- a/addons/chemical/CfgMagazineGroups.hpp +++ b/addons/chemical/CfgMagazineGroups.hpp @@ -6,4 +6,10 @@ class ace_csw_groups { class KAT_1Rnd_82mm_Mo_TypeCS { KAT_1Rnd_82mm_Mo_TypeCS = 1; }; + class KAT_5Rnd_82mm_Mo_Type0_AI { + KAT_5Rnd_82mm_Mo_Type0_AI = 1; + }; + class KAT_3Rnd_82mm_Mo_TypeCS_AI { + KAT_3Rnd_82mm_Mo_TypeCS_AI = 1; + }; }; \ No newline at end of file diff --git a/addons/chemical/CfgWeapons.hpp b/addons/chemical/CfgWeapons.hpp index 97eedc329..2cd54ac40 100644 --- a/addons/chemical/CfgWeapons.hpp +++ b/addons/chemical/CfgWeapons.hpp @@ -38,7 +38,7 @@ class CfgWeapons { }; }; class ACE_mortar_82mm; - class ACE_mortar_82mm: ACE_mortar_82mm { + class ACE_mortar_82mm: mortar_82mm { magazines[] += { "KAT_1Rnd_82mm_Mo_Type0", "KAT_1Rnd_82mm_Mo_TypeCS" diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 182338003..eb0bbc07d 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -169,9 +169,10 @@ #undef GET_SM_STATE #define GET_SM_STATE(_unit) ([_unit, ACEGVAR(medical,STATE_MACHINE)] call CBA_statemachine_fnc_getCurrentState) -#undef GET_DAMAGE_THRESHOLD -#define GET_DAMAGE_THRESHOLD(unit) (unit getVariable [QACEGVAR(medical,damageThreshold), [ACEGVAR(medical,AIDamageThreshold),ACEGVAR(medical,playerDamageThreshold)] select (isPlayer unit)]) +#define GET_OPIOID_FACTOR(unit) (unit getVariable [QEGVAR(pharma,opioidFactor), 1]) +#undef GET_DAMAGE_THRESHOLD +#define GET_DAMAGE_THRESHOLD(unit) ((unit getVariable [QACEGVAR(medical,damageThreshold), [ACEGVAR(medical,AIDamageThreshold),ACEGVAR(medical,playerDamageThreshold)] select (isPlayer unit)]) * GET_OPIOID_FACTOR(unit)) #define GET_PAIN_PERCEIVED(unit) (0 max (GET_PAIN(unit) - GET_PAIN_SUPPRESS(unit)) min 1) #define DEFAULT_TOURNIQUET_VALUES [0,0,0,0,0,0] diff --git a/addons/misc/XEH_postInit.sqf b/addons/misc/XEH_postInit.sqf index a5e4b932f..dbe5cbe9a 100644 --- a/addons/misc/XEH_postInit.sqf +++ b/addons/misc/XEH_postInit.sqf @@ -66,6 +66,6 @@ call FUNC(FAK_updateContents); ["multiplier", { private _activeTourniquets = GET_TOURNIQUETS(ACE_player); if (ACE_player getVariable [QGVAR(Tourniquet_ArmNecrosis), 0] > 0) then { - (ACE_player getVariable [QGVAR(Tourniquet_ArmNecrosis), 0]) / 10 - } else {0}; + 1 max (ACE_player getVariable [QGVAR(Tourniquet_ArmNecrosis), 0]) / 10 + } else {1}; }, QUOTE(ADDON)] call ACEFUNC(common,addSwayFactor); \ No newline at end of file diff --git a/addons/misc/functions/fnc_FAK_unpack.sqf b/addons/misc/functions/fnc_FAK_unpack.sqf index 3b07d9160..4819a766a 100644 --- a/addons/misc/functions/fnc_FAK_unpack.sqf +++ b/addons/misc/functions/fnc_FAK_unpack.sqf @@ -23,10 +23,24 @@ params ["_unit", "_item", "_type", "_slot"]; private _fnc_arrayToInvItem = { params ["_unit", "_array", "_container"]; + private _groundContainer = nearestObjects [_unit, ["GroundWeaponHolder", "WeaponHolder", "Library_WeaponHolder", "WeaponHolderSimulated"], 2] param [0]; + { for "_i" from 1 to (_x select 1) do { - [_unit, _x select 0, _container] call ACEFUNC(common,addToInventory); + private _inventory = [_unit, _x select 0, _container] call ACEFUNC(common,addToInventory); + + if !(_inventory select 0) then { + if (isNil "_groundContainer") exitWith { + _groundContainer = _inventory select 1; + }; + + { + _groundContainer addItemCargoGlobal [_x, 1]; + } forEach itemCargo (_inventory select 1); + + deleteVehicle (_inventory select 1); + }; } } foreach _array; }; diff --git a/addons/misc/functions/fnc_fullHealLocal.sqf b/addons/misc/functions/fnc_fullHealLocal.sqf index 4197f9916..676fcd824 100644 --- a/addons/misc/functions/fnc_fullHealLocal.sqf +++ b/addons/misc/functions/fnc_fullHealLocal.sqf @@ -69,6 +69,7 @@ _unit setVariable [QACEGVAR(medical,fractures), [0,0,0,0,0,0], true]; //KAT Airway _unit setVariable [QEGVAR(airway,occluded), false, true]; +_unit setVariable [QEGVAR(airway,wasOccluded), false]; _unit setVariable [QEGVAR(airway,obstruction), false, true]; _unit setVariable [QEGVAR(airway,recovery), false, true]; _unit setVariable [QEGVAR(airway,overstretch), false, true]; @@ -107,6 +108,7 @@ _unit setVariable [QACEGVAR(medical,peripheralResistance), 100, true]; //KAT Pharmacy _unit setVariable [QACEGVAR(medical,ivBags), nil, true]; _unit setVariable [QEGVAR(pharma,alphaAction), 1, true]; +_unit setVariable [QEGVAR(pharma,opioidFactor), 1, true]; _unit setVariable [QEGVAR(pharma,IV), [0,0,0,0,0,0], true]; _unit setVariable [QEGVAR(pharma,IVpfh), [0,0,0,0,0,0], true]; _unit setVariable [QEGVAR(pharma,active), false, true]; diff --git a/addons/misc/functions/fnc_handleRespawn.sqf b/addons/misc/functions/fnc_handleRespawn.sqf index 3a1e91642..5646036b7 100644 --- a/addons/misc/functions/fnc_handleRespawn.sqf +++ b/addons/misc/functions/fnc_handleRespawn.sqf @@ -27,6 +27,7 @@ _unit setVariable [QEGVAR(airway,obstruction), false, true]; _unit setVariable [QEGVAR(airway,airway), false, true]; _unit setVariable [QEGVAR(airway,occluded), false, true]; _unit setVariable [QEGVAR(airway,overstretch), false, true]; +_unit setVariable [QEGVAR(airway,wasOccluded), false]; KAT_forceWakeup = false; _unit setVariable [QEGVAR(airway,recovery), false, true]; _unit setVariable [QEGVAR(airway,airway_item), "", true]; @@ -81,9 +82,6 @@ _unit setVariable [QEGVAR(circulation,bloodtype), [_unit, _dead, true] call EFUN _unit setVariable [QEGVAR(circulation,internalBleeding), 0, true]; _unit setVariable [QEGVAR(circulation,StoredBloodPressure), [0,0], true]; -_unit setVariable [QEGVAR(circulation,ht), [], true]; -_unit setVariable [QEGVAR(circulation,effusion), 0, true]; - _unit setVariable [VAR_BLOODPRESSURE_CHANGE, nil, true]; _unit setVariable [QEGVAR(circulation,isPerformingCPR), false, true]; @@ -103,6 +101,7 @@ _unit setVariable [QGVAR(Tourniquet_LegNecrosis_Threshold), 0, true]; // KAT Pharmacy _unit setVariable [QEGVAR(pharma,alphaAction), 1, true]; +_unit setVariable [QEGVAR(pharma,opioidFactor), 1, true]; _unit setVariable [QEGVAR(pharma,IV), [0,0,0,0,0,0], true]; _unit setVariable [QEGVAR(pharma,IVpfh), [0,0,0,0,0,0], true]; _unit setVariable [QEGVAR(pharma,active), false, true]; @@ -152,19 +151,32 @@ if (_unit getVariable [QEGVAR(chemical,painEffect),0] != 0) then { }; private _medicationArray = _unit getVariable [QACEGVAR(medical,medications), []]; - private _action = false; + private _alpha = false; + private _opioid = false; { _x params ["_medication"]; if (_medication in ["Epinephrine", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine"]) exitWith { - _action = true; + _alpha = true; + }; + } forEach (_medicationArray); + + { + _x params ["_medication"]; + + if (_medication in ["Fentanyl", "Morphine", "Nalbuphine"]) exitWith { + _opioid = true; }; } forEach (_medicationArray); - if !(_action) then { + if !(_alpha) then { _unit setVariable [QEGVAR(pharma,alphaAction), 1]; }; + + if !(_opioid) then { + _unit setVariable [QEGVAR(pharma,opioidFactor), 1]; + }; }, 180, [_unit]] call CBA_fnc_addPerFrameHandler; if (EGVAR(pharma,kidneyAction)) then { @@ -173,21 +185,13 @@ if (EGVAR(pharma,kidneyAction)) then { _args params ["_unit"]; private _alive = alive _unit; - private _ht = _unit getVariable [QEGVAR(circulation, ht), []]; if (!_alive) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; - private _ph = _unit getVariable [QGVAR(pH), 1500]; - if (_ph == 1500) exitWith { - _unit setVariable [QEGVAR(pharma,kidneyArrest), false, true]; - _unit setVariable [QEGVAR(pharma,kidneyPressure), false, true]; - _unit setVariable [QEGVAR(pharma,kidneyFail), false, true]; - - _ht deleteAt (_ht find "hydrogen"); - _unit setVariable [QEGVAR(circulation,ht), _ht, true]; - }; + private _ph = _unit getVariable [QEGVAR(pharma,pH), 1500]; + if (_ph == 1500) exitWith {}; private _kidneyFail = _unit getVariable [QEGVAR(pharma,kidneyFail), false]; private _kidneyArrest = _unit getVariable [QEGVAR(pharma,kidneyArrest), false]; @@ -195,21 +199,12 @@ if (EGVAR(pharma,kidneyAction)) then { if (_ph <= 0) exitWith { _unit setVariable [QEGVAR(pharma,kidneyFail), true, true]; - _unit setVariable [QEGVAR(pharma,pH), 0, true]; if !(_kidneyArrest) then { private _random = random 1; if (_random >= 0.5) then { - if ((_ht findIf {_x isEqualTo "hydrogen"}) == -1) then { - _ht pushBack "hydrogen"; - - if(_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { - [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; - }; - - _unit setVariable [QEGVAR(circulation,ht), _ht, true]; - }; + [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; _unit setVariable [QEGVAR(pharma,kidneyArrest), true, true]; }; }; @@ -331,4 +326,4 @@ if (!isNil QACEGVAR(advanced_fatigue,setAnimExclusions)) then { if (_index != -1) then { ACEGVAR(advanced_fatigue,setAnimExclusions) deleteAt _index; }; -}; +}; \ No newline at end of file diff --git a/addons/misc/functions/fnc_treatmentSuccess.sqf b/addons/misc/functions/fnc_treatmentSuccess.sqf index 68dd36707..4c2916f55 100644 --- a/addons/misc/functions/fnc_treatmentSuccess.sqf +++ b/addons/misc/functions/fnc_treatmentSuccess.sqf @@ -41,8 +41,22 @@ if (!isNil QACEGVAR(advanced_fatigue,setAnimExclusions)) then { ACEGVAR(advanced_fatigue,setAnimExclusions) deleteAt (ACEGVAR(advanced_fatigue,setAnimExclusions) find QUOTE(ACE_ADDON(medical_treatment))); }; -GET_FUNCTION(_condition,configFile >> QACEGVAR(medical_treatment,actions) >> _classname >> "condition"); -if !(_args call _condition) exitWith {}; +private _callbackCondition = true; + +GET_FUNCTION(_callbackCondition,configFile >> QACEGVAR(medical_treatment,actions) >> _classname >> "callbackCondition"); +if (_callbackCondition isEqualType {}) then { + if ((getText (configFile >> QACEGVAR(medical_treatment,actions) >> _classname >> "callbackCondition")) isEqualTo "useCondition") then { + GET_FUNCTION(_condition,configFile >> QACEGVAR(medical_treatment,actions) >> _classname >> "condition"); + _callbackCondition = _condition; + }; + + if (_callbackCondition isEqualTo {}) exitWith { + _callbackCondition = true; + }; + _callbackCondition = call _callbackCondition; +}; + +if !(_callbackCondition) exitWith {}; // Call treatment specific success callback GET_FUNCTION(_callbackSuccess,configFile >> QACEGVAR(medical_treatment,actions) >> _classname >> "callbackSuccess"); diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index eaa444645..c6447ad92 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -1,5 +1,29 @@ class ACE_ADDON(Medical_Treatment) { class Medication { + // How much does the pain get reduced? + painReduce = 0; + // How much will the heart rate be increased when the HR is low (below 55)? {minIncrease, maxIncrease} + hrIncreaseLow[] = {0, 0}; // _heartRate < 55 + hrIncreaseNormal[] = {0, 0}; // 55 <= _heartRate <= 110 + hrIncreaseHigh[] = {0, 0}; // 110 < _heartRate + + // How long until this medication has disappeared + timeInSystem = 120; + // How long until the maximum effect is reached + timeTillMaxEffect = 30; + // How many of this type of medication can be in the system before the patient overdoses? + maxDose = 4; + // Function to execute upon overdose. Arguments passed to call back are 0: unit , 1: medicationClassName + onOverDose = ""; + // The viscosity of a fluid is a measure of its resistance to gradual deformation by shear stress or tensile stress. For liquids, it corresponds to the informal concept of "thickness". This value will increase/decrease the viscoty of the blood with the percentage given. Where 100 = max. Using the minus will decrease viscosity + viscosityChange = 0; + // How much does the medication constrict/dilate the patient's blood vessels? + alphaFactor = 0; + // Max amount of pain the medication can remove + maxRelief = 0; + // Reduction of damage from wounds + opioidRelief = 1; + class Epinephrine { painReduce = 0; hrIncreaseLow[] = {10, 20}; @@ -12,6 +36,18 @@ class ACE_ADDON(Medical_Treatment) { alphaFactor = 0.15; onOverDose = ""; }; + class Morphine { + painReduce = 0.8; + hrIncreaseLow[] = {-10, -20}; + hrIncreaseNormal[] = {-10, -30}; + hrIncreaseHigh[] = {-10, -35}; + timeInSystem = 900; + timeTillMaxEffect = 30; + maxDose = 4; + incompatibleMedication[] = {}; + viscosityChange = -10; + opioidRelief = 1.2; + }; class Carbonate { painReduce = 0; hrIncreaseLow[] = {5, 10}; @@ -55,13 +91,25 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseNormal[] = {-10, -15}; hrIncreaseHigh[] = {-10, -15}; timeInSystem = 360; - timeTillMaxEffect = 15; + timeTillMaxEffect = 30; maxDose = 12; incompatibleMedication[] = {}; viscosityChange = 50; alphaFactor = -0.5; onOverDose = ""; }; + class PhenylephrineAuto { + painReduce = 0; + hrIncreaseLow[] = {-5, -10}; + hrIncreaseNormal[] = {-5, -10}; + hrIncreaseHigh[] = {-10, -15}; + timeInSystem = 360; + timeTillMaxEffect = 15; + maxDose = 6; + incompatibleMedication[] = {}; + viscosityChange = 25; + alphaFactor = -0.3; + }; class Nitroglycerin { painReduce = 0; hrIncreaseLow[] = {5, 10}; @@ -86,6 +134,7 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = -10; onOverDose = ""; + opioidRelief = 1.5; }; class Ketamine { painReduce = 0.8; @@ -110,18 +159,20 @@ class ACE_ADDON(Medical_Treatment) { incompatibleMedication[] = {}; viscosityChange = -5; onOverDose = ""; + opioidRelief = 1.2; }; class Painkillers { - painReduce = 0.3; + painReduce = 0.2; hrIncreaseLow[] = {0, 5}; hrIncreaseNormal[] = {5, 10}; - hrIncreaseHigh[] = {5, 15}; - timeInSystem = 600; - timeTillMaxEffect = 90; + hrIncreaseHigh[] = {5, 10}; + timeInSystem = 360; + timeTillMaxEffect = 60; maxDose = 10; incompatibleMedication[] = {}; viscosityChange = -5; onOverDose = ""; + maxRelief = 0.5; }; class Atropine { painReduce = 0; @@ -157,6 +208,7 @@ class ACE_ADDON(Medical_Treatment) { maxDose = 4; incompatibleMedication[]= {}; onOverDose = ""; + maxRelief = 0.6; }; class EACA { painReduce = 0; @@ -248,11 +300,12 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseNormal[] = {-5, -10}; hrIncreaseHigh[] = {-5, -15}; timeInSystem = 300; - timeTillMaxEffect = 10; - maxDose = 10; + timeTillMaxEffect = 20; + maxDose = 4; incompatibleMedication[] = {}; viscosityChange = 5; onOverDose = ""; + maxRelief = 0.6; }; }; }; diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index 8f9657e19..4d9710e01 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -189,6 +189,7 @@ class ACE_Medical_Treatment_Actions { }; class Phenylephrine: EACA { displayName = CSTRING(Take_Phenyl); + displayNameProgress = CSTRING(Using); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; medicRequired = QGVAR(medLvl_Phenylephrine); @@ -197,6 +198,16 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; + class PhenylephrineAuto: Morphine { + displayName = CSTRING(Take_Phenyl_Auto); + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowSelfTreatment = 1; + items[] = {"kat_phenylephrineAuto"}; + condition = ""; + treatmentTime = 5; + callbackSuccess = QFUNC(medication); + sounds[] = {}; + }; class Nitroglycerin: EACA { displayName = CSTRING(Take_Nitro); allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; @@ -227,12 +238,12 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(medication); sounds[] = {}; }; - class Atropine: EACA { + class Atropine: Morphine { displayName = CSTRING(Take_Atropine); - allowedSelections[] = {"Body", "LeftArm", "RightArm", "LeftLeg", "RightLeg"}; + allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - medicRequired = QGVAR(medLvl_Atropine); - treatmentTime = QGVAR(treatmentTime_Atropine); + treatmentTime = 5; + condition = ""; items[] = {"kat_atropine"}; callbackSuccess = QFUNC(medication); sounds[] = {}; diff --git a/addons/pharma/CfgWeapons.hpp b/addons/pharma/CfgWeapons.hpp index 17f4d321d..1e28dd020 100644 --- a/addons/pharma/CfgWeapons.hpp +++ b/addons/pharma/CfgWeapons.hpp @@ -134,6 +134,17 @@ class CfgWeapons { mass = 0.5; }; }; + class kat_phenylephrineAuto: ACE_ItemCore { + scope = 2; + displayName = CSTRING(PhenylAuto_Box_Display); + picture = QPATHTOF(ui\icon_PhenylephrineAuto.paa); + model = "\A3\Structures_F_EPA\Items\Medical\Painkillers_F.p3d"; + descriptionShort = CSTRING(PhenylAuto_DescShort); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 0.5; + }; + }; class kat_nitroglycerin: ACE_ItemCore { scope = 2; displayName = CSTRING(Nitro_Box_Display); diff --git a/addons/pharma/XEH_PREP.hpp b/addons/pharma/XEH_PREP.hpp index 051a45ac5..874b7d51f 100644 --- a/addons/pharma/XEH_PREP.hpp +++ b/addons/pharma/XEH_PREP.hpp @@ -30,6 +30,8 @@ PREP(treatmentAdvanced_Flush); PREP(treatmentAdvanced_FlushLocal); PREP(treatmentAdvanced_KetamineLocal); PREP(treatmentAdvanced_LorazepamLocal); +PREP(treatmentAdvanced_MorphineLocal); +PREP(treatmentAdvanced_NalbuphineLocal); PREP(treatmentAdvanced_Naloxone); PREP(treatmentAdvanced_NaloxoneLocal); PREP(treatmentAdvanced_Painkillers); diff --git a/addons/pharma/XEH_postInit.sqf b/addons/pharma/XEH_postInit.sqf index 230b14eac..a0a1811c4 100644 --- a/addons/pharma/XEH_postInit.sqf +++ b/addons/pharma/XEH_postInit.sqf @@ -15,8 +15,8 @@ [QGVAR(flushLocal), LINKFUNC(treatmentAdvanced_FlushLocal)] call CBA_fnc_addEventHandler; [QGVAR(pervitinLocal), LINKFUNC(treatmentAdvanced_PervitinLocal)] call CBA_fnc_addEventHandler; [QGVAR(pervitinPP), LINKFUNC(pervitinPP)] call CBA_fnc_addEventHandler; -[QGVAR(ketamineLocal), LINKFUNC(ketamineLocal)] call CBA_fnc_addEventHandler; -[QGVAR(fentanylLocal), LINKFUNC(fentanylLocal)] call CBA_fnc_addEventHandler; +[QGVAR(ketamineLocal), LINKFUNC(treatmentAdvanced_KetamineLocal)] call CBA_fnc_addEventHandler; +[QGVAR(fentanylLocal), LINKFUNC(treatmentAdvanced_FentanylLocal)] call CBA_fnc_addEventHandler; [QGVAR(caffeineLocal), LINKFUNC(treatmentAdvanced_CaffeineLocal)] call CBA_fnc_addEventHandler; diff --git a/addons/pharma/config.cpp b/addons/pharma/config.cpp index c117caf0d..96563e380 100644 --- a/addons/pharma/config.cpp +++ b/addons/pharma/config.cpp @@ -21,6 +21,7 @@ class CfgPatches { "kat_X_AED", "kat_norepinephrine", "kat_phenylephrine", + "kat_phenylephrineAuto", "kat_nitroglycerin", "kat_amiodarone", "kat_lidocane", @@ -49,7 +50,7 @@ class CfgPatches { "cba_settings" }; author = "Katalam"; - authors[] = {"Katalam", "2LT.Mazinski", "MiszczuZPolski"}; + authors[] = {"Katalam", "Mazinski", "MiszczuZPolski"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index 5f6d653cf..620cec21f 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -33,6 +33,8 @@ _unit setVariable [QGVAR(IVpfh), [0,0,0,0,0,0], true]; _unit setVariable [QGVAR(active), false, true]; _unit setVariable [QGVAR(alphaAction), 1]; +_unit setVariable [QGVAR(opioidFactor), 1, true]; + _unit setVariable [QGVAR(pH), 1500, true]; _unit setVariable [QGVAR(coagulationFactor), 10, true]; _unit setVariable [QGVAR(kidneyFail), false, true]; @@ -50,19 +52,32 @@ _unit setVariable [QGVAR(kidneyPressure), false, true]; }; private _medicationArray = _unit getVariable [QACEGVAR(medical,medications), []]; - private _action = false; + private _alpha = false; + private _opioid = false; { _x params ["_medication"]; if (_medication in ["Epinephrine", "Phenylephrine", "Nitroglycerin", "Lidocaine", "Norepinephrine"]) exitWith { - _action = true; + _alpha = true; + }; + } forEach (_medicationArray); + + { + _x params ["_medication"]; + + if (_medication in ["Fentanyl", "Morphine", "Nalbuphine"]) exitWith { + _opioid = true; }; } forEach (_medicationArray); - if !(_action) then { + if !(_alpha) then { _unit setVariable [QGVAR(alphaAction), 1]; }; + + if !(_opioid) then { + _unit setVariable [QGVAR(opioidFactor), 1]; + }; }, 180, [_unit]] call CBA_fnc_addPerFrameHandler; if (GVAR(kidneyAction)) then { @@ -71,20 +86,16 @@ if (GVAR(kidneyAction)) then { _args params ["_unit"]; private _alive = alive _unit; - private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; if (!_alive) exitWith { [_idPFH] call CBA_fnc_removePerFrameHandler; }; private _ph = _unit getVariable [QGVAR(pH), 1500]; - if (_ph > 750) exitWith { + if (_ph == 1500) exitWith { _unit setVariable [QGVAR(kidneyArrest), false, true]; _unit setVariable [QGVAR(kidneyPressure), false, true]; _unit setVariable [QGVAR(kidneyFail), false, true]; - - _ht deleteAt (_ht find "hydrogen"); - _unit setVariable [QEGVAR(circulation,ht), _ht, true]; }; private _kidneyFail = _unit getVariable [QGVAR(kidneyFail), false]; @@ -99,15 +110,7 @@ if (GVAR(kidneyAction)) then { private _random = random 1; if (_random >= 0.5) then { - if ((_ht findIf {_x isEqualTo "hydrogen"}) == -1) then { - _ht pushBack "hydrogen"; - - if(_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { - [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; - }; - - _unit setVariable [QEGVAR(circulation,ht), _ht, true]; - }; + [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; _unit setVariable [QGVAR(kidneyArrest), true, true]; }; }; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 792e0b1e9..0e8e1c578 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Glowbal, mharis001 - * Modified: MiszczuZPolski, Blue + * Modified: MiszczuZPolski, Blue, Mazinski * Local callback for administering medication to a patient. * * Arguments: @@ -77,12 +77,22 @@ private _hrIncreaseNormal = GET_ARRAY(_medicationConfig >> "hrIncreaseNorm private _hrIncreaseHigh = GET_ARRAY(_medicationConfig >> "hrIncreaseHigh",getArray (_defaultConfig >> "hrIncreaseHigh")); private _incompatibleMedication = GET_ARRAY(_medicationConfig >> "incompatibleMedication",getArray (_defaultConfig >> "incompatibleMedication")); private _alphaFactor = GET_NUMBER(_medicationConfig >> "alphaFactor",getNumber (_defaultConfig >> "alphaFactor")); +private _maxRelief = GET_NUMBER(_medicationConfig >> "maxRelief",getNumber (_defaultConfig >> "maxRelief")); +private _opioidRelief = GET_NUMBER(_medicationConfig >> "opioidRelief",getNumber (_defaultConfig >> "opioidRelief")); private _heartRate = GET_HEART_RATE(_patient); private _hrIncrease = [_hrIncreaseLow, _hrIncreaseNormal, _hrIncreaseHigh] select (floor ((0 max _heartRate min 110) / 55)); _hrIncrease params ["_minIncrease", "_maxIncrease"]; private _heartRateChange = _minIncrease + random (_maxIncrease - _minIncrease); +private _presentPain = GET_PAIN(_patient); +private _presentReduce = 0; +if (_maxRelief > 0) then { + if (_presentPain > _maxRelief) then { + _painReduce = _painReduce / 4; + }; +}; + // Adjust the medication effects and add the medication to the list TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); [_patient, _className, _timeTillMaxEffect, _timeInSystem, _heartRateChange, _painReduce, _viscosityChange] call ACEFUNC(medical_status,addMedicationAdjustment); @@ -93,7 +103,10 @@ TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); //Change Alpha Factor [_patient, _alphaFactor] call FUNC(alphaAction); - -if (_className in ["Lorazepam","Fentanyl","Ketamine","EACA","TXA","Atropine","Amiodarone","Flumazenil"]) then { +if (_className in ["Lorazepam","Ketamine","EACA","TXA","Atropine","Amiodarone","Flumazenil"]) then { [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; }; + +if (_className in ["Fentanyl","Morphine","Nalbuphine"]) then { + [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart, _opioidRelief], _patient] call CBA_fnc_targetEvent; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf index cc7244216..5c91d62e5 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf @@ -1,27 +1,34 @@ #include "..\script_component.hpp" /* * Author: Miss Heda - * Triggers the fentanyl visual effect. + * Modified: Mazinski + * Triggers the fentanyl visual effect and applies the opioid factor from Fentanyl. * * Arguments: * 0: Patient + * 1: Bodypart + * 2: OpioidRelief * * Return Value: * None * * Example: - * [player] call kat_pharma_fnc_fentanylPP; + * [player, "LeftLeg", opioidRelief] call kat_pharma_fnc_treatmentAdvanced_FentanylLocal; * * Public: No */ - -/// ChromAberration effect -params ["_target"]; +params ["_target", "_bodyPart", "_opioidRelief"]; if !(alive _target) exitWith {}; if (ACE_Player != _target) exitWith {}; +private _opioidFactor = _target getVariable [QGVAR(opioidFactor), 1]; +if (_opioidFactor == 1) then { + _target setVariable [QGVAR(opioidFactor), _opioidRelief, true]; +}; + +/// ChromAberration effect if (GVAR(chromatic_aberration_checkbox_fentanyl)) then { [{ params ["_target"]; @@ -37,7 +44,7 @@ if (GVAR(chromatic_aberration_checkbox_fentanyl)) then { }; _handle ppEffectEnable true; _handle ppEffectAdjust _effect; - _handle ppEffectCommit 360; // 6m for max chroma + _handle ppEffectCommit 180; // 6m for max chroma [{ params["_handle"]; @@ -63,4 +70,4 @@ if (GVAR(chromatic_aberration_checkbox_fentanyl)) then { }; }, [_target], 60] call CBA_fnc_waitAndExecute; // chroma start after 60s -}; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf new file mode 100644 index 000000000..4024c143d --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf @@ -0,0 +1,26 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski + * Applies the opioid factor from Nalbuphine + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player, "Leftleg", opioidRelief] call kat_pharma_fnc_treatmentAdvanced_NalbuphineLocal; + * + * Public: No + */ + +params ["_patient", "_bodyPart", "_opioidRelief"]; + +if !(alive _patient) exitWith {}; +if (ACE_Player != _patient) exitWith {}; + +private _opioidFactor = _patient getVariable [QGVAR(opioidFactor), 1]; +if (_opioidFactor == 1) then { + _patient setVariable [QGVAR(opioidFactor), _opioidRelief, true]; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf new file mode 100644 index 000000000..0a121e24a --- /dev/null +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf @@ -0,0 +1,26 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinski + * Applies the opioid factor from Morphine + * + * Arguments: + * 0: Patient + * + * Return Value: + * None + * + * Example: + * [player, "Leftleg", opioidRelief] call kat_pharma_fnc_treatmentAdvanced_MorphineLocal; + * + * Public: No + */ + +params ["_patient", "_bodyPart", "_opioidRelief"]; + +if !(alive _patient) exitWith {}; +if (ACE_Player != _patient) exitWith {}; + +private _opioidFactor = _patient getVariable [QGVAR(opioidFactor), 1]; +if (_opioidFactor == 1) then { + _patient setVariable [QGVAR(opioidFactor), _opioidRelief, true]; +}; diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index 1ae225332..354a8788f 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -181,7 +181,7 @@ Analgésicos - Push Painkillers + Give Painkillers Użyj leku przeciwbólowego 服用止痛藥 服用止痛药 @@ -416,7 +416,7 @@ Injetar Lidocaína - Used to treat bradycardia + Used to treat chemical exposure Zur Behandlung von Bradykardie Używany do zwalczania bradykardii Utiliser pour traiter une bradycardie @@ -448,7 +448,7 @@ Atropina - Push Atropine + Inject Atropine Atropin verabreichen Wstrzyknij Atropinę Injecter Atropine @@ -607,6 +607,25 @@ Ввести Фенилэфрин Injetar Fenilefrina + + Phenylephrine Autoinjector + + + Inject Phenylephrine + Phenylephrin verabreichen + Wstrzyknij Fenylefrynę + Injecter Phényléphrine + 推注苯肾上腺素 + 推注苯肾上腺素 + Iniettare la fenilefrina + Administrar Fenilefrina + 페닐에프린 투여 + Fenilefrin itin + Aplikovat Fenylefrin + フェニレフリンを注入 + Ввести Фенилэфрин + Injetar Fenilefrina + Used to lower blood pressure Zur Senkung des Blutdrucks diff --git a/addons/pharma/ui/icon_Atropine.paa b/addons/pharma/ui/icon_Atropine.paa index 8d832792ef41384891e205a4b2a41b2b80d7474b..49b79e99e52d13e8d9805243d52663be9815b636 100644 GIT binary patch literal 35563 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 KtN#EE1_1yNNf__| literal 2897 zcmeHJe`p(Z6n~BVBTFgSKeYw>NBmBtJH zq0VgurKzNlD1$+Fw2ZdPZMm8|5q5K^Ct7>e4s!l?usLpQ#-qvIJ>OM9m`Gbl@E;$1 zdH24@_xs-W^M1BrEH-%f$yj2r9RR+%a_!+QIW_ou-gCx#E20k&}SA9e|l+8*MM9k1l*?k zL0_2FIECjCPpE5bPpxWiXcrie6=kiS2HNiydHxr^TU^l`&-I!e2Pw6#lH2)*q(p(G z?^_v`E)^I9xKSPzldQi#FV8Jzvn+k$%q_`rT({Z!^J+s?6kb`q7+Zwkk8`XNlAt4p zk5$f>0ghXGCAJt(rEh+_wEVe405n^FS$p6+h3B}C)Ri;Z*xJD_^O;Wo-wH{WO03@< z9hS>%m zvdiZlH_81?kH5TDwEXy!?fr!$dJr*7lM^=u;`g6nC_wFW(FzIz>k*5V<24`uh>
R4~_Jj(b9ed}xo-td2f3K0TILfjK)v12S5U=ZLGeHJ4 zsu?qv_2rC}O(3RC!*<-()xT!P^?!X|AN2h>UF@v=?bh6@`|JuPUp}%rJ)q*+oga34 zerg=?(9!1;*0_P+|NKgBL+>>ZDgKFw|LfRdmo_wxSNPubQ%eC5k`4Xf62QCc*3zuz z?jSwuYFSsP-gd4WFYp1uWt9&Wqm*W;+&7ZzZJ*wfpRRPiQQez>WG;g>I3TA@ zkLvSw_WR+ka0-PrVj`8rS&pk^JM~)a-v9oyj)wi-ZP=T)|8`@L vCel6t`$~j{44&)OULfu|BlDE}3Xdc6esOcL9oqfTHBp+OI`s7x7yy3&=NaCS diff --git a/addons/pharma/ui/icon_PhenylephrineAuto.paa b/addons/pharma/ui/icon_PhenylephrineAuto.paa new file mode 100644 index 0000000000000000000000000000000000000000..1952453d76022f99b478fe500a628cdc09feb388 GIT binary patch literal 46564 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�fY*7mU*y;`%`X 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 literal 0 HcmV?d00001 diff --git a/addons/surgery/ACE_Medical_Treatment_Actions.hpp b/addons/surgery/ACE_Medical_Treatment_Actions.hpp index 25808cba0..15b4167df 100644 --- a/addons/surgery/ACE_Medical_Treatment_Actions.hpp +++ b/addons/surgery/ACE_Medical_Treatment_Actions.hpp @@ -128,7 +128,7 @@ class ACE_Medical_Treatment_Actions { medicRequired = QGVAR(surgicalAction_MedLevel); treatmentTime = QGVAR(intermediateTime); items[] = {"kat_ultrasound"}; - condition = QUOTE(!(_patient getVariable [ARR_2(QQGVAR(imaging),false)])); + condition = ""; consumeItem = 0; callbackSuccess = QFUNC(ultraAssessment); }; diff --git a/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf index f5935e593..3a7b01640 100644 --- a/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf +++ b/addons/surgery/functions/fnc_reboaDeepApplyLocal.sqf @@ -27,6 +27,8 @@ _patient setVariable [VAR_TOURNIQUET, _tourniquets, true]; _surgicalBlock set [1, 1]; _patient setVariable [QGVAR(surgicalBlock), _surgicalBlock, true]; +_patient setVariable [QGVAR(imaging), false, true]; + [_patient] call ACEFUNC(medical_status,updateWoundBloodLoss); private _nearPlayers = (_patient nearEntities ["CAManBase", 6]) select {_x call ACEFUNC(common,isPlayer)}; diff --git a/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf index 14cba8dee..cca2eb406 100644 --- a/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf +++ b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf @@ -27,15 +27,15 @@ _patient setVariable [QGVAR(imaging), true, true]; //Reads Thorasic Condition if ((_patient getVariable [QEGVAR(breathing,pneumothorax), 0]) != 0) then { - _airway = LSTRING(Ultra_Thorasic_PTX); + _thorasic = LSTRING(Ultra_Thorasic_PTX); }; if (_patient getVariable [QEGVAR(breathing,hemopneumothorax), false]) then { - _airway = LSTRING(Ultra_Thorasic_Hemo); + _thorasic = LSTRING(Ultra_Thorasic_Hemo); }; if (_patient getVariable [QEGVAR(breathing,tensionpneumothorax), false]) then { - _airway = LSTRING(Ultra_Thorasic_Tension); + _thorasic = LSTRING(Ultra_Thorasic_Tension); }; @@ -58,6 +58,10 @@ switch (_patient getVariable [QEGVAR(circulation,cardiacArrestType), 0]) do { }; }; +if (_patient getVariable [QEGVAR(circulation,effusion), 0] > 0) then { + _cardiac = LSTRING(Ultra_Cardiac_Tamponade); +}; + [_patient, "quick_view", LSTRING(Ultra_Airway), [_airway]] call ACEFUNC(medical_treatment,addToLog); [_patient, "quick_view", LSTRING(Ultra_Cardiac), [_cardiac]] call ACEFUNC(medical_treatment,addToLog); [_patient, "quick_view", LSTRING(Ultra_Thorasic), [_thorasic]] call ACEFUNC(medical_treatment,addToLog); diff --git a/addons/surgery/stringtable.xml b/addons/surgery/stringtable.xml index 408673374..4e1466e8f 100644 --- a/addons/surgery/stringtable.xml +++ b/addons/surgery/stringtable.xml @@ -544,6 +544,9 @@ Arrest - Not Shockable + + Tamponade + REBOA Unit From df331a154ce33d1c89835dac76cff63845df9e1f Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:36:09 -0800 Subject: [PATCH 16/39] Update fnc_pericardialTapLocal.sqf --- addons/surgery/functions/fnc_pericardialTapLocal.sqf | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/surgery/functions/fnc_pericardialTapLocal.sqf b/addons/surgery/functions/fnc_pericardialTapLocal.sqf index d6e16bfb1..cd8345c4a 100644 --- a/addons/surgery/functions/fnc_pericardialTapLocal.sqf +++ b/addons/surgery/functions/fnc_pericardialTapLocal.sqf @@ -24,6 +24,3 @@ _patient setVariable [QEGVAR(circulation,ht), _ht, true]; _patient setVariable [QEGVAR(circulation,effusion), 0, true]; _patient setVariable [QGVAR(imaging), false, true]; - -[_patient, "quick_view", LSTRING(Pericardial_Tap_Log), [[_medic] call ACEFUNC(common,getName)]] call ACEFUNC(medical_treatment,addToLog); - From 45ccb5a8a258154f22fcd05cb73d1d8237e62496 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:36:18 -0800 Subject: [PATCH 17/39] Update fnc_pericardialTap.sqf --- addons/surgery/functions/fnc_pericardialTap.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/surgery/functions/fnc_pericardialTap.sqf b/addons/surgery/functions/fnc_pericardialTap.sqf index a64971d54..794ad6896 100644 --- a/addons/surgery/functions/fnc_pericardialTap.sqf +++ b/addons/surgery/functions/fnc_pericardialTap.sqf @@ -18,4 +18,6 @@ params ["_medic", "_patient"]; -[QGVAR(pericardialTap), [_medic, _patient], _patient] call CBA_fnc_targetEvent; \ No newline at end of file +[_patient, "quick_view", LSTRING(Pericardial_Tap_Log), [[_medic] call ACEFUNC(common,getName)]] call ACEFUNC(medical_treatment,addToLog); + +[QGVAR(pericardialTap), [_medic, _patient], _patient] call CBA_fnc_targetEvent; From ff815ef94038aacd6c17803a706f6f4ae552695c Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:38:59 -0800 Subject: [PATCH 18/39] Update fnc_treatmentAdvanced_FentanylLocal.sqf --- .../pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf index 5c91d62e5..82fec8548 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf @@ -13,7 +13,7 @@ * None * * Example: - * [player, "LeftLeg", opioidRelief] call kat_pharma_fnc_treatmentAdvanced_FentanylLocal; + * [player, "LeftLeg", 1] call kat_pharma_fnc_treatmentAdvanced_FentanylLocal; * * Public: No */ @@ -70,4 +70,4 @@ if (GVAR(chromatic_aberration_checkbox_fentanyl)) then { }; }, [_target], 60] call CBA_fnc_waitAndExecute; // chroma start after 60s -}; \ No newline at end of file +}; From 1afa52cac0bc43e6a83d5b82e96194f1cf2094fe Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:39:32 -0800 Subject: [PATCH 19/39] Update fnc_treatmentAdvanced_MorphineLocal.sqf --- .../pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf index 4024c143d..78f89d592 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [player, "Leftleg", opioidRelief] call kat_pharma_fnc_treatmentAdvanced_NalbuphineLocal; + * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_NalbuphineLocal; * * Public: No */ @@ -23,4 +23,4 @@ if (ACE_Player != _patient) exitWith {}; private _opioidFactor = _patient getVariable [QGVAR(opioidFactor), 1]; if (_opioidFactor == 1) then { _patient setVariable [QGVAR(opioidFactor), _opioidRelief, true]; -}; \ No newline at end of file +}; From 575a39c7650ceb1a78b6f4eccd2f0c556eb6e7c9 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:39:36 -0800 Subject: [PATCH 20/39] Update fnc_treatmentAdvanced_NalbuphineLocal.sqf --- .../pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf index 0a121e24a..d5f8759d1 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [player, "Leftleg", opioidRelief] call kat_pharma_fnc_treatmentAdvanced_MorphineLocal; + * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_MorphineLocal; * * Public: No */ From 0eea0b0e5974cd5b431793dd33174e57eee92813 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:41:46 -0800 Subject: [PATCH 21/39] Update XEH_preInit.sqf --- addons/breathing/XEH_preInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/breathing/XEH_preInit.sqf b/addons/breathing/XEH_preInit.sqf index 9620d1e32..c04c040df 100644 --- a/addons/breathing/XEH_preInit.sqf +++ b/addons/breathing/XEH_preInit.sqf @@ -54,7 +54,7 @@ PREP_RECOMPILE_END; "CHECKBOX", LLSTRING(SETTING_SpO2_cardiacActive), [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], - [true], + [false], true ] call CBA_Settings_fnc_init; From 09a52793a8e3b542ad16171a832e5531b0d3aed3 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:43:13 -0800 Subject: [PATCH 22/39] Update fnc_handleBreathing.sqf --- addons/breathing/functions/fnc_handleBreathing.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/breathing/functions/fnc_handleBreathing.sqf b/addons/breathing/functions/fnc_handleBreathing.sqf index ebfd71de5..bd9afffa5 100644 --- a/addons/breathing/functions/fnc_handleBreathing.sqf +++ b/addons/breathing/functions/fnc_handleBreathing.sqf @@ -67,11 +67,11 @@ if (!local _unit) then { if (GVAR(SpO2_cardiacActive)) then { private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; - if (GVAR(SpO2_cardiacValue) >= _status) then { + if (_status <= GVAR(SpO2_cardiacValue)) then { if ((_ht findIf {_x isEqualTo "hypoxia"}) == -1) then { _ht pushBack "hypoxia"; - if (_unit getVariable[QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + if (_unit getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; }; From 374db608759bc0088a2c3ceaec7ac9b02875cdc6 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:45:53 -0800 Subject: [PATCH 23/39] Update fnc_FAK_unpack.sqf --- addons/misc/functions/fnc_FAK_unpack.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/misc/functions/fnc_FAK_unpack.sqf b/addons/misc/functions/fnc_FAK_unpack.sqf index 804b66475..6fb62afaa 100644 --- a/addons/misc/functions/fnc_FAK_unpack.sqf +++ b/addons/misc/functions/fnc_FAK_unpack.sqf @@ -29,6 +29,7 @@ private _fnc_arrayToInvItem = { for "_i" from 1 to (_x select 1) do { private _inventory = [_unit, _x select 0, _container] call ACEFUNC(common,addToInventory); + if !(_inventory select 0) then { if (isNil "_groundContainer") exitWith { _groundContainer = _inventory select 1; @@ -160,4 +161,4 @@ if (_slot > 0) then { [_unit, (_itemList select _forEachIndex), _container] call _fnc_arrayToInvItem; }; } forEach _slotArray; -}; \ No newline at end of file +}; From 7c7df0e7b4c4e7a4fdbddb49494dec21d9699ae9 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Sat, 9 Mar 2024 15:49:31 -0800 Subject: [PATCH 24/39] Update ACE_Medical_Treatment_Actions.hpp --- addons/surgery/ACE_Medical_Treatment_Actions.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/surgery/ACE_Medical_Treatment_Actions.hpp b/addons/surgery/ACE_Medical_Treatment_Actions.hpp index d18b292df..f46a53efa 100644 --- a/addons/surgery/ACE_Medical_Treatment_Actions.hpp +++ b/addons/surgery/ACE_Medical_Treatment_Actions.hpp @@ -151,7 +151,7 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(Reboa_Deep_Action); category = "surgery"; treatmentLocations = QGVAR(surgicalLocation); - allowedSelections[] = {"LeftLeg"}; + allowedSelections[] = {"LeftLeg", "RightLeg"}; allowSelfTreatment = 0; medicRequired = QGVAR(surgicalAction_MedLevel); treatmentTime = QGVAR(intermediateTime); @@ -165,7 +165,7 @@ class ACE_Medical_Treatment_Actions { displayNameProgress = CSTRING(Reboa_Remove_Action); category = "surgery"; treatmentLocations = QGVAR(reboaTime); - allowedSelections[] = {"LeftLeg"}; + allowedSelections[] = {"LeftLeg", "RightLeg"}; allowSelfTreatment = 0; medicRequired = QGVAR(surgicalAction_MedLevel); treatmentTime = QGVAR(intermediateTime); From 59a39d78b098f6ce35d00b43dafd82a33c0d6839 Mon Sep 17 00:00:00 2001 From: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> Date: Tue, 2 Apr 2024 02:30:28 +0200 Subject: [PATCH 25/39] update init --- addons/circulation/functions/fnc_fullHealLocal.sqf | 4 ++++ addons/circulation/functions/fnc_init.sqf | 10 +++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/circulation/functions/fnc_fullHealLocal.sqf b/addons/circulation/functions/fnc_fullHealLocal.sqf index b2a0cf0d9..577a2de13 100644 --- a/addons/circulation/functions/fnc_fullHealLocal.sqf +++ b/addons/circulation/functions/fnc_fullHealLocal.sqf @@ -27,4 +27,8 @@ _patient setVariable [VAR_BLOODPRESSURE_CHANGE, nil, true]; _patient setVariable [QGVAR(isPerformingCPR), false, true]; _patient setVariable [QGVAR(OxygenationPeriod), 0, true]; +// Currently four HT conditions: Tamponade, Tension, Hypoxia, and Hydrogen (Ions) +_patient setVariable [QGVAR(ht), [], true]; +_patient setVariable [QGVAR(effusion), 0, true]; + [_patient] call FUNC(updateInternalBleeding); diff --git a/addons/circulation/functions/fnc_init.sqf b/addons/circulation/functions/fnc_init.sqf index f560e5aba..2af486471 100644 --- a/addons/circulation/functions/fnc_init.sqf +++ b/addons/circulation/functions/fnc_init.sqf @@ -15,12 +15,8 @@ * Public: No */ -params ["_unit"]; +params ["_unit", ["_isRespawn", true]]; -_unit setVariable [QGVAR(cprCount), 2, true]; - -// Currently four HT conditions: Tamponade, Tension, Hypoxia, and Hydrogen (Ions) -_unit setVariable [QGVAR(ht), [], true]; - -_unit setVariable [QGVAR(effusion), 0, true]; +if (!local _unit) exitWith {}; +[_unit] call FUNC(fullHealLocal); From fe9841d1c4b4bf06ea6730493a26cca7cbca275c Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 2 Apr 2024 09:58:38 -0700 Subject: [PATCH 26/39] 2.14 Update --- .../functions/fnc_handleBreathing.sqf | 2 +- .../fnc_handlePneumothoraxDeterioration.sqf | 23 +++++++++ .../functions/fnc_handlePulmoHit.sqf | 47 ++----------------- addons/chemical/CfgMagazineGroups.hpp | 6 --- addons/chemical/CfgWeapons.hpp | 2 +- addons/circulation/functions/fnc_init.sqf | 2 +- addons/main/script_macros.hpp | 1 + addons/misc/functions/fnc_FAK_unpack.sqf | 4 +- .../functions/fnc_updateDamageEffects.sqf | 1 - addons/pharma/ACE_Medical_Treatment.hpp | 4 +- .../fnc_gui_updateInjuryListPart.sqf | 2 +- addons/pharma/functions/fnc_handleRespawn.sqf | 2 + addons/pharma/functions/fnc_init.sqf | 1 - .../pharma/functions/fnc_medicationLocal.sqf | 1 + .../fnc_treatmentAdvanced_DialysisLocal.sqf | 2 +- .../fnc_treatmentAdvanced_FentanylLocal.sqf | 8 ++-- .../fnc_treatmentAdvanced_MorphineLocal.sqf | 6 +-- .../fnc_treatmentAdvanced_NalbuphineLocal.sqf | 6 +-- .../surgery/ACE_Medical_Treatment_Actions.hpp | 2 +- addons/surgery/CfgWeapons.hpp | 2 +- addons/surgery/XEH_PREP.hpp | 1 + addons/surgery/XEH_postInit.sqf | 1 + addons/surgery/config.cpp | 6 +-- .../fnc_gui_updateInjuryListPart.sqf | 25 ++++++++++ .../surgery/functions/fnc_pericardialTap.sqf | 2 +- .../functions/fnc_pericardialTapLocal.sqf | 2 +- .../functions/fnc_reboaRemoveLocal.sqf | 4 +- .../functions/fnc_ultraAssessmentLocal.sqf | 1 - addons/surgery/stringtable.xml | 3 ++ 29 files changed, 90 insertions(+), 79 deletions(-) create mode 100644 addons/surgery/functions/fnc_gui_updateInjuryListPart.sqf diff --git a/addons/breathing/functions/fnc_handleBreathing.sqf b/addons/breathing/functions/fnc_handleBreathing.sqf index 413d33d50..6bbfe0177 100644 --- a/addons/breathing/functions/fnc_handleBreathing.sqf +++ b/addons/breathing/functions/fnc_handleBreathing.sqf @@ -108,7 +108,7 @@ if (!local _unit) then { _perfusionActive = true; if(_BVMInUse) then { if(_oxygenAssisted) then { - _output = 0.3; + _output = 0.2; } else { _output = 0.1; }; diff --git a/addons/breathing/functions/fnc_handlePneumothoraxDeterioration.sqf b/addons/breathing/functions/fnc_handlePneumothoraxDeterioration.sqf index cd2b04ba6..99f879da2 100644 --- a/addons/breathing/functions/fnc_handlePneumothoraxDeterioration.sqf +++ b/addons/breathing/functions/fnc_handlePneumothoraxDeterioration.sqf @@ -37,11 +37,34 @@ params ["_unit", "_chanceIncrease"]; private _ptxTarget = (_unit getVariable [QGVAR(pneumothorax), 0]) + 1; // Once deteriorated far enough try to inflict advanced pneumothorax or if disabled kill the PFH if (_ptxTarget > 4) exitWith { + + if (GVAR(PneumothoraxArrest)) then { + [{ + params ["_args", "_idPFH"]; + _args params ["_unit"]; + + if ((_unit getVariable [QGVAR(pneumothorax), 0]) == 4) then { + private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; + if ((_ht findIf {_x isEqualTo "tension"}) == -1) then { + _ht pushBack "tension"; + + if (_unit getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { + [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; + }; + + _unit setVariable [QEGVAR(circulation,ht), _ht, true]; + }; + }; + }, [_unit], GVAR(arrestPneumothorax_interval)] call CBA_fnc_waitAndExecute; + }; + if (GVAR(advPtxEnable)) then { [_unit, _chanceIncrease, true] call FUNC(inflictAdvancedPneumothorax); }; + [_idPFH] call CBA_fnc_removePerFrameHandler; }; + _unit setVariable [QGVAR(pneumothorax), _ptxTarget, true]; [_unit, 0.5 * (_ptxTarget / 4)] call ACEFUNC(medical_status,adjustPainLevel); // Adjust pain based on severity [_unit, -12, -12, "ptx_tension"] call EFUNC(circulation,updateBloodPressureChange); // Simulate low blood pressure and high heart rate caused by pneumothorax diff --git a/addons/breathing/functions/fnc_handlePulmoHit.sqf b/addons/breathing/functions/fnc_handlePulmoHit.sqf index 69afd9700..8922489bd 100644 --- a/addons/breathing/functions/fnc_handlePulmoHit.sqf +++ b/addons/breathing/functions/fnc_handlePulmoHit.sqf @@ -23,48 +23,6 @@ params ["_unit", "_allDamages", "", "_ammo"]; _allDamages select 0 params ["_damage", "_bodyPart"]; -private _fnc_inflictAdvancedPneumothorax = { - params ["_unit", "_chanceIncrease", ["_deteriorated", false]]; - - // Prevent the patient from getting both hemothorax and tension pneumothorax at the same time - private _hemo = _unit getVariable [QGVAR(hemopneumothorax), false]; - private _tension = _unit getVariable [QGVAR(tensionpneumothorax), false]; - - // Roll chance to get advanced pneumothorax or skip chance if deteriorated - if ((floor (random 100) <= (GVAR(advPtxChance) + _chanceIncrease) || _deteriorated) && !(_hemo || _tension)) then { - [_unit, 0.7] call ACEFUNC(medical_status,adjustPainLevel); - - if (floor (random 100) <= GVAR(hptxChance)) then { - _unit setVariable [QGVAR(hemopneumothorax), true, true]; - _unit setVariable [QGVAR(pneumothorax), 4, true]; - [_unit] call EFUNC(circulation,updateInternalBleeding); - } else { - _unit setVariable [QGVAR(tensionpneumothorax), true, true]; - _unit setVariable [QGVAR(pneumothorax), 4, true]; - }; - - if (GVAR(PneumothoraxArrest)) then { - [{ - params ["_args", "_idPFH"]; - _args params ["_unit"]; - - if ((_unit getVariable [QGVAR(pneumothorax), 0]) == 4) then { - private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; - if ((_ht findIf {_x isEqualTo "tension"}) == -1) then { - _ht pushBack "tension"; - - if (_unit getVariable [QEGVAR(circulation,cardiacArrestType), 0] == 0) then { - [QACEGVAR(medical,FatalVitals), _unit] call CBA_fnc_localEvent; - }; - - _unit setVariable [QEGVAR(circulation,ht), _ht, true]; - }; - }; - }, [_unit], GVAR(arrestPneumothorax_interval)] call CBA_fnc_waitAndExecute; - }; - }; -}; - if (!(GVAR(enable)) || !(_bodyPart isEqualTo "Body") || !(_ammo isKindOF "BulletBase")) exitWith {}; //Other mods can utilise KAT_Pneumothorax_Exclusion variable to prevent Pneumothorax from happening if ((_damage < GVAR(pneumothoraxDamageThreshold)) || (_unit getVariable ["KAT_Pneumothorax_Exclusion", false])) exitWith {}; @@ -85,10 +43,15 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { // Start deteriorating after delay [_unit, _chanceIncrease] call FUNC(handlePneumothoraxDeterioration); + + if (GVAR(PneumothoraxArrest)) then { + [_unit] call FUNC(inflictPhenumthoraxArrest); + }; } else { if (_unit getVariable [QGVAR(tensionpneumothorax), false]) then { // If already afflicted with tensionpneumothorax -> fully deteriorate pneumothorax _unit setVariable [QGVAR(pneumothorax), 4, true]; _unit setVariable [QGVAR(activeChestSeal), false, true]; + } else { if (GVAR(advPtxEnable)) then { // Roll chance to get advanced pneumothorax while afflicted with early stage of pneumothorax diff --git a/addons/chemical/CfgMagazineGroups.hpp b/addons/chemical/CfgMagazineGroups.hpp index 3c5321e9c..7396137a3 100644 --- a/addons/chemical/CfgMagazineGroups.hpp +++ b/addons/chemical/CfgMagazineGroups.hpp @@ -6,10 +6,4 @@ class ace_csw_groups { class KAT_1Rnd_82mm_Mo_TypeCS { KAT_1Rnd_82mm_Mo_TypeCS = 1; }; - class KAT_5Rnd_82mm_Mo_Type0_AI { - KAT_5Rnd_82mm_Mo_Type0_AI = 1; - }; - class KAT_3Rnd_82mm_Mo_TypeCS_AI { - KAT_3Rnd_82mm_Mo_TypeCS_AI = 1; - }; }; \ No newline at end of file diff --git a/addons/chemical/CfgWeapons.hpp b/addons/chemical/CfgWeapons.hpp index 2cd54ac40..97eedc329 100644 --- a/addons/chemical/CfgWeapons.hpp +++ b/addons/chemical/CfgWeapons.hpp @@ -38,7 +38,7 @@ class CfgWeapons { }; }; class ACE_mortar_82mm; - class ACE_mortar_82mm: mortar_82mm { + class ACE_mortar_82mm: ACE_mortar_82mm { magazines[] += { "KAT_1Rnd_82mm_Mo_Type0", "KAT_1Rnd_82mm_Mo_TypeCS" diff --git a/addons/circulation/functions/fnc_init.sqf b/addons/circulation/functions/fnc_init.sqf index 2af486471..ad79f1a3a 100644 --- a/addons/circulation/functions/fnc_init.sqf +++ b/addons/circulation/functions/fnc_init.sqf @@ -19,4 +19,4 @@ params ["_unit", ["_isRespawn", true]]; if (!local _unit) exitWith {}; -[_unit] call FUNC(fullHealLocal); +[_unit] call FUNC(fullHealLocal); \ No newline at end of file diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index b9f5cdef2..2647dfb2e 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -173,6 +173,7 @@ #undef GET_DAMAGE_THRESHOLD #define GET_DAMAGE_THRESHOLD(unit) ((unit getVariable [QACEGVAR(medical,damageThreshold), [ACEGVAR(medical,AIDamageThreshold),ACEGVAR(medical,playerDamageThreshold)] select (isPlayer unit)]) * GET_OPIOID_FACTOR(unit)) + #define GET_PAIN_PERCEIVED(unit) (0 max (GET_PAIN(unit) - GET_PAIN_SUPPRESS(unit)) min 1) #define DEFAULT_TOURNIQUET_VALUES [0,0,0,0,0,0] diff --git a/addons/misc/functions/fnc_FAK_unpack.sqf b/addons/misc/functions/fnc_FAK_unpack.sqf index 6fb62afaa..f328a5839 100644 --- a/addons/misc/functions/fnc_FAK_unpack.sqf +++ b/addons/misc/functions/fnc_FAK_unpack.sqf @@ -29,7 +29,7 @@ private _fnc_arrayToInvItem = { for "_i" from 1 to (_x select 1) do { private _inventory = [_unit, _x select 0, _container] call ACEFUNC(common,addToInventory); - + if !(_inventory select 0) then { if (isNil "_groundContainer") exitWith { _groundContainer = _inventory select 1; @@ -161,4 +161,4 @@ if (_slot > 0) then { [_unit, (_itemList select _forEachIndex), _container] call _fnc_arrayToInvItem; }; } forEach _slotArray; -}; +}; \ No newline at end of file diff --git a/addons/misc/functions/fnc_updateDamageEffects.sqf b/addons/misc/functions/fnc_updateDamageEffects.sqf index a5a0cfca4..8459acf35 100644 --- a/addons/misc/functions/fnc_updateDamageEffects.sqf +++ b/addons/misc/functions/fnc_updateDamageEffects.sqf @@ -97,7 +97,6 @@ if (_unit getVariable [QEGVAR(surgery,reboa), false]) then { _noSprint = true; }; - [_unit, "blockSprint", QACEGVAR(medical,fracture), _noSprint] call ACEFUNC(common,statusEffect_set); [_unit, "forceWalk", QACEGVAR(medical,fracture), _noJog] call ACEFUNC(common,statusEffect_set); diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index c6447ad92..e7c3e779c 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -167,8 +167,8 @@ class ACE_ADDON(Medical_Treatment) { hrIncreaseNormal[] = {5, 10}; hrIncreaseHigh[] = {5, 10}; timeInSystem = 360; - timeTillMaxEffect = 60; - maxDose = 10; + timeTillMaxEffect = 45; + maxDose = 12; incompatibleMedication[] = {}; viscosityChange = -5; onOverDose = ""; diff --git a/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf b/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf index 5f8e639d3..91ea65d69 100644 --- a/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf +++ b/addons/pharma/functions/fnc_gui_updateInjuryListPart.sqf @@ -29,4 +29,4 @@ if (_IVactual > 0) then { } else { _entries pushBack [LLSTRING(IV_16_Display), [0.3, 0.6, 0.3, 1]]; }; -}; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_handleRespawn.sqf b/addons/pharma/functions/fnc_handleRespawn.sqf index 94f3dbd71..3c1214381 100644 --- a/addons/pharma/functions/fnc_handleRespawn.sqf +++ b/addons/pharma/functions/fnc_handleRespawn.sqf @@ -16,6 +16,8 @@ * Public: No */ +params ["_unit","_dead"]; + [_unit] call FUNC(fullHealLocal); [{ diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index 2952e9fbc..3e7160a47 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -55,7 +55,6 @@ if (!local _unit) exitWith {}; ACEGVAR(medical,const_minCardiacOutput) = (_unit getVariable [QGVAR(alphaAction), 1]) * EGVAR(circulation,cardiacArrestBleedRate); _unit setVariable [QGVAR(alphaAction), 1]; }; - if !(_opioid) then { _unit setVariable [QGVAR(opioidFactor), 1]; }; diff --git a/addons/pharma/functions/fnc_medicationLocal.sqf b/addons/pharma/functions/fnc_medicationLocal.sqf index 168c74e4f..bbc4ef8c1 100644 --- a/addons/pharma/functions/fnc_medicationLocal.sqf +++ b/addons/pharma/functions/fnc_medicationLocal.sqf @@ -104,6 +104,7 @@ TRACE_3("adjustments",_heartRateChange,_painReduce,_viscosityChange); //Change Alpha Factor [_patient, _alphaFactor] call FUNC(alphaAction); + if (_className in ["Lorazepam","Ketamine","EACA","TXA","Atropine","Amiodarone","Flumazenil"]) then { [format ["kat_pharma_%1Local", toLower _className], [_patient, _bodyPart], _patient] call CBA_fnc_targetEvent; }; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_DialysisLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_DialysisLocal.sqf index 6400aa5a1..a817dd662 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_DialysisLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_DialysisLocal.sqf @@ -1,6 +1,6 @@ #include "..\script_component.hpp" /* - * Author: Mazinski + * Author: 1LT.Mazinski.H * Local treatment call for dialysis procedure * * Arguments: diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf index 82fec8548..a927fbdfd 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_FentanylLocal.sqf @@ -6,8 +6,6 @@ * * Arguments: * 0: Patient - * 1: Bodypart - * 2: OpioidRelief * * Return Value: * None @@ -18,6 +16,8 @@ * Public: No */ + +/// ChromAberration effect params ["_target", "_bodyPart", "_opioidRelief"]; if !(alive _target) exitWith {}; @@ -28,7 +28,7 @@ if (_opioidFactor == 1) then { _target setVariable [QGVAR(opioidFactor), _opioidRelief, true]; }; -/// ChromAberration effect +// ChromAberration effect if (GVAR(chromatic_aberration_checkbox_fentanyl)) then { [{ params ["_target"]; @@ -44,7 +44,7 @@ if (GVAR(chromatic_aberration_checkbox_fentanyl)) then { }; _handle ppEffectEnable true; _handle ppEffectAdjust _effect; - _handle ppEffectCommit 180; // 6m for max chroma + _handle ppEffectCommit 180; // 3m for max chroma [{ params["_handle"]; diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf index 78f89d592..3ca57dc32 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_MorphineLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Mazinski - * Applies the opioid factor from Nalbuphine + * Applies the opioid factor from Morphine * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_NalbuphineLocal; + * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_MorphineLocal; * * Public: No */ @@ -23,4 +23,4 @@ if (ACE_Player != _patient) exitWith {}; private _opioidFactor = _patient getVariable [QGVAR(opioidFactor), 1]; if (_opioidFactor == 1) then { _patient setVariable [QGVAR(opioidFactor), _opioidRelief, true]; -}; +}; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf index d5f8759d1..27b76d60d 100644 --- a/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf +++ b/addons/pharma/functions/fnc_treatmentAdvanced_NalbuphineLocal.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Mazinski - * Applies the opioid factor from Morphine + * Applies the opioid factor from Nalbuphine * * Arguments: * 0: Patient @@ -10,7 +10,7 @@ * None * * Example: - * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_MorphineLocal; + * [player, "Leftleg", 1] call kat_pharma_fnc_treatmentAdvanced_NalbuphineLocal; * * Public: No */ @@ -23,4 +23,4 @@ if (ACE_Player != _patient) exitWith {}; private _opioidFactor = _patient getVariable [QGVAR(opioidFactor), 1]; if (_opioidFactor == 1) then { _patient setVariable [QGVAR(opioidFactor), _opioidRelief, true]; -}; +}; \ No newline at end of file diff --git a/addons/surgery/ACE_Medical_Treatment_Actions.hpp b/addons/surgery/ACE_Medical_Treatment_Actions.hpp index f46a53efa..0736d7e71 100644 --- a/addons/surgery/ACE_Medical_Treatment_Actions.hpp +++ b/addons/surgery/ACE_Medical_Treatment_Actions.hpp @@ -118,7 +118,7 @@ class ACE_Medical_Treatment_Actions { callbackProgress = QFUNC(npwtTreatmentProgress); callbackSuccess = ""; }; - class Ultrasound: BasicBandage { + class Ultrasound: BasicBandage { displayName = CSTRING(Ultra_Use); displayNameProgress = CSTRING(Ultra_Action); category = "surgery"; diff --git a/addons/surgery/CfgWeapons.hpp b/addons/surgery/CfgWeapons.hpp index 36cadb406..80a391177 100644 --- a/addons/surgery/CfgWeapons.hpp +++ b/addons/surgery/CfgWeapons.hpp @@ -77,4 +77,4 @@ class CfgWeapons { mass = 1; }; }; -}; \ No newline at end of file +}; diff --git a/addons/surgery/XEH_PREP.hpp b/addons/surgery/XEH_PREP.hpp index 82d8cd2b6..45706dceb 100644 --- a/addons/surgery/XEH_PREP.hpp +++ b/addons/surgery/XEH_PREP.hpp @@ -6,6 +6,7 @@ PREP(fractureSelect); PREP(fractureSelectLocal); PREP(fullHealLocal); PREP(getNPWTTime); +PREP(gui_updateInjuryListPart); PREP(hasAdditionalTourniquetAppliedTo); PREP(incision); PREP(incisionLocal); diff --git a/addons/surgery/XEH_postInit.sqf b/addons/surgery/XEH_postInit.sqf index f6240df60..74895ce49 100644 --- a/addons/surgery/XEH_postInit.sqf +++ b/addons/surgery/XEH_postInit.sqf @@ -11,4 +11,5 @@ [QGVAR(reboaRemove), LINKFUNC(reboaRemoveLocal)] call CBA_fnc_addEventHandler; [QGVAR(pericardialTap), LINKFUNC(pericardialTapLocal)] call CBA_fnc_addEventHandler; +[QACEGVAR(medical_gui,updateInjuryListPart), LINKFUNC(gui_updateInjuryListPart)] call CBA_fnc_addEventHandler; [QACEGVAR(medical_treatment,fullHealLocalMod), LINKFUNC(fullHealLocal)] call CBA_fnc_addEventHandler; diff --git a/addons/surgery/config.cpp b/addons/surgery/config.cpp index 607045ea0..9e9b19310 100644 --- a/addons/surgery/config.cpp +++ b/addons/surgery/config.cpp @@ -31,8 +31,8 @@ class CfgPatches { "ace_dogtags", "cba_settings" }; - author = "1LT.Mazinski"; - authors[] = {"1LT.Mazinski"}; + author = "Mazinski"; + authors[] = {"Mazinski"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; @@ -43,4 +43,4 @@ class CfgPatches { #include "CfgWeapons.hpp" #include "CfgVehicles.hpp" #include "ACE_Medical_Treatment.hpp" -#include "ACE_Medical_Treatment_Actions.hpp" +#include "ACE_Medical_Treatment_Actions.hpp" \ No newline at end of file diff --git a/addons/surgery/functions/fnc_gui_updateInjuryListPart.sqf b/addons/surgery/functions/fnc_gui_updateInjuryListPart.sqf new file mode 100644 index 000000000..528ea6a1b --- /dev/null +++ b/addons/surgery/functions/fnc_gui_updateInjuryListPart.sqf @@ -0,0 +1,25 @@ +#include "..\script_component.hpp" +/* + * Author: AtrixZockt + * Updates injury list for given body part for the target. + * + * Arguments: + * 0: Injury list + * 1: Target + * 2: Body part, -1 to only show overall health info + * 3: Entries + * + * Return Value: + * None + * + * Example: + * [_ctrlInjuries, _target, 0] call kat_surgery_fnc_gui_updateInjuryListPart + * + * Public: No + */ + +params ["_ctrl", "_target", "_selectionN", "_entries"]; + +if (GET_SURGICAL_TOURNIQUETS(_target) select _selectionN != 0) then { + _entries pushBack [LLSTRING(Reboa_Status), [0.77, 0.20, 0.08, 1]]; +}; diff --git a/addons/surgery/functions/fnc_pericardialTap.sqf b/addons/surgery/functions/fnc_pericardialTap.sqf index 794ad6896..13b5d9951 100644 --- a/addons/surgery/functions/fnc_pericardialTap.sqf +++ b/addons/surgery/functions/fnc_pericardialTap.sqf @@ -20,4 +20,4 @@ params ["_medic", "_patient"]; [_patient, "quick_view", LSTRING(Pericardial_Tap_Log), [[_medic] call ACEFUNC(common,getName)]] call ACEFUNC(medical_treatment,addToLog); -[QGVAR(pericardialTap), [_medic, _patient], _patient] call CBA_fnc_targetEvent; +[QGVAR(pericardialTap), [_medic, _patient], _patient] call CBA_fnc_targetEvent; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_pericardialTapLocal.sqf b/addons/surgery/functions/fnc_pericardialTapLocal.sqf index cd8345c4a..02e76c618 100644 --- a/addons/surgery/functions/fnc_pericardialTapLocal.sqf +++ b/addons/surgery/functions/fnc_pericardialTapLocal.sqf @@ -23,4 +23,4 @@ _ht deleteAt (_ht find "tamponade"); _patient setVariable [QEGVAR(circulation,ht), _ht, true]; _patient setVariable [QEGVAR(circulation,effusion), 0, true]; -_patient setVariable [QGVAR(imaging), false, true]; +_patient setVariable [QGVAR(imaging), false, true]; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf index 556ce8232..5ba284d6c 100644 --- a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf +++ b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf @@ -55,7 +55,7 @@ if !(((_patient getVariable [QEGVAR(pharma,IV), [0,0,0,0,0,0]]) select _partInde TRACE_1("delayed medication call after tourniquet removal",_x); [QEGVAR(pharma,medicationLocal), [_patient, _bodyPart, _medication], _patient] call CBA_fnc_targetEvent; _occludedMedications set [_forEachIndex, []]; - _arrayModified = true; + _arrayModified = true; }; } forEach _occludedMedications; @@ -64,4 +64,4 @@ if !(((_patient getVariable [QEGVAR(pharma,IV), [0,0,0,0,0,0]]) select _partInde _occludedMedications = _occludedMedications - [[]]; _patient setVariable [QACEGVAR(medical,occludedMedications), _occludedMedications, true]; }; -}; +}; \ No newline at end of file diff --git a/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf index cca2eb406..fa1c5fb2d 100644 --- a/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf +++ b/addons/surgery/functions/fnc_ultraAssessmentLocal.sqf @@ -65,4 +65,3 @@ if (_patient getVariable [QEGVAR(circulation,effusion), 0] > 0) then { [_patient, "quick_view", LSTRING(Ultra_Airway), [_airway]] call ACEFUNC(medical_treatment,addToLog); [_patient, "quick_view", LSTRING(Ultra_Cardiac), [_cardiac]] call ACEFUNC(medical_treatment,addToLog); [_patient, "quick_view", LSTRING(Ultra_Thorasic), [_thorasic]] call ACEFUNC(medical_treatment,addToLog); - diff --git a/addons/surgery/stringtable.xml b/addons/surgery/stringtable.xml index d6df900c4..92e136879 100644 --- a/addons/surgery/stringtable.xml +++ b/addons/surgery/stringtable.xml @@ -650,6 +650,9 @@ Removing + + REBOA + Pericardial Tap From ce16a2d007c4665c92509beeb71d2c4ca7bc42c2 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 2 Apr 2024 10:01:09 -0700 Subject: [PATCH 27/39] Spaces not tabs --- addons/surgery/functions/fnc_reboaRemoveLocal.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf index 5ba284d6c..c64f34b7c 100644 --- a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf +++ b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf @@ -55,7 +55,7 @@ if !(((_patient getVariable [QEGVAR(pharma,IV), [0,0,0,0,0,0]]) select _partInde TRACE_1("delayed medication call after tourniquet removal",_x); [QEGVAR(pharma,medicationLocal), [_patient, _bodyPart, _medication], _patient] call CBA_fnc_targetEvent; _occludedMedications set [_forEachIndex, []]; - _arrayModified = true; + _arrayModified = true; }; } forEach _occludedMedications; From abd42f5b59fbe4226e719a7b06ae5f48b6983dce Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 2 Apr 2024 10:06:52 -0700 Subject: [PATCH 28/39] Update stringtable.xml --- addons/surgery/stringtable.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/surgery/stringtable.xml b/addons/surgery/stringtable.xml index 92e136879..d6df900c4 100644 --- a/addons/surgery/stringtable.xml +++ b/addons/surgery/stringtable.xml @@ -650,9 +650,6 @@ Removing - - REBOA - Pericardial Tap From 7051b4731361135930f0d73234e9eb6f61a81aa3 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 2 Apr 2024 20:25:51 -0700 Subject: [PATCH 29/39] Final Fixes --- .../functions/fnc_fullHealLocal.sqf | 1 - addons/gui/CfgFunctions.hpp | 6 + addons/gui/XEH_PREP.hpp | 2 + addons/gui/XEH_preStart.sqf | 2 +- addons/gui/config.cpp | 4 +- addons/gui/functions/fnc_updateBodyImage.sqf | 110 +++++++ addons/gui/functions/fnc_updateInjuryList.sqf | 269 ++++++++++++++++++ addons/gui/stringtable.xml | 18 ++ addons/main/script_macros.hpp | 42 +++ addons/pharma/functions/fnc_alphaAction.sqf | 3 +- addons/pharma/functions/fnc_handleRespawn.sqf | 1 - addons/pharma/functions/fnc_init.sqf | 1 - .../surgery/functions/fnc_fullHealLocal.sqf | 11 +- .../surgery/functions/fnc_handleRespawn.sqf | 19 ++ addons/surgery/functions/fnc_init.sqf | 19 ++ .../functions/fnc_reboaRemoveLocal.sqf | 2 +- addons/surgery/stringtable.xml | 6 +- 17 files changed, 500 insertions(+), 16 deletions(-) create mode 100644 addons/gui/functions/fnc_updateBodyImage.sqf create mode 100644 addons/gui/functions/fnc_updateInjuryList.sqf diff --git a/addons/circulation/functions/fnc_fullHealLocal.sqf b/addons/circulation/functions/fnc_fullHealLocal.sqf index 577a2de13..d2c1a7e28 100644 --- a/addons/circulation/functions/fnc_fullHealLocal.sqf +++ b/addons/circulation/functions/fnc_fullHealLocal.sqf @@ -27,7 +27,6 @@ _patient setVariable [VAR_BLOODPRESSURE_CHANGE, nil, true]; _patient setVariable [QGVAR(isPerformingCPR), false, true]; _patient setVariable [QGVAR(OxygenationPeriod), 0, true]; -// Currently four HT conditions: Tamponade, Tension, Hypoxia, and Hydrogen (Ions) _patient setVariable [QGVAR(ht), [], true]; _patient setVariable [QGVAR(effusion), 0, true]; diff --git a/addons/gui/CfgFunctions.hpp b/addons/gui/CfgFunctions.hpp index 797fd1d6c..a9e6c4cd1 100644 --- a/addons/gui/CfgFunctions.hpp +++ b/addons/gui/CfgFunctions.hpp @@ -14,6 +14,12 @@ class CfgFunctions { class updateCategories { file = QPATHTOF(functions\fnc_updateCategories.sqf); }; + class updateInjuryList { + file = QPATHTOF(functions\fnc_updateInjuryList.sqf); + }; + class updateBodyImage { + file = QPATHTOF(functions\fnc_updateBodyImage.sqf); + }; }; }; }; diff --git a/addons/gui/XEH_PREP.hpp b/addons/gui/XEH_PREP.hpp index da23730d1..4c42ae836 100644 --- a/addons/gui/XEH_PREP.hpp +++ b/addons/gui/XEH_PREP.hpp @@ -2,3 +2,5 @@ PREP(logListAppended); PREP(onMenuClose); PREP(onMenuOpen); PREP(updateCategories); +PREP(updateInjuryList); +PREP(updateBodyImage); \ No newline at end of file diff --git a/addons/gui/XEH_preStart.sqf b/addons/gui/XEH_preStart.sqf index 022888575..38801385a 100644 --- a/addons/gui/XEH_preStart.sqf +++ b/addons/gui/XEH_preStart.sqf @@ -1,3 +1,3 @@ #include "script_component.hpp" -#include "XEH_PREP.hpp" +#include "XEH_PREP.hpp" \ No newline at end of file diff --git a/addons/gui/config.cpp b/addons/gui/config.cpp index c6888f363..e073902f6 100644 --- a/addons/gui/config.cpp +++ b/addons/gui/config.cpp @@ -23,8 +23,8 @@ class CfgPatches { "ace_dogtags", "cba_settings" }; - author = "2LT.Mazinski"; - authors[] = {"2LT.Mazinski"}; + author = "Mazinski"; + authors[] = {"Mazinski"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; diff --git a/addons/gui/functions/fnc_updateBodyImage.sqf b/addons/gui/functions/fnc_updateBodyImage.sqf new file mode 100644 index 000000000..b21a3332c --- /dev/null +++ b/addons/gui/functions/fnc_updateBodyImage.sqf @@ -0,0 +1,110 @@ +#include "..\script_component.hpp" +/* + * Author: Glowbal, kymckay, mharis001 + * Updates the body image for given target. + * + * Arguments: + * 0: Body image controls group + * 1: Target + * 2: Body part + * + * Return Value: + * None + * + * Example: + * [CONTROL, _target, 0] call ace_medical_gui_fnc_updateBodyImage + * + * Public: No + */ + +params ["_ctrlGroup", "_target", "_selectionN"]; + +// Get tourniquets, damage, and blood loss for target +private _tourniquets = GET_TOURNIQUETS(_target); +private _fractures = GET_FRACTURES(_target); +private _bodyPartDamage = _target getVariable [QACEGVAR(medical,bodyPartDamage), [0, 0, 0, 0, 0, 0]]; +private _damageThreshold = GET_DAMAGE_THRESHOLD(_target); +private _bodyPartBloodLoss = [0, 0, 0, 0, 0, 0]; +private _surgicalBlock = GET_SURGICAL_TOURNIQUETS(_target); + +{ + private _partIndex = ALL_BODY_PARTS find _x; + { + _x params ["", "_amountOf", "_bleeding"]; + _bodyPartBloodLoss set [_partIndex, (_bodyPartBloodLoss select _partIndex) + (_bleeding * _amountOf)]; + } forEach _y; +} forEach GET_OPEN_WOUNDS(_target); + +{ + _x params ["_bodyPartIDC", "_selectedIDC", ["_tourniquetIDC", -1], ["_fractureIDC", -1]]; + + private _selected = _forEachIndex == _selectionN; + private _ctrlSelected = _ctrlGroup controlsGroupCtrl _selectedIDC; + _ctrlSelected ctrlSetTextColor ACEGVAR(medical_gui,bodypartOutlineColor); + _ctrlSelected ctrlShow _selected; + + // Show or hide the tourniquet icon + if (_tourniquetIDC != -1) then { + private _hasTourniquet = (_tourniquets select _forEachIndex > 0) && (_surgicalBlock select _forEachIndex == 0); + private _ctrlTourniquet = _ctrlGroup controlsGroupCtrl _tourniquetIDC; + _ctrlTourniquet ctrlShow _hasTourniquet; + }; + + // Show or hide fractrue/bones + if (_fractureIDC != -1) then { + private _ctrlBone = _ctrlGroup controlsGroupCtrl _fractureIDC; + switch (_fractures select _forEachIndex) do { + case 0: { + _ctrlBone ctrlShow false; + }; + case 1: { + _ctrlBone ctrlShow true; + _ctrlBone ctrlSetTextColor [1, 0, 0, 1]; + }; + case -1: { + if (ACEGVAR(medical,fractures) in [2, 3]) then { + _ctrlBone ctrlShow true; + _ctrlBone ctrlSetTextColor [0, 0, 1, 1]; + } else { + _ctrlBone ctrlShow false; + }; + }; + }; + }; + + // Update body part color based on blood loss and damage + private _bloodLoss = _bodyPartBloodLoss select _forEachIndex; + private _bodyPartColor = if (_bloodLoss > 0) then { + [_bloodLoss] call ACEFUNC(medical_gui,bloodLossToRGBA); + } else { + private _damage = _bodyPartDamage select _forEachIndex; + switch (true) do { // torso damage threshold doesn't need scaling + case (_forEachIndex > 3): { // legs: index 4 & 5 + _damageThreshold = LIMPING_DAMAGE_THRESHOLD * 4; + }; + case (_forEachIndex > 1): { // arms: index 2 & 3 + _damageThreshold = FRACTURE_DAMAGE_THRESHOLD * 4; + }; + case (_forEachIndex == 0): { // head: index 0 + _damageThreshold = _damageThreshold * 1.25; + }; + default { // torso: index 1 + _damageThreshold = _damageThreshold * 1.5 + }; + }; + _damage = (_damage / (0.01 max _damageThreshold)) min 1; + [_damage] call ACEFUNC(medical_gui,damageToRGBA); + }; + + private _ctrlBodyPart = _ctrlGroup controlsGroupCtrl _bodyPartIDC; + _ctrlBodyPart ctrlSetTextColor _bodyPartColor; +} forEach [ + [IDC_BODY_HEAD, IDC_BODY_HEAD_S], + [IDC_BODY_TORSO, IDC_BODY_TORSO_S], + [IDC_BODY_ARMLEFT, IDC_BODY_ARMLEFT_S, IDC_BODY_ARMLEFT_T, IDC_BODY_ARMLEFT_B], + [IDC_BODY_ARMRIGHT, IDC_BODY_ARMRIGHT_S, IDC_BODY_ARMRIGHT_T, IDC_BODY_ARMRIGHT_B], + [IDC_BODY_LEGLEFT, IDC_BODY_LEGLEFT_S, IDC_BODY_LEGLEFT_T, IDC_BODY_LEGLEFT_B], + [IDC_BODY_LEGRIGHT, IDC_BODY_LEGRIGHT_S, IDC_BODY_LEGRIGHT_T, IDC_BODY_LEGRIGHT_B] +]; + +[QACEGVAR(medical_gui,updateBodyImage), [_ctrlGroup, _target, _selectionN]] call CBA_fnc_localEvent; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateInjuryList.sqf b/addons/gui/functions/fnc_updateInjuryList.sqf new file mode 100644 index 000000000..0e716034e --- /dev/null +++ b/addons/gui/functions/fnc_updateInjuryList.sqf @@ -0,0 +1,269 @@ +#include "..\script_component.hpp" +/* + * Author: mharis001 + * Updates injury list for given body part for the target. + * + * Arguments: + * 0: Injury list + * 1: Target + * 2: Body part + * + * Return Value: + * None + * + * Example: + * [_ctrlInjuries, _target, 0] call ace_medical_gui_fnc_updateInjuryList + * + * Public: No + */ + +params ["_ctrl", "_target", "_selectionN"]; + +private _entries = []; +private _nonissueColor = [1, 1, 1, 0.33]; + +// Indicate if unit is bleeding at all +if (IS_BLEEDING(_target)) then { + switch (ACEGVAR(medical_gui,showBleeding)) do { + case 1: { + // Just show whether the unit is bleeding at all + _entries pushBack [localize ACELSTRING(medical_gui,STATUS_BLEEDING), [1, 0, 0, 1]]; + }; + case 2: { + // Give a qualitative description of the rate of bleeding + private _cardiacOutput = [_target] call ACEFUNC(medical_status,getCardiacOutput); + private _bleedRate = GET_BLOOD_LOSS(_target); + private _bleedRateKO = BLOOD_LOSS_KNOCK_OUT_THRESHOLD_DEFAULT * (_cardiacOutput max 0.05); + // Use nonzero minimum cardiac output to prevent all bleeding showing as massive during cardiac arrest + switch (true) do { + case (_bleedRate < _bleedRateKO * BLEED_RATE_SLOW): { + _entries pushBack [localize LSTRING(Bleed_Rate1), [1, 1, 0, 1]]; + }; + case (_bleedRate < _bleedRateKO * BLEED_RATE_MODERATE): { + _entries pushBack [localize LSTRING(Bleed_Rate2), [1, 0.67, 0, 1]]; + }; + case (_bleedRate < _bleedRateKO * BLEED_RATE_SEVERE): { + _entries pushBack [localize LSTRING(Bleed_Rate3), [1, 0.33, 0, 1]]; + }; + default { + _entries pushBack [localize LSTRING(Bleed_Rate4), [1, 0, 0, 1]]; + }; + }; + }; + }; +} else { + _entries pushBack [localize LSTRING(Status_Nobleeding), _nonissueColor]; +}; + +if (ACEGVAR(medical_gui,showBloodlossEntry)) then { + // Give a qualitative description of the blood volume lost + switch (GET_HEMORRHAGE(_target)) do { + case 0: { + if (ACEGVAR(medical_gui,showInactiveStatuses)) then {_entries pushBack [localize LSTRING(Lost_Blood0), _nonissueColor];}; + }; + case 1: { + _entries pushBack [localize ACELSTRING(medical_gui,Lost_Blood1), [1, 1, 0, 1]]; + }; + case 2: { + _entries pushBack [localize ACELSTRING(medical_gui,Lost_Blood2), [1, 0.67, 0, 1]]; + }; + case 3: { + _entries pushBack [localize ACELSTRING(medical_gui,Lost_Blood3), [1, 0.33, 0, 1]]; + }; + case 4: { + _entries pushBack [localize ACELSTRING(medical_gui,Lost_Blood4), [1, 0, 0, 1]]; + }; + }; +}; + +// Show receiving IV volume remaining +private _totalIvVolume = 0; +private _saline = 0; +private _blood = 0; +private _plasma = 0; +{ + _x params ["_volumeRemaining", "_type"]; + switch (_type) do { + case "Saline": { + _saline = _saline + _volumeRemaining; + }; + case "Blood": { + _blood = _blood + _volumeRemaining; + }; + case "Plasma": { + _plasma = _plasma + _volumeRemaining; + }; + }; + _totalIvVolume = _totalIvVolume + _volumeRemaining; +} forEach (_target getVariable [QACEGVAR(medical,ivBags), []]); + +if (_totalIvVolume > 0) then { + if (_saline > 0) then { + _entries pushBack [format [localize ACELSTRING(medical_treatment,receivingSalineIvVolume), floor _saline], [1, 1, 1, 1]]; + }; + if (_blood > 0) then { + _entries pushBack [format [localize ACELSTRING(medical_treatment,receivingBloodIvVolume), floor _blood], [1, 1, 1, 1]]; + }; + if (_plasma > 0) then { + _entries pushBack [format [localize ACELSTRING(medical_treatment,receivingPlasmaIvVolume), floor _plasma], [1, 1, 1, 1]]; + }; +} else { + _entries pushBack [localize ACELSTRING(medical_treatment,Status_NoIv), _nonissueColor]; +}; + +// Indicate the amount of pain the unit is in +if (_target call ACEFUNC(common,isAwake)) then { + private _pain = GET_PAIN_PERCEIVED(_target); + if (_pain > 0) then { + private _painText = switch (true) do { + case (_pain > PAIN_UNCONSCIOUS): { + ACELSTRING(medical_treatment,Status_SeverePain); + }; + case (_pain > (PAIN_UNCONSCIOUS / 5)): { + ACELSTRING(medical_treatment,Status_Pain); + }; + default { + ACELSTRING(medical_treatment,Status_MildPain); + }; + }; + _entries pushBack [localize _painText, [1, 1, 1, 1]]; + } else { + if (ACEGVAR(medical_gui,showInactiveStatuses)) then {_entries pushBack [localize ACELSTRING(medical_treatment,Status_NoPain), _nonissueColor];}; + }; +}; + +// Skip the rest as they're body part specific +if (_selectionN == -1) exitWith { + // Add all entries to injury list + lbClear _ctrl; + + { + _x params ["_text", "_color"]; + + _ctrl lbSetColor [_ctrl lbAdd _text, _color]; + } forEach _entries; + + _ctrl lbSetCurSel -1; +}; + +[QACEGVAR(medical_gui,updateInjuryListGeneral), [_ctrl, _target, _selectionN, _entries]] call CBA_fnc_localEvent; + +// Add selected body part name +private _bodyPartName = [ + ACELSTRING(medical_gui,Head), + ACELSTRING(medical_gui,Torso), + ACELSTRING(medical_gui,LeftArm), + ACELSTRING(medical_gui,RightArm), + ACELSTRING(medical_gui,LeftLeg), + ACELSTRING(medical_gui,RightLeg) +] select _selectionN; + +_entries pushBack [localize _bodyPartName, [1, 1, 1, 1]]; + +// Damage taken tooltip +if (ACEGVAR(medical_gui,showDamageEntry)) then { + private _bodyPartDamage = (_target getVariable [QACEGVAR(medical,bodyPartDamage), [0, 0, 0, 0, 0, 0]]) select _selectionN; + if (_bodyPartDamage > 0) then { + private _damageThreshold = GET_DAMAGE_THRESHOLD(_target); + switch (true) do { + case (_selectionN > 3): { // legs: index 4 & 5 + _damageThreshold = LIMPING_DAMAGE_THRESHOLD_DEFAULT * 4; + }; + case (_selectionN > 1): { // arms: index 2 & 3 + _damageThreshold = FRACTURE_DAMAGE_THRESHOLD_DEFAULT * 4; + }; + case (_selectionN == 0): { // head: index 0 + _damageThreshold = _damageThreshold * 1.25; + }; + default { // torso: index 1 + _damageThreshold = _damageThreshold * 1.5; + }; + }; + _bodyPartDamage = (_bodyPartDamage / _damageThreshold) min 1; + switch (true) do { + case (_bodyPartDamage isEqualTo 1): { + _entries pushBack [localize ACELSTRING(medical_gui,traumaSustained4), [_bodyPartDamage] call ACEFUNC(medical_gui,damageToRGBA)]; + }; + case (_bodyPartDamage >= 0.75): { + _entries pushBack [localize ACELSTRING(medical_gui,traumaSustained3), [_bodyPartDamage] call ACEFUNC(medical_gui,damageToRGBA)]; + }; + case (_bodyPartDamage >= 0.5): { + _entries pushBack [localize ACELSTRING(medical_gui,traumaSustained2), [_bodyPartDamage] call ACEFUNC(medical_gui,damageToRGBA)]; + }; + case (_bodyPartDamage >= 0.25): { + _entries pushBack [localize ACELSTRING(medical_gui,traumaSustained1), [_bodyPartDamage] call ACEFUNC(medical_gui,damageToRGBA)]; + }; + }; + }; +}; + +// Indicate if a tourniquet is applied +if (HAS_TOURNIQUET_ACTUAL(_target,_selectionN)) then { + _entries pushBack [localize ACELSTRING(medical_gui,Status_Tourniquet_Applied), [0.77, 0.51, 0.08, 1]]; +}; + +// Indicate current body part fracture status +switch (GET_FRACTURES(_target) select _selectionN) do { + case 1: { + _entries pushBack [localize ACELSTRING(medical_gui,Status_Fractured), [1, 0, 0, 1]]; + }; + case -1: { + if (ACEGVAR(medical,fractures) in [2, 3]) then { // Ignore if the splint has no effect + _entries pushBack [localize ACELSTRING(medical_gui,Status_SplintApplied), [0.2, 0.2, 1, 1]]; + }; + }; +}; + +[QACEGVAR(medical_gui,updateInjuryListPart), [_ctrl, _target, _selectionN, _entries, _bodyPartName]] call CBA_fnc_localEvent; + +// Add entries for open, bandaged, and stitched wounds +private _woundEntries = []; + +private _fnc_processWounds = { + params ["_wounds", "_format", "_color"]; + + { + _x params ["_woundClassID", "_amountOf"]; + + if (_amountOf > 0) then { + private _classIndex = _woundClassID / 10; + private _category = _woundClassID % 10; + + private _className = ACEGVAR(medical_damage,woundClassNames) select _classIndex; + private _suffix = ["Minor", "Medium", "Large"] select _category; + private _woundName = localize format [ACELSTRING(medical_damage,%1_%2), _className, _suffix]; + + private _woundDescription = if (_amountOf >= 1) then { + format ["%1x %2", ceil _amountOf, _woundName] + } else { + format [localize ACELSTRING(medical_gui,PartialX), _woundName] + }; + + _woundEntries pushBack [format [_format, _woundDescription], _color]; + }; + } forEach (_wounds getOrDefault [ALL_BODY_PARTS select _selectionN, []]); +}; + +[GET_OPEN_WOUNDS(_target), "%1", [1, 1, 1, 1]] call _fnc_processWounds; +[GET_BANDAGED_WOUNDS(_target), "[B] %1", [0.88, 0.7, 0.65, 1]] call _fnc_processWounds; +[GET_STITCHED_WOUNDS(_target), "[S] %1", [0.7, 0.7, 0.7, 1]] call _fnc_processWounds; + +[QACEGVAR(medical_gui,updateInjuryListWounds), [_ctrl, _target, _selectionN, _woundEntries, _bodyPartName]] call CBA_fnc_localEvent; + +// Handle no wound entries +if (_woundEntries isEqualTo []) then { + _entries pushBack [localize ACELSTRING(medical_treatment,NoInjuriesBodypart), _nonissueColor]; +} else { + _entries append _woundEntries; +}; + +// Add all entries to injury list +lbClear _ctrl; + +{ + _x params ["_text", "_color"]; + + _ctrl lbSetColor [_ctrl lbAdd _text, _color]; +} forEach _entries; + +_ctrl lbSetCurSel -1; \ No newline at end of file diff --git a/addons/gui/stringtable.xml b/addons/gui/stringtable.xml index 3a0e8a762..2ff28d20a 100644 --- a/addons/gui/stringtable.xml +++ b/addons/gui/stringtable.xml @@ -83,5 +83,23 @@ Merkitse potilaan sivut Маркировка сторон пациента + + Bleeding + + + Slow Bleeding + + + Moderate Bleeding + + + Severe Bleeding + + + No Blood Lost + + + Not Bleeding + diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 2647dfb2e..3335bd6ef 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -118,6 +118,36 @@ #define FATAL_INJURIES_CRDC_ARRST 1 #define FATAL_INJURIES_NEVER 2 +#undef BLOOD_LOSS_KNOCK_OUT_THRESHOLD +#undef BLOOD_LOSS_KNOCK_OUT_THRESHOLD_DEFAULT +#define BLOOD_LOSS_KNOCK_OUT_THRESHOLD ACEGVAR(medical,const_bloodLossKnockOutThreshold) +#define BLOOD_LOSS_KNOCK_OUT_THRESHOLD_DEFAULT 0.5 + +#undef BLEED_RATE_SLOW +#undef BLEED_RATE_MODERATE +#undef BLEED_RATE_SEVERE +// Note that half of knock out blood loss is considered unstable, and knock out blood loss is considered critical +#define BLEED_RATE_SLOW 0.1 // Slow - One fifth of unstable blood loss +#define BLEED_RATE_MODERATE 0.5 // Moderate - Vitals considered stable +#define BLEED_RATE_SEVERE 1.0 // Severe - Vitals considered unstable + +#undef LIMPING_DAMAGE_THRESHOLD +#undef LIMPING_DAMAGE_THRESHOLD_DEFAULT +// Minimum leg damage required for limping +#define LIMPING_DAMAGE_THRESHOLD ACEGVAR(medical,const_limpingDamageThreshold) +#define LIMPING_DAMAGE_THRESHOLD_DEFAULT 0.30 + +#undef FRACTURE_DAMAGE_THRESHOLD +#undef FRACTURE_DAMAGE_THRESHOLD_DEFAULT +// Minimum limb damage required for fracture +#define FRACTURE_DAMAGE_THRESHOLD ACEGVAR(medical,const_fractureDamageThreshold) +#define FRACTURE_DAMAGE_THRESHOLD_DEFAULT 0.50 + +#undef CARDIAC_OUTPUT_MIN +#undef CARDIAC_OUTPUT_MIN_DEFAULT +// Minimum cardiac output +#define CARDIAC_OUTPUT_MIN ACEGVAR(medical,const_minCardiacOutput) +#define CARDIAC_OUTPUT_MIN_DEFAULT 0.05 //We have to undef them before redefining #undef VAR_BLOOD_PRESS @@ -167,7 +197,19 @@ // Retrieval macros for common unit values // Defined for easy consistency and speed #undef GET_SM_STATE +#undef GET_HEMORRHAGE +#undef GET_WOUND_BLEEDING +#undef GET_FRACTURES +#undef GET_OPEN_WOUNDS +#undef IS_BLEEDING +#undef GET_BLOOD_LOSS #define GET_SM_STATE(_unit) ([_unit, ACEGVAR(medical,STATE_MACHINE)] call CBA_statemachine_fnc_getCurrentState) +#define GET_WOUND_BLEEDING(unit) (unit getVariable [VAR_WOUND_BLEEDING, 0]) +#define GET_HEMORRHAGE(unit) (unit getVariable [VAR_HEMORRHAGE, 0]) +#define GET_FRACTURES(unit) (unit getVariable [VAR_FRACTURES, DEFAULT_FRACTURE_VALUES]) +#define GET_OPEN_WOUNDS(unit) (unit getVariable [VAR_OPEN_WOUNDS, createHashMap]) +#define IS_BLEEDING(unit) (GET_WOUND_BLEEDING(unit) > 0) +#define GET_BLOOD_LOSS(unit) ([unit] call ACEFUNC(medical_status,getBloodLoss)) #define GET_OPIOID_FACTOR(unit) (unit getVariable [QEGVAR(pharma,opioidFactor), 1]) diff --git a/addons/pharma/functions/fnc_alphaAction.sqf b/addons/pharma/functions/fnc_alphaAction.sqf index ad50d221e..71d2bac97 100644 --- a/addons/pharma/functions/fnc_alphaAction.sqf +++ b/addons/pharma/functions/fnc_alphaAction.sqf @@ -21,5 +21,4 @@ _alphaAction = _alphaAction + _value; _alphaAction = (_alphaAction min 2) max 0.5; -ACEGVAR(medical,const_minCardiacOutput) = _alphaAction * EGVAR(circulation,cardiacArrestBleedRate); -_patient setVariable [QGVAR(alphaAction), _alphaAction, true]; +_patient setVariable [QGVAR(alphaAction), _alphaAction, true]; \ No newline at end of file diff --git a/addons/pharma/functions/fnc_handleRespawn.sqf b/addons/pharma/functions/fnc_handleRespawn.sqf index 3c1214381..f97b46b2c 100644 --- a/addons/pharma/functions/fnc_handleRespawn.sqf +++ b/addons/pharma/functions/fnc_handleRespawn.sqf @@ -42,7 +42,6 @@ params ["_unit","_dead"]; } forEach (_medicationArray); if !(_action) then { - ACEGVAR(medical,const_minCardiacOutput) = _alphaAction * EGVAR(circulation,cardiacArrestBleedRate); _unit setVariable [QGVAR(alphaAction), 1]; }; }, 180, [_unit]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/pharma/functions/fnc_init.sqf b/addons/pharma/functions/fnc_init.sqf index 3e7160a47..81799e5f6 100644 --- a/addons/pharma/functions/fnc_init.sqf +++ b/addons/pharma/functions/fnc_init.sqf @@ -52,7 +52,6 @@ if (!local _unit) exitWith {}; } forEach (_medicationArray); if !(_alpha) then { - ACEGVAR(medical,const_minCardiacOutput) = (_unit getVariable [QGVAR(alphaAction), 1]) * EGVAR(circulation,cardiacArrestBleedRate); _unit setVariable [QGVAR(alphaAction), 1]; }; if !(_opioid) then { diff --git a/addons/surgery/functions/fnc_fullHealLocal.sqf b/addons/surgery/functions/fnc_fullHealLocal.sqf index 5a859ed63..42aef0e7d 100644 --- a/addons/surgery/functions/fnc_fullHealLocal.sqf +++ b/addons/surgery/functions/fnc_fullHealLocal.sqf @@ -29,7 +29,10 @@ TRACE_1("fullHealLocal",_patient); * 3.5 = Clamped Fracture */ -_patient setVariable [QGVAR(fractures), [0,0,0,0,0,0], true]; -_patient setVariable [QGVAR(lidocaine), false, true]; -_patient setVariable [QGVAR(etomidate), false, true]; -_patient setVariable [QGVAR(sedated), false, true]; +_unit setVariable [QGVAR(fractures), [0,0,0,0,0,0], true]; +_unit setVariable [QGVAR(lidocaine), false, true]; +_unit setVariable [QGVAR(etomidate), false, true]; +_unit setVariable [QGVAR(sedated), false, true]; +_unit setVariable [QGVAR(imaging), false, true]; +_unit setVariable [QGVAR(reboa), false, true]; +_unit setVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0], true]; diff --git a/addons/surgery/functions/fnc_handleRespawn.sqf b/addons/surgery/functions/fnc_handleRespawn.sqf index 52ea25fca..41c6205a9 100644 --- a/addons/surgery/functions/fnc_handleRespawn.sqf +++ b/addons/surgery/functions/fnc_handleRespawn.sqf @@ -22,3 +22,22 @@ TRACE_2("handleRespawn",_unit,_dead); if (!local _unit) exitWith {}; [_unit] call FUNC(fullHealLocal); + +_unit setVariable [QGVAR(fractures), [0,0,0,0,0,0], true]; +_unit setVariable [QGVAR(lidocaine), false, true]; +_unit setVariable [QGVAR(etomidate), false, true]; +_unit setVariable [QGVAR(sedated), false, true]; +_unit setVariable [QGVAR(imaging), false, true]; +_unit setVariable [QGVAR(reboa), false, true]; +_unit setVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0], true]; + +/* +* 0 = Unaffected +* 1 = Stable Fracture +* 2 = Compound Fracture +* 3 = Comminuted Fracture +* 2.1/3.1 = Open Fracture +* 2.2/3.2 = Prepared Fracture +* 2.5 = Irrigated Fracture +* 3.5 = Clamped Fracture +*/ \ No newline at end of file diff --git a/addons/surgery/functions/fnc_init.sqf b/addons/surgery/functions/fnc_init.sqf index 8feca15fb..7c41c286e 100644 --- a/addons/surgery/functions/fnc_init.sqf +++ b/addons/surgery/functions/fnc_init.sqf @@ -20,3 +20,22 @@ params ["_unit", ["_isRespawn", true]]; if (!local _unit) exitWith {}; [_unit] call FUNC(fullHealLocal); + +_unit setVariable [QGVAR(fractures), [0,0,0,0,0,0], true]; +_unit setVariable [QGVAR(lidocaine), false, true]; +_unit setVariable [QGVAR(etomidate), false, true]; +_unit setVariable [QGVAR(sedated), false, true]; +_unit setVariable [QGVAR(imaging), false, true]; +_unit setVariable [QGVAR(reboa), false, true]; +_unit setVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0], true]; + +/* +* 0 = Unaffected +* 1 = Stable Fracture +* 2 = Compound Fracture +* 3 = Comminuted Fracture +* 2.1/3.1 = Open Fracture +* 2.2/3.2 = Prepared Fracture +* 2.5 = Irrigated Fracture +* 3.5 = Clamped Fracture +*/ \ No newline at end of file diff --git a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf index c64f34b7c..5ba284d6c 100644 --- a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf +++ b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf @@ -55,7 +55,7 @@ if !(((_patient getVariable [QEGVAR(pharma,IV), [0,0,0,0,0,0]]) select _partInde TRACE_1("delayed medication call after tourniquet removal",_x); [QEGVAR(pharma,medicationLocal), [_patient, _bodyPart, _medication], _patient] call CBA_fnc_targetEvent; _occludedMedications set [_forEachIndex, []]; - _arrayModified = true; + _arrayModified = true; }; } forEach _occludedMedications; diff --git a/addons/surgery/stringtable.xml b/addons/surgery/stringtable.xml index d6df900c4..c0210ca05 100644 --- a/addons/surgery/stringtable.xml +++ b/addons/surgery/stringtable.xml @@ -635,9 +635,6 @@ Placing - - REBOA - Advance REBOA Unit @@ -650,6 +647,9 @@ Removing + + REBOA + Pericardial Tap From 36b1dd806f95b2be9560fa8f4e2cf51d4cbf2837 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 2 Apr 2024 20:30:36 -0700 Subject: [PATCH 30/39] Update fnc_reboaRemoveLocal.sqf --- addons/surgery/functions/fnc_reboaRemoveLocal.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf index 5ba284d6c..c64f34b7c 100644 --- a/addons/surgery/functions/fnc_reboaRemoveLocal.sqf +++ b/addons/surgery/functions/fnc_reboaRemoveLocal.sqf @@ -55,7 +55,7 @@ if !(((_patient getVariable [QEGVAR(pharma,IV), [0,0,0,0,0,0]]) select _partInde TRACE_1("delayed medication call after tourniquet removal",_x); [QEGVAR(pharma,medicationLocal), [_patient, _bodyPart, _medication], _patient] call CBA_fnc_targetEvent; _occludedMedications set [_forEachIndex, []]; - _arrayModified = true; + _arrayModified = true; }; } forEach _occludedMedications; From 89df00c2ba56e66a3cd57e3433e1ce698e3c6e2f Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Wed, 3 Apr 2024 17:54:15 -0700 Subject: [PATCH 31/39] Update fnc_handlePulmoHit.sqf --- addons/breathing/functions/fnc_handlePulmoHit.sqf | 4 ---- 1 file changed, 4 deletions(-) diff --git a/addons/breathing/functions/fnc_handlePulmoHit.sqf b/addons/breathing/functions/fnc_handlePulmoHit.sqf index 8922489bd..ce6adcdc6 100644 --- a/addons/breathing/functions/fnc_handlePulmoHit.sqf +++ b/addons/breathing/functions/fnc_handlePulmoHit.sqf @@ -43,10 +43,6 @@ if (floor (random 100) <= (GVAR(pneumothoraxChance) + _chanceIncrease)) then { // Start deteriorating after delay [_unit, _chanceIncrease] call FUNC(handlePneumothoraxDeterioration); - - if (GVAR(PneumothoraxArrest)) then { - [_unit] call FUNC(inflictPhenumthoraxArrest); - }; } else { if (_unit getVariable [QGVAR(tensionpneumothorax), false]) then { // If already afflicted with tensionpneumothorax -> fully deteriorate pneumothorax _unit setVariable [QGVAR(pneumothorax), 4, true]; From ee1a81d888311e5dad04e2331fa380c83e6d5bb5 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 9 Apr 2024 13:48:56 -0700 Subject: [PATCH 32/39] Update fnc_fullHealLocal.sqf --- addons/surgery/functions/fnc_fullHealLocal.sqf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/surgery/functions/fnc_fullHealLocal.sqf b/addons/surgery/functions/fnc_fullHealLocal.sqf index 42aef0e7d..b983c0dfe 100644 --- a/addons/surgery/functions/fnc_fullHealLocal.sqf +++ b/addons/surgery/functions/fnc_fullHealLocal.sqf @@ -29,10 +29,10 @@ TRACE_1("fullHealLocal",_patient); * 3.5 = Clamped Fracture */ -_unit setVariable [QGVAR(fractures), [0,0,0,0,0,0], true]; -_unit setVariable [QGVAR(lidocaine), false, true]; -_unit setVariable [QGVAR(etomidate), false, true]; -_unit setVariable [QGVAR(sedated), false, true]; -_unit setVariable [QGVAR(imaging), false, true]; -_unit setVariable [QGVAR(reboa), false, true]; -_unit setVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0], true]; +_patient setVariable [QGVAR(fractures), [0,0,0,0,0,0], true]; +_patient setVariable [QGVAR(lidocaine), false, true]; +_patient setVariable [QGVAR(etomidate), false, true]; +_patient setVariable [QGVAR(sedated), false, true]; +_patient setVariable [QGVAR(imaging), false, true]; +_patient setVariable [QGVAR(reboa), false, true]; +_patient setVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0], true]; From b831ca9c86f209d12f31ef55bd64fef9481d4807 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 9 Apr 2024 13:51:29 -0700 Subject: [PATCH 33/39] Update fnc_init.sqf --- addons/surgery/functions/fnc_init.sqf | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/addons/surgery/functions/fnc_init.sqf b/addons/surgery/functions/fnc_init.sqf index 7c41c286e..8feca15fb 100644 --- a/addons/surgery/functions/fnc_init.sqf +++ b/addons/surgery/functions/fnc_init.sqf @@ -20,22 +20,3 @@ params ["_unit", ["_isRespawn", true]]; if (!local _unit) exitWith {}; [_unit] call FUNC(fullHealLocal); - -_unit setVariable [QGVAR(fractures), [0,0,0,0,0,0], true]; -_unit setVariable [QGVAR(lidocaine), false, true]; -_unit setVariable [QGVAR(etomidate), false, true]; -_unit setVariable [QGVAR(sedated), false, true]; -_unit setVariable [QGVAR(imaging), false, true]; -_unit setVariable [QGVAR(reboa), false, true]; -_unit setVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0], true]; - -/* -* 0 = Unaffected -* 1 = Stable Fracture -* 2 = Compound Fracture -* 3 = Comminuted Fracture -* 2.1/3.1 = Open Fracture -* 2.2/3.2 = Prepared Fracture -* 2.5 = Irrigated Fracture -* 3.5 = Clamped Fracture -*/ \ No newline at end of file From 0716744231e1cb3b25a6b6916a4a921a685a8e35 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 9 Apr 2024 13:59:28 -0700 Subject: [PATCH 34/39] Update stringtable.xml --- addons/airway/stringtable.xml | 49 +++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/addons/airway/stringtable.xml b/addons/airway/stringtable.xml index bf219cea8..270563918 100644 --- a/addons/airway/stringtable.xml +++ b/addons/airway/stringtable.xml @@ -21,7 +21,7 @@ Probability for an obstructed airway - Atemwegsverlegungswahrscheinlichkeit + Wahrscheinlichkeit blockierter Atemwege Szansa na zator dróg oddechowych Probabilidad de obstrucción de las vías aéreas 呼吸道阻塞機率 @@ -39,7 +39,7 @@ Probability for an obstructed airway in percentage that gets rolled every: \n- Falling unconscious \n- Removing KingLT / Guedel Tube - Atemwegsverlegungswahrscheinlichkeit in prozent die berechnet wird sofern: \n- Bewustlos werden \n- Das Entfernen von Larynxtubus / Guedeltubus \n- Abbrechen der Stabile Seitenlage + Wahrscheinlichkeit blockierter Atemwege in Prozent basierend auf:\n- Bewustlos werden\n- Das Entfernen von Larynxtubus / Guedeltubus\n- Abbrechen der Stabile Seitenlage Pravděpodobnost obstrukce dýchacích cest v procentech, která se vylosuje při každém: \n- Upadnutí do bezvědomí \n- Odstranění KingLT / GuedelTuby Probabilidad en porcentaje de que una vía aérea sea obstruida cada vez que: \n- Cae inconsciente \n- Se retira el tubo laríngeo / Cánula de Guedel 気道閉塞の確率(%) 次の時に計算されます: \n- 意識不明になった時 \n- King LT/ゲデルチューブが外れた時 @@ -53,7 +53,7 @@ Probability for airway occluding - Atemwegsverlegungswahrscheinlichkeit durch Erbrochenes + Wahrscheinlichkeit für die Verstopfung der Atemwege. Szansa na zablokowanie się dróg oddechowych Probabilidad de oclusión en las vías aéreas 呼吸道閉塞機率 @@ -71,7 +71,7 @@ Probability for an occlusion in percentage that gets rolled Setting:[Occlusion repeat timer] (default every 60s) - Atemwegsverlegungswahrscheinlichkeit durch Erbrochenes in prozent die durch Einstellung:[Zeit für die Wiederholung des Erbrechens] (standard alle 60s) berechnet wird. + Wahrscheinlichkeit verstopfter Atemwege durch Erbrochenes in Prozent.\nEinstellung:[Zeit für die Wiederholung des Erbrechens] (Standard: alle 60s) Pravděpodobnost zablokování dýchacích cest v procentech, která se vylosuje při Nastavení:[Časovač opakovaného ucpání dýchacích cest](defaultně každých 60s) Porcentaje de probabilidad de que suceda una oclusión Opciones:[tiempo de repeticion de oclusión] (por defecto cada 60s) 気道異物の確率(%) [異物再発までの時間]の設定時間毎に計算されます (デフォルトでは60秒毎) @@ -85,7 +85,7 @@ Occlusion repeat timer - Zeit für die Wiederholung des Erbrechens + Zeitfenster zum Wiedereintritt einer Okklusion 구토 반복 타이머 Czas powtarzania zablokowania 異物再発までの時間 @@ -105,7 +105,7 @@ Temps de récupération après une occlusion 구토 쿨다운 시간 Avkjølingsperiode for okklusjon - Abklingzeit für Erbrechen + Abklingzeit der Okklusion Período de espera da oclusão Tiempo para repetirse oclusion Okkluusiojäähdytyssykli @@ -202,7 +202,7 @@ Occluded - Verstopft + Okkludiert Zator Ocluída 閉塞 @@ -254,7 +254,7 @@ Not obstructed - Nicht obstruiert + Nicht blockiert Drożne No obstruída 無 阻塞 @@ -272,7 +272,7 @@ Not occluded - Nicht verstopft + Nicht okkludiert Brak zatoru No ocluída 無 閉塞 @@ -311,6 +311,7 @@ Les voies aériennes ne sont pas obstruées Ilmatiet eivät ole tukossa Дыхательные пути не закупорены языком. + Die Atemwege sind nicht blockiert. Airway is not occluded @@ -320,6 +321,7 @@ Les voies aériennes ne sont pas occludées Ilmatiet eivät ole likaisia Дыхательные пути не закупорены рвотой. + Die Atemwege sind nicht verstopft. Airway is obstructed, airway management needed @@ -328,6 +330,7 @@ Luftvei er blokkert, behov for luftveishåndtering Voies aériennes obstruées, geste médical nécessaire Hengitystiet ovat tukossa, hengityshoitoa tarvitaan + Atemwege sind blockiert, die Atemwege müssen freigelegt werden Дыхательные пути закупорены языком, требуется лечение дыхательных путей @@ -338,6 +341,7 @@ Voies aériennes occludées, aspiration médicale nécessaire Hengitystiet ovat likaiset, tarvitaan lääkärin imu Дыхательные пути закупорены рвотой, требуется медицинское отсасывание + Die Atemwege sind verstopft. Medizinische Absaugung benötigt. Airway is clear @@ -418,6 +422,7 @@ Pasientens hode er allerede hyperforlenget La tête du patient est déjà en hyperextension Potilaan pää on jo yli ojentunut + Kopf des Patienten ist bereits überstreckt Голова пациента уже наклонена. @@ -463,11 +468,13 @@ hyperforlengelse av hodet fullført Hyperextension réalisée avec succès Pään ylivenyttely onnistui + Kopf erfolgreich überstreckt Гиперэкстензия головы завершена %1 hyperextended %2s head %1 は %2 を頭部後屈させた + %1 überstreckte %2s Kopf Выполнен поворот головы, дыхательные пути еще не очистились @@ -490,7 +497,7 @@ Occlusion removed - Verstopfung entfernt + Okklusion entfernt Zablokowanie usunięte Oclusión eliminada 遮擋移除 @@ -524,7 +531,7 @@ Annulation de la rotation de la tête 고개 돌리기 취소됨 vewnding av hode ble avbrutt - Kopfdrehen abgebrochen + Kopfdrehung abgebrochen Rotação de cabeça cancelada Giro de cabeza cancelado pään kääntäminen peruttu @@ -538,6 +545,7 @@ Rotation de la tête débutée pään kääntyminen alkoi Начался поворот головы + Kopfdrehung begonnen Stop head turning @@ -574,6 +582,7 @@ 医療吸引が完了し、 異物が除去されました Lääketieteellinen imu suoritettu, okkluusio poistettu Медицинское отсасывание завершено, окклюзия устранена + Medizinische Absaugung abgeschlossen, Verstopfung beseitigt Checking Airway @@ -687,6 +696,7 @@ ACCUVAC アキュバック ACCUVAC + ACCUVAC ACCUVAC is a medical suction device for airway suction with battery drive for mobile use in emergency medicine. @@ -711,41 +721,48 @@ 気道吸引 Ilmateiden imu Всасывание из дыхательных путей + Absaugung der Atemwege Manual Suction Pump 手動式吸引器 Manuaalinen imupumppu Ручной всасывающий насос + Manuelle Absaugpumpe %1 did a medical suction using a %2 %1 は %2 で医療吸引を行った Ручной всасывающий насос - это медицинское всасывающее устройство для отсасывания воздуха вручную. Это альтернатива электрическим устройствам. + %1 hat eine medizinische Absaugung mittels %2 durchgeführt Manual Suction Pump is a medical suction device for airway suction manually. This alternative to electrical devices. 手動式吸引器は、手動ポンプで動作する気道吸引の為の医療用吸引装置です。これは電気駆動の装置を代替することが可能です。 Manuaalinen imupumppu on lääketieteellinen imulaite hengitysteiden manuaaliseen imemiseen. tämä on vaihtoehto sähkölaitteille Всасывание из дыхательных путей (ручное) + Die manuelle Absaugpumpe ist eine medizinisches Absauggerät für Atemwege.\nDie Alternative zu einem elektrisch betreibenen Gerät. Airway Suction (Manual) 気道吸引 (手動式) Ilmateiden imu (manuaalinen) Всасывание из дыхательных путей (ручное) + Manuelle Absaugung der Atemwege Reusable Manual Suction Pump 手動式吸引器の再利用 Uudelleenkäytettävä manuaalinen imupumppu Многоразовый ручной всасывающий насос + Wiederverwendbare manuelle Absaugpumpe Regain the Manual Suction Pump after use 手動式吸引器の使用後、再利用できるようにします。 Ota manuaalinen imupumppu takaisin käytön jälkeen Восстановить ручной всасывающий насос после использования + Erhalte die Manuelle Absaugpumpe nach Benutzung zurück. Vomit (Small) @@ -914,12 +931,14 @@ 手動吸引器の許可 Salli manuaalinen imupumppu Разрешить ручной всасывающий насос + Manuelle Absaugpumpe zulassen Training level required to use an Manual Suction Pump 手動吸引器の使用に必要な医療スキルのレベルを設定します。 Aika tarkistaa hengitystiet Уровень подготовки, необходимый для использования ручного всасывающего насоса + Benötigter medizinischer Grad, um die Manuelle Absaugpumpe zu nutzen Time to check Airway @@ -1069,6 +1088,7 @@ Time for Manual Suction Pump 手動吸引器の所要時間 aika manuaaliselle imupumpulle + Behandlungszeit für die manuelle Absaugpumpe Время работы ручного всасывающего насоса @@ -1076,6 +1096,7 @@ 手動吸引器を使用するのにどのくらい時間がかかるか設定します Kuinka kauan manuaalisen imupumpun käyttö kestää Сколько времени потребуется для использования ручного всасывающего насоса + Benötigte Zeit zur Verwendung der Manuellen Absaugpumpe Time for Larynxtubus @@ -1258,6 +1279,7 @@ %1 a annulé la position latérale de sécurité %1 peruutettu lepoasento %1 отменил перевод в боковое положение + %1 hat die stabile Seitenlage aufgehoben Time for recovery position @@ -1352,6 +1374,7 @@ Combien de temps sera nécessaire pour annuler la position latérale de sécurité Kuinka kauan lepoasennon manuaalinen peruuttaminen kestää Сколько времени потребуется, чтобы отменить боковое положение + Benötigte Zeit, um eine stabile Seitenlage rückganging zu machen. Recovery Position time to drain occlusion @@ -1361,6 +1384,7 @@ Temps pour retirer l'occlusion en position latérale de sécurité Palautuminen Asento-aika tyhjennystukoksen poistamiseksi Время бокового положения для дренирования окклюзии + Stabile Seitenlage: Benötigte Zeit zum Entgegenwirken einer Verstopfung Maximum time required for patient in recovery position to be drained of occlusion. @@ -1370,6 +1394,7 @@ Temps maximal pour qu'une occlusion disparaisse sur un patient en position latérale de sécurité Enimmäisaika, joka tarvitaan potilaan puhdistamiseen toipumisasennossa Максимальное время, необходимое пациенту в боковом положении для устранения окклюзии. + Beschreibt die maximal benötigte Dauer, bei welcher eine Stabile Seitenlage zur zur Freilegung der verstopften Atemwege führt. Recovery Position + Head Hyperextend Settings @@ -1379,12 +1404,14 @@ Paramètres de la position latérale de sécurité + hyperextension Palautusasento + pään ylivenytysasetukset Параметры бокового положения + гиперэкстензия + Einstellungen für Stabile Seitenlage und Kopfüberstreckung Suction devices Settings 気道吸引器設定 Imulaitteen asetukset Настройки всасывающих устройств + Einstellungen für Absaugpumpen Airway items Settings From ea66d2a508ed5d2c81ec5f31d91f949d9686e273 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 9 Apr 2024 14:32:51 -0700 Subject: [PATCH 35/39] Update ACE_Medical_Treatment.hpp --- addons/pharma/ACE_Medical_Treatment.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/pharma/ACE_Medical_Treatment.hpp b/addons/pharma/ACE_Medical_Treatment.hpp index e7c3e779c..c2ec4d0ea 100644 --- a/addons/pharma/ACE_Medical_Treatment.hpp +++ b/addons/pharma/ACE_Medical_Treatment.hpp @@ -13,6 +13,9 @@ class ACE_ADDON(Medical_Treatment) { timeTillMaxEffect = 30; // How many of this type of medication can be in the system before the patient overdoses? maxDose = 4; + // The number of doses over maxDose where there is a chance to overdose. + // Example with maxDose = 4 and maxDoseDeviation = 2: Dose 4: Safe | Dose 5 and 6: Possible overdose | Dose 7: Guaranteed overdose + maxDoseDeviation = 2; // Function to execute upon overdose. Arguments passed to call back are 0: unit , 1: medicationClassName onOverDose = ""; // The viscosity of a fluid is a measure of its resistance to gradual deformation by shear stress or tensile stress. For liquids, it corresponds to the informal concept of "thickness". This value will increase/decrease the viscoty of the blood with the percentage given. Where 100 = max. Using the minus will decrease viscosity From 8de7a4172cd9316a65634628d2f0afb851cc592e Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 9 Apr 2024 14:36:47 -0700 Subject: [PATCH 36/39] Update ACE_Medical_Treatment_Actions.hpp --- addons/pharma/ACE_Medical_Treatment_Actions.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/pharma/ACE_Medical_Treatment_Actions.hpp b/addons/pharma/ACE_Medical_Treatment_Actions.hpp index c49887f51..c1bb57b7f 100644 --- a/addons/pharma/ACE_Medical_Treatment_Actions.hpp +++ b/addons/pharma/ACE_Medical_Treatment_Actions.hpp @@ -242,7 +242,8 @@ class ACE_Medical_Treatment_Actions { displayName = CSTRING(Take_Atropine); allowedSelections[] = {"LeftArm", "RightArm", "LeftLeg", "RightLeg"}; allowSelfTreatment = 1; - treatmentTime = 5; + medicRequired = QGVAR(medLvl_Atropine); + treatmentTime = QGVAR(treatmentTime_Atropine); condition = ""; items[] = {"kat_atropine"}; callbackSuccess = QFUNC(medication); From 604f13a9c232b6a9de30fcf0d6a252ae19e56c07 Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 16 Apr 2024 19:41:18 -0700 Subject: [PATCH 37/39] Fix frog issues --- .../functions/fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf | 4 ++-- .../fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/breathing/functions/fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf b/addons/breathing/functions/fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf index 3c5d5860e..97ba8fcef 100644 --- a/addons/breathing/functions/fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf +++ b/addons/breathing/functions/fnc_treatmentAdvanced_hemopneumothoraxLocal.sqf @@ -24,9 +24,9 @@ if (_patient getVariable [QGVAR(activeChestSeal), false]) then { [_patient] call EFUNC(circulation,updateInternalBleeding); }; -private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; +private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; _ht deleteAt (_ht find "tension"); -_unit setVariable [QEGVAR(circulation,ht), _ht, true]; +_patient setVariable [QEGVAR(circulation,ht), _ht, true]; if (!(_patient getVariable [QGVAR(pneumothorax), 0] > 0) && !(_patient getVariable [QGVAR(hemopneumothorax), false]) && !(_patient getVariable [QGVAR(tensionpneumothorax), false])) then { [_patient, 0, 0, "ptx_tension", true] call EFUNC(circulation,updateBloodPressureChange); diff --git a/addons/breathing/functions/fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf b/addons/breathing/functions/fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf index d5ec4d561..3fa0faf42 100644 --- a/addons/breathing/functions/fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf +++ b/addons/breathing/functions/fnc_treatmentAdvanced_tensionpneumothoraxLocal.sqf @@ -23,9 +23,9 @@ if (_patient getVariable [QGVAR(activeChestSeal), false]) then { _patient setVariable [QGVAR(tensionpneumothorax), false, true]; }; -private _ht = _unit getVariable [QEGVAR(circulation,ht), []]; +private _ht = _patient getVariable [QEGVAR(circulation,ht), []]; _ht deleteAt (_ht find "tension"); -_unit setVariable [QEGVAR(circulation,ht), _ht, true]; +_patient setVariable [QEGVAR(circulation,ht), _ht, true]; if (!(_patient getVariable [QGVAR(pneumothorax), 0] > 0) && !(_patient getVariable [QGVAR(hemopneumothorax), false]) && !(_patient getVariable [QGVAR(tensionpneumothorax), false])) then { [_patient, 0, 0, "ptx_tension", true] call EFUNC(circulation,updateBloodPressureChange); From ec422602a37e6133fe250952e5c9e10277d8b2ca Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 16 Apr 2024 19:47:13 -0700 Subject: [PATCH 38/39] Finish review --- .../functions/fnc_handleBreathing.sqf | 4 ++-- addons/gui/functions/fnc_updateInjuryList.sqf | 12 ++++++------ addons/gui/stringtable.xml | 18 ------------------ 3 files changed, 8 insertions(+), 26 deletions(-) diff --git a/addons/breathing/functions/fnc_handleBreathing.sqf b/addons/breathing/functions/fnc_handleBreathing.sqf index c7a89e518..f739787ef 100644 --- a/addons/breathing/functions/fnc_handleBreathing.sqf +++ b/addons/breathing/functions/fnc_handleBreathing.sqf @@ -110,9 +110,9 @@ if (!local _unit) then { _perfusionActive = true; if(_BVMInUse) then { if(_oxygenAssisted) then { - _output = 0.2; + _output = -0.01; } else { - _output = 0.1; + _output = -0.1; }; }; }; diff --git a/addons/gui/functions/fnc_updateInjuryList.sqf b/addons/gui/functions/fnc_updateInjuryList.sqf index 0e716034e..663857812 100644 --- a/addons/gui/functions/fnc_updateInjuryList.sqf +++ b/addons/gui/functions/fnc_updateInjuryList.sqf @@ -37,29 +37,29 @@ if (IS_BLEEDING(_target)) then { // Use nonzero minimum cardiac output to prevent all bleeding showing as massive during cardiac arrest switch (true) do { case (_bleedRate < _bleedRateKO * BLEED_RATE_SLOW): { - _entries pushBack [localize LSTRING(Bleed_Rate1), [1, 1, 0, 1]]; + _entries pushBack [localize ACELSTRING(medical_gui,Bleed_Rate1), [1, 1, 0, 1]]; }; case (_bleedRate < _bleedRateKO * BLEED_RATE_MODERATE): { - _entries pushBack [localize LSTRING(Bleed_Rate2), [1, 0.67, 0, 1]]; + _entries pushBack [localize ACELSTRING(medical_gui,Bleed_Rate2), [1, 0.67, 0, 1]]; }; case (_bleedRate < _bleedRateKO * BLEED_RATE_SEVERE): { - _entries pushBack [localize LSTRING(Bleed_Rate3), [1, 0.33, 0, 1]]; + _entries pushBack [localize ACELSTRING(medical_gui,Bleed_Rate3), [1, 0.33, 0, 1]]; }; default { - _entries pushBack [localize LSTRING(Bleed_Rate4), [1, 0, 0, 1]]; + _entries pushBack [localize ACELSTRING(medical_gui,Bleed_Rate4), [1, 0, 0, 1]]; }; }; }; }; } else { - _entries pushBack [localize LSTRING(Status_Nobleeding), _nonissueColor]; + _entries pushBack [localize ACELSTRING(medical_gui,NOBLEEDING), _nonissueColor]; }; if (ACEGVAR(medical_gui,showBloodlossEntry)) then { // Give a qualitative description of the blood volume lost switch (GET_HEMORRHAGE(_target)) do { case 0: { - if (ACEGVAR(medical_gui,showInactiveStatuses)) then {_entries pushBack [localize LSTRING(Lost_Blood0), _nonissueColor];}; + if (ACEGVAR(medical_gui,showInactiveStatuses)) then {_entries pushBack [localize ACELSTRING(medical_gui,Lost_Blood0), _nonissueColor];}; }; case 1: { _entries pushBack [localize ACELSTRING(medical_gui,Lost_Blood1), [1, 1, 0, 1]]; diff --git a/addons/gui/stringtable.xml b/addons/gui/stringtable.xml index 2ff28d20a..3a0e8a762 100644 --- a/addons/gui/stringtable.xml +++ b/addons/gui/stringtable.xml @@ -83,23 +83,5 @@ Merkitse potilaan sivut Маркировка сторон пациента - - Bleeding - - - Slow Bleeding - - - Moderate Bleeding - - - Severe Bleeding - - - No Blood Lost - - - Not Bleeding - From 129c471fcdb356a3a8fe1d56897ce7dfd279f38f Mon Sep 17 00:00:00 2001 From: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> Date: Fri, 19 Apr 2024 17:36:53 +0200 Subject: [PATCH 39/39] remove unused stuff --- addons/main/script_macros.hpp | 34 ++----------------- .../surgery/functions/fnc_handleRespawn.sqf | 19 ----------- 2 files changed, 3 insertions(+), 50 deletions(-) diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 34b58521a..ffc2768fb 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -119,35 +119,19 @@ #define FATAL_INJURIES_NEVER 2 #undef BLOOD_LOSS_KNOCK_OUT_THRESHOLD -#undef BLOOD_LOSS_KNOCK_OUT_THRESHOLD_DEFAULT #define BLOOD_LOSS_KNOCK_OUT_THRESHOLD ACEGVAR(medical,const_bloodLossKnockOutThreshold) -#define BLOOD_LOSS_KNOCK_OUT_THRESHOLD_DEFAULT 0.5 -#undef BLEED_RATE_SLOW -#undef BLEED_RATE_MODERATE -#undef BLEED_RATE_SEVERE -// Note that half of knock out blood loss is considered unstable, and knock out blood loss is considered critical -#define BLEED_RATE_SLOW 0.1 // Slow - One fifth of unstable blood loss -#define BLEED_RATE_MODERATE 0.5 // Moderate - Vitals considered stable -#define BLEED_RATE_SEVERE 1.0 // Severe - Vitals considered unstable - -#undef LIMPING_DAMAGE_THRESHOLD -#undef LIMPING_DAMAGE_THRESHOLD_DEFAULT // Minimum leg damage required for limping +#undef LIMPING_DAMAGE_THRESHOLD #define LIMPING_DAMAGE_THRESHOLD ACEGVAR(medical,const_limpingDamageThreshold) -#define LIMPING_DAMAGE_THRESHOLD_DEFAULT 0.30 -#undef FRACTURE_DAMAGE_THRESHOLD -#undef FRACTURE_DAMAGE_THRESHOLD_DEFAULT // Minimum limb damage required for fracture +#undef FRACTURE_DAMAGE_THRESHOLD #define FRACTURE_DAMAGE_THRESHOLD ACEGVAR(medical,const_fractureDamageThreshold) -#define FRACTURE_DAMAGE_THRESHOLD_DEFAULT 0.50 -#undef CARDIAC_OUTPUT_MIN -#undef CARDIAC_OUTPUT_MIN_DEFAULT // Minimum cardiac output +#undef CARDIAC_OUTPUT_MIN #define CARDIAC_OUTPUT_MIN ACEGVAR(medical,const_minCardiacOutput) -#define CARDIAC_OUTPUT_MIN_DEFAULT 0.05 //We have to undef them before redefining #undef VAR_BLOOD_PRESS @@ -197,19 +181,7 @@ // Retrieval macros for common unit values // Defined for easy consistency and speed #undef GET_SM_STATE -#undef GET_HEMORRHAGE -#undef GET_WOUND_BLEEDING -#undef GET_FRACTURES -#undef GET_OPEN_WOUNDS -#undef IS_BLEEDING -#undef GET_BLOOD_LOSS #define GET_SM_STATE(_unit) ([_unit, ACEGVAR(medical,STATE_MACHINE)] call CBA_statemachine_fnc_getCurrentState) -#define GET_WOUND_BLEEDING(unit) (unit getVariable [VAR_WOUND_BLEEDING, 0]) -#define GET_HEMORRHAGE(unit) (unit getVariable [VAR_HEMORRHAGE, 0]) -#define GET_FRACTURES(unit) (unit getVariable [VAR_FRACTURES, DEFAULT_FRACTURE_VALUES]) -#define GET_OPEN_WOUNDS(unit) (unit getVariable [VAR_OPEN_WOUNDS, createHashMap]) -#define IS_BLEEDING(unit) (GET_WOUND_BLEEDING(unit) > 0) -#define GET_BLOOD_LOSS(unit) ([unit] call ACEFUNC(medical_status,getBloodLoss)) #define GET_OPIOID_FACTOR(unit) (unit getVariable [QEGVAR(pharma,opioidFactor), 1]) diff --git a/addons/surgery/functions/fnc_handleRespawn.sqf b/addons/surgery/functions/fnc_handleRespawn.sqf index 41c6205a9..52ea25fca 100644 --- a/addons/surgery/functions/fnc_handleRespawn.sqf +++ b/addons/surgery/functions/fnc_handleRespawn.sqf @@ -22,22 +22,3 @@ TRACE_2("handleRespawn",_unit,_dead); if (!local _unit) exitWith {}; [_unit] call FUNC(fullHealLocal); - -_unit setVariable [QGVAR(fractures), [0,0,0,0,0,0], true]; -_unit setVariable [QGVAR(lidocaine), false, true]; -_unit setVariable [QGVAR(etomidate), false, true]; -_unit setVariable [QGVAR(sedated), false, true]; -_unit setVariable [QGVAR(imaging), false, true]; -_unit setVariable [QGVAR(reboa), false, true]; -_unit setVariable [QGVAR(surgicalBlock), [0,0,0,0,0,0], true]; - -/* -* 0 = Unaffected -* 1 = Stable Fracture -* 2 = Compound Fracture -* 3 = Comminuted Fracture -* 2.1/3.1 = Open Fracture -* 2.2/3.2 = Prepared Fracture -* 2.5 = Irrigated Fracture -* 3.5 = Clamped Fracture -*/ \ No newline at end of file