glider stuff
[carveJwlIkooP6JGAAIwe30JlM.git] / player_drive.c
index 89b3f405c2b98d9a2d5b4035ca5615d975c6a9b4..7881302865b1a2bd2fbe0ad474abf98958a50390 100644 (file)
@@ -4,47 +4,42 @@
 #include "player.h"
 #include "input.h"
 
-VG_STATIC void player__drive_pre_update( player_instance *player )
-{
-   struct player_drive *drive = &player->_drive;
-   drivable_vehicle *vehc = drive->vehicle;
+static void player__drive_pre_update(void){
+   drivable_vehicle *vehc = player_drive.vehicle;
 
-   vehc->steer = vg_lerpf( vehc->steer, srinput.joy_steer[0] * 0.4f,
-                           k_rb_delta * 8.0f );
-   vehc->drive = srinput.joy_steer[1];
-}
+   v2f steer;
+   joystick_state( k_srjoystick_steer, steer );
 
-VG_STATIC void player__drive_update( player_instance *player )
-{
+   vehc->steer = vg_lerpf( vehc->steer, steer[0] * 0.4f, k_rb_delta * 8.0f );
+   vehc->drive = steer[1];
 }
 
-VG_STATIC void player__drive_post_update( player_instance *player )
-{
-   struct player_drive *drive = &player->_drive;
-   v3_copy( drive->vehicle->obj.rb.co, player->rb.co );
-   v3_copy( drive->vehicle->obj.rb.v, player->rb.v );
-   v4_copy( drive->vehicle->obj.rb.q, player->rb.q );
-   v3_copy( drive->vehicle->obj.rb.w, player->rb.w );
+static void player__drive_update(void){}
+
+static void player__drive_post_update(void){
+   v3_copy( player_drive.vehicle->rb.co,localplayer.rb.co );
+   v3_copy( player_drive.vehicle->rb.v, localplayer.rb.v );
+   v4_copy( player_drive.vehicle->rb.q, localplayer.rb.q );
+   v3_copy( player_drive.vehicle->rb.w, localplayer.rb.w );
 }
 
-VG_STATIC void player__drive_animate( player_instance *player, 
-                                      player_animation *dest )
-{
-   struct player_drive *drive = &player->_drive;
-   struct skeleton *sk = &player->playeravatar->sk;
-   skeleton_sample_anim( sk, drive->anim_drive, 0.0f, dest->pose );
-   v3_copy( player->rb.co, dest->root_co );
-   v4_copy( player->rb.q, dest->root_q );
+static void player__drive_animate(void){}
+
+static void player__drive_pose( void *animator, player_pose *pose ){
+   struct skeleton *sk = &localplayer.skeleton;
+
+   skeleton_sample_anim( sk, player_drive.anim_drive, 0.0f, pose->keyframes );
+   v3_copy( localplayer.rb.co, pose->root_co );
+   v4_copy( localplayer.rb.q, pose->root_q );
 }
 
-VG_STATIC void player__drive_post_animate( player_instance *player )
-{
-   if( player->camera_mode == k_cam_firstperson )
-      player->cam_velocity_influence = 0.0f;
+static void player__drive_post_animate(void){
+   if( localplayer.cam_control.camera_mode == k_cam_firstperson )
+      localplayer.cam_velocity_influence = 0.0f;
    else
-      player->cam_velocity_influence = 1.0f;
+      localplayer.cam_velocity_influence = 1.0f;
 
-   rigidbody *rb = &gzoomer.obj.rb;
+   rigidbody *rb = &gzoomer.rb;
    float yaw = atan2f( -rb->to_world[2][0], rb->to_world[2][2] ),
        pitch = atan2f
                ( 
@@ -56,27 +51,18 @@ VG_STATIC void player__drive_post_animate( player_instance *player )
                    )
                );
 
-   player->angles[0] = yaw;
-   player->angles[1] = pitch;
+   localplayer.angles[0] = yaw;
+   localplayer.angles[1] = pitch;
 }
 
-VG_STATIC void player__drive_im_gui( player_instance *player )
-{
+static void player__drive_im_gui(void){
    player__debugtext( 1, "Nothing here" );
 }
 
-VG_STATIC void player__drive_bind( player_instance *player )
-{
-   struct player_drive *drive = &player->_drive;
-   struct player_avatar *av = player->playeravatar;
-   struct skeleton *sk = &av->sk;
-
-   drive->vehicle = &gzoomer;
-   drive->anim_drive = skeleton_get_anim( sk, "idle_cycle+y" );
-}
-
-VG_STATIC void player__drive_reset( player_instance *player, ent_spawn *rp )
-{
+static void player__drive_bind(void){
+   struct skeleton *sk = &localplayer.skeleton;
+   player_drive.vehicle = &gzoomer;
+   player_drive.anim_drive = skeleton_get_anim( sk, "idle_cycle+y" );
 }
 
 #endif /* PLAYER_DRIVE_C */