Duke3D: Touchplate and SE7 Transport Ordering Issue
Towards the end of the map , after the player enters the blue keycard door and goes down the elevator, a sequence of master switches triggered by a touchplate are supposed to simulate the crashing of the ship the player is on. This transports him to two small black boxes containing conveyor belts, in which the player is kept while sound effects play, until he is eventually sent to the next part of the level.
As of r8724 (5793cd04), this sequence no longer works, and thus breaks map progression. The reason for this is that the initial room contains both a touchplate as well as a SE7 Transport sprite. Apparently, the player is transported before he has the chance to trigger the touchplate. Deleting the sector effector renders the master switch sequence functional.
The attached map file starts you in front of the room that triggers the sequence. The black transport rooms have been brightened to see what is happening. Note that the master switch sequence has been triggered if the sound "hahaha, too late Nukem..." can be heard.
The fix should be that Touchplates are always triggered before the player is transported away. This appears to be the vanilla behavior.
Edit: The offending change in that commit is the position of G_RecordOldSpritePos();
. Apparently, updating actor[spriteNum].bpos
here breaks the concurrent execution of Touchplates and SE7 transport.