From fe21afe952792ed2ae6c27d3b3891595a4793602 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:03:35 +0200 Subject: [PATCH 01/52] Adding respirator functions --- .../fnc_checkRespiratorConditions.sqf | 50 ++++++++++ .../functions/fnc_connectRespirator.sqf | 95 +++++++++++++++++++ addons/goggles/functions/fnc_hideHose.sqf | 35 +++++++ addons/goggles/functions/fnc_toggleMask.sqf | 33 +++++++ 4 files changed, 213 insertions(+) create mode 100644 addons/goggles/functions/fnc_checkRespiratorConditions.sqf create mode 100644 addons/goggles/functions/fnc_connectRespirator.sqf create mode 100644 addons/goggles/functions/fnc_hideHose.sqf create mode 100644 addons/goggles/functions/fnc_toggleMask.sqf diff --git a/addons/goggles/functions/fnc_checkRespiratorConditions.sqf b/addons/goggles/functions/fnc_checkRespiratorConditions.sqf new file mode 100644 index 00000000000..26d52aeb3e7 --- /dev/null +++ b/addons/goggles/functions/fnc_checkRespiratorConditions.sqf @@ -0,0 +1,50 @@ +private _unit = ACE_player; + +if (!local _unit) exitWith {false}; + +private _mode = _this; + +private _goggles = goggles _unit; +private _backpack = backpackContainer _unit; +private _backpackType = backpack _unit; +private _objectTextures = getObjectTextures _backpack; +private _showAction = false; + +private _allowedGoggles = [ + "G_AirPurifyingRespirator_01_F", + "G_AirPurifyingRespirator_01_nofilter_F", + "G_AirPurifyingRespirator_02_black_F", + "G_AirPurifyingRespirator_02_black_nofilter_F", + "G_AirPurifyingRespirator_02_olive_F", + "G_AirPurifyingRespirator_02_olive_nofilter_F", + "G_AirPurifyingRespirator_02_sand_F", + "G_AirPurifyingRespirator_02_sand_nofilter_F", + "G_RegulatorMask_F" + ]; +private _allowedBackpacks = [ + "B_CombinationUnitRespirator_01_F", + "B_SCBA_01_F" + ]; + +if (isNull _backpack || {!(_backpackType in _allowedBackpacks)}) then {_objectTextures = ["","","","",""]}; + +switch _mode do { + case "combo": { + if !(_goggles in _allowedGoggles) exitWith {}; + if !(_backpackType in _allowedBackpacks) exitWith {}; + if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; + _showAction = true; + }; + case "mask": { + if !(_goggles in (_allowedGoggles - ["G_RegulatorMask_F"])) exitWith {}; + if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; + _showAction = true; + }; + case "hose": { + if !(_backpackType in _allowedBackpacks) exitWith {}; + if !(_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; + _showAction = true; + }; + default {_showAction = false}; +}; +_showAction; diff --git a/addons/goggles/functions/fnc_connectRespirator.sqf b/addons/goggles/functions/fnc_connectRespirator.sqf new file mode 100644 index 00000000000..ee4fad5e79d --- /dev/null +++ b/addons/goggles/functions/fnc_connectRespirator.sqf @@ -0,0 +1,95 @@ +private _unit = ACE_player; + +if (!local _unit) exitWith {}; + +private _goggles = goggles _unit; +private _backpack = backpackContainer _unit; +private _backpackType = backpack _unit; +private _objectTextures = getObjectTextures _backpack; + +if (_objectTextures#1 isEqualTo "" && _objectTextures#2 isEqualTo "") then { + switch true do { + case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; + + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; + + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + }; + }; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_black_F", "G_AirPurifyingRespirator_02_black_nofilter_F"]): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; + + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; + + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + }; + }; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_olive_F", "G_AirPurifyingRespirator_02_olive_nofilter_F"]): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; + + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; + + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + }; + }; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_sand_F", "G_AirPurifyingRespirator_02_sand_nofilter_F"]): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; + + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; + + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + }; + }; + }; + case (_goggles isEqualTo "G_RegulatorMask_F"): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + _backpack setObjectTextureGlobal [3, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _backpack setObjectTextureGlobal [1, ""]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + }; + }; + }; + }; + default {}; +}; \ No newline at end of file diff --git a/addons/goggles/functions/fnc_hideHose.sqf b/addons/goggles/functions/fnc_hideHose.sqf new file mode 100644 index 00000000000..d182e96c1ee --- /dev/null +++ b/addons/goggles/functions/fnc_hideHose.sqf @@ -0,0 +1,35 @@ +private _unit = ACE_player; + +if (!local _unit) exitWith {}; + +private _goggles = goggles _unit; +private _backpack = backpackContainer _unit; +private _backpackType = backpack _unit; + +switch _backpackType do { + case "B_CombinationUnitRespirator_01_F": { + _backpack setObjectTextureGlobal [1, ""]; + _backpack setObjectTextureGlobal [2, ""]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case "B_SCBA_01_F": { + _backpack setObjectTextureGlobal [1, ""]; + _backpack setObjectTextureGlobal [2, ""]; + }; +}; + +switch true do { + case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { + _unit linkItem "G_AirPurifyingRespirator_01_F"; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_black_F", "G_AirPurifyingRespirator_02_black_nofilter_F"]): { + _unit linkItem "G_AirPurifyingRespirator_02_black_F"; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_olive_F", "G_AirPurifyingRespirator_02_olive_nofilter_F"]): { + _unit linkItem "G_AirPurifyingRespirator_02_olive_F"; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_sand_F", "G_AirPurifyingRespirator_02_sand_nofilter_F"]): { + _unit linkItem "G_AirPurifyingRespirator_02_sand_F"; + }; + default {}; +}; \ No newline at end of file diff --git a/addons/goggles/functions/fnc_toggleMask.sqf b/addons/goggles/functions/fnc_toggleMask.sqf new file mode 100644 index 00000000000..e1d6e8cd7c6 --- /dev/null +++ b/addons/goggles/functions/fnc_toggleMask.sqf @@ -0,0 +1,33 @@ +private _unit = ACE_player; + +if (!local _unit) exitWith {}; + +private _goggles = goggles _unit; + +switch _goggles do { + case "G_AirPurifyingRespirator_01_F": { + _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; + }; + case "G_AirPurifyingRespirator_02_black_F": { + _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; + }; + case "G_AirPurifyingRespirator_02_olive_F": { + _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; + }; + case "G_AirPurifyingRespirator_02_sand_F": { + _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; + }; + case "G_AirPurifyingRespirator_01_nofilter_F": { + _unit linkItem "G_AirPurifyingRespirator_01_F"; + }; + case "G_AirPurifyingRespirator_02_black_nofilter_F": { + _unit linkItem "G_AirPurifyingRespirator_02_black_F"; + }; + case "G_AirPurifyingRespirator_02_olive_nofilter_F": { + _unit linkItem "G_AirPurifyingRespirator_02_olive_F"; + }; + case "G_AirPurifyingRespirator_02_sand_nofilter_F": { + _unit linkItem "G_AirPurifyingRespirator_02_sand_F"; + }; + default {}; +}; From ce5ff599e0f58a578a137bef740b06a1fd0fb203 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:05:08 +0200 Subject: [PATCH 02/52] Adding respirator equipment self interactions --- addons/goggles/CfgVehicles.hpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/addons/goggles/CfgVehicles.hpp b/addons/goggles/CfgVehicles.hpp index 68506d3269f..28238dfaa3d 100644 --- a/addons/goggles/CfgVehicles.hpp +++ b/addons/goggles/CfgVehicles.hpp @@ -9,6 +9,24 @@ class CfgVehicles { statement = QUOTE(call FUNC(clearGlasses)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; + class GVAR(ConnectRespirator) { + displayName = CSTRING(connectRespirator); + condition = QUOTE('combo' call FUNC(checkRespiratorConditions)); + statement = QUOTE(call FUNC(connectRespirator)); + exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; + }; + class GVAR(toggleMask) { + displayName = CSTRING(ToggleMask); + condition = QUOTE('mask' call FUNC(checkRespiratorConditions)); + statement = QUOTE(call FUNC(toggleMask)); + exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; + }; + class GVAR(hideHose) { + displayName = CSTRING(HideHose); + condition = QUOTE('hose' call FUNC(checkRespiratorConditions)); + statement = QUOTE(call FUNC(hideHose)); + exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; + }; }; }; }; From 2adc0a6d3fad44f7ec4856d4aa95b353bf8d1035 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:05:51 +0200 Subject: [PATCH 03/52] Adding respirator functions to prep --- addons/goggles/XEH_PREP.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/goggles/XEH_PREP.hpp b/addons/goggles/XEH_PREP.hpp index 1716bdf58d5..82eaa476f00 100644 --- a/addons/goggles/XEH_PREP.hpp +++ b/addons/goggles/XEH_PREP.hpp @@ -22,6 +22,12 @@ PREP(canWipeGlasses); PREP(clearGlasses); PREP(getExplosionIndex); +// respirator +PREP(checkRespiratorConditions); +PREP(connectRespirator); +PREP(toggleMask); +PREP(hideHose); + // eventhandlers PREP(handleExplosion); PREP(handleFired); From 17097386a74f621c44172578b269f8d4c27bd546 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:34:26 +0200 Subject: [PATCH 04/52] Adding respirator stringtable entries Sorted so HEMTT's OCD doesn't yell at me, feel free to shift around if need be. --- addons/goggles/stringtable.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 044cad0d812..c90b61b7aec 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -17,6 +17,18 @@ 护目镜 Gözlük + + Connect Respirator + Atemschutzgerät Verbinden + + + Disconnect Respirator + Atemschutzgerät Trennen + + + Toggle Filters + Atemschutzfilter Montieren/Demontieren + Show Goggles Overlay Afficher la superposition des lunettes From 453560a7e07d92a6aef3be1f0a9cc17c9049e5ee Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:35:39 +0200 Subject: [PATCH 05/52] Updated function names They should now be more similar --- addons/goggles/CfgVehicles.hpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/addons/goggles/CfgVehicles.hpp b/addons/goggles/CfgVehicles.hpp index 28238dfaa3d..a32c58854c4 100644 --- a/addons/goggles/CfgVehicles.hpp +++ b/addons/goggles/CfgVehicles.hpp @@ -9,22 +9,22 @@ class CfgVehicles { statement = QUOTE(call FUNC(clearGlasses)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; - class GVAR(ConnectRespirator) { - displayName = CSTRING(connectRespirator); - condition = QUOTE('combo' call FUNC(checkRespiratorConditions)); - statement = QUOTE(call FUNC(connectRespirator)); + class GVAR(respiratorConnect) { + displayName = CSTRING(Respirator_Connect); + condition = QUOTE('combo' call FUNC(respiratorCondition)); + statement = QUOTE(call FUNC(respiratorConnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; - class GVAR(toggleMask) { - displayName = CSTRING(ToggleMask); - condition = QUOTE('mask' call FUNC(checkRespiratorConditions)); - statement = QUOTE(call FUNC(toggleMask)); + class GVAR(respiratorDisconnect) { + displayName = CSTRING(Respirator_Disconnect); + condition = QUOTE('hose' call FUNC(respiratorCondition)); + statement = QUOTE(call FUNC(respiratorDisconnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; - class GVAR(hideHose) { - displayName = CSTRING(HideHose); - condition = QUOTE('hose' call FUNC(checkRespiratorConditions)); - statement = QUOTE(call FUNC(hideHose)); + class GVAR(respiratorFilter) { + displayName = CSTRING(Respirator_Filters); + condition = QUOTE('mask' call FUNC(respiratorCondition)); + statement = QUOTE(call FUNC(respiratorFilter)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; }; From 1bcc725506671791e2681dc0f279292e94e2b413 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:36:41 +0200 Subject: [PATCH 06/52] Updated respirator function names They should now be more similar --- addons/goggles/XEH_PREP.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/goggles/XEH_PREP.hpp b/addons/goggles/XEH_PREP.hpp index 82eaa476f00..f4845a13858 100644 --- a/addons/goggles/XEH_PREP.hpp +++ b/addons/goggles/XEH_PREP.hpp @@ -23,10 +23,10 @@ PREP(clearGlasses); PREP(getExplosionIndex); // respirator -PREP(checkRespiratorConditions); -PREP(connectRespirator); -PREP(toggleMask); -PREP(hideHose); +PREP(respiratorCondition); +PREP(respiratorConnect); +PREP(respiratorDisconnect); +PREP(respiratorFilter); // eventhandlers PREP(handleExplosion); From 8c503f802c9b588be7815878927a146c8ac389b3 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:37:47 +0200 Subject: [PATCH 07/52] Update and rename fnc_connectRespirator.sqf to fnc_respiratorConnect.sqf --- .../{fnc_connectRespirator.sqf => fnc_respiratorConnect.sqf} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename addons/goggles/functions/{fnc_connectRespirator.sqf => fnc_respiratorConnect.sqf} (97%) diff --git a/addons/goggles/functions/fnc_connectRespirator.sqf b/addons/goggles/functions/fnc_respiratorConnect.sqf similarity index 97% rename from addons/goggles/functions/fnc_connectRespirator.sqf rename to addons/goggles/functions/fnc_respiratorConnect.sqf index ee4fad5e79d..8c8d792c052 100644 --- a/addons/goggles/functions/fnc_connectRespirator.sqf +++ b/addons/goggles/functions/fnc_respiratorConnect.sqf @@ -92,4 +92,4 @@ if (_objectTextures#1 isEqualTo "" && _objectTextures#2 isEqualTo "") then { }; }; default {}; -}; \ No newline at end of file +}; From 52c982140badcd7a00f8a26299956fd4fdfa9630 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:38:10 +0200 Subject: [PATCH 08/52] Update and rename fnc_checkRespiratorConditions.sqf to fnc_respiratorCondition.sqf --- ..._checkRespiratorConditions.sqf => fnc_respiratorCondition.sqf} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename addons/goggles/functions/{fnc_checkRespiratorConditions.sqf => fnc_respiratorCondition.sqf} (100%) diff --git a/addons/goggles/functions/fnc_checkRespiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorCondition.sqf similarity index 100% rename from addons/goggles/functions/fnc_checkRespiratorConditions.sqf rename to addons/goggles/functions/fnc_respiratorCondition.sqf From 4bf002fb3fd6a226d7594028498d208e95733b20 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:39:02 +0200 Subject: [PATCH 09/52] Update and rename fnc_respiratorCondition.sqf to fnc_respiratorConditions.sqf --- .../{fnc_respiratorCondition.sqf => fnc_respiratorConditions.sqf} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename addons/goggles/functions/{fnc_respiratorCondition.sqf => fnc_respiratorConditions.sqf} (100%) diff --git a/addons/goggles/functions/fnc_respiratorCondition.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf similarity index 100% rename from addons/goggles/functions/fnc_respiratorCondition.sqf rename to addons/goggles/functions/fnc_respiratorConditions.sqf From 30aeca2c9c4f70eeb465f1172580ccd811ac7930 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:39:46 +0200 Subject: [PATCH 10/52] Update and rename fnc_hideHose.sqf to fnc_respiratorDisconnect.sqf --- .../{fnc_hideHose.sqf => fnc_respiratorDisconnect.sqf} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename addons/goggles/functions/{fnc_hideHose.sqf => fnc_respiratorDisconnect.sqf} (96%) diff --git a/addons/goggles/functions/fnc_hideHose.sqf b/addons/goggles/functions/fnc_respiratorDisconnect.sqf similarity index 96% rename from addons/goggles/functions/fnc_hideHose.sqf rename to addons/goggles/functions/fnc_respiratorDisconnect.sqf index d182e96c1ee..92f85392db9 100644 --- a/addons/goggles/functions/fnc_hideHose.sqf +++ b/addons/goggles/functions/fnc_respiratorDisconnect.sqf @@ -32,4 +32,4 @@ switch true do { _unit linkItem "G_AirPurifyingRespirator_02_sand_F"; }; default {}; -}; \ No newline at end of file +}; From 08a5372c5e6fc09e849d2aceafe4c443ff8ed2a9 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:40:01 +0200 Subject: [PATCH 11/52] Update and rename fnc_toggleMask.sqf to fnc_respiratorFilter.sqf --- .../functions/{fnc_toggleMask.sqf => fnc_respiratorFilter.sqf} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename addons/goggles/functions/{fnc_toggleMask.sqf => fnc_respiratorFilter.sqf} (100%) diff --git a/addons/goggles/functions/fnc_toggleMask.sqf b/addons/goggles/functions/fnc_respiratorFilter.sqf similarity index 100% rename from addons/goggles/functions/fnc_toggleMask.sqf rename to addons/goggles/functions/fnc_respiratorFilter.sqf From d5124fe59b3df9cf6d46c2cddf3436d28f85b69c Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:40:48 +0200 Subject: [PATCH 12/52] respiratorCondition -> respiratorConditions Makes it slightly clearer --- addons/goggles/XEH_PREP.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/XEH_PREP.hpp b/addons/goggles/XEH_PREP.hpp index f4845a13858..795ed7bc464 100644 --- a/addons/goggles/XEH_PREP.hpp +++ b/addons/goggles/XEH_PREP.hpp @@ -23,7 +23,7 @@ PREP(clearGlasses); PREP(getExplosionIndex); // respirator -PREP(respiratorCondition); +PREP(respiratorConditions); PREP(respiratorConnect); PREP(respiratorDisconnect); PREP(respiratorFilter); From b10e252f83c383327476c6a220e5774f5f94530e Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:41:10 +0200 Subject: [PATCH 13/52] respiratorCondition -> respiratorConditions Makes it slightly clearer --- addons/goggles/CfgVehicles.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/goggles/CfgVehicles.hpp b/addons/goggles/CfgVehicles.hpp index a32c58854c4..5448723bb74 100644 --- a/addons/goggles/CfgVehicles.hpp +++ b/addons/goggles/CfgVehicles.hpp @@ -11,19 +11,19 @@ class CfgVehicles { }; class GVAR(respiratorConnect) { displayName = CSTRING(Respirator_Connect); - condition = QUOTE('combo' call FUNC(respiratorCondition)); + condition = QUOTE('combo' call FUNC(respiratorConditions)); statement = QUOTE(call FUNC(respiratorConnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; class GVAR(respiratorDisconnect) { displayName = CSTRING(Respirator_Disconnect); - condition = QUOTE('hose' call FUNC(respiratorCondition)); + condition = QUOTE('hose' call FUNC(respiratorConditions)); statement = QUOTE(call FUNC(respiratorDisconnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; class GVAR(respiratorFilter) { displayName = CSTRING(Respirator_Filters); - condition = QUOTE('mask' call FUNC(respiratorCondition)); + condition = QUOTE('mask' call FUNC(respiratorConditions)); statement = QUOTE(call FUNC(respiratorFilter)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; From efb91dd95b97baf404a529a10519b00397f0db3a Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 00:44:10 +0200 Subject: [PATCH 14/52] Added self to contributors Feel free to delete if inappropriate. --- AUTHORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.txt b/AUTHORS.txt index bff0039f5c7..4fd35f29276 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -124,6 +124,7 @@ Hybrid V Hypoxic JasperRab JDT +JetfireBlack john681611 JoramD Joe DeShon From 9886d5eedf88b0f056e109df9a9aa9679db2f89e Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 01:35:37 +0200 Subject: [PATCH 15/52] Enclosed argument in array --- addons/goggles/CfgVehicles.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/goggles/CfgVehicles.hpp b/addons/goggles/CfgVehicles.hpp index 5448723bb74..7f4109b7ff2 100644 --- a/addons/goggles/CfgVehicles.hpp +++ b/addons/goggles/CfgVehicles.hpp @@ -11,19 +11,19 @@ class CfgVehicles { }; class GVAR(respiratorConnect) { displayName = CSTRING(Respirator_Connect); - condition = QUOTE('combo' call FUNC(respiratorConditions)); + condition = QUOTE(['combo'] call FUNC(respiratorConditions)); statement = QUOTE(call FUNC(respiratorConnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; class GVAR(respiratorDisconnect) { displayName = CSTRING(Respirator_Disconnect); - condition = QUOTE('hose' call FUNC(respiratorConditions)); + condition = QUOTE(['hose'] call FUNC(respiratorConditions)); statement = QUOTE(call FUNC(respiratorDisconnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; class GVAR(respiratorFilter) { displayName = CSTRING(Respirator_Filters); - condition = QUOTE('mask' call FUNC(respiratorConditions)); + condition = QUOTE(['mask'] call FUNC(respiratorConditions)); statement = QUOTE(call FUNC(respiratorFilter)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; From 35c68abbe869ddacf02e17a48ccb81daa2986443 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 01:53:19 +0200 Subject: [PATCH 16/52] Added comments --- .../functions/fnc_respiratorConditions.sqf | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 26d52aeb3e7..8a0e8e99dd0 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -1,8 +1,25 @@ +#include "..\script_component.hpp" +/* + * Author: JetfireBlack + * Checks if respirator interactions should be shown based on equipment combinations + * + * Arguments: + * 0: mode + * + * Return Value: + * Should interaction be shown? + * + * Example: + * ["combo"] call ace_goggles_fnc_respiratorConditions + * + * Public: yes + */ + private _unit = ACE_player; if (!local _unit) exitWith {false}; -private _mode = _this; +params ["_mode"]; private _goggles = goggles _unit; private _backpack = backpackContainer _unit; @@ -10,6 +27,7 @@ private _backpackType = backpack _unit; private _objectTextures = getObjectTextures _backpack; private _showAction = false; +// Contact DLC respirators private _allowedGoggles = [ "G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F", @@ -21,6 +39,7 @@ private _allowedGoggles = [ "G_AirPurifyingRespirator_02_sand_nofilter_F", "G_RegulatorMask_F" ]; +// Contact DLC respirator backpacks private _allowedBackpacks = [ "B_CombinationUnitRespirator_01_F", "B_SCBA_01_F" @@ -29,17 +48,20 @@ private _allowedBackpacks = [ if (isNull _backpack || {!(_backpackType in _allowedBackpacks)}) then {_objectTextures = ["","","","",""]}; switch _mode do { + // only show when appropriate respirator and backpack are worn case "combo": { if !(_goggles in _allowedGoggles) exitWith {}; if !(_backpackType in _allowedBackpacks) exitWith {}; if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; _showAction = true; }; + // always show when wearing mask with filters case "mask": { if !(_goggles in (_allowedGoggles - ["G_RegulatorMask_F"])) exitWith {}; if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; _showAction = true; }; + // shown only when hose is present regardless of respirator (Arma does not dynamically remove the hose) case "hose": { if !(_backpackType in _allowedBackpacks) exitWith {}; if !(_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; From 5c850154e7068ee427c6eb3b105b006bbd8b3be9 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 01:53:38 +0200 Subject: [PATCH 17/52] Added comments --- .../functions/fnc_respiratorConnect.sqf | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/addons/goggles/functions/fnc_respiratorConnect.sqf b/addons/goggles/functions/fnc_respiratorConnect.sqf index 8c8d792c052..7571226b050 100644 --- a/addons/goggles/functions/fnc_respiratorConnect.sqf +++ b/addons/goggles/functions/fnc_respiratorConnect.sqf @@ -1,3 +1,20 @@ +#include "..\script_component.hpp" +/* + * Author: Bohemia Interactive, adapted to ACE by JetfireBlack + * Removes respirator filter if it has one and connects appropriate backpack hose + * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * call ace_goggles_fnc_respiratorConnect + * + * Public: yes + */ + private _unit = ACE_player; if (!local _unit) exitWith {}; @@ -7,6 +24,7 @@ private _backpack = backpackContainer _unit; private _backpackType = backpack _unit; private _objectTextures = getObjectTextures _backpack; +// shows correct hoses and removes filters for each respirator+backpack combination if (_objectTextures#1 isEqualTo "" && _objectTextures#2 isEqualTo "") then { switch true do { case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { From c11bc6b8ecd67710152352230f7ac1c5910cdb31 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 01:53:57 +0200 Subject: [PATCH 18/52] Added comments --- .../functions/fnc_respiratorDisconnect.sqf | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/addons/goggles/functions/fnc_respiratorDisconnect.sqf b/addons/goggles/functions/fnc_respiratorDisconnect.sqf index 92f85392db9..7b699cc3a72 100644 --- a/addons/goggles/functions/fnc_respiratorDisconnect.sqf +++ b/addons/goggles/functions/fnc_respiratorDisconnect.sqf @@ -1,3 +1,20 @@ +#include "..\script_component.hpp" +/* + * Author: JetfireBlack + * Hides backpack hose and reattaches respirator filter if there is one + * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * call ace_goggles_fnc_respiratorDisconnect + * + * Public: yes + */ + private _unit = ACE_player; if (!local _unit) exitWith {}; @@ -6,6 +23,7 @@ private _goggles = goggles _unit; private _backpack = backpackContainer _unit; private _backpackType = backpack _unit; +// remove hoses switch _backpackType do { case "B_CombinationUnitRespirator_01_F": { _backpack setObjectTextureGlobal [1, ""]; @@ -18,6 +36,7 @@ switch _backpackType do { }; }; +// add filters back switch true do { case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { _unit linkItem "G_AirPurifyingRespirator_01_F"; From 19fe34c4e23be95ecb55edabc5f7ef6814cafbe1 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 01:54:13 +0200 Subject: [PATCH 19/52] Added comments --- .../goggles/functions/fnc_respiratorFilter.sqf | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/addons/goggles/functions/fnc_respiratorFilter.sqf b/addons/goggles/functions/fnc_respiratorFilter.sqf index e1d6e8cd7c6..5325d00667c 100644 --- a/addons/goggles/functions/fnc_respiratorFilter.sqf +++ b/addons/goggles/functions/fnc_respiratorFilter.sqf @@ -1,9 +1,27 @@ +#include "..\script_component.hpp" +/* + * Author: JetfireBlack + * Toggles respirator filter + * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * call ace_goggles_fnc_respiratorFilter + * + * Public: yes + */ + private _unit = ACE_player; if (!local _unit) exitWith {}; private _goggles = goggles _unit; +// toggle filters switch _goggles do { case "G_AirPurifyingRespirator_01_F": { _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; From 857472bed229509f5812f143a94316dddc271f5a Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:48:04 +0200 Subject: [PATCH 20/52] Update addons/goggles/CfgVehicles.hpp Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com> --- addons/goggles/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/CfgVehicles.hpp b/addons/goggles/CfgVehicles.hpp index 7f4109b7ff2..afdb62ed56b 100644 --- a/addons/goggles/CfgVehicles.hpp +++ b/addons/goggles/CfgVehicles.hpp @@ -11,7 +11,7 @@ class CfgVehicles { }; class GVAR(respiratorConnect) { displayName = CSTRING(Respirator_Connect); - condition = QUOTE(['combo'] call FUNC(respiratorConditions)); + condition = QUOTE('combo' call FUNC(respiratorConditions)); statement = QUOTE(call FUNC(respiratorConnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; From 7c10fadda921fd11a7303648caf5615f3fa49546 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:48:23 +0200 Subject: [PATCH 21/52] Update addons/goggles/CfgVehicles.hpp Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com> --- addons/goggles/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/CfgVehicles.hpp b/addons/goggles/CfgVehicles.hpp index afdb62ed56b..620e8d64d69 100644 --- a/addons/goggles/CfgVehicles.hpp +++ b/addons/goggles/CfgVehicles.hpp @@ -17,7 +17,7 @@ class CfgVehicles { }; class GVAR(respiratorDisconnect) { displayName = CSTRING(Respirator_Disconnect); - condition = QUOTE(['hose'] call FUNC(respiratorConditions)); + condition = QUOTE('hose' call FUNC(respiratorConditions)); statement = QUOTE(call FUNC(respiratorDisconnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; From 07e349609279318169b761b4bca47f4b0f88795d Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:48:29 +0200 Subject: [PATCH 22/52] Update addons/goggles/CfgVehicles.hpp Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com> --- addons/goggles/CfgVehicles.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/CfgVehicles.hpp b/addons/goggles/CfgVehicles.hpp index 620e8d64d69..5448723bb74 100644 --- a/addons/goggles/CfgVehicles.hpp +++ b/addons/goggles/CfgVehicles.hpp @@ -23,7 +23,7 @@ class CfgVehicles { }; class GVAR(respiratorFilter) { displayName = CSTRING(Respirator_Filters); - condition = QUOTE(['mask'] call FUNC(respiratorConditions)); + condition = QUOTE('mask' call FUNC(respiratorConditions)); statement = QUOTE(call FUNC(respiratorFilter)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; From 2a7b5831352d4698b19eb9f10a2ea59d925f6a83 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:48:38 +0200 Subject: [PATCH 23/52] Update addons/goggles/functions/fnc_respiratorConditions.sqf Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com> --- addons/goggles/functions/fnc_respiratorConditions.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 8a0e8e99dd0..447f8d2b4f2 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -4,7 +4,8 @@ * Checks if respirator interactions should be shown based on equipment combinations * * Arguments: - * 0: mode + * 0: Mode + * * Return Value: * Should interaction be shown? From f30826fde3e755d7bed82ad667b13f2d1a310f8d Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:48:48 +0200 Subject: [PATCH 24/52] Update addons/goggles/functions/fnc_respiratorConditions.sqf Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com> --- addons/goggles/functions/fnc_respiratorConditions.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 447f8d2b4f2..4caaa01837c 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -11,7 +11,8 @@ * Should interaction be shown? * * Example: - * ["combo"] call ace_goggles_fnc_respiratorConditions + * "combo" call ace_goggles_fnc_respiratorConditions + * * Public: yes */ From 7dec5ca7ccec9bbbf0674f9bb2245f1383164e79 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:48:55 +0200 Subject: [PATCH 25/52] Update addons/goggles/functions/fnc_respiratorConditions.sqf Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com> --- addons/goggles/functions/fnc_respiratorConditions.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 4caaa01837c..64b598b8146 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -14,7 +14,8 @@ * "combo" call ace_goggles_fnc_respiratorConditions * - * Public: yes + * Public: Yes + */ private _unit = ACE_player; From 28b02beade021af5a75c32420a1481444d44f847 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:49:09 +0200 Subject: [PATCH 26/52] Update addons/goggles/functions/fnc_respiratorConnect.sqf Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com> --- addons/goggles/functions/fnc_respiratorConnect.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorConnect.sqf b/addons/goggles/functions/fnc_respiratorConnect.sqf index 7571226b050..954c757599d 100644 --- a/addons/goggles/functions/fnc_respiratorConnect.sqf +++ b/addons/goggles/functions/fnc_respiratorConnect.sqf @@ -12,7 +12,7 @@ * Example: * call ace_goggles_fnc_respiratorConnect * - * Public: yes + * Public: Yes */ private _unit = ACE_player; From 6ca42a6f9c49bcfaf726a03f1f6990107663a4aa Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:49:40 +0200 Subject: [PATCH 27/52] Update addons/goggles/functions/fnc_respiratorDisconnect.sqf Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com> --- addons/goggles/functions/fnc_respiratorDisconnect.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorDisconnect.sqf b/addons/goggles/functions/fnc_respiratorDisconnect.sqf index 7b699cc3a72..b5105671fc0 100644 --- a/addons/goggles/functions/fnc_respiratorDisconnect.sqf +++ b/addons/goggles/functions/fnc_respiratorDisconnect.sqf @@ -12,7 +12,7 @@ * Example: * call ace_goggles_fnc_respiratorDisconnect * - * Public: yes + * Public: Yes */ private _unit = ACE_player; From 575537b7b471e34aba5ba98c95d1d81e4f6caeea Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:49:52 +0200 Subject: [PATCH 28/52] Update addons/goggles/functions/fnc_respiratorFilter.sqf Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com> --- addons/goggles/functions/fnc_respiratorFilter.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorFilter.sqf b/addons/goggles/functions/fnc_respiratorFilter.sqf index 5325d00667c..8fe23dc6af1 100644 --- a/addons/goggles/functions/fnc_respiratorFilter.sqf +++ b/addons/goggles/functions/fnc_respiratorFilter.sqf @@ -12,7 +12,7 @@ * Example: * call ace_goggles_fnc_respiratorFilter * - * Public: yes + * Public: Yes */ private _unit = ACE_player; From 92fe424c2eec0ee449889852f3b65e17d198a7bf Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:55:03 +0200 Subject: [PATCH 29/52] Changed argument and changed public to no --- addons/goggles/functions/fnc_respiratorConditions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 64b598b8146..439a00c13b0 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -14,7 +14,7 @@ * "combo" call ace_goggles_fnc_respiratorConditions * - * Public: Yes + * Public: No */ @@ -22,7 +22,7 @@ private _unit = ACE_player; if (!local _unit) exitWith {false}; -params ["_mode"]; +private _mode = _this; private _goggles = goggles _unit; private _backpack = backpackContainer _unit; From ba4beba277c0db39057da64f096d6188a9c2f9e8 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:58:30 +0200 Subject: [PATCH 30/52] Removed duplicate _showAction --- .../goggles/functions/fnc_respiratorConditions.sqf | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 439a00c13b0..c566950ffde 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -4,25 +4,22 @@ * Checks if respirator interactions should be shown based on equipment combinations * * Arguments: - * 0: Mode - + * 0: mode * * Return Value: * Should interaction be shown? * * Example: - * "combo" call ace_goggles_fnc_respiratorConditions - + * ["combo"] call ace_goggles_fnc_respiratorConditions * - * Public: No - + * Public: yes */ private _unit = ACE_player; if (!local _unit) exitWith {false}; -private _mode = _this; +params ["_mode"]; private _goggles = goggles _unit; private _backpack = backpackContainer _unit; @@ -70,6 +67,6 @@ switch _mode do { if !(_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; _showAction = true; }; - default {_showAction = false}; + default {}; }; _showAction; From b6b5092562ecddb6ea445ce28e29ab8bebde0a5f Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 02:59:49 +0200 Subject: [PATCH 31/52] Reverting accidental undoing of changes --- addons/goggles/functions/fnc_respiratorConditions.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index c566950ffde..f0592da226b 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -10,16 +10,16 @@ * Should interaction be shown? * * Example: - * ["combo"] call ace_goggles_fnc_respiratorConditions + * "combo" call ace_goggles_fnc_respiratorConditions * - * Public: yes + * Public: No */ private _unit = ACE_player; if (!local _unit) exitWith {false}; -params ["_mode"]; +private _mode = _this; private _goggles = goggles _unit; private _backpack = backpackContainer _unit; From 0732b0349cf840ccdda2fab9c3cea135476fa969 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 03:07:08 +0200 Subject: [PATCH 32/52] Update fnc_respiratorConnect.sqf --- addons/goggles/functions/fnc_respiratorConnect.sqf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorConnect.sqf b/addons/goggles/functions/fnc_respiratorConnect.sqf index 954c757599d..848d8d7bdfd 100644 --- a/addons/goggles/functions/fnc_respiratorConnect.sqf +++ b/addons/goggles/functions/fnc_respiratorConnect.sqf @@ -4,18 +4,19 @@ * Removes respirator filter if it has one and connects appropriate backpack hose * * Arguments: - * None + * 0: Optional unit (default: ACE_player) * * Return Value: * None * - * Example: + * Examples: + * [player] call ace_goggles_fnc_respiratorConnect * call ace_goggles_fnc_respiratorConnect * - * Public: Yes + * Public: No */ -private _unit = ACE_player; +params [["_unit", ACE_player, [objNull]]]; if (!local _unit) exitWith {}; From 686486fc1f86d16b2782f52711c79bff1905a1fa Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 03:07:39 +0200 Subject: [PATCH 33/52] Update fnc_respiratorDisconnect.sqf --- addons/goggles/functions/fnc_respiratorDisconnect.sqf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorDisconnect.sqf b/addons/goggles/functions/fnc_respiratorDisconnect.sqf index b5105671fc0..7e2e78e0891 100644 --- a/addons/goggles/functions/fnc_respiratorDisconnect.sqf +++ b/addons/goggles/functions/fnc_respiratorDisconnect.sqf @@ -4,18 +4,19 @@ * Hides backpack hose and reattaches respirator filter if there is one * * Arguments: - * None + * 0: Optional unit (default: ACE_player) * * Return Value: * None * - * Example: + * Examples: + * [player] call ace_goggles_fnc_respiratorDisconnect * call ace_goggles_fnc_respiratorDisconnect * - * Public: Yes + * Public: No */ -private _unit = ACE_player; +params [["_unit", ACE_player, [objNull]]]; if (!local _unit) exitWith {}; From fb62d41dfb9866a1400ced32be8823b537ac5d18 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 03:08:08 +0200 Subject: [PATCH 34/52] Update fnc_respiratorFilter.sqf --- addons/goggles/functions/fnc_respiratorFilter.sqf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorFilter.sqf b/addons/goggles/functions/fnc_respiratorFilter.sqf index 8fe23dc6af1..5ce5c55a3d3 100644 --- a/addons/goggles/functions/fnc_respiratorFilter.sqf +++ b/addons/goggles/functions/fnc_respiratorFilter.sqf @@ -4,18 +4,19 @@ * Toggles respirator filter * * Arguments: - * None + * 0: Optional unit (default: ACE_player) * * Return Value: * None * - * Example: + * Examples: + * [player] call ace_goggles_fnc_respiratorFilter * call ace_goggles_fnc_respiratorFilter * - * Public: Yes + * Public: No */ -private _unit = ACE_player; +params [["_unit", ACE_player, [objNull]]]; if (!local _unit) exitWith {}; From b5f2108ac5629e0d7a8e903dc33671e387e6a5bb Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 03:08:39 +0200 Subject: [PATCH 35/52] Update fnc_respiratorConditions.sqf --- addons/goggles/functions/fnc_respiratorConditions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index f0592da226b..3b682601fc6 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -4,7 +4,7 @@ * Checks if respirator interactions should be shown based on equipment combinations * * Arguments: - * 0: mode + * 0: Mode * * Return Value: * Should interaction be shown? From 639a6444aaee36e8ae0e6c8d3f4058fb28b1f5e2 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 03:15:25 +0200 Subject: [PATCH 36/52] Update fnc_respiratorConnect.sqf public --- addons/goggles/functions/fnc_respiratorConnect.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorConnect.sqf b/addons/goggles/functions/fnc_respiratorConnect.sqf index 848d8d7bdfd..1af97800f79 100644 --- a/addons/goggles/functions/fnc_respiratorConnect.sqf +++ b/addons/goggles/functions/fnc_respiratorConnect.sqf @@ -13,7 +13,7 @@ * [player] call ace_goggles_fnc_respiratorConnect * call ace_goggles_fnc_respiratorConnect * - * Public: No + * Public: Yes */ params [["_unit", ACE_player, [objNull]]]; From 54736604c0746439c92acb184e06d5d390f38405 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 03:15:35 +0200 Subject: [PATCH 37/52] Update fnc_respiratorDisconnect.sqf public --- addons/goggles/functions/fnc_respiratorDisconnect.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorDisconnect.sqf b/addons/goggles/functions/fnc_respiratorDisconnect.sqf index 7e2e78e0891..200f718fcb9 100644 --- a/addons/goggles/functions/fnc_respiratorDisconnect.sqf +++ b/addons/goggles/functions/fnc_respiratorDisconnect.sqf @@ -13,7 +13,7 @@ * [player] call ace_goggles_fnc_respiratorDisconnect * call ace_goggles_fnc_respiratorDisconnect * - * Public: No + * Public: Yes */ params [["_unit", ACE_player, [objNull]]]; From 34d0d7c1962303495a339d9452d2aad1bf9f4c40 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 03:15:46 +0200 Subject: [PATCH 38/52] Update fnc_respiratorFilter.sqf public --- addons/goggles/functions/fnc_respiratorFilter.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorFilter.sqf b/addons/goggles/functions/fnc_respiratorFilter.sqf index 5ce5c55a3d3..efbe2dd51e2 100644 --- a/addons/goggles/functions/fnc_respiratorFilter.sqf +++ b/addons/goggles/functions/fnc_respiratorFilter.sqf @@ -13,7 +13,7 @@ * [player] call ace_goggles_fnc_respiratorFilter * call ace_goggles_fnc_respiratorFilter * - * Public: No + * Public: Yes */ params [["_unit", ACE_player, [objNull]]]; From a2cea028c7685d080735838c32b22257e7104cf1 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 19:39:41 +0200 Subject: [PATCH 39/52] Update CfgVehicles.hpp tabs to spaces --- addons/goggles/CfgVehicles.hpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/addons/goggles/CfgVehicles.hpp b/addons/goggles/CfgVehicles.hpp index 5448723bb74..3fe006bd240 100644 --- a/addons/goggles/CfgVehicles.hpp +++ b/addons/goggles/CfgVehicles.hpp @@ -9,24 +9,24 @@ class CfgVehicles { statement = QUOTE(call FUNC(clearGlasses)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; }; - class GVAR(respiratorConnect) { - displayName = CSTRING(Respirator_Connect); - condition = QUOTE('combo' call FUNC(respiratorConditions)); - statement = QUOTE(call FUNC(respiratorConnect)); + class GVAR(respiratorConnect) { + displayName = CSTRING(Respirator_Connect); + condition = QUOTE('combo' call FUNC(respiratorConditions)); + statement = QUOTE(call FUNC(respiratorConnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; - }; - class GVAR(respiratorDisconnect) { - displayName = CSTRING(Respirator_Disconnect); - condition = QUOTE('hose' call FUNC(respiratorConditions)); - statement = QUOTE(call FUNC(respiratorDisconnect)); + }; + class GVAR(respiratorDisconnect) { + displayName = CSTRING(Respirator_Disconnect); + condition = QUOTE('hose' call FUNC(respiratorConditions)); + statement = QUOTE(call FUNC(respiratorDisconnect)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; - }; - class GVAR(respiratorFilter) { - displayName = CSTRING(Respirator_Filters); - condition = QUOTE('mask' call FUNC(respiratorConditions)); - statement = QUOTE(call FUNC(respiratorFilter)); + }; + class GVAR(respiratorFilter) { + displayName = CSTRING(Respirator_Filters); + condition = QUOTE('mask' call FUNC(respiratorConditions)); + statement = QUOTE(call FUNC(respiratorFilter)); exceptions[] = {"isNotInside", "isNotSitting", "isNotSwimming", "isNotEscorting"}; - }; + }; }; }; }; From adeeffc0e754fce47f6e2ad6168831ba3b92a1f8 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 19:41:25 +0200 Subject: [PATCH 40/52] Update fnc_respiratorConditions.sqf tabs to spaces --- .../functions/fnc_respiratorConditions.sqf | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 3b682601fc6..26c64cb83a2 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -21,52 +21,52 @@ if (!local _unit) exitWith {false}; private _mode = _this; -private _goggles = goggles _unit; -private _backpack = backpackContainer _unit; -private _backpackType = backpack _unit; +private _goggles = goggles _unit; +private _backpack = backpackContainer _unit; +private _backpackType = backpack _unit; private _objectTextures = getObjectTextures _backpack; -private _showAction = false; +private _showAction = false; // Contact DLC respirators -private _allowedGoggles = [ - "G_AirPurifyingRespirator_01_F", - "G_AirPurifyingRespirator_01_nofilter_F", - "G_AirPurifyingRespirator_02_black_F", - "G_AirPurifyingRespirator_02_black_nofilter_F", - "G_AirPurifyingRespirator_02_olive_F", - "G_AirPurifyingRespirator_02_olive_nofilter_F", - "G_AirPurifyingRespirator_02_sand_F", - "G_AirPurifyingRespirator_02_sand_nofilter_F", - "G_RegulatorMask_F" - ]; +private _allowedGoggles = [ + "G_AirPurifyingRespirator_01_F", + "G_AirPurifyingRespirator_01_nofilter_F", + "G_AirPurifyingRespirator_02_black_F", + "G_AirPurifyingRespirator_02_black_nofilter_F", + "G_AirPurifyingRespirator_02_olive_F", + "G_AirPurifyingRespirator_02_olive_nofilter_F", + "G_AirPurifyingRespirator_02_sand_F", + "G_AirPurifyingRespirator_02_sand_nofilter_F", + "G_RegulatorMask_F" + ]; // Contact DLC respirator backpacks -private _allowedBackpacks = [ - "B_CombinationUnitRespirator_01_F", - "B_SCBA_01_F" - ]; +private _allowedBackpacks = [ + "B_CombinationUnitRespirator_01_F", + "B_SCBA_01_F" + ]; if (isNull _backpack || {!(_backpackType in _allowedBackpacks)}) then {_objectTextures = ["","","","",""]}; switch _mode do { - // only show when appropriate respirator and backpack are worn - case "combo": { - if !(_goggles in _allowedGoggles) exitWith {}; - if !(_backpackType in _allowedBackpacks) exitWith {}; - if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; - _showAction = true; - }; - // always show when wearing mask with filters - case "mask": { - if !(_goggles in (_allowedGoggles - ["G_RegulatorMask_F"])) exitWith {}; - if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; - _showAction = true; - }; - // shown only when hose is present regardless of respirator (Arma does not dynamically remove the hose) - case "hose": { - if !(_backpackType in _allowedBackpacks) exitWith {}; - if !(_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; - _showAction = true; - }; - default {}; + // only show when appropriate respirator and backpack are worn + case "combo": { + if !(_goggles in _allowedGoggles) exitWith {}; + if !(_backpackType in _allowedBackpacks) exitWith {}; + if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; + _showAction = true; + }; + // always show when wearing mask with filters + case "mask": { + if !(_goggles in (_allowedGoggles - ["G_RegulatorMask_F"])) exitWith {}; + if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; + _showAction = true; + }; + // shown only when hose is present regardless of respirator (Arma does not dynamically remove the hose) + case "hose": { + if !(_backpackType in _allowedBackpacks) exitWith {}; + if !(_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; + _showAction = true; + }; + default {}; }; _showAction; From ca7b49273df9968311def669f29abbda67fd57a0 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 19:42:04 +0200 Subject: [PATCH 41/52] Update fnc_respiratorConnect.sqf tabs to spaces --- .../functions/fnc_respiratorConnect.sqf | 158 +++++++++--------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorConnect.sqf b/addons/goggles/functions/fnc_respiratorConnect.sqf index 1af97800f79..0766cceaff6 100644 --- a/addons/goggles/functions/fnc_respiratorConnect.sqf +++ b/addons/goggles/functions/fnc_respiratorConnect.sqf @@ -20,95 +20,95 @@ params [["_unit", ACE_player, [objNull]]]; if (!local _unit) exitWith {}; -private _goggles = goggles _unit; -private _backpack = backpackContainer _unit; -private _backpackType = backpack _unit; +private _goggles = goggles _unit; +private _backpack = backpackContainer _unit; +private _backpackType = backpack _unit; private _objectTextures = getObjectTextures _backpack; // shows correct hoses and removes filters for each respirator+backpack combination if (_objectTextures#1 isEqualTo "" && _objectTextures#2 isEqualTo "") then { - switch true do { - case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; + switch true do { + case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - }; - }; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_black_F", "G_AirPurifyingRespirator_02_black_nofilter_F"]): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + }; + }; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_black_F", "G_AirPurifyingRespirator_02_black_nofilter_F"]): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - }; - }; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_olive_F", "G_AirPurifyingRespirator_02_olive_nofilter_F"]): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + }; + }; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_olive_F", "G_AirPurifyingRespirator_02_olive_nofilter_F"]): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - }; - }; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_sand_F", "G_AirPurifyingRespirator_02_sand_nofilter_F"]): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + }; + }; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_sand_F", "G_AirPurifyingRespirator_02_sand_nofilter_F"]): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - }; - }; - }; - case (_goggles isEqualTo "G_RegulatorMask_F"): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - _backpack setObjectTextureGlobal [3, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _backpack setObjectTextureGlobal [1, ""]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - }; - }; - }; - }; - default {}; + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + }; + }; + }; + case (_goggles isEqualTo "G_RegulatorMask_F"): { + switch true do { + case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { + _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + _backpack setObjectTextureGlobal [2, ""]; + _backpack setObjectTextureGlobal [3, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; + }; + case (_backpackType isEqualTo "B_SCBA_01_F"): { + _backpack setObjectTextureGlobal [1, ""]; + _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; + }; + }; + }; + }; + default {}; }; From 01e0abdc6eba2ff383424ca1a7cfc90f4469db97 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 19:42:34 +0200 Subject: [PATCH 42/52] Update fnc_respiratorDisconnect.sqf tabs to spaces --- .../functions/fnc_respiratorDisconnect.sqf | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorDisconnect.sqf b/addons/goggles/functions/fnc_respiratorDisconnect.sqf index 200f718fcb9..fec55bffc0c 100644 --- a/addons/goggles/functions/fnc_respiratorDisconnect.sqf +++ b/addons/goggles/functions/fnc_respiratorDisconnect.sqf @@ -20,36 +20,36 @@ params [["_unit", ACE_player, [objNull]]]; if (!local _unit) exitWith {}; -private _goggles = goggles _unit; -private _backpack = backpackContainer _unit; -private _backpackType = backpack _unit; +private _goggles = goggles _unit; +private _backpack = backpackContainer _unit; +private _backpackType = backpack _unit; // remove hoses switch _backpackType do { - case "B_CombinationUnitRespirator_01_F": { - _backpack setObjectTextureGlobal [1, ""]; - _backpack setObjectTextureGlobal [2, ""]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case "B_SCBA_01_F": { - _backpack setObjectTextureGlobal [1, ""]; - _backpack setObjectTextureGlobal [2, ""]; - }; + case "B_CombinationUnitRespirator_01_F": { + _backpack setObjectTextureGlobal [1, ""]; + _backpack setObjectTextureGlobal [2, ""]; + _backpack setObjectTextureGlobal [3, ""]; + }; + case "B_SCBA_01_F": { + _backpack setObjectTextureGlobal [1, ""]; + _backpack setObjectTextureGlobal [2, ""]; + }; }; // add filters back switch true do { - case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { - _unit linkItem "G_AirPurifyingRespirator_01_F"; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_black_F", "G_AirPurifyingRespirator_02_black_nofilter_F"]): { - _unit linkItem "G_AirPurifyingRespirator_02_black_F"; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_olive_F", "G_AirPurifyingRespirator_02_olive_nofilter_F"]): { - _unit linkItem "G_AirPurifyingRespirator_02_olive_F"; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_sand_F", "G_AirPurifyingRespirator_02_sand_nofilter_F"]): { - _unit linkItem "G_AirPurifyingRespirator_02_sand_F"; - }; - default {}; + case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { + _unit linkItem "G_AirPurifyingRespirator_01_F"; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_black_F", "G_AirPurifyingRespirator_02_black_nofilter_F"]): { + _unit linkItem "G_AirPurifyingRespirator_02_black_F"; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_olive_F", "G_AirPurifyingRespirator_02_olive_nofilter_F"]): { + _unit linkItem "G_AirPurifyingRespirator_02_olive_F"; + }; + case (_goggles in ["G_AirPurifyingRespirator_02_sand_F", "G_AirPurifyingRespirator_02_sand_nofilter_F"]): { + _unit linkItem "G_AirPurifyingRespirator_02_sand_F"; + }; + default {}; }; From 834ba556586601ee7976ad6e423359a72e3e64a8 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 19:43:02 +0200 Subject: [PATCH 43/52] Update fnc_respiratorFilter.sqf tabs to spaces --- .../functions/fnc_respiratorFilter.sqf | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorFilter.sqf b/addons/goggles/functions/fnc_respiratorFilter.sqf index efbe2dd51e2..a36710d0de8 100644 --- a/addons/goggles/functions/fnc_respiratorFilter.sqf +++ b/addons/goggles/functions/fnc_respiratorFilter.sqf @@ -24,29 +24,29 @@ private _goggles = goggles _unit; // toggle filters switch _goggles do { - case "G_AirPurifyingRespirator_01_F": { - _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; - }; - case "G_AirPurifyingRespirator_02_black_F": { - _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; - }; - case "G_AirPurifyingRespirator_02_olive_F": { - _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; - }; - case "G_AirPurifyingRespirator_02_sand_F": { - _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; - }; - case "G_AirPurifyingRespirator_01_nofilter_F": { - _unit linkItem "G_AirPurifyingRespirator_01_F"; - }; - case "G_AirPurifyingRespirator_02_black_nofilter_F": { - _unit linkItem "G_AirPurifyingRespirator_02_black_F"; - }; - case "G_AirPurifyingRespirator_02_olive_nofilter_F": { - _unit linkItem "G_AirPurifyingRespirator_02_olive_F"; - }; - case "G_AirPurifyingRespirator_02_sand_nofilter_F": { - _unit linkItem "G_AirPurifyingRespirator_02_sand_F"; - }; - default {}; + case "G_AirPurifyingRespirator_01_F": { + _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; + }; + case "G_AirPurifyingRespirator_02_black_F": { + _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; + }; + case "G_AirPurifyingRespirator_02_olive_F": { + _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; + }; + case "G_AirPurifyingRespirator_02_sand_F": { + _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; + }; + case "G_AirPurifyingRespirator_01_nofilter_F": { + _unit linkItem "G_AirPurifyingRespirator_01_F"; + }; + case "G_AirPurifyingRespirator_02_black_nofilter_F": { + _unit linkItem "G_AirPurifyingRespirator_02_black_F"; + }; + case "G_AirPurifyingRespirator_02_olive_nofilter_F": { + _unit linkItem "G_AirPurifyingRespirator_02_olive_F"; + }; + case "G_AirPurifyingRespirator_02_sand_nofilter_F": { + _unit linkItem "G_AirPurifyingRespirator_02_sand_F"; + }; + default {}; }; From 7c659f51c5696e687a6e277d916e64238c9317de Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Fri, 23 May 2025 22:31:00 +0200 Subject: [PATCH 44/52] Update fnc_respiratorConditions.sqf array indentation --- .../functions/fnc_respiratorConditions.sqf | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 26c64cb83a2..49da11fe8a8 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -28,22 +28,22 @@ private _objectTextures = getObjectTextures _backpack; private _showAction = false; // Contact DLC respirators -private _allowedGoggles = [ - "G_AirPurifyingRespirator_01_F", - "G_AirPurifyingRespirator_01_nofilter_F", - "G_AirPurifyingRespirator_02_black_F", - "G_AirPurifyingRespirator_02_black_nofilter_F", - "G_AirPurifyingRespirator_02_olive_F", - "G_AirPurifyingRespirator_02_olive_nofilter_F", - "G_AirPurifyingRespirator_02_sand_F", - "G_AirPurifyingRespirator_02_sand_nofilter_F", - "G_RegulatorMask_F" - ]; +private _allowedGoggles = [ + "G_AirPurifyingRespirator_01_F", + "G_AirPurifyingRespirator_01_nofilter_F", + "G_AirPurifyingRespirator_02_black_F", + "G_AirPurifyingRespirator_02_black_nofilter_F", + "G_AirPurifyingRespirator_02_olive_F", + "G_AirPurifyingRespirator_02_olive_nofilter_F", + "G_AirPurifyingRespirator_02_sand_F", + "G_AirPurifyingRespirator_02_sand_nofilter_F", + "G_RegulatorMask_F" +]; // Contact DLC respirator backpacks private _allowedBackpacks = [ - "B_CombinationUnitRespirator_01_F", - "B_SCBA_01_F" - ]; + "B_CombinationUnitRespirator_01_F", + "B_SCBA_01_F" +]; if (isNull _backpack || {!(_backpackType in _allowedBackpacks)}) then {_objectTextures = ["","","","",""]}; From 67ed5b41f88b93a888e7f4143c1855bba0d1e324 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Sun, 25 May 2025 14:23:50 +0200 Subject: [PATCH 45/52] CfgVehicles.hpp adding fallbacks for respirator backpacks --- addons/goggles/CfgVehicles.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/addons/goggles/CfgVehicles.hpp b/addons/goggles/CfgVehicles.hpp index 3fe006bd240..dd64a50c909 100644 --- a/addons/goggles/CfgVehicles.hpp +++ b/addons/goggles/CfgVehicles.hpp @@ -30,4 +30,12 @@ class CfgVehicles { }; }; }; + class Bag_Base; + class B_SCBA_01_base_F: Bag_Base { + ACE_RespiratorHoseTextures[] = {0,"",""}; + }; + + class B_CombinationUnitRespirator_01_Base_F: Bag_Base { + ACE_RespiratorHoseTextures[] = {0,"","",""}; + }; }; From 9eaea36b0761b2217494f0742556da1d5e85b9cc Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Sun, 25 May 2025 14:24:28 +0200 Subject: [PATCH 46/52] CfgGlasses.hpp adding configs for respirators --- addons/goggles/CfgGlasses.hpp | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/addons/goggles/CfgGlasses.hpp b/addons/goggles/CfgGlasses.hpp index 2f3a02ef240..61489b128b6 100644 --- a/addons/goggles/CfgGlasses.hpp +++ b/addons/goggles/CfgGlasses.hpp @@ -212,12 +212,58 @@ class CfgGlasses { ACE_Protection = 1; ACE_Overlay_Angle = 180; }; + class G_AirPurifyingRespirator_01_F: G_AirPurifyingRespirator_01_base_F { + ACE_RespiratorFilterPair = "G_AirPurifyingRespirator_01_nofilter_F"; + }; + class G_AirPurifyingRespirator_01_nofilter_F: G_AirPurifyingRespirator_01_F { + ACE_RespiratorFilterPair = "G_AirPurifyingRespirator_01_F"; + ACE_RespiratorHoseList[] = { + {"B_CombinationUnitRespirator_01_F", {0, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa", "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa", ""}}, + {"B_SCBA_01_F", {0, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa", ""}} + }; + }; + class G_AirPurifyingRespirator_02_base_F: G_AirPurifyingRespirator_01_base_F { ACE_Overlay = "a3\ui_f_enoch\data\objects\data\optics_APR_02_CA.paa"; }; + class G_AirPurifyingRespirator_02_black_F: G_AirPurifyingRespirator_02_base_F { + ACE_RespiratorFilterPair = "G_AirPurifyingRespirator_02_black_nofilter_F"; + }; + class G_AirPurifyingRespirator_02_black_nofilter_F: G_AirPurifyingRespirator_02_black_F { + ACE_RespiratorFilterPair = "G_AirPurifyingRespirator_02_black_F"; + ACE_RespiratorHoseList[] = { + {"B_CombinationUnitRespirator_01_F", {0, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa", "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa", ""}}, + {"B_SCBA_01_F", {0, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa", ""}} + }; + }; + class G_AirPurifyingRespirator_02_olive_F: G_AirPurifyingRespirator_02_base_F { + ACE_RespiratorFilterPair = "G_AirPurifyingRespirator_02_olive_nofilter_F"; + }; + class G_AirPurifyingRespirator_02_olive_nofilter_F: G_AirPurifyingRespirator_02_olive_F { + ACE_RespiratorFilterPair = "G_AirPurifyingRespirator_02_olive_F"; + ACE_RespiratorHoseList[] = { + {"B_CombinationUnitRespirator_01_F", {0, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa", "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa", ""}}, + {"B_SCBA_01_F", {0, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa", ""}} + }; + }; + class G_AirPurifyingRespirator_02_sand_F: G_AirPurifyingRespirator_02_base_F { + ACE_RespiratorFilterPair = "G_AirPurifyingRespirator_02_sand_nofilter_F"; + }; + class G_AirPurifyingRespirator_02_sand_nofilter_F: G_AirPurifyingRespirator_02_sand_F { + ACE_RespiratorFilterPair = "G_AirPurifyingRespirator_02_sand_F"; + ACE_RespiratorHoseList[] = { + {"B_CombinationUnitRespirator_01_F", {0, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa", "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa", ""}}, + {"B_SCBA_01_F", {0, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa", ""}} + }; + }; + class G_RegulatorMask_base_F: None { ACE_Overlay = "a3\ui_f_enoch\data\objects\data\optics_regulator_ca.paa"; ACE_OverlayCracked = ""; ACE_Overlay_Angle = 180; + ACE_RespiratorHoseList[] = { + {"B_CombinationUnitRespirator_01_F", {0, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa", "", "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"}}, + {"B_SCBA_01_F", {0, "", "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"}} + }; }; }; From 0b53a72a0bd18acd8f24e25e8bcc4b4e212deafe Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Sun, 25 May 2025 14:25:10 +0200 Subject: [PATCH 47/52] XEH_preInit.sqf declaring variables for respirator pair caching --- addons/goggles/XEH_preInit.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/goggles/XEH_preInit.sqf b/addons/goggles/XEH_preInit.sqf index 894773534a4..de0eed0e02d 100644 --- a/addons/goggles/XEH_preInit.sqf +++ b/addons/goggles/XEH_preInit.sqf @@ -7,5 +7,8 @@ PREP_RECOMPILE_START; PREP_RECOMPILE_END; #include "initSettings.inc.sqf" +GVAR(respiratorPairs) = createHashMap; +GVAR(respiratorHoseList) = createHashMap; +GVAR(respiratorHoseTextures) = createHashMap; ADDON = true; From b5723c88471d46784a217d59588d16b796df6616 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Sun, 25 May 2025 14:25:36 +0200 Subject: [PATCH 48/52] rewrite of fnc_respiratorConditions.sqf --- .../functions/fnc_respiratorConditions.sqf | 46 +++++++++---------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 49da11fe8a8..5a1bb858f2c 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -27,44 +27,40 @@ private _backpackType = backpack _unit; private _objectTextures = getObjectTextures _backpack; private _showAction = false; -// Contact DLC respirators -private _allowedGoggles = [ - "G_AirPurifyingRespirator_01_F", - "G_AirPurifyingRespirator_01_nofilter_F", - "G_AirPurifyingRespirator_02_black_F", - "G_AirPurifyingRespirator_02_black_nofilter_F", - "G_AirPurifyingRespirator_02_olive_F", - "G_AirPurifyingRespirator_02_olive_nofilter_F", - "G_AirPurifyingRespirator_02_sand_F", - "G_AirPurifyingRespirator_02_sand_nofilter_F", - "G_RegulatorMask_F" -]; -// Contact DLC respirator backpacks -private _allowedBackpacks = [ - "B_CombinationUnitRespirator_01_F", - "B_SCBA_01_F" -]; +// retrieve paired respirator and add to cache if not present. +private _respiratorPair = GVAR(respiratorPairs) getOrDefault [_goggles, getText (configFile >> "CfgGlasses" >> _goggles >> "ACE_RespiratorFilterPair"), true]; -if (isNull _backpack || {!(_backpackType in _allowedBackpacks)}) then {_objectTextures = ["","","","",""]}; +// retrieve paired backpacks with textures and add to cache if not present. +private _respiratorHoseList = GVAR(respiratorHoseList) getOrDefault [_goggles, createHashMapFromArray getArray (configFile >> "CfgGlasses" >> _goggles >> "ACE_RespiratorHoseList"), true]; + +// fallback for backpacks with hoses without valid mask (like when switching goggles) +private _respiratorHoseTextures = GVAR(respiratorHoseTextures) getOrDefault [_backpackType, getArray (configFile >> "CfgVehicles" >> _backpackType >> "ACE_RespiratorHoseTextures"), true]; + +_fnc_checkHose = { + private _hoseConnected = false; + { + if (_x isEqualType 0) then {continue}; + if (_objectTextures#_forEachIndex isNotEqualTo "") exitWith {_hoseConnected = true}; + } forEach (GVAR(respiratorHoseList) get _goggles getOrDefault [_backpackType, GVAR(respiratorHoseTextures) get _backpackType]); + _hoseConnected; +}; switch _mode do { // only show when appropriate respirator and backpack are worn case "combo": { - if !(_goggles in _allowedGoggles) exitWith {}; - if !(_backpackType in _allowedBackpacks) exitWith {}; - if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; + if !(_backpackType in _respiratorHoseList) exitWith {}; + if (call _fnc_checkHose) exitWith {}; _showAction = true; }; // always show when wearing mask with filters case "mask": { - if !(_goggles in (_allowedGoggles - ["G_RegulatorMask_F"])) exitWith {}; - if (_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; + if (_respiratorPair isEqualTo "") exitWith {}; + if (call _fnc_checkHose) exitWith {}; _showAction = true; }; // shown only when hose is present regardless of respirator (Arma does not dynamically remove the hose) case "hose": { - if !(_backpackType in _allowedBackpacks) exitWith {}; - if !(_objectTextures#1 isNotEqualTo "" || _objectTextures#2 isNotEqualTo "") exitWith {}; + if !(call _fnc_checkHose) exitWith {}; _showAction = true; }; default {}; From d10c97d650ca4c434c42dd0a1c9e5afaf0932d3d Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Sun, 25 May 2025 14:25:55 +0200 Subject: [PATCH 49/52] rewrite of fnc_respiratorConnect.sqf --- .../functions/fnc_respiratorConnect.sqf | 96 ++----------------- 1 file changed, 6 insertions(+), 90 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorConnect.sqf b/addons/goggles/functions/fnc_respiratorConnect.sqf index 0766cceaff6..c46dce44fa1 100644 --- a/addons/goggles/functions/fnc_respiratorConnect.sqf +++ b/addons/goggles/functions/fnc_respiratorConnect.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* - * Author: Bohemia Interactive, adapted to ACE by JetfireBlack - * Removes respirator filter if it has one and connects appropriate backpack hose + * Author: JetfireBlack + * Connects appropriate backpack hose * * Arguments: * 0: Optional unit (default: ACE_player) @@ -23,92 +23,8 @@ if (!local _unit) exitWith {}; private _goggles = goggles _unit; private _backpack = backpackContainer _unit; private _backpackType = backpack _unit; -private _objectTextures = getObjectTextures _backpack; -// shows correct hoses and removes filters for each respirator+backpack combination -if (_objectTextures#1 isEqualTo "" && _objectTextures#2 isEqualTo "") then { - switch true do { - case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; - - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; - - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - }; - }; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_black_F", "G_AirPurifyingRespirator_02_black_nofilter_F"]): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; - - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; - - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - }; - }; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_olive_F", "G_AirPurifyingRespirator_02_olive_nofilter_F"]): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; - - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; - - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - }; - }; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_sand_F", "G_AirPurifyingRespirator_02_sand_nofilter_F"]): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; - - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; - - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - }; - }; - }; - case (_goggles isEqualTo "G_RegulatorMask_F"): { - switch true do { - case (_backpackType isEqualTo "B_CombinationUnitRespirator_01_F"): { - _backpack setObjectTextureGlobal [1, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - _backpack setObjectTextureGlobal [2, ""]; - _backpack setObjectTextureGlobal [3, "a3\supplies_f_enoch\bags\data\b_cur_01_co.paa"]; - }; - case (_backpackType isEqualTo "B_SCBA_01_F"): { - _backpack setObjectTextureGlobal [1, ""]; - _backpack setObjectTextureGlobal [2, "a3\supplies_f_enoch\bags\data\b_scba_01_co.paa"]; - }; - }; - }; - }; - default {}; -}; +{ + if (_x isEqualType 0) then {continue}; + _backpack setObjectTextureGlobal [_forEachIndex, _x]; +} forEach (GVAR(respiratorHoseList) get _goggles get _backpackType); From 299f749d527785546f8291093e723a130b03b328 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Sun, 25 May 2025 14:26:07 +0200 Subject: [PATCH 50/52] rewrite of fnc_respiratorDisconnect.sqf --- .../functions/fnc_respiratorDisconnect.sqf | 35 +++---------------- 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorDisconnect.sqf b/addons/goggles/functions/fnc_respiratorDisconnect.sqf index fec55bffc0c..5a15c5b06ef 100644 --- a/addons/goggles/functions/fnc_respiratorDisconnect.sqf +++ b/addons/goggles/functions/fnc_respiratorDisconnect.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: JetfireBlack - * Hides backpack hose and reattaches respirator filter if there is one + * Hides backpack hose * * Arguments: * 0: Optional unit (default: ACE_player) @@ -24,32 +24,7 @@ private _goggles = goggles _unit; private _backpack = backpackContainer _unit; private _backpackType = backpack _unit; -// remove hoses -switch _backpackType do { - case "B_CombinationUnitRespirator_01_F": { - _backpack setObjectTextureGlobal [1, ""]; - _backpack setObjectTextureGlobal [2, ""]; - _backpack setObjectTextureGlobal [3, ""]; - }; - case "B_SCBA_01_F": { - _backpack setObjectTextureGlobal [1, ""]; - _backpack setObjectTextureGlobal [2, ""]; - }; -}; - -// add filters back -switch true do { - case (_goggles in ["G_AirPurifyingRespirator_01_F", "G_AirPurifyingRespirator_01_nofilter_F"]): { - _unit linkItem "G_AirPurifyingRespirator_01_F"; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_black_F", "G_AirPurifyingRespirator_02_black_nofilter_F"]): { - _unit linkItem "G_AirPurifyingRespirator_02_black_F"; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_olive_F", "G_AirPurifyingRespirator_02_olive_nofilter_F"]): { - _unit linkItem "G_AirPurifyingRespirator_02_olive_F"; - }; - case (_goggles in ["G_AirPurifyingRespirator_02_sand_F", "G_AirPurifyingRespirator_02_sand_nofilter_F"]): { - _unit linkItem "G_AirPurifyingRespirator_02_sand_F"; - }; - default {}; -}; +{ + if (_x isEqualType 0) then {continue}; + _backpack setObjectTextureGlobal [_forEachIndex, ""]; +} forEach (GVAR(respiratorHoseList) get _goggles getOrDefault [_backpackType, GVAR(respiratorHoseTextures) get _backpackType]); From ab1d357a07bc16f4150bff55006e8f664f4ce16a Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Sun, 25 May 2025 14:26:21 +0200 Subject: [PATCH 51/52] rewrite of fnc_respiratorFilter.sqf --- .../functions/fnc_respiratorFilter.sqf | 29 +------------------ 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/addons/goggles/functions/fnc_respiratorFilter.sqf b/addons/goggles/functions/fnc_respiratorFilter.sqf index a36710d0de8..48614f5226b 100644 --- a/addons/goggles/functions/fnc_respiratorFilter.sqf +++ b/addons/goggles/functions/fnc_respiratorFilter.sqf @@ -22,31 +22,4 @@ if (!local _unit) exitWith {}; private _goggles = goggles _unit; -// toggle filters -switch _goggles do { - case "G_AirPurifyingRespirator_01_F": { - _unit linkItem "G_AirPurifyingRespirator_01_nofilter_F"; - }; - case "G_AirPurifyingRespirator_02_black_F": { - _unit linkItem "G_AirPurifyingRespirator_02_black_nofilter_F"; - }; - case "G_AirPurifyingRespirator_02_olive_F": { - _unit linkItem "G_AirPurifyingRespirator_02_olive_nofilter_F"; - }; - case "G_AirPurifyingRespirator_02_sand_F": { - _unit linkItem "G_AirPurifyingRespirator_02_sand_nofilter_F"; - }; - case "G_AirPurifyingRespirator_01_nofilter_F": { - _unit linkItem "G_AirPurifyingRespirator_01_F"; - }; - case "G_AirPurifyingRespirator_02_black_nofilter_F": { - _unit linkItem "G_AirPurifyingRespirator_02_black_F"; - }; - case "G_AirPurifyingRespirator_02_olive_nofilter_F": { - _unit linkItem "G_AirPurifyingRespirator_02_olive_F"; - }; - case "G_AirPurifyingRespirator_02_sand_nofilter_F": { - _unit linkItem "G_AirPurifyingRespirator_02_sand_F"; - }; - default {}; -}; +_unit linkItem (GVAR(respiratorPairs) get _goggles); From 9fc526ff67abc4f66998ae5643a523b8c8e3f4f8 Mon Sep 17 00:00:00 2001 From: JetfireBlack <42004605+JetfireBlack@users.noreply.github.com> Date: Sun, 25 May 2025 23:36:54 +0200 Subject: [PATCH 52/52] Forgot to make _fnc_checkHose private --- addons/goggles/functions/fnc_respiratorConditions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/goggles/functions/fnc_respiratorConditions.sqf b/addons/goggles/functions/fnc_respiratorConditions.sqf index 5a1bb858f2c..4f5e2110ff5 100644 --- a/addons/goggles/functions/fnc_respiratorConditions.sqf +++ b/addons/goggles/functions/fnc_respiratorConditions.sqf @@ -36,7 +36,7 @@ private _respiratorHoseList = GVAR(respiratorHoseList) getOrDefault [_goggles, c // fallback for backpacks with hoses without valid mask (like when switching goggles) private _respiratorHoseTextures = GVAR(respiratorHoseTextures) getOrDefault [_backpackType, getArray (configFile >> "CfgVehicles" >> _backpackType >> "ACE_RespiratorHoseTextures"), true]; -_fnc_checkHose = { +private _fnc_checkHose = { private _hoseConnected = false; { if (_x isEqualType 0) then {continue};