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

LineTracer interface 3D floors fix #467

Merged
merged 3 commits into from Apr 25, 2018

Conversation

jewalky
Copy link
Contributor

@jewalky jewalky commented Apr 25, 2018

This is basically a gross hack that makes it use two passes for sectors that have 3D floors, so it retains the original GZDoom execution flow while not requiring raw LineFlags manipulation.
The current behavior is as follows:

  1. check for real line
  2. call callback
  3. if callback returns TRACE_Skip, use recursive call to check for 3D line (but ignore normal lines this time)

This fix should not affect normal engine functioning because this path only activates with TRACE_3DCallback flag (which is currently only set in the ZScript interface).

Resolves #415, but properly.

Test case: http://www.mediafire.com/file/25o3z54y5z9bvml/trace3dfloor_test_zzyzx.wad

P.S. I had other ideas of how to do it, but it's too dangerous and can break other uses of this function.
So for compatibility I just added a slight deviation from normal flow activated by variable.

@coelckers coelckers merged commit 3129840 into ZDoom:master Apr 25, 2018
@jewalky jewalky deleted the gz_tracer_3dfloors_fix branch April 25, 2018 21:27
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.

None yet

2 participants