by randi » Thu Sep 13, 2012 4:57 pm
The comparision uses > 0 so that points on the line count as in front of it. This is mostly the same behavior as Doom, except they goofed up their "optimized" code and certain angles count being on the line as behind it. (I think that's only for cardinal directions, though, not diagonal lines). Most likely, it's just differences in precision between ZDoom's routine and Doom's, where Doom thinks you're behind some of the lines instead of on them.
So, yes, your fix fixes it by moving points that are on top of lines so that they are behind lines. But that was never correct, even in Doom. Since it's just a dumb layout all around, I'd rather not do any kludges to make it work.
(FWIW, in ZDoom, you can strafe directly right after the teleport without reteleporting yourself.)
The comparision uses > 0 so that points on the line count as in front of it. This is mostly the same behavior as Doom, except they goofed up their "optimized" code and certain angles count being on the line as behind it. (I think that's only for cardinal directions, though, not diagonal lines). Most likely, it's just differences in precision between ZDoom's routine and Doom's, where Doom thinks you're behind some of the lines instead of on them.
So, yes, your fix fixes it by moving points that are on top of lines so that they are behind lines. But that was never correct, even in Doom. Since it's just a dumb layout all around, I'd rather not do any kludges to make it work.
(FWIW, in ZDoom, you can strafe directly right after the teleport without reteleporting yourself.)