Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calling an artillery through glass #644

Open
ETLegacyTeam opened this issue Mar 5, 2020 · 5 comments
Open

Calling an artillery through glass #644

ETLegacyTeam opened this issue Mar 5, 2020 · 5 comments
Labels
cat: mod CGAME Category mod (cgame) 💡 Feature New feature or request P3: Normal Priority 3
Milestone

Comments

@ETLegacyTeam
Copy link
Member

Author: @saukko28 (Saukko)
Date: 2014-11-20
Redmine Issue: 644, https://dev.etlegacy.com/issues/644


The current behaviour is like that even you see through the glass, you can't call an artillery because it is like you would calling inside because the glass is like an obstacle.

See the attached demo to see the current behaviour.

-*S

@ETLegacyTeam ETLegacyTeam added cat: mod CGAME Category mod (cgame) 💡 Feature New feature or request P3: Normal Priority 3 labels Mar 5, 2020
@ETLegacyTeam
Copy link
Member Author

From: @Aranud (Aranud)
Date: 2017-05-15T13:57:29Z


This seem to be difficult to implement and I try to resume what were told on Gitter.

First, regular shader (i.e windows) doesn't use the surfaceparm glass. Currently the surface of a glass (i.e fueldump) is detected as nodraw and nomarks and many invisible entity ( i.e construction set, clip ...), use theses surface. (like thunder mentionned)

Second and copy/past litteraly from kemon said :

surfaceparm glass is the only thing related to glass and it gives the glass sound when being shot at. Usually mappers made their glass destructible though, so it's a func_explosive that will break when being shot at without glass sound
Transparency with shaders is a complete mess.

For now, we have nothing to properly determine if a surface is really a glass.
Otherwise, to fix it, every surface setted as nodraw and nomarks surface should not be detected as an obstacle ... not the best solution but work.

@ETLegacyTeam ETLegacyTeam added this to the ALL milestone Mar 5, 2020
@ETLegacyTeam
Copy link
Member Author

From: @IR4T4 (IR4T4)
Date: 2017-06-29T18:16:47Z


This might be done when we add a new surfaceparm into the game. But this is more than a ton of work - we have to adjust mapping tools.

@ETLegacyTeam
Copy link
Member Author

From: @realkemon (keMoN)
Date: 2017-06-30T19:15:39Z


[quote]Otherwise, to fix it, every surface setted as nodraw and nomarks surface should not be detected as an obstacle ... not the best solution but work.[/quote]

To my knowledge this is the current behaviour. However, "surface" is the incorrect term. Better use "brush" here. (One brush has 6 surfaces/sides).
I made a test map for you and attached it, so please let me go ahead and screw up your day :D

I have been working with maps in ET literally for years now and to this day I could not write a shader from scratch if my life depended on it. There is no such thing as a standard "alpha" shader and I absolutely can not explain what exactly makes the game consider something as "transparent", but let me try and lay out my experience for you. Also keep in mind that "transparent" is again a rather incorrect term.
In the test map there are two brushes with battery's bunker texture so you absolutely know that thing is solid as it gets. The yellow one has that texture on all surfaces/sides, while the black one only has the bunker texture assigned to the front. The other sides are common/nodraw. Now all of a sudden the game considers this brush as non existent for entities. While you can not see through, you can walk, shoot, throw nades and for this thread most importantly call artillery through it!

The second set of brushes in the test map is with miltary_wall/window_m03. Again the yellow is solid, however this time with common/clipweap on all sides/surfaces except the front. The black one replaces common/clipweap again with common/nodraw.

//Fun-Fact: The secret room in "Streets of Italy" uses that system. It has a seemingly solid concrete texture on the outside and on all other sides it has common/nodraw. The fact that you also see a seemingly solid texture from the inside is because that is another brush with common/nodraw everywhere except the wallpaper on the front.

Regarding windows/glass:
Theoratically, you can already call artillery through glass, however the brush has to use the window texture on the front and common/nodraw on the other surfaces. Mappers don't usually do this, because that means that you could also move, shoot, throw nades through. Also when you can shoot through it you can't actually shoot it, or in other words break it. So what mappers do is, they use common/clipweap instead of common/nodraw. That way the entire brush is clipped for weapons, meaning it acts as an obstacle. Now you can shoot the brush, but you also can't call artillery through it, since it is considered solid by the game. To make the brush destructible, you transform it into a "func_explosive":http://games.chruker.dk/enemy_territory/entities.php?action=show_entity&entity_name=func_explosive. Now it is solid, but breakable.

So, I guess what I'm saying is is that this isn't related to a surface, but to the whole brush. I'd love to see this feature implemented, but I think it would need substantial rework of the shader madness.

@ETLegacyTeam
Copy link
Member Author

From: @thunderpwn (thunder)
Date: 2017-07-01T10:01:26Z


Agree with you @ keMoN,

But a solution would be if we added a keyword in shader as EX: surface seethrough that would only fix this one, but yes it would mean a lot of code work. We would need to implement this not only in ordinary code but also in shader parser

@ETLegacyTeam
Copy link
Member Author

From: @realkemon (keMoN)
Date: 2017-07-01T12:03:24Z


This has more potential for errors than benefits. You would need to give this parameter to common/clipweap for example. However, this would mean you can call artillery through all models clipped with that shader.
This will come back and bite us.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cat: mod CGAME Category mod (cgame) 💡 Feature New feature or request P3: Normal Priority 3
Projects
None yet
Development

No branches or pull requests

2 participants