bradharding / doomretro

The classic, refined DOOM source port. For Windows PC.
https://www.doomretro.com
GNU General Public License v3.0
641 stars 78 forks source link

[Feature Request] Turn off Liquid Bobbing on sectors that are self-referencing (Invisible) #812

Open andrikpowell opened 9 months ago

andrikpowell commented 9 months ago

Hey Brad!

Long time, no see! :)

I've been quite busy as of late leading an unofficial sequel Hell Revealed I and II sequel Hell Revealations.

Anyway, as always when I release a project, I tend to follow up on Doom Retro misbehaving again. :P

I'm back with a certain feature request that seems like it would be pretty simple to do. Hell Revealations (like the wads it is based on) tends to use alot of invisible sectors to emulate bridges and the like.

I think that the liquid bobbing of Doom Retro is pretty cool, but I've also noticed that it gets applied to these sectors as well, which doesn't make alot of sense. When mappers tend to create setups using self-referencing sectors, they tend to not pay attention to what the ceiling and floor flats are, since they are not rendered. It seems like a simple fix to just check if a sector is self-referencing and exclude it from liquid bobbing. This would also fix alot of legacy wads that include these kind of sectors, which will probably never receive an update.

If you are confused on what self-referencing sectors are, they are a fake sector in which the front and back linedefs reference the same sector, while also being surrounded by another sector.

bradharding commented 9 months ago

Hello again! Yeah, it's been a while. DR actually does check if a sector is self-referencing (see P_FindSelfReferencingSectors() in p_setup.c), but the conditions of what it considers as self-referencing has evolved over time to try to also accommodate for certain situations (the overhanging vine midtextures in valiant.wad for instance). Could you point me in the direction of the problem maps/sectors in HRs.wad, and I'll see if I can make this check more robust?

andrikpowell commented 9 months ago

I think it's probably easier to just show what sectors I'm talking about and compare them via a video (HD may possibly still be processing):

https://www.youtube.com/watch?v=LHvQNd-x_nE

In the video I take a look at HRs maps: MAP01, MAP04, MAP05, MAP18, MAP22

Forgot that you can also take a look at the final part of MAP24.

Also found that the death exit of MAP11 doesn't work in Doom Retro for some reason.