X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_physics.h;h=bc1434c66f801f8e37881ee4ab68c91634a4079f;hb=06e35432f5cf2b4e9ad2f537393511867f64d29a;hp=8d0b5b88ad3262f61da46b71804c3eaa9f616ec2;hpb=15beb60ade240af4e00b0d204f7e89a4d35dca36;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_physics.h b/player_physics.h index 8d0b5b8..bc1434c 100644 --- a/player_physics.h +++ b/player_physics.h @@ -6,6 +6,7 @@ #define PLAYER_PHYSICS_H #include "player.h" +#include "camera.h" static void apply_gravity( v3f vel, float const timestep ) { @@ -730,8 +731,8 @@ static void player_freecam(void) v3f lookdir = { 0.0f, 0.0f, -1.0f }, sidedir = { 1.0f, 0.0f, 0.0f }; - m3x3_mulv( player.camera, lookdir, lookdir ); - m3x3_mulv( player.camera, sidedir, sidedir ); + m3x3_mulv( camera_mtx, lookdir, lookdir ); + m3x3_mulv( camera_mtx, sidedir, sidedir ); static v3f move_vel = { 0.0f, 0.0f, 0.0f }; if( vg_get_button( "forward" ) ) @@ -747,20 +748,6 @@ static void player_freecam(void) v3_add( move_vel, player.camera_pos, player.camera_pos ); } -static void player_camera_update(void) -{ - /* Update camera matrices */ - v4f qyaw, qpitch, qcam; - q_axis_angle( qyaw, (v3f){ 0.0f, 1.0f, 0.0f }, -player.angles[0] ); - q_axis_angle( qpitch, (v3f){ 1.0f, 0.0f, 0.0f }, -player.angles[1] ); - - q_mul( qyaw, qpitch, qcam ); - q_m3x3( qcam, player.camera ); - - v3_copy( player.camera_pos, player.camera[3] ); - m4x3_invert_affine( player.camera, player.camera_inverse ); -} - static int reset_player( int argc, char const *argv[] ) { struct player_phys *phys = &player.phys;