X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_drive.c;fp=player_drive.c;h=230e7bdb0970c2ebc94242a211c024ca73327558;hb=5f6a4f9df6c8accc89f1920bfe9ace3cbac4c4b6;hp=cddd0d43ad3a8179da1acc3cce2e3185205e48fe;hpb=a109f126d8adab622e38fbcc2d4281e75255246a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_drive.c b/player_drive.c index cddd0d4..230e7bd 100644 --- a/player_drive.c +++ b/player_drive.c @@ -1,10 +1,25 @@ -#ifndef PLAYER_DRIVE_C -#define PLAYER_DRIVE_C - -#include "player.h" +#include "player_drive.h" #include "input.h" -static void player__drive_pre_update(void){ +struct player_drive player_drive; +struct player_subsystem_interface player_subsystem_drive = +{ + .pre_update = player__drive_pre_update, + .update = player__drive_update, + .post_update = player__drive_post_update, + .animate = player__drive_animate, + .pose = player__drive_pose, + .post_animate = player__drive_post_animate, + .im_gui = player__drive_im_gui, + .bind = player__drive_bind, + + .animator_data = NULL, + .animator_size = 0, + .name = "Drive" +}; + +void player__drive_pre_update(void) +{ drivable_vehicle *vehc = player_drive.vehicle; v2f steer; @@ -15,18 +30,20 @@ static void player__drive_pre_update(void){ vehc->drive = steer[1]; } -static void player__drive_update(void){} +void player__drive_update(void){} -static void player__drive_post_update(void){ +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 ); } -static void player__drive_animate(void){} +void player__drive_animate(void){} -static void player__drive_pose( void *animator, player_pose *pose ){ +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 ); @@ -34,7 +51,8 @@ static void player__drive_pose( void *animator, player_pose *pose ){ v4_copy( localplayer.rb.q, pose->root_q ); } -static void player__drive_post_animate(void){ +void player__drive_post_animate(void) +{ if( localplayer.cam_control.camera_mode == k_cam_firstperson ) localplayer.cam_velocity_influence = 0.0f; else @@ -56,14 +74,14 @@ static void player__drive_post_animate(void){ localplayer.angles[1] = pitch; } -static void player__drive_im_gui(void){ +void player__drive_im_gui(void) +{ player__debugtext( 1, "Nothing here" ); } -static void player__drive_bind(void){ +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 */