]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Some ground work for screen offsets for waypointsprites -- doesn't work right now...
authorSamual <samual@xonotic.org>
Tue, 15 Feb 2011 02:50:37 +0000 (21:50 -0500)
committerSamual <samual@xonotic.org>
Tue, 15 Feb 2011 02:50:37 +0000 (21:50 -0500)
defaultXonotic.cfg
qcsrc/client/autocvars.qh
qcsrc/client/waypointsprites.qc

index c76176a843fbbff851f86403ba198fb2c3c05f41..888b96530d48f404d78b324186a12a755ad82c40 100644 (file)
@@ -1220,6 +1220,8 @@ seta g_waypointsprite_alpha 1 "This allows the client to control transparency of
 seta g_waypointsprite_edgefadealpha 0.5 "alpha multiplier near the edge"
 seta g_waypointsprite_edgefadescale 1 "scale multiplier near the edge"
 seta g_waypointsprite_edgefadedistance 50 "distance in virtual pixels from edge where to start fading"
+seta g_waypointsprite_edgeoffset_x 0.2 "offset of how close the waypoint can be to the edge of the screen (between left and right)"
+seta g_waypointsprite_edgeoffset_y 0.2 "offset of how close the waypoint can be to the edge of the screen (between top and bottom)"
 seta g_waypointsprite_crosshairfadealpha 0.25 "alpha multiplier near crosshair"
 seta g_waypointsprite_crosshairfadescale 1 "scale multiplier near the crosshair"
 seta g_waypointsprite_crosshairfadedistance 150 "distance in virtual pixels from crosshair where to start fading"
index 790855c88d0025bb5ec33f1fc864fc70404a342a..52277fd78fa74021a439adb55febdfcf1ad5aec7 100644 (file)
@@ -135,6 +135,8 @@ var float autocvar_g_waypointsprite_distancefadescale = 1;
 var float autocvar_g_waypointsprite_edgefadealpha = 1;
 float autocvar_g_waypointsprite_edgefadedistance;
 var float autocvar_g_waypointsprite_edgefadescale = 1;
+float autocvar_g_waypointsprite_edgeoffset_x;
+float autocvar_g_waypointsprite_edgeoffset_y;
 float autocvar_g_waypointsprite_minalpha;
 float autocvar_g_waypointsprite_minscale;
 float autocvar_g_waypointsprite_normdistance;
index 8ecadaeb857f72f4745a33b2cd3d2748e774a388..d93c40cfed1120517846b99bf5d1cff57ddd141d 100644 (file)
@@ -9,6 +9,8 @@ float waypointsprite_scale;
 float waypointsprite_edgefadealpha;
 float waypointsprite_edgefadescale;
 float waypointsprite_edgefadedistance;
+float waypointsprite_edgeoffset_x;
+float waypointsprite_edgeoffset_y;
 float waypointsprite_crosshairfadealpha;
 float waypointsprite_crosshairfadescale;
 float waypointsprite_crosshairfadedistance;
@@ -182,7 +184,13 @@ void Draw_WaypointSprite()
        o = project_3d_to_2d(self.origin);
        rot = 0;
 
-       if(o_z < 0 || o_x < 0 || o_y < 0 || o_x > vid_conwidth || o_y > vid_conheight)
+       print("origin: ", vtos(o), ", edgeoffsets: ", ftos(waypointsprite_edgeoffset_x), " - ", ftos(autocvar_g_waypointsprite_edgeoffset_x), ". \n");
+
+       if(o_z < 0 
+       || o_x < (vid_conwidth * waypointsprite_edgeoffset_x) 
+       || o_y < (vid_conheight * waypointsprite_edgeoffset_y) 
+       || o_x > (vid_conwidth - (vid_conwidth * waypointsprite_edgeoffset_x))  
+       || o_y > (vid_conheight - (vid_conheight * waypointsprite_edgeoffset_y)))
        {
                // scale it to be just in view
                vector d;
@@ -210,13 +218,13 @@ void Draw_WaypointSprite()
                        if(d_z * f1 > 0)
                        {
                                // RIGHT edge
-                               d = d * (0.5 / f1);
+                               d = d * ((0.5 - waypointsprite_edgeoffset_x) / f1);
                                rot = 3;
                        }
                        else
                        {
                                // LEFT edge
-                               d = d * (-0.5 / f1);
+                               d = d * (-(0.5 - waypointsprite_edgeoffset_x) / f1);
                                rot = 1;
                        }
                }
@@ -225,13 +233,13 @@ void Draw_WaypointSprite()
                        if(d_z * f2 > 0)
                        {
                                // BOTTOM edge
-                               d = d * (0.5 / f2);
+                               d = d * ((0.5 - waypointsprite_edgeoffset_y) / f2);
                                rot = 0;
                        }
                        else
                        {
                                // TOP edge
-                               d = d * (-0.5 / f2);
+                               d = d * (-(0.5 - waypointsprite_edgeoffset_y) / f2);
                                rot = 2;
                        }
                }
@@ -418,6 +426,8 @@ void WaypointSprite_Load()
        waypointsprite_edgefadealpha = autocvar_g_waypointsprite_edgefadealpha;
        waypointsprite_edgefadescale = autocvar_g_waypointsprite_edgefadescale;
        waypointsprite_edgefadedistance = autocvar_g_waypointsprite_edgefadedistance;
+       waypointsprite_edgeoffset_x = autocvar_g_waypointsprite_edgeoffset_x;
+       waypointsprite_edgeoffset_y = autocvar_g_waypointsprite_edgeoffset_y;
        waypointsprite_crosshairfadealpha = autocvar_g_waypointsprite_crosshairfadealpha;
        waypointsprite_crosshairfadescale = autocvar_g_waypointsprite_crosshairfadescale;
        waypointsprite_crosshairfadedistance = autocvar_g_waypointsprite_crosshairfadedistance;