diff --git a/.gitignore b/.gitignore
index ec6d08138..35bb4b836 100644
--- a/.gitignore
+++ b/.gitignore
@@ -77,10 +77,12 @@ releases/*
keys/*
.hemtt/local
.hemttout
+.hemttprivatekey
####
hemtt.exe
ArmaScriptCompiler.exe
#SQF-VM Server
.vscode\sqfvm-lsp
-.vscode
\ No newline at end of file
+.vscode
+
diff --git a/.hemtt/launch.toml b/.hemtt/launch.toml
index d50424f4c..c9f15ef30 100644
--- a/.hemtt/launch.toml
+++ b/.hemtt/launch.toml
@@ -2,7 +2,8 @@
workshop = [
"450814997", # CBA_A3's Workshop ID
"463939057", # ACE3's Workshop ID
- "3499977893" # Advanced Developer Tools's Workshop ID
+ "3499977893", # Advanced Developer Tools's Workshop ID
+ "1779063631", # ZEN
]
[rhs]
diff --git a/KAMLogoHighRes.paa b/KAMLogoHighRes.paa
index 817e1d53b..e756f9ad8 100644
Binary files a/KAMLogoHighRes.paa and b/KAMLogoHighRes.paa differ
diff --git a/KAMLogoLowRes.paa b/KAMLogoLowRes.paa
index c23510ed2..1a72be552 100644
Binary files a/KAMLogoLowRes.paa and b/KAMLogoLowRes.paa differ
diff --git a/README.md b/README.md
index 978ec32de..34f389da2 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# KAT Medical
+# KAM - REDUX
diff --git a/addons/airway/ACE_Medical_Treatment_Actions.hpp b/addons/airway/ACE_Medical_Treatment_Actions.hpp
index 922185fa2..ed74109ef 100644
--- a/addons/airway/ACE_Medical_Treatment_Actions.hpp
+++ b/addons/airway/ACE_Medical_Treatment_Actions.hpp
@@ -1,4 +1,5 @@
class ACE_Medical_Treatment_Actions {
+ class BasicBandage;
class Larynxtubus {
displayName = CSTRING(Larynxtubus_Display);
displayNameProgress = CSTRING(action_placing);
@@ -9,8 +10,8 @@ class ACE_Medical_Treatment_Actions {
medicRequired = QGVAR(medLvl_Larynxtubus);
treatmentTime = QGVAR(Larynxtubus_time);
items[] = {"kat_larynx"};
- 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') && !([_patient] call FUNC(checkMask)));
- 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););
+ condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && (_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == '') && !([_patient] call FUNC(checkMask)) && [ARR_4(_medic,_patient,_bodyPart,_className)] call FUNC(airwayPlacementCheck););
+ callbackSuccess = QUOTE([ARR_2(_medic,_patient)] call FUNC(handleRecoveryPosition); [ARR_6(_medic,_patient,_bodyPart,_className,objNull,_usedItem)] call FUNC(treatmentAdvanced_airway););
callbackFailure = "";
callbackProgress = "";
callbackCondition = "useCondition";
@@ -41,7 +42,42 @@ class ACE_Medical_Treatment_Actions {
treatmentTime = QGVAR(Guedeltubus_time);
items[] = {"kat_guedel"};
icon = QPATHTOF(ui\guedel.paa);
- 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););
+ callbackSuccess = QUOTE([ARR_2(_medic,_patient)] call FUNC(handleRecoveryPosition); [ARR_6(_medic,_patient,_bodyPart,_className,objNull,_usedItem)] call FUNC(treatmentAdvanced_airway););
+ };
+ class NPA: Larynxtubus {
+ displayName = CSTRING(NPA_Display);
+ medicRequired = QGVAR(medLvl_NPA);
+ treatmentTime = QGVAR(NPA_time);
+ items[] = {"kat_NPA"};
+ icon = QPATHTOF(ui\npa.paa);
+ callbackSuccess = QUOTE([ARR_2(_medic,_patient)] call FUNC(handleRecoveryPosition); [ARR_6(_medic,_patient,_bodyPart,_className,objNull,_usedItem)] call FUNC(treatmentAdvanced_airway););
+ };
+ class IGEL: Larynxtubus {
+ displayName = CSTRING(IGEL_Display);
+ medicRequired = QGVAR(medLvl_IGEL);
+ treatmentTime = QGVAR(IGEL_time);
+ items[] = {"kat_IGEL"};
+ icon = QPATHTOF(ui\igel.paa);
+ callbackSuccess = QUOTE([ARR_2(_medic,_patient)] call FUNC(handleRecoveryPosition); [ARR_6(_medic,_patient,_bodyPart,_className,objNull,_usedItem)] call FUNC(treatmentAdvanced_airway););
+ };
+ class ETT: Larynxtubus {
+ displayName = CSTRING(ETT_Display);
+ medicRequired = QGVAR(medLvl_ETT);
+ treatmentTime = QGVAR(ETT_time);
+ condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && (_patient getVariable [ARR_2(QQGVAR(isVisualized),false)]) && (_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == '') && !([_patient] call FUNC(checkMask)));
+ items[] = {"kat_ETT"};
+ icon = QPATHTOF(ui\ETT.paa);
+ callbackSuccess = QUOTE([ARR_6(_medic,_patient,_bodyPart,_className,objNull,_usedItem)] call FUNC(treatmentAdvanced_airway););
+ };
+ class Visualization: Larynxtubus {
+ displayName = CSTRING(Visualization_Display);
+ medicRequired = QGVAR(medLvl_ETT);
+ treatmentTime = QGVAR(Visualization_time);
+ consumeItem = 0;
+ condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && (_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == '') && !([_patient] call FUNC(checkMask)) && [ARR_4(_medic,_patient,_bodyPart,_className)] call FUNC(airwayPlacementCheck););
+ items[] = {"kat_laryngoscope"};
+ icon = QPATHTOF(ui\Laryngoscope.paa);
+ callbackSuccess = QFUNC(treatmentAdvanced_Visualization);
};
class RemoveGuedeltubus: RemoveLarynxtubus {
displayName = CSTRING(Cancel_Guedeltubus);
@@ -53,16 +89,45 @@ 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),'')] == 'Guedeltubus'));
callbackSuccess = QFUNC(treatmentAdvanced_RemoveAirwayItem);
};
+ class RemoveETT: RemoveLarynxtubus {
+ displayName = CSTRING(Cancel_ETT);
+ displayNameProgress = CSTRING(action_removing);
+ medicRequired = QGVAR(medLvl_ETT);
+ treatmentTime = QGVAR(ETT_time);
+ items[] = {};
+ icon = QPATHTOF(ui\ETT.paa);
+ condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && (_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == 'ETT'));
+ callbackSuccess = QFUNC(treatmentAdvanced_RemoveAirwayItem);
+ };
+ class RemoveNPA: RemoveLarynxtubus {
+ displayName = CSTRING(Cancel_NPA);
+ displayNameProgress = CSTRING(action_removing);
+ medicRequired = QGVAR(medLvl_NPA);
+ treatmentTime = QGVAR(NPA_time);
+ items[] = {};
+ icon = QPATHTOF(ui\npa.paa);
+ condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && (_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == 'NPA'));
+ callbackSuccess = QFUNC(treatmentAdvanced_RemoveAirwayItem);
+ };
+ class RemoveIGEL: RemoveLarynxtubus {
+ displayName = CSTRING(Cancel_IGEL);
+ displayNameProgress = CSTRING(action_removing);
+ medicRequired = QGVAR(medLvl_IGEL);
+ treatmentTime = QGVAR(IGEL_time);
+ items[] = {};
+ icon = QPATHTOF(ui\igel.paa);
+ condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && (_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == 'IGEL'));
+ callbackSuccess = QFUNC(treatmentAdvanced_RemoveAirwayItem);
+ };
class Accuvac: Larynxtubus {
displayName = CSTRING(AccuvacTreatment_displayName);
treatmentTime = QGVAR(Accuvac_time);
items[] = {"kat_accuvac"};
- condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && !(_patient getVariable [ARR_2(QQGVAR(recovery),false)]) && !(_patient getVariable [ARR_2(QQGVAR(airway_item),'')] == 'Larynxtubus') && !([_patient] call FUNC(checkMask)));
+ condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && !(_patient getVariable [ARR_2(QQGVAR(recovery),false)]) && !([_patient] call FUNC(checkMask)));
icon = QPATHTOF(ui\accuvac.paa);
consumeItem = 0;
medicRequired = QGVAR(medLvl_Accuvac);
- callbackStart = QFUNC(treatmentAdvanced_AccuvacStart);
- callbackSuccess = QUOTE([ARR_6(_medic,_patient,_bodyPart,'Accuvac','','kat_accuvac')] call FUNC(treatmentAdvanced_accuvac)); //Need to manuelly call fnc due to ACE not providing _itemName when consumeItem == 0
+ callbackSuccess = QUOTE([ARR_6(_medic,_patient,_bodyPart,'Accuvac','','kat_accuvac')] call FUNC(treatmentAdvanced_AccuvacStart)); //Need to manuelly call fnc due to ACE not providing _itemName when consumeItem == 0
callbackProgress = "";
sounds[] = {{QPATHTO_R(sounds\accuvac_start.wav),6,1,15}};
};
@@ -73,7 +138,7 @@ class ACE_Medical_Treatment_Actions {
icon = QPATHTOF(ui\suction.paa);
consumeItem = 1;
medicRequired = QGVAR(medLvl_Suction);
- callbackSuccess = QFUNC(treatmentAdvanced_accuvac);
+ callbackSuccess = QUOTE([ARR_6(_medic,_patient,_bodyPart,'Suction','','kat_suction')] call FUNC(treatmentAdvanced_AccuvacStart));
sounds[] = {{QPATHTO_R(sounds\manualpump_start.wav),6,1,15}};
};
class HyperextendHead: Larynxtubus {
@@ -105,7 +170,7 @@ class ACE_Medical_Treatment_Actions {
displayNameProgress = CSTRING(RecoveryPosition_displayNameProgress);
category="advanced";
treatmentTime = QGVAR(RecoveryPosition_Time);
- allowedSelections[] = {"Body"};
+ allowedSelections[] = {"Chest", "Body"};
medicRequired = 0;
items[] = {};
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));
@@ -120,7 +185,7 @@ class ACE_Medical_Treatment_Actions {
displayNameProgress = CSTRING(CancelRecoveryPosition_displayNameProgress);
category="advanced";
treatmentTime = QGVAR(CancelRecoveryPosition_Time);
- allowedSelections[] = {"Body"};
+ allowedSelections[] = {"Chest", "Body"};
medicRequired = 0;
items[] = {};
condition = QUOTE(!([_patient] call ACEFUNC(common,isAwake)) && (missionNamespace getVariable [ARR_2(QQGVAR(enable),true)]) && (_patient getVariable [ARR_2(QQGVAR(recovery),false)]));
@@ -144,4 +209,88 @@ class ACE_Medical_Treatment_Actions {
animationPatientUnconscious = "AinjPpneMstpSnonWrflDnon_rolltoback";
animationPatientUnconsciousExcludeOn[] = {"ainjppnemstpsnonwrfldnon", "kat_recoveryposition"};
};
+ class Secure: CheckPulse {
+ displayName = CSTRING(Surgical_Airway_Use);
+ displayNameProgress = CSTRING(Surgical_Airway_Action);
+ category = "surgery";
+ treatmentLocations = QEGVAR(surgery,surgicalLocationn);
+ allowedSelections[] = {"Neck"};
+ allowSelfTreatment = 0;
+ medicRequired = QEGVAR(surgery,surgicalAction_MedLevel);
+ treatmentTime = QGVAR(cricothyrotomySecureTime);
+ items[] = {"kat_airwayStrap"};
+ consumeItem = 1;
+ condition = QUOTE([ARR_3(_medic,_patient,0.5)] call FUNC(treatmentAdvanced_cricothyrotomyCheck));
+ callbackSuccess = QUOTE([ARR_2(_medic,_patient)] call FUNC(treatmentAdvanced_cricothyrotomy));
+ };
+ class PrepArea: BasicBandage {
+ displayName = CSTRING(Scalpel_Use);
+ displayNameProgress = CSTRING(Scalpel_Action);
+ category = "surgery";
+ treatmentLocations = QGVAR(CrikeLocation);
+ allowedSelections[] = {"Neck"};
+ allowSelfTreatment = 0;
+ medicRequired = QGVAR(CrikeAction_MedLevel);
+ treatmentTime = QGVAR(incisionTime);
+ items[] = {"kat_scalpel"};
+ consumeItem = 1;
+ condition = QUOTE([ARR_3(_medic,_patient,0.1)] call FUNC(treatmentAdvanced_cricothyrotomyCheck));
+ callbackSuccess = QUOTE([ARR_3(_medic,_patient,0.1)] call FUNC(treatmentAdvanced_cricothyrotomyProgress));
+ };
+ class Guide: BasicBandage {
+ displayName = CSTRING(Guide_Use);
+ displayNameProgress = CSTRING(Guide_Action);
+ category = "surgery";
+ treatmentLocations = QGVAR(CrikeLocation);
+ treatmentTime = QGVAR(cricothyrotomyGuideTime);
+ allowedSelections[] = {"Neck"};
+ allowSelfTreatment = 0;
+ medicRequired = QGVAR(CrikeAction_MedLevel);
+ items[] = {"kat_surgAirway"};
+ consumeItem = 0;
+ condition = QUOTE([ARR_3(_medic,_patient,5)] call FUNC(treatmentAdvanced_cricothyrotomyCheck));
+ callbackSuccess = QUOTE([ARR_2(_medic,_patient)] call FUNC(treatmentAdvanced_cricothyrotomyIncision));
+ };
+ class Place: BasicBandage {
+ displayName = CSTRING(Place_Use);
+ displayNameProgress = CSTRING(Place_Action);
+ category = "surgery";
+ treatmentLocations = QGVAR(CrikeLocation);
+ treatmentTime = QGVAR(cricothyrotomyPlaceTime);
+ allowedSelections[] = {"Neck"};
+ allowSelfTreatment = 0;
+ medicRequired = QGVAR(CrikeAction_MedLevel);
+ items[] = {"kat_surgAirway"};
+ consumeItem = 1;
+ condition = QUOTE([ARR_3(_medic,_patient,0.3)] call FUNC(treatmentAdvanced_cricothyrotomyCheck));
+ callbackSuccess = QUOTE([ARR_3(_medic,_patient,0.3)] call FUNC(treatmentAdvanced_cricothyrotomyProgress));
+ };
+ class OpenCrike: CheckPulse {
+ displayName = CSTRING(Open_Crike_Kit);
+ displayNameProgress = CSTRING(Open_Crike_Kit_Action);
+ category = "surgery";
+ treatmentLocations = QGVAR(CrikeLocation);
+ allowedSelections[] = {"all"};
+ allowSelfTreatment = 1;
+ medicRequired = QGVAR(CrikeAction_MedLevel);
+ treatmentTime = 5;
+ items[] = {"kat_crikeKit"};
+ consumeItem = 1;
+ callbackSuccess = QFUNC(treatmentAdvanced_cricothyrotomyKit);
+ condition = "true";
+ };
+ class ResetCrike: BasicBandage {
+ displayName = CSTRING(Reset_Crike);
+ displayNameProgress = CSTRING(Reset_Crike_action);
+ category = "surgery";
+ treatmentLocations = QGVAR(CrikeLocation);
+ treatmentTime = QGVAR(cricothyrotomyPlaceTime);
+ allowedSelections[] = {"Neck"};
+ allowSelfTreatment = 0;
+ medicRequired = QGVAR(CrikeAction_MedLevel);
+ items[] = {"kat_stitchKit"};
+ consumeItem = 1;
+ condition = QUOTE([ARR_3(_medic,_patient,0.9)] call FUNC(treatmentAdvanced_cricothyrotomyCheck));
+ callbackSuccess = QUOTE([ARR_3(_medic,_patient,0.9)] call FUNC(treatmentAdvanced_cricothyrotomyProgress));
+ };
};
diff --git a/addons/airway/CfgSounds.hpp b/addons/airway/CfgSounds.hpp
index 22db6c380..53c428fda 100644
--- a/addons/airway/CfgSounds.hpp
+++ b/addons/airway/CfgSounds.hpp
@@ -17,7 +17,7 @@ class CfgSounds {
};
class GVAR(suction) {
name = QGVAR(suction);
- sound[] = {QPATHTOF_SOUND(sounds\suction.wav), "db + 2", 1, 15};
+ sound[] = {QPATHTOF_SOUND(sounds\accuvac_suction.wav), "db + 2", 1, 15};
titles[] = {};
};
-};
+};
\ No newline at end of file
diff --git a/addons/airway/CfgVehicles.hpp b/addons/airway/CfgVehicles.hpp
index 89b434d3d..1e13983be 100644
--- a/addons/airway/CfgVehicles.hpp
+++ b/addons/airway/CfgVehicles.hpp
@@ -52,6 +52,11 @@ class CfgVehicles {
class TransportItems {
MACRO_ADDITEM(kat_larynx,15);
MACRO_ADDITEM(kat_guedel,15);
+ MACRO_ADDITEM(kat_NPA,15);
+ MACRO_ADDITEM(kat_IGEL,15);
+ MACRO_ADDITEM(kat_laryngoscope,2);
+ MACRO_ADDITEM(kat_ETT,15);
+ MACRO_ADDITEM(kat_crikeKit,15);
MACRO_ADDITEM(kat_accuvac,1);
MACRO_ADDITEM(kat_suction,10);
};
diff --git a/addons/airway/CfgWeapons.hpp b/addons/airway/CfgWeapons.hpp
index bc3f9b3b0..affa15154 100644
--- a/addons/airway/CfgWeapons.hpp
+++ b/addons/airway/CfgWeapons.hpp
@@ -11,7 +11,7 @@ class CfgWeapons {
model = QPATHTOF(models\larynx_tube\tube.p3d);
ACE_isMedicalItem = 1;
class ItemInfo: CBA_MiscItem_ItemInfo {
- mass = 0.5;
+ mass = 1.5;
};
};
class kat_guedel: ACE_ItemCore {
@@ -22,10 +22,54 @@ class CfgWeapons {
picture = QPATHTOF(ui\guedel_normal.paa);
model = QPATHTOF(models\guedel\guedel.p3d);
ACE_isMedicalItem = 1;
+ class ItemInfo: CBA_MiscItem_ItemInfo {
+ mass = 1;
+ };
+ };
+ class kat_NPA: ACE_ItemCore {
+ scope = 2;
+ author = "Katalam";
+ displayName= CSTRING(NPA_Display);
+ descriptionShort = CSTRING(NPA_Desc_Short);
+ picture = QPATHTOF(ui\npa.paa);
+ ACE_isMedicalItem = 1;
class ItemInfo: CBA_MiscItem_ItemInfo {
mass = 0.5;
};
};
+ class kat_IGEL: ACE_ItemCore {
+ scope = 2;
+ author = "Katalam";
+ displayName= CSTRING(IGEL_Display);
+ descriptionShort = CSTRING(IGEL_Desc_Short);
+ picture = QPATHTOF(ui\igel.paa);
+ ACE_isMedicalItem = 1;
+ class ItemInfo: CBA_MiscItem_ItemInfo {
+ mass = 1;
+ };
+ };
+ class kat_laryngoscope: ACE_ItemCore {
+ scope = 2;
+ author = "Katalam";
+ displayName= CSTRING(laryngoscope_Display);
+ descriptionShort = CSTRING(laryngoscope_Desc_Short);
+ picture = QPATHTOF(ui\Laryngoscope.paa);
+ ACE_isMedicalItem = 1;
+ class ItemInfo: CBA_MiscItem_ItemInfo {
+ mass = 5;
+ };
+ };
+ class kat_ETT: ACE_ItemCore {
+ scope = 2;
+ author = "Katalam";
+ displayName= CSTRING(ETT_Display);
+ descriptionShort = CSTRING(ETT_Desc_Short);
+ picture = QPATHTOF(ui\ETT.paa);
+ ACE_isMedicalItem = 1;
+ class ItemInfo: CBA_MiscItem_ItemInfo {
+ mass = 2.5;
+ };
+ };
class kat_accuvac: ACE_ItemCore {
scope = 2;
author = "Katalam";
@@ -35,7 +79,7 @@ class CfgWeapons {
model = QPATHTOF(models\accuvac\accuvac.p3d);
ACE_isMedicalItem = 1;
class ItemInfo: CBA_MiscItem_ItemInfo {
- mass = 7;
+ mass = 30;
};
};
class kat_suction: ACE_ItemCore {
@@ -45,6 +89,39 @@ class CfgWeapons {
descriptionShort = CSTRING(Suction_Desc_Short);
picture = QPATHTOF(ui\suction_normal.paa);
ACE_isMedicalItem = 1;
+ class ItemInfo: CBA_MiscItem_ItemInfo {
+ mass = 2;
+ };
+ };
+ class kat_crikeKit: ACE_ItemCore {
+ scope = 2;
+ author = "Katalam";
+ displayName= CSTRING(CrikeKit_Display);
+ descriptionShort = CSTRING(CrikeKit_Desc_Short);
+ picture = QPATHTOF(ui\CrikeKit.paa);
+ ACE_isMedicalItem = 1;
+ class ItemInfo: CBA_MiscItem_ItemInfo {
+ mass = 2.5;
+ };
+ };
+ class kat_surgAirway: ACE_ItemCore {
+ scope = 1;
+ author = "Katalam";
+ displayName= CSTRING(SurgAirway_Display);
+ descriptionShort = CSTRING(SurgAirway_Desc_Short);
+ picture = QPATHTOF(ui\SurgAirway.paa);
+ ACE_isMedicalItem = 1;
+ class ItemInfo: CBA_MiscItem_ItemInfo {
+ mass = 0.5;
+ };
+ };
+ class kat_airwayStrap: ACE_ItemCore {
+ scope = 1;
+ author = "Katalam";
+ displayName= CSTRING(AirwayStrap_Display);
+ descriptionShort = CSTRING(AirwayStrap_Desc_Short);
+ picture = QPATHTOF(ui\AirwayStrap.paa);
+ ACE_isMedicalItem = 1;
class ItemInfo: CBA_MiscItem_ItemInfo {
mass = 0.5;
};
diff --git a/addons/airway/XEH_PREP.hpp b/addons/airway/XEH_PREP.hpp
index b14a85024..d16feac0a 100644
--- a/addons/airway/XEH_PREP.hpp
+++ b/addons/airway/XEH_PREP.hpp
@@ -1,3 +1,7 @@
+PREP(airwayCheck);
+PREP(airwayDeterioration);
+PREP(airwayPlacementCheck);
+PREP(capnographyPFH);
PREP(checkAirway);
PREP(checkMask);
PREP(checkRecovery);
@@ -6,20 +10,30 @@ PREP(gui_updateBodyImage);
PREP(gui_updateInjuryListGeneral);
PREP(gui_updateInjuryListPart);
PREP(handleAirway);
+PREP(handleAirwayHit);
+PREP(handleAwakePuking);
PREP(handlePuking);
PREP(handleRecoveryPosition);
PREP(handleRespawn);
+PREP(handleUncon);
PREP(init);
PREP(startHeadTurning);
-PREP(treatmentAdvanced_Accuvac);
-PREP(treatmentAdvanced_AccuvacLocal);
PREP(treatmentAdvanced_AccuvacStart);
-PREP(treatmentAdvanced_airway);
-PREP(treatmentAdvanced_airwayLocal);
PREP(treatmentAdvanced_CancelRecoveryPosition);
PREP(treatmentAdvanced_CancelRecoveryPositionLocal);
-PREP(treatmentAdvanced_hyperextendHead);
PREP(treatmentAdvanced_RecoveryPosition);
PREP(treatmentAdvanced_RecoveryPositionLocal);
PREP(treatmentAdvanced_RemoveAirwayItem);
-PREP(treatmentAdvanced_RemoveAirwayItemLocal);
\ No newline at end of file
+PREP(treatmentAdvanced_RemoveAirwayItemLocal);
+PREP(treatmentAdvanced_Visualization);
+PREP(treatmentAdvanced_airway);
+PREP(treatmentAdvanced_airwayLocal);
+PREP(treatmentAdvanced_cricothyrotomy);
+PREP(treatmentAdvanced_cricothyrotomyCheck);
+PREP(treatmentAdvanced_cricothyrotomyIncision);
+PREP(treatmentAdvanced_cricothyrotomyIncisionLocal);
+PREP(treatmentAdvanced_cricothyrotomyKit);
+PREP(treatmentAdvanced_cricothyrotomyLocal);
+PREP(treatmentAdvanced_cricothyrotomyProgress);
+PREP(treatmentAdvanced_cricothyrotomyProgressLocal);
+PREP(treatmentAdvanced_hyperextendHead);
\ No newline at end of file
diff --git a/addons/airway/XEH_postInit.sqf b/addons/airway/XEH_postInit.sqf
index 8cc5cb8f0..dfbcf2aae 100644
--- a/addons/airway/XEH_postInit.sqf
+++ b/addons/airway/XEH_postInit.sqf
@@ -3,7 +3,6 @@
if !(GVAR(enable)) exitWith {};
[QGVAR(airwayLocal), LINKFUNC(treatmentAdvanced_airwayLocal)] call CBA_fnc_addEventHandler;
-[QGVAR(accuvacLocal), LINKFUNC(treatmentAdvanced_accuvacLocal)] call CBA_fnc_addEventHandler;
[QGVAR(recoveryPositionLocal), LINKFUNC(treatmentAdvanced_RecoveryPositionLocal)] call CBA_fnc_addEventHandler;
[QGVAR(cancelRecoveryPositionLocal), LINKFUNC(treatmentAdvanced_CancelRecoveryPositionLocal)] call CBA_fnc_addEventHandler;
[QGVAR(removeAirwayItemLocal), LINKFUNC(treatmentAdvanced_RemoveAirwayItemLocal)] call CBA_fnc_addEventHandler;
@@ -19,10 +18,14 @@ if !(GVAR(enable)) exitWith {};
[QACEGVAR(medical_gui,updateInjuryListPart), LINKFUNC(gui_updateInjuryListPart)] call CBA_fnc_addEventHandler;
[QACEGVAR(medical_gui,updateBodyImage), LINKFUNC(gui_updateBodyImage)] call CBA_fnc_addEventHandler;
[QACEGVAR(medical_treatment,fullHealLocalMod), LINKFUNC(fullHealLocal)] call CBA_fnc_addEventHandler;
+[QGVAR(cricothyrotomyIncision), LINKFUNC(treatmentAdvanced_cricothyrotomyIncisionLocal)] call CBA_fnc_addEventHandler;
+[QGVAR(cricothyrotomyProgress), LINKFUNC(treatmentAdvanced_cricothyrotomyProgressLocal)] call CBA_fnc_addEventHandler;
+[QGVAR(cricothyrotomy), LINKFUNC(treatmentAdvanced_cricothyrotomyLocal)] call CBA_fnc_addEventHandler;
+[QGVAR(capnoPFH), LINKFUNC(capnographyPFH)] call CBA_fnc_addEventHandler;
["ace_unconscious", {
params ["_unit", "_state"];
if !(_state) exitWith {
- [_unit] call FUNC(init);
+ [_unit] call FUNC(handleUncon);
};
private _alive = alive _unit;
diff --git a/addons/airway/config.cpp b/addons/airway/config.cpp
index 28ac6a270..03bf68e89 100644
--- a/addons/airway/config.cpp
+++ b/addons/airway/config.cpp
@@ -15,7 +15,12 @@ class CfgPatches {
"kat_guedel",
"kat_larynx",
"kat_suction",
- "kat_accuvac"
+ "kat_accuvac",
+ "kat_ETT",
+ "kat_laryngoscope",
+ "kat_IGEL",
+ "kat_NPA",
+ "kat_crikeKit"
};
magazines[] = {};
requiredAddons[] = {
@@ -41,9 +46,9 @@ class CfgPatches {
};
};
-#include "CfgSounds.hpp"
#include "CfgEventHandlers.hpp"
#include "CfgMoves.hpp"
#include "CfgWeapons.hpp"
#include "CfgVehicles.hpp"
#include "ACE_Medical_Treatment_Actions.hpp"
+#include "CfgSounds.hpp"
diff --git a/addons/airway/functions/fnc_airwayCheck.sqf b/addons/airway/functions/fnc_airwayCheck.sqf
new file mode 100644
index 000000000..efbedda34
--- /dev/null
+++ b/addons/airway/functions/fnc_airwayCheck.sqf
@@ -0,0 +1,60 @@
+#include "..\script_component.hpp"
+/*
+ * Author: Cplhardcore
+ * handels airway degredation
+ *
+ * Arguments:
+ * 0: Unit That Was Hit