diff --git a/README.md b/README.md index d145edf51..978ec32de 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Originaly created by Katalam, currently maintained by Tomcat, Kygan, YetheSamart - [x] Head hyper-extension - [x] Intubation - [x] Aspiration - - [x] Items such as Guedel Tube, King LT and Accuvacc + - [x] Items such as Guedel Tube, King LT and Suction Devices (Accuvac, Manual Suction Pump) - [x] Recovery position - Breathing - [x] Oxygen saturation diff --git a/addons/airway/ACE_Medical_Treatment_Actions.hpp b/addons/airway/ACE_Medical_Treatment_Actions.hpp index d922e27f2..7cf419eb6 100644 --- a/addons/airway/ACE_Medical_Treatment_Actions.hpp +++ b/addons/airway/ACE_Medical_Treatment_Actions.hpp @@ -54,7 +54,7 @@ class ACE_Medical_Treatment_Actions { callbackSuccess = QFUNC(treatmentAdvanced_RemoveAirwayItem); }; class Accuvac: Larynxtubus { - displayName = "Accuvac"; + 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')); @@ -64,10 +64,19 @@ class ACE_Medical_Treatment_Actions { callbackStart = QFUNC(treatmentAdvanced_AccuvacStart); callbackSuccess = QFUNC(treatmentAdvanced_accuvac); callbackProgress = ""; - sounds[] = {{QPATHTO_R(sounds\accuvac.wav),6,1,15}}; + sounds[] = {{QPATHTO_R(sounds\accuvac_start.wav),6,1,15}}; + }; + class Suction: Accuvac { + displayName = CSTRING(SuctionTreatment_displayName); + treatmentTime = QGVAR(Suction_time); + items[] = {"kat_suction"}; + icon = QPATHTOF(ui\suction.paa); + consumeItem = 1; + medicRequired = QGVAR(medLvl_Suction); + sounds[] = {{QPATHTO_R(sounds\manualpump_start.wav),6,1,15}}; }; class HyperextendHead: Larynxtubus { - displayName = CSTRING(Hyperextend_diplayName); + displayName = CSTRING(Hyperextend_displayName); displayNameProgress = CSTRING(Hyperextend_progress); treatmentTime = QGVAR(Hyperextend_Time); medicRequired = 0; diff --git a/addons/airway/CfgVehicles.hpp b/addons/airway/CfgVehicles.hpp index 0fdc95a75..7d44beb40 100644 --- a/addons/airway/CfgVehicles.hpp +++ b/addons/airway/CfgVehicles.hpp @@ -24,13 +24,23 @@ class CfgVehicles { class kat_accuvacItem: Item_Base_F { scope = 2; scopeCurator = 2; - displayName= "Accuvac"; + displayName= CSTRING(Accuvac_Display); author = "Katalam"; vehicleClass = "Items"; class TransportItems { MACRO_ADDITEM(kat_accuvac,1); }; }; + class kat_suctionItem: Item_Base_F { + scope = 2; + scopeCurator = 2; + displayName= CSTRING(Suction_Display); + author = "Apricot_ale"; + vehicleClass = "Items"; + class TransportItems { + MACRO_ADDITEM(kat_suction,1); + }; + }; class BloodSplatter_01_Small_Old_F; class kat_vomit: BloodSplatter_01_Small_Old_F { displayName = CSTRING(Vomit_Display); @@ -45,6 +55,7 @@ class CfgVehicles { class TransportItems: TransportItems { MACRO_ADDITEM(kat_larynx,15); MACRO_ADDITEM(kat_guedel,15); + MACRO_ADDITEM(kat_suction,15); MACRO_ADDITEM(kat_accuvac,1); }; }; diff --git a/addons/airway/CfgWeapons.hpp b/addons/airway/CfgWeapons.hpp index ca388a345..bc3f9b3b0 100644 --- a/addons/airway/CfgWeapons.hpp +++ b/addons/airway/CfgWeapons.hpp @@ -29,7 +29,7 @@ class CfgWeapons { class kat_accuvac: ACE_ItemCore { scope = 2; author = "Katalam"; - displayName= "Accuvac"; + displayName= CSTRING(Accuvac_Display); descriptionShort = CSTRING(Accuvac_Desc_Short); picture = QPATHTOF(ui\accuvac_normal.paa); model = QPATHTOF(models\accuvac\accuvac.p3d); @@ -38,4 +38,15 @@ class CfgWeapons { mass = 7; }; }; + class kat_suction: ACE_ItemCore { + scope = 2; + author = "Apricot_ale"; + displayName= CSTRING(Suction_Display); + descriptionShort = CSTRING(Suction_Desc_Short); + picture = QPATHTOF(ui\suction_normal.paa); + ACE_isMedicalItem = 1; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 0.5; + }; + }; }; diff --git a/addons/airway/XEH_preInit.sqf b/addons/airway/XEH_preInit.sqf index 5ec84a98d..baa450837 100644 --- a/addons/airway/XEH_preInit.sqf +++ b/addons/airway/XEH_preInit.sqf @@ -153,7 +153,7 @@ In real life, this will happen sometimes, not quiet often. QGVAR(medLvl_Accuvac), "LIST", [LLSTRING(ALLOW_ACCUVAC),LLSTRING(ALLOW_ACCUVAC_DESC)], - [CBA_SETTINGS_CAT, LSTRING(SubCategory_Items)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Suction)], [[0, 1, 2], ["STR_ACE_Medical_Treatment_Anyone", "STR_ACE_Medical_Treatment_Medics", "STR_ACE_Medical_Treatment_Doctors"], 0], true ] call CBA_settings_fnc_init; @@ -163,8 +163,38 @@ In real life, this will happen sometimes, not quiet often. QGVAR(Accuvac_time), "SLIDER", [LLSTRING(TIME_ACCUVAC),LLSTRING(TIME_ACCUVAC_DESC)], - [CBA_SETTINGS_CAT, LSTRING(SubCategory_Items)], - [1, 20, 8, 0], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Suction)], + [1, 30, 8, 0], + true +] call CBA_Settings_fnc_init; + +//Settable list for using Manual Suction Pump per medical class +[ + QGVAR(medLvl_Suction), + "LIST", + [LLSTRING(ALLOW_SUCTION),LLSTRING(ALLOW_SUCTION_DESC)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Suction)], + [[0, 1, 2], ["STR_ACE_Medical_Treatment_Anyone", "STR_ACE_Medical_Treatment_Medics", "STR_ACE_Medical_Treatment_Doctors"], 0], + true +] call CBA_settings_fnc_init; + +// Settable action time for Manual Suction Pump +[ + QGVAR(Suction_time), + "SLIDER", + [LLSTRING(TIME_SUCTION),LLSTRING(TIME_SUCTION_DESC)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Suction)], + [1, 30, 12, 0], + true +] call CBA_Settings_fnc_init; + +// Reuse Item checkbox for Manual Suction Pump +[ + QGVAR(Suction_reuse), + "CHECKBOX", + [LLSTRING(SUCTION_REUSE),LLSTRING(SUCTION_REUSE_DESC)], + [CBA_SETTINGS_CAT, LSTRING(SubCategory_Suction)], + [false], true ] call CBA_Settings_fnc_init; diff --git a/addons/airway/config.cpp b/addons/airway/config.cpp index 1f61aa634..458215aa6 100644 --- a/addons/airway/config.cpp +++ b/addons/airway/config.cpp @@ -7,12 +7,14 @@ class CfgPatches { units[] = { "kat_guedelItem", "kat_larynxItem", + "kat_suctionItem", "kat_accuvacItem", "kat_vomit" }; weapons[] = { "kat_guedel", "kat_larynx", + "kat_suction", "kat_accuvac" }; magazines[] = {}; diff --git a/addons/airway/functions/fnc_treatmentAdvanced_Accuvac.sqf b/addons/airway/functions/fnc_treatmentAdvanced_Accuvac.sqf index bb62c4f69..39ffcc492 100644 --- a/addons/airway/functions/fnc_treatmentAdvanced_Accuvac.sqf +++ b/addons/airway/functions/fnc_treatmentAdvanced_Accuvac.sqf @@ -25,8 +25,24 @@ params ["_medic", "_patient", "_bodyPart", "_classname", "", "_usedItem"]; if !(_patient getVariable [QGVAR(occluded), false]) exitWith { private _output = LLSTRING(Accuvac_NA); [_output, 1.5, _medic] call ACEFUNC(common,displayTextStructured); + + if (_usedItem isEqualTo "kat_suction") then { + if (GVAR(Suction_reuse)) then { + _medic addItem "kat_suction"; + }; + }; +}; + +if (_usedItem isEqualTo "kat_suction") then { + if (GVAR(Suction_reuse)) then { + _medic addItem "kat_suction"; + }; }; -[_patient, _classname] call ACEFUNC(medical_treatment,addToTriageCard); +private _treatmentName = LLSTRING(AccuvacTreatment_displayName); +[_patient, _treatmentName] call ACEFUNC(medical_treatment,addToTriageCard); + +private _outputSuccess = LLSTRING(Accuvac_Success); +[_outputSuccess, 1.5, _medic] call ACEFUNC(common,displayTextStructured); [QGVAR(accuvacLocal), _patient, _patient] call CBA_fnc_targetEvent; diff --git a/addons/airway/functions/fnc_treatmentAdvanced_AccuvacStart.sqf b/addons/airway/functions/fnc_treatmentAdvanced_AccuvacStart.sqf index b792d63d3..bc8726ae5 100644 --- a/addons/airway/functions/fnc_treatmentAdvanced_AccuvacStart.sqf +++ b/addons/airway/functions/fnc_treatmentAdvanced_AccuvacStart.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Blue - * Play Accuvac suction sound + * Play Suction Devices sound * * Arguments: * 0: Medic @@ -24,12 +24,24 @@ params ["_medic", "_patient", "_bodyPart", "_classname", "", "_usedItem"]; if !(_patient getVariable [QGVAR(occluded), false]) exitWith {}; -private _accuvacSuction = playSound3D [QPATHTOF_SOUND(sounds\suction.wav), _patient, false, getPosASL _patient, 6, 1, 15]; +if (_usedItem isEqualTo "kat_suction") then { + private _suctionSound = playSound3D [QPATHTOF_SOUND(sounds\manualpump_suction.wav), _patient, false, getPosASL _patient, 6, 1, 15]; -[{ - !dialog; -}, { - params ["_accuvacSuction"]; + [{ + !dialog; + }, { + params ["_suctionSound"]; - stopSound _accuvacSuction; -}, [_accuvacSuction], 5.7] call CBA_fnc_waitUntilAndExecute; + stopSound _suctionSound; + }, [_suctionSound], 7.5] call CBA_fnc_waitUntilAndExecute; +} else { + private _suctionSound = playSound3D [QPATHTOF_SOUND(sounds\accuvac_suction.wav), _patient, false, getPosASL _patient, 6, 1, 15]; + + [{ + !dialog; + }, { + params ["_suctionSound"]; + + stopSound _suctionSound; + }, [_suctionSound], 5.7] call CBA_fnc_waitUntilAndExecute; +}; diff --git a/addons/airway/sounds/accuvac.wav b/addons/airway/sounds/accuvac_start.wav similarity index 100% rename from addons/airway/sounds/accuvac.wav rename to addons/airway/sounds/accuvac_start.wav diff --git a/addons/airway/sounds/Suction.wav b/addons/airway/sounds/accuvac_suction.wav similarity index 100% rename from addons/airway/sounds/Suction.wav rename to addons/airway/sounds/accuvac_suction.wav diff --git a/addons/airway/sounds/manualpump_start.wav b/addons/airway/sounds/manualpump_start.wav new file mode 100644 index 000000000..4f6cdb2be Binary files /dev/null and b/addons/airway/sounds/manualpump_start.wav differ diff --git a/addons/airway/sounds/manualpump_suction.wav b/addons/airway/sounds/manualpump_suction.wav new file mode 100644 index 000000000..348b84847 Binary files /dev/null and b/addons/airway/sounds/manualpump_suction.wav differ diff --git a/addons/airway/stringtable.xml b/addons/airway/stringtable.xml index 5558e2fb9..235d71abe 100644 --- a/addons/airway/stringtable.xml +++ b/addons/airway/stringtable.xml @@ -334,7 +334,7 @@ O item não pôde ser usado, vias aéreas bloqueadas Gjenstanden kunne ikke brukes, luftveiene er ikke frie - + Hyperextending Head Kopf überstrecken Odchyl głowę @@ -501,6 +501,10 @@ Sucção médica não necessária Ingen behov for medisinsk suging + + Medical suction completed, Occlusion removed + 医療吸引が完了し、 異物が除去されました + Checking Airway Atemwege Kontrollieren @@ -603,6 +607,10 @@ A Cânula de Guedel evita obstruções Guedel Tube brukes for å redde luftveiene + + ACCUVAC + アキュバック + ACCUVAC is a medical suction device for airway suction with battery drive for mobile use in emergency medicine. Der ACCUVAC ist ein medizinisches Absauggerät zur Atemwegsabsaugung mit Akkubetrieb für den mobilen Einsatz in der Notfallmedizin. @@ -616,10 +624,34 @@ ACCUVAC, acil tıpta mobil kullanım için pilli hava yolu emişine yönelik tıbbi bir emme cihazıdır. L'ACCUVAC è un dispositivo medico portatile di suzione a batterie per aspirare le vie aeree in caso di emergenza ACCUVAC — это медицинский отсасыватель для отсасывания из дыхательных путей с аккумуляторным приводом для мобильного использования в неотложной медицине. - ACCUVACは、救急医療で携帯使用するための電源を備えた気道吸引用の医療用吸引装置です。 + アキュバックは、救急医療で携行使用するためのバッテリー電源を備えた気道吸引の為の医療用吸引装置です。 ACCUVAC é uma unidade de sucção portátil utilizada para tratar vias aéreas em caso de emergência médica. ACCUVAC er en medisinsk sugeenhet for suging av luftveier med batteridrift for mobil bruk innen akuttmedisin + + Airway Suction + 気道吸引 + + + Manual Suction Pump + 手動式吸引器 + + + Manual Suction Pump is a medical suction device for airway suction manually. This alternative to electrical devices. + 手動式吸引器は、手動ポンプで動作する気道吸引の為の医療用吸引装置です。これは電気駆動の装置を代替することが可能です。 + + + Airway Suction (Manual) + 気道吸引 (手動式) + + + Reusable Manual Suction Pump + 手動式吸引器の再利用 + + + Regain the Manual Suction Pump after use + 手動式吸引器の使用後、再利用できるようにします。 + Vomit (Small) Erbrochenes (Klein) @@ -740,38 +772,46 @@ Nivået av opplæring som kreves for å bruke en Guedeltubus - Allow Accuvac - Accuvac erlauben - Pozwól na użycie Accuvac - Permitir Accuvac - 允許Accuvac - 允许使用紧急医疗抽吸器(Accuvac) - Povolit Accuvac + Allow ACCUVAC + ACCUVAC erlauben + Pozwól na użycie ACCUVAC + Permitir ACCUVAC + 允許ACCUVAC + 允许使用紧急医疗抽吸器(ACCUVAC) + Povolit ACCUVAC 전기흡인기 허용 Autoriser l'ACCUVAC - Accuvac'a izin ver + ACCUVAC'a izin ver Permetti l'ACCUVAC Разрешить Аккувак - Accuvacの許可 + アキュバックの許可 Permitir ACCUVAC - Tilatt Accuvac + Tilatt ACCUVAC - Training level required to use an Accuvac - Benötigter medizinischer Grad, um den Accuvac zu nutzen - Poziom wyszkolenia wymagany do korzystania z Accuvac - Nivel de entrenamiento requerido para usar un Accuvac - 使用Accuvac所需的培訓水平 + Training level required to use an ACCUVAC + Benötigter medizinischer Grad, um den ACCUVAC zu nutzen + Poziom wyszkolenia wymagany do korzystania z ACCUVAC + Nivel de entrenamiento requerido para usar un ACCUVAC + 使用ACCUVAC所需的培訓水平 使用紧急医疗抽吸器所需的医疗培训水平 - Úroveň výcviku potřebná k použití Accuvacu + Úroveň výcviku potřebná k použití ACCUVAC 전기흡인기를 사용하기 위한 의료레벨 수준 Niveau d'entrainement requis pour utiliser un ACCUVAC - Acuvvac'ı kullanmak için gerekli eğitim seviyesi + ACCUVAC'ı kullanmak için gerekli eğitim seviyesi Livello d'addestramento richiesto per utilizzare l'ACCUVAC - Уровень подготовки, необходимый для использования Accuvac - Accuvacの使用に必要な医療スキルのレベルを設定します。 + Уровень подготовки, необходимый для использования ACCUVAC + アキュバックの使用に必要な医療スキルのレベルを設定します。 Nível de treinamento necessário para usar um ACCUVAC - Opplæringsnivået som kreves for å bruke en Accuvac + Opplæringsnivået som kreves for å bruke en ACCUVAC + + + Allow Manual Suction Pump + 手動吸引器の許可 + + + Training level required to use an Manual Suction Pump + 手動吸引器の使用に必要な医療スキルのレベルを設定します。 Time to check Airway @@ -872,38 +912,46 @@ %1 acabó de girar la cabeza (x%2) - Time for Accuvac - Zeit um den Accuvac zu nutzen - Czas na użycie Accuvac - Tiempo para Accuvac - Accuvac時間 - Accuvac時間 - Čas pro Accuvac + Time for ACCUVAC + Zeit um den ACCUVAC zu nutzen + Czas na użycie ACCUVAC + Tiempo para ACCUVAC + ACCUVAC時間 + ACCUVAC時間 + Čas pro ACCUVAC 흡인에 걸리는 시간 Durée d'aspiration avec l'ACCUVAC - Accuvac için Zaman + ACCUVAC için Zaman Tempo per l'ACCUVAC Время Аккувака - Accuvacの所要時間 + アキュバックの所要時間 Tempo para ACCUVAC - Tid for Accuvac + Tid for ACCUVAC - How long it will take to use Accuvac - Wie lange dauert es, den Accuvac zu nutzen - Ile czasu zajmie użycie Accuvac'a - Cuánto tiempo tomará usar Accuvac - 使用Accuvac需要多長時間 + How long it will take to use ACCUVAC + Wie lange dauert es, den ACCUVAC zu nutzen + Ile czasu zajmie użycie ACCUVAC'a + Cuánto tiempo tomará usar ACCUVAC + 使用ACCUVAC需要多長時間 使用紧急医疗抽吸器的所需時間 - Jak dlouho zabere použití Accuvacu + Jak dlouho zabere použití ACCUVAC 흡인에 얼마나 시간이 걸리는지 결정합니다 Combien de temps faudra t-il pour aspirer avec l'ACCUVAC - Accuvac'ı kullanmak ne kadar sürecek + ACCUVAC'ı kullanmak ne kadar sürecek Quanto tempo si impiega per usare l'ACCUVAC Сколько времени потребуется, чтобы использовать Аккувака - Accuvacを使用するのにどのくらい時間がかかるか設定します + アキュバックを使用するのにどのくらい時間がかかるか設定します Quanto tempo demorará para usar ACCUVAC - Hvor lang tid vil det ta å bruke Accuvac + Hvor lang tid vil det ta å bruke ACCUVAC + + + Time for Manual Suction Pump + 手動吸引器の所要時間 + + + How long it will take to use Manual Suction Pump + 手動吸引器を使用するのにどのくらい時間がかかるか設定します Time for Larynxtubus @@ -1168,6 +1216,10 @@ Instillinger for stabil sideleie og Hyperforlengelse av hodet Paramètres de la position latérale de sécurité + hyperextension + + Suction devices Settings + 気道吸引器設定 + Airway items Settings Impostazione oggetti vie aeree diff --git a/addons/airway/ui/suction.paa b/addons/airway/ui/suction.paa new file mode 100644 index 000000000..b728810de Binary files /dev/null and b/addons/airway/ui/suction.paa differ diff --git a/addons/airway/ui/suction_normal.paa b/addons/airway/ui/suction_normal.paa new file mode 100644 index 000000000..c6b1eec7d Binary files /dev/null and b/addons/airway/ui/suction_normal.paa differ diff --git a/addons/breathing/CfgVehicles.hpp b/addons/breathing/CfgVehicles.hpp index 1062c86e5..fe3c33f56 100644 --- a/addons/breathing/CfgVehicles.hpp +++ b/addons/breathing/CfgVehicles.hpp @@ -48,6 +48,7 @@ class CfgVehicles { MACRO_ADDITEM(Attachable_Helistretcher,5); MACRO_ADDITEM(kat_stretcherBag,5); MACRO_ADDITEM(kat_accuvac,2); + MACRO_ADDITEM(kat_suction,15); MACRO_ADDITEM(kat_guedel,15); MACRO_ADDITEM(kat_larynx,15); MACRO_ADDITEM(kat_aatKit,15);