]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Changes to cl_velocityzoom according to terencehill and divVerent's suggestions
authorSamual <samual@xonotic.org>
Mon, 24 Oct 2011 18:24:48 +0000 (14:24 -0400)
committerSamual <samual@xonotic.org>
Mon, 24 Oct 2011 18:24:48 +0000 (14:24 -0400)
defaultXonotic.cfg
qcsrc/client/View.qc
qcsrc/client/autocvars.qh

index e50b942bd756f364c0a7688f1292c96502645e5b..a13177b020d2fec74e2cbf23520164deb001ff4c 100644 (file)
@@ -218,7 +218,9 @@ seta cl_reticle_item_nex 1 "draw aiming reticle for the nex weapon's zoom, 0 dis
 seta cl_reticle_item_normal 1 "draw reticle when zooming with the zoom button, 0 disables and values between 0 and 1 change alpha"
 fov 90
 seta cl_velocityzoom 0 "velocity based zooming of fov, negative values zoom out"
-seta cl_velocityzoomtime 0.3   "time value for averaging speed values"
+seta cl_velocityzoom_type 3 "how to factor in speed, 1 = all velocity in all directions, 2 = velocity only in forward direction (can be negative), 3 = velocity only in forward direction (limited to forward only)"
+seta cl_velocityzoom_speed 1000 "target speed for fov factoring"
+seta cl_velocityzoom_time 0.2  "time value for averaging speed values"
 seta cl_zoomfactor 5   "how much +zoom will zoom (1-16)"
 seta cl_zoomspeed 8    "how fast it will zoom (0.5-16), negative values mean instant zoom"
 seta cl_zoomsensitivity 0      "how zoom changes sensitivity (0 = weakest, 1 = strongest)"
index ea10300ed9773940658a2bef5f7b0913eea06c12..827c4f3ecae52f62cec78ab80003065595bc0bea 100644 (file)
@@ -114,7 +114,8 @@ float drawtime;
 float avgspeed;
 vector GetCurrentFov(float fov)
 {
-       float zoomsensitivity, zoomspeed, zoomfactor, zoomdir, velocityzoom;
+       float zoomsensitivity, zoomspeed, zoomfactor, zoomdir;
+       float velocityzoom, curspeed;
 
        zoomsensitivity = autocvar_cl_zoomsensitivity;
        zoomfactor = autocvar_cl_zoomfactor;
@@ -177,13 +178,23 @@ vector GetCurrentFov(float fov)
                setsensitivityscale(pow(current_viewzoom, 1 - zoomsensitivity));
        else
                setsensitivityscale(1);
+               
+       makevectors(view_angles);
 
-       if (autocvar_cl_velocityzoom)
+       if(autocvar_cl_velocityzoom)
        {
-               velocityzoom = bound(0, drawframetime / max(0.000000001, autocvar_cl_velocityzoomtime), 1);
-               avgspeed = avgspeed * (1 - velocityzoom) + (vlen(pmove_vel) / 1000) * velocityzoom;
+               switch(autocvar_cl_velocityzoom_type)
+               {
+                       case 3: curspeed = max(0, v_forward * pmove_vel); break;
+                       case 2: curspeed = (v_forward * pmove_vel); break;
+                       case 1: default: curspeed = vlen(pmove_vel); break;
+               }
+               
+               velocityzoom = bound(0, drawframetime / max(0.000000001, autocvar_cl_velocityzoom_time), 1); // speed at which the zoom adapts to player velocity
+               avgspeed = avgspeed * (1 - velocityzoom) + (curspeed / autocvar_cl_velocityzoom_speed) * velocityzoom;
                velocityzoom = exp(float2range11(avgspeed * -autocvar_cl_velocityzoom / 1) * 1);
-               //print(ftos(avgspeed), " avgspeed, ", ftos(autocvar_cl_velocityzoom), " cvar, ", ftos(velocityzoom), " return\n"); // for debugging
+               
+               print(ftos(avgspeed), " avgspeed, ", ftos(curspeed), " curspeed, ", ftos(velocityzoom), " return\n"); // for debugging
        }
        else
                velocityzoom = 1;
index 7b3e3c9ca2e2c09264190d482fe0545becd13ddf..5b3be971c5f360f4dae72a4fbee4f01315a537a7 100644 (file)
@@ -65,7 +65,9 @@ float autocvar_cl_stripcolorcodes;
 var float autocvar_cl_vehicle_spiderbot_cross_alpha = 0.6;
 var float autocvar_cl_vehicle_spiderbot_cross_size = 1;
 float autocvar_cl_velocityzoom;
-var float autocvar_cl_velocityzoomtime = 0.3;
+float autocvar_cl_velocityzoom_type;
+float autocvar_cl_velocityzoom_speed;
+float autocvar_cl_velocityzoom_time;
 string autocvar_cl_weaponpriority;
 float autocvar_cl_zoomfactor;
 float autocvar_cl_zoomsensitivity;