Skip to content

Goggles - Add Contact DLC respirator self interactions - #10925

Open
JetfireBlack wants to merge 52 commits into
acemod:masterfrom
JetfireBlack:Respirator-Toggle
Open

Goggles - Add Contact DLC respirator self interactions#10925
JetfireBlack wants to merge 52 commits into
acemod:masterfrom
JetfireBlack:Respirator-Toggle

Conversation

@JetfireBlack

Copy link
Copy Markdown

When merged this pull request will:

  • Add filter and hose self interactions when wearing the Contact DLC respirators and/or their backpacks
    image
    image

IMPORTANT

  • If the contribution affects the documentation, please include your changes in this pull request so the documentation will appear on the website.
  • Development Guidelines are read, understood and applied.
  • Title of this PR uses our standard template Component - Add|Fix|Improve|Change|Make|Remove {changes}.

@JetfireBlack

Copy link
Copy Markdown
Author

Feel free to change stuff or let me know if it needs changing.

Comment thread addons/goggles/CfgVehicles.hpp Outdated
Comment thread addons/goggles/CfgVehicles.hpp Outdated
Comment thread addons/goggles/CfgVehicles.hpp Outdated
Comment thread addons/goggles/functions/fnc_respiratorConditions.sqf Outdated
Comment thread addons/goggles/functions/fnc_respiratorConditions.sqf Outdated
Comment thread addons/goggles/functions/fnc_respiratorConditions.sqf Outdated
Comment thread addons/goggles/functions/fnc_respiratorConditions.sqf Outdated
@DartRuffian

Copy link
Copy Markdown
Contributor

IMO if these functions remain as public API, they should take a unit as a parameter rather than always using ACE_player.

JetfireBlack and others added 2 commits May 23, 2025 02:48
Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com>
Co-authored-by: Dart <59131299+DartRuffian@users.noreply.github.com>
@JetfireBlack
JetfireBlack requested a review from Mike-MF May 23, 2025 17:56
@JetfireBlack

Copy link
Copy Markdown
Author

All tabs should now be spaces, I'd also like to ask if the current formatting of the equipment array in fnc_respiratorConditions.sqf is fine for readability or if it needs changing.

@Mike-MF

Mike-MF commented May 23, 2025

Copy link
Copy Markdown
Member

I'd change it, just indent all the classnames once.

@JetfireBlack

JetfireBlack commented May 23, 2025

Copy link
Copy Markdown
Author

Done, I think it should now comply with the coding guidelines unless I missed something.

Also, is using # instead of select fine or should I change to using select for readability (assuming it is fine since I've seen it used in other code here)?

@johnb432

Copy link
Copy Markdown
Contributor

I'm not a fan of all the hardcoded stuff. I understand the base game requires such handling, but other mods can't benefit from this framework at all, as it's all closed off.

ace_goggles_fnc_respiratorConnect seems to just be BIN_fnc_CBRNHoseInit but modified in some ways that warrant some discussion. You are changing things that weren't intended to be changed according to the wiki (see https://community.bistudio.com/wiki/Arma_3:_CBRN#Common_Combinations, last line).

On a different note: My original solution to #3594 (comment) was to call _unit call BIN_fnc_CBRNHoseInit every time the unit changed their backpack or facewear in the arsenal (or maybe only at the end, but imo seeing that it connects immediately is nicer UX).

With this PR, how do you see both of those systems interacting with each other? What should take priority - the arsenal or the interaction?

What is the goal of this PR - is it to address your suggestion? If so, imo this is not the way forward.
If it's to give players options, then we should make a proper framework (or integrate it in an existing one, like the upcoming wardrobe maybe? tbd), which other mods could utilise if wanted.

@JetfireBlack

Copy link
Copy Markdown
Author

One of the issues with just calling BIN_fnc_CBRNHoseInit once is that it does not update the hose on mask removal.

That being said, I am not opposed to re-writing it to support something more config based.

@JetfireBlack

JetfireBlack commented May 25, 2025

Copy link
Copy Markdown
Author

To also expand more on my goal with this PR; the code was something I originally made to just address Arma not reliably connecting/disconnecting the respirators and backpacks, this has now morphed into also wanting to have something more usable by other mods.

I also checked out the wardrobe PR and, while it doesn't look like it currently supports the way the Contact respirators work, I could see the functionality of this PR being added to the wardrobe addon if that goes forwards.

@OverlordZorn

OverlordZorn commented May 26, 2025

Copy link
Copy Markdown
Contributor

i like the idea of this alot and im happy to help/find a way to make this work with the wardrobe addon once thats finally merged.

I have never worked with the cbrn hoses and stuff, so idk how they work but a "add filter" or "connect hoses" when a set of matching items are detected shouldnt be too difficult.

@JetfireBlack

JetfireBlack commented May 26, 2025

Copy link
Copy Markdown
Author

The Contact CBRN stuff works based on textures for the backpacks and hiddenSelections in the config for the masks.

You can sometimes notice the hose shadow even when that's hidden for example.

Another quirk complicating matters is that the APRs and the facepiece have different hose textures on different selections for each the CUR and SCBA.

The mask itself would be easy enough to implement since you already have the framework to just link to the _nofilter variant of it, it's mainly the hoses that are tricky since they are all based on backpack textures with different selections for different masks.

@Andx667

Andx667 commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

@OverlordZorn still interesting in adding this to wardrobe? we could maybe also add it to AWX and see if it tracks first

@OverlordZorn

Copy link
Copy Markdown
Contributor

@OverlordZorn still interesting in adding this to wardrobe? we could maybe also add it to AWX and see if it tracks first

ah yes. this was a thing.

i think it would be cool for ace, so its "simply available everywhere", but we can beta it in AWX, eventhough i smell an ACE update somewhat around the corner.

@johnb432

Copy link
Copy Markdown
Contributor

but we can beta it in AWX

This should be ported into wardrobe directly imo.

@OverlordZorn

OverlordZorn commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

The more i look at this, the the more i think that integrating this through wardrobe is the wrong approach.

Sure, in the current state, these hoses are not more then simple, cosmetic additions, but the moment the tiniest amount of feature is sprinkled ontop of it, it is out of scope for the wardrobe framework.

this should be its dedicated cbrn or ppe addon with additional API functions to identify the level of protection the unit is currently having.

Sure, it wont have any mechanic that will do (or protect against) damage - or otherwise utilize this data - but:

  • a dedicated approach would provide an common, accessible API for mission and mod makers to expand their projects upon
  • its a better, future-proof foundation

@OverlordZorn

Copy link
Copy Markdown
Contributor

The more i look at this, the the more i think that integrating this through wardrobe is the wrong approach.

Sure, in the current state, these hoses are not more then simple, cosmetic additions, but the moment the tiniest amount of feature is sprinkled ontop of it, it is out of scope for the wardrobe framework.

this should be its dedicated cbrn or ppe addon with additional API functions to identify the level of protection the unit is currently having.

Sure, it wont have any mechanic that will do (or protect against) damage - or otherwise utilize this data - but:

* a dedicated approach would provide an common, accessible API for mission and mod makers to expand their projects upon

* its a better, future-proof foundation

Since there has been no response i will proceed with the cbrn ppe addon

@johnb432

Copy link
Copy Markdown
Contributor

but the moment the tiniest amount of feature is sprinkled ontop of it, it is out of scope for the wardrobe framework.

Imo that would be the sole point of this. If people would want to add gas simulation, that would be its separate addon, but imo this would be fine to add to wardrobe as is.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants