]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/View.qc
Add normal zoom reticle (when zooming with the zoom button). Still working on the...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / View.qc
index 2667c29a9afac15ed36eecc63325f572b03ab781..c65da4c5cffb80a3555873cc39024247b57fb177 100644 (file)
@@ -341,6 +341,7 @@ void CSQC_Demo_Camera();
 float HUD_WouldDrawScoreboard ();
 float view_set;
 float camera_mode;
+float reticle_type;
 string NextFrameCommand;
 void CSQC_SPIDER_HUD();
 void CSQC_RAPTOR_HUD();
@@ -551,15 +552,32 @@ void CSQC_UpdateView(float w, float h)
        // next R_RenderScene call
        drawstring('0 0 0', "", '1 1 0', '1 1 1', 0, 0);
 
-       // draw the aiming reticle for weapons that use it (eg. Nex)
-       reticle_pos_x = 0;
-       reticle_pos_y = 0;
-       reticle_size_x = vid_conwidth;
-       reticle_size_y = vid_conheight;
-
+       // Draw the aiming reticle for weapons that use it
+       // reticle_type is changed to the item we are zooming / aiming with, to decide which reticle to use
+       // It must be a persisted float for fading out to work properly (you let go of the zoom button for the
+       // view to go back to normal, so reticle_type would become 0 as we fade out and use that image instead)
+       if(button_zoom)
+               reticle_type = 0; // normal zoom
+       else if(activeweapon == WEP_NEX && button_attack2)
+               reticle_type = 1; // nex zoom
+
+       reticle_size_x = max(vid_conwidth, vid_conheight);
+       reticle_size_y = max(vid_conwidth, vid_conheight);
+       reticle_pos_x = (vid_conwidth - reticle_size_x) / 2;
+       reticle_pos_y = (vid_conheight - reticle_size_y) / 2;
+
+       if(cvar("cl_reticle_normal"))
+       {
+               precache_pic("textures/reticle_normal");
+               if(reticle_type == 0 && current_zoomfraction)
+                       drawpic(reticle_pos, "textures/reticle_normal", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_normal"), DRAWFLAG_NORMAL);
+       }
        if(cvar("cl_reticle_nex"))
-       if(button_attack2 && activeweapon == WEP_NEX)
-               drawpic(reticle_pos, "textures/reticle_nex", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_nex"), DRAWFLAG_NORMAL);
+       {
+               precache_pic("textures/reticle_nex");
+               if(reticle_type == 1 && current_zoomfraction)
+                       drawpic(reticle_pos, "textures/reticle_nex", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_nex"), DRAWFLAG_NORMAL);
+       }
 
        // Draw the mouse cursor
        // NOTE: drawpic must happen after R_RenderScene for some reason