TeleportGroup doesn't rotate velocities

Sat Mar 12, 2016 5:00 pm

TeleportGroup preserves all the teleported actors' positions relative to the source and destination teleport spots, so that if the source and destination have different angles, the actors will be "rotated" as a group.

However, the actors' velocities are not adjusted in any way. So if the player and a demon are charging at each other, and a script uses TeleportGroup to move them in such a way that their orientation is rotated 180°, their momentum will suddenly be pushing them away from each other.

I ran into this when trying to use TeleportGroup to fake a two-way Teleport_Line from a script (as it doesn't quite work right from ACS), and if the two lines were facing in different directions, the actor's own momentum would carry them back into the line and briefly trap them in a teleport loop.

Is this intentional? It's probably too late to retroactively fix now, but the movesource or fog arguments could be expanded into flags.

Re: TeleportGroup doesn't rotate velocities

Sat Mar 12, 2016 5:32 pm

This would have to be an option because changing it unconditionally could seriously mess with some assumptions. Using it from a script should be safe, but you can never discount the possibility that some actor is triggering this from a linedef and teleporting itself, and that would not work correctly.