Hello! I am working on a project with a few friends and we discovered a pretty major bug with how GZDoom handles waterlevel checks when it concerns portal water.
Our enemy in question is a giant fish that is allowed to float except when too far over the surface of the water - if that happens to him he's supposed to be pushed back down.
That works well with 3D floor water as demonstrated in this example, but it does not work at all well with portal water. In our project we really want to give mappers the option to use either water.
The attached example will show how these waterlevel checks affect the player as well - via a bit of console spam.
In checking p_mobj.cpp - I noticed that there are no portal checks at all in that code. I would fix this myself but this does not at all seem to be a simple fix - the waterlevel checking code here seems to be fairly involved, and may have even been copy-pasted a couple of times, making what should be a simple fix like this a lot more complicated. The only way I will be able to touch this code is if I refactor it, and streamline it through some function checks.