static void player__update(void){
if( player_subsystems[ localplayer.subsystem ]->update )
player_subsystems[ localplayer.subsystem ]->update();
+
+ if( localplayer.glider_orphan &&
+ (skaterift.activity != k_skaterift_replay) )
+ glider_physics( (v2f){0,0} );
}
static void player__post_update(void)
static void player__setpos( v3f pos ){
v3_copy( pos, localplayer.rb.co );
v3_zero( localplayer.rb.v );
- rb_update_transform( &localplayer.rb );
+ rb_update_matrices( &localplayer.rb );
}
static void player__clean_refs(void){
if( (l < 0.9f) || (l > 1.1f) )
q_identity( localplayer.rb.q );
- rb_update_transform( &localplayer.rb );
+ rb_update_matrices( &localplayer.rb );
localplayer.subsystem = k_player_subsystem_walk;
player__walk_reset();
localplayer.immobile = 0;
localplayer.gate_waiting = NULL;
+ localplayer.have_glider = 0;
+ localplayer.glider_orphan = 0;
v3_copy( localplayer.rb.co, localplayer.cam_control.tpv_lpf );
player__clean_refs();
#include "player_skate.c"
#include "player_dead.c"
#include "player_drive.c"
+#include "player_glide.c"
#include "player_basic_info.c"
#include "player_render.c"