7 static void player__drive_pre_update(void){
8 drivable_vehicle
*vehc
= player_drive
.vehicle
;
11 joystick_state( k_srjoystick_steer
, steer
);
13 vehc
->steer
= vg_lerpf( vehc
->steer
, steer
[0] * 0.4f
,
14 vg
.time_fixed_delta
* 8.0f
);
15 vehc
->drive
= steer
[1];
18 static void player__drive_update(void){}
20 static void player__drive_post_update(void){
21 v3_copy( player_drive
.vehicle
->rb
.co
,localplayer
.rb
.co
);
22 v3_copy( player_drive
.vehicle
->rb
.v
, localplayer
.rb
.v
);
23 v4_copy( player_drive
.vehicle
->rb
.q
, localplayer
.rb
.q
);
24 v3_copy( player_drive
.vehicle
->rb
.w
, localplayer
.rb
.w
);
27 static void player__drive_animate(void){}
29 static void player__drive_pose( void *animator
, player_pose
*pose
){
30 struct skeleton
*sk
= &localplayer
.skeleton
;
32 skeleton_sample_anim( sk
, player_drive
.anim_drive
, 0.0f
, pose
->keyframes
);
33 v3_copy( localplayer
.rb
.co
, pose
->root_co
);
34 v4_copy( localplayer
.rb
.q
, pose
->root_q
);
37 static void player__drive_post_animate(void){
38 if( localplayer
.cam_control
.camera_mode
== k_cam_firstperson
)
39 localplayer
.cam_velocity_influence
= 0.0f
;
41 localplayer
.cam_velocity_influence
= 1.0f
;
43 rigidbody
*rb
= &gzoomer
.rb
;
44 float yaw
= atan2f( -rb
->to_world
[2][0], rb
->to_world
[2][2] ),
50 rb
->to_world
[2][0]*rb
->to_world
[2][0] +
51 rb
->to_world
[2][2]*rb
->to_world
[2][2]
55 localplayer
.angles
[0] = yaw
;
56 localplayer
.angles
[1] = pitch
;
59 static void player__drive_im_gui(void){
60 player__debugtext( 1, "Nothing here" );
63 static void player__drive_bind(void){
64 struct skeleton
*sk
= &localplayer
.skeleton
;
65 player_drive
.vehicle
= &gzoomer
;
66 player_drive
.anim_drive
= skeleton_get_anim( sk
, "idle_cycle+y" );
69 #endif /* PLAYER_DRIVE_C */