+ }
+
+ m4x3f inverse;
+ m4x3_invert_affine( localplayer.gate_waiting->transport, inverse );
+
+ /* de-transform camera and player back */
+ v3f v0;
+ m4x3_mulv( inverse, localplayer.cam.pos, localplayer.cam.pos );
+ v3_angles_vector( localplayer.cam.angles, v0 );
+ m3x3_mulv( inverse, v0, v0 );
+ v3_angles( v0, localplayer.cam.angles );
+
+ skeleton_apply_transform( &localplayer.skeleton, inverse,
+ localplayer.final_mtx );
+
+ /* record and re-put things again */
+ if( cleared )
+ {
+ skaterift_record_frame( &player_replay.local, 1 );
+ localplayer.deferred_frame_record = 1;
+
+ skeleton_apply_transform( &localplayer.skeleton,
+ localplayer.gate_waiting->transport,
+ localplayer.final_mtx );
+
+ m4x3_mulv( localplayer.gate_waiting->transport,
+ localplayer.cam.pos, localplayer.cam.pos );
+ v3_angles_vector( localplayer.cam.angles, v0 );
+ m3x3_mulv( localplayer.gate_waiting->transport, v0, v0 );
+ v3_angles( v0, localplayer.cam.angles );