... and now it's done. And it only confirmed all my reservations about these arbitrarily linkable portals. They'll never work beyond basic position checking so I think they are done now, except for some stuff like hitscans and explosions.Graf Zahl wrote:What still needs to be done for the first phase is proper position checking when stepping into a non-static portal with a floor height difference.
To summarize the current state:
- players and other actors can pass through any passable portals, both of the line and sector plane type.
- standard position checking functions have all been made to work with static portals plus some special handling for other types in P_TryMove/P_CheckPosition.
- interpolation for the camera is fully working.
- actor movement is only interpolated through static portals - but it remains to be seen if what is there is good enough for the renderer. For other types of portals interpolation is reset, because keeping track of this would involve too much mess. (Because movement tracking is not fine-grained enough. Just have a look at the code for the camera. We'd have to do something similar for all actors which would be complete overkill.)
- offsetted spawns can reach through static and interactive portals. Teleporter portals are deliberately excluded, that was one of the reason they exist in the first place - to reduce costly calculations where they are not deemed necessary.