]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/View.qc
minstanex too
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / View.qc
index f91089844cd5eb0fabeab69a71f0d9b9f71444b7..5ee028d46b629b8608eb0778a5c3143d370136a9 100644 (file)
@@ -622,6 +622,8 @@ void CSQC_UpdateView(float w, float h)
        // the view to go back to normal, so reticle_type would become 0 as we fade out)
        if(spectatee_status || getstati(STAT_HEALTH) <= 0)
                reticle_type = 0; // prevent reticle from showing during the respawn zoom effect or for spectators
+       else if(activeweapon == WEP_NEX && (button_zoom || zoomscript_caught) || activeweapon == WEP_CAMPINGRIFLE && (button_zoom || zoomscript_caught) || activeweapon == WEP_MINSTANEX && (button_zoom || zoomscript_caught))
+               reticle_type = 2; // nex zoom
        else if(button_zoom || zoomscript_caught)
                reticle_type = 1; // normal zoom
        else if(activeweapon == WEP_NEX && button_attack2 || activeweapon == WEP_CAMPINGRIFLE && button_attack2)
@@ -828,22 +830,28 @@ void CSQC_UpdateView(float w, float h)
 
                                float f, a;
                                wcross_size = drawgetimagesize(wcross_name) * wcross_scale;
+
+                               float xyspeed;
+                               xyspeed = vlen('1 0 0' * pmove_vel_x + '0 1 0' * pmove_vel_y);
+                               if(xyspeed > nex_speed)
+                                       nex_speed = min(xyspeed, nex_maxvelocity);
+                               else
+                                       nex_speed = (1 - nex_speed_falloff_factor) * nex_speed;
+
                                // ring around crosshair representing bullets left in camping rifle clip
                                if (activeweapon == WEP_CAMPINGRIFLE && cr_maxbullets)
                                {
                                        bullets = getstati(STAT_BULLETS_LOADED);
-                                       a = cvar("crosshair_campingrifle_bulletcounter_alpha");
                                        f = bound(0, bullets / cr_maxbullets, 1);
 
+                                       a = cvar("crosshair_campingrifle_bulletcounter_alpha");
                                        DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring.tga", f, wcross_color, wcross_alpha * a, DRAWFLAG_ADDITIVE);
                                }
                                else if (activeweapon == WEP_NEX) // ring around crosshair representing velocity-dependent damage for the nex
                                {
-                                       float curvel;
-                                       a = cvar("crosshair_nexvelocity_alpha");
-                                       curvel = vlen('1 0 0' * pmove_vel_x + '0 1 0' * pmove_vel_y);
-                                       f = bound(0, (curvel - nex_minvelocity) / (nex_maxvelocity - nex_minvelocity), 1);
+                                       f = bound(0, (nex_speed - nex_minvelocity) / (nex_maxvelocity - nex_minvelocity), 1);
 
+                                       a = cvar("crosshair_nexvelocity_alpha");
                                        DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring.tga", f, wcross_color, wcross_alpha * a, DRAWFLAG_ADDITIVE);
                                }