reverse skate into glider
[carveJwlIkooP6JGAAIwe30JlM.git] / player.c
index 3a5c10069b1c233ea3f490f6d1ee1639b69ae3e3..8b095cd7d9e5d1f6865d5c41abefc7a6f0bcf709 100644 (file)
--- a/player.c
+++ b/player.c
@@ -112,6 +112,9 @@ static void player__pre_update(void){
 static void player__update(void){
    if( player_subsystems[ localplayer.subsystem ]->update )
       player_subsystems[ localplayer.subsystem ]->update();
+
+   if( localplayer.glider_orphan )
+      glider_physics();
 }
 
 static void player__post_update(void)
@@ -245,7 +248,7 @@ static void player__im_gui(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){
@@ -277,13 +280,15 @@ static void player__reset(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();