update helpers/location to 'frosted' ui
[carveJwlIkooP6JGAAIwe30JlM.git] / player_common.c
index 2551968e5f76cbea21af133dbca99d4de041ed54..6ab378d6039d8317ea3cbdc774a7c9bb168f4155 100644 (file)
@@ -4,13 +4,15 @@
 #include "menu.h"
 #include "vg/vg_perlin.h"
 
-static float player_get_heading_yaw(void){
+float player_get_heading_yaw(void)
+{
    v3f xz;
    q_mulv( localplayer.rb.q, (v3f){ 0.0f,0.0f,1.0f }, xz );
    return atan2f( xz[0], xz[2] );
 }
 
-static void player_camera_portal_correction(void){
+static void player_camera_portal_correction(void)
+{
    if( localplayer.gate_waiting ){
       /* construct plane equation for reciever gate */
       v4f plane;
@@ -59,13 +61,14 @@ static void player_camera_portal_correction(void){
    }
 }
 
-static void player__cam_iterate(void){
+void player__cam_iterate(void)
+{
    struct player_cam_controller *cc = &localplayer.cam_control;
 
    if( localplayer.subsystem == k_player_subsystem_walk ){
       v3_copy( (v3f){-0.1f,1.8f,0.0f}, cc->fpv_viewpoint );
       v3_copy( (v3f){0.0f,0.0f,0.0f}, cc->fpv_offset );
-      v3_copy( (v3f){0.0f,1.4f,0.0f}, cc->tpv_offset );
+      v3_copy( (v3f){0.0f,1.8f,0.0f}, cc->tpv_offset );
    }
    else if( localplayer.subsystem == k_player_subsystem_glide ){
       v3_copy( (v3f){-0.15f,1.75f,0.0f}, cc->fpv_viewpoint );
@@ -221,6 +224,18 @@ static void player__cam_iterate(void){
 
    v3_add( tpv_origin, tpv_offset, tpv_pos );
 
+#if 0
+   if( localplayer.subsystem == k_player_subsystem_walk )
+   {
+      v3f fwd, right;
+      v3_angles_vector( localplayer.angles, fwd );
+      v3_cross( fwd, (v3f){0,1.001f,0}, right );
+      right[1] = 0.0f;
+      v3_normalize( right );
+      v3_muladds( tpv_pos, right, 0.5f, tpv_pos );
+   }
+#endif
+
    /* 
     * Blend cameras 
     */
@@ -252,7 +267,8 @@ static void player__cam_iterate(void){
    player_camera_portal_correction();
 }
 
-static void player_look( v3f angles, float speed ){
+void player_look( v3f angles, float speed )
+{
    if( vg_ui.wants_mouse ) return;
 
    angles[2] = 0.0f;