+ if( gate->flags & k_ent_gate_nonlocal ){
+ /* FIXME: Code dupe with world_load.c */
+ ent_spawn *rp = world_find_spawn_by_name( world, "start" );
+ if( !rp ) rp = world_find_closest_spawn( world, (v3f){0.0f,0.0f,0.0f} );
+ /* TODO: fallback to searching for a safe location using raycasts */
+ assert(rp);
+ v3_copy( rp->transform.co, world->player_co );
+
+ world_static.active_instance = gate->target;
+ player__clean_refs();
+
+ replay_clear( &skaterift.replay );
+ }
+ else {
+ world_routes_activate_entry_gate( world, gate );
+ }
+
+ v3f v0;
+ v3_angles_vector( localplayer.angles, v0 );
+ m3x3_mulv( gate->transport, v0, v0 );
+ v3_angles( v0, localplayer.angles );
+