#define PLAYER_PHYSICS_H
#include "player.h"
+#include "camera.h"
static void apply_gravity( v3f vel, float const timestep )
{
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" ) )
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;