X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_drive.c;h=38b7e58c8e586102bfd2afbec92a49d5c80aa916;hb=e311bbe2fa903a7e2a922f202f389b799193195d;hp=89b3f405c2b98d9a2d5b4035ca5615d975c6a9b4;hpb=b3ca3b7a45eec11c46eb19772e10021177665adb;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_drive.c b/player_drive.c index 89b3f40..38b7e58 100644 --- a/player_drive.c +++ b/player_drive.c @@ -4,45 +4,40 @@ #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->obj.rb.co,localplayer.rb.co ); + v3_copy( player_drive.vehicle->obj.rb.v, localplayer.rb.v ); + v4_copy( player_drive.vehicle->obj.rb.q, localplayer.rb.q ); + v3_copy( player_drive.vehicle->obj.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; float yaw = atan2f( -rb->to_world[2][0], rb->to_world[2][2] ), @@ -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 */