[nexuiz-commits] r7928 - in trunk/data: . qcsrc/client

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Sep 26 11:28:03 EDT 2009


Author: fruitiex
Date: 2009-09-26 11:28:03 -0400 (Sat, 26 Sep 2009)
New Revision: 7928

Modified:
   trunk/data/defaultNexuiz.cfg
   trunk/data/qcsrc/client/waypointsprites.qc
Log:
support waypointsprite fading near the crosshair and screen edges


Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2009-09-26 15:24:11 UTC (rev 7927)
+++ trunk/data/defaultNexuiz.cfg	2009-09-26 15:28:03 UTC (rev 7928)
@@ -1094,6 +1094,12 @@
 set g_waypointsprite_stuffbinds 0
 seta g_waypointsprite_scale 1
 seta g_waypointsprite_alpha 1 "This allows the client to control transparency of the waypoint"
+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_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"
 alias "g_waypointsprite_personal"	"impulse 30"
 alias "g_waypointsprite_personal_p"	"impulse 31"
 alias "g_waypointsprite_personal_d"	"impulse 32"

Modified: trunk/data/qcsrc/client/waypointsprites.qc
===================================================================
--- trunk/data/qcsrc/client/waypointsprites.qc	2009-09-26 15:24:11 UTC (rev 7927)
+++ trunk/data/qcsrc/client/waypointsprites.qc	2009-09-26 15:28:03 UTC (rev 7928)
@@ -239,6 +239,24 @@
 	else
 		spriteimage = strcat("models/sprites/", spriteimage, "_frame", ftos(mod(floor((max(0, time - self.spawntime)) * 2), t)));
 
+	float edgefadealpha = cvar("g_waypointsprite_edgefadealpha");
+	float edgefadescale = cvar("g_waypointsprite_edgefadescale");
+	float edgefadedistance = cvar("g_waypointsprite_edgefadedistance");
+	float edgedistance_min = min4(o_y, o_x,vid_conwidth - o_x, vid_conheight - o_y);
+
+	float crosshairfadealpha = cvar("g_waypointsprite_crosshairfadealpha");
+        float crosshairfadescale = cvar("g_waypointsprite_crosshairfadescale");
+	float crosshairfadedistance = cvar("g_waypointsprite_crosshairfadedistance");
+	float crosshairdistance; // current distance from waypoint to crosshair
+	crosshairdistance = sqrt( pow(o_x - vid_conwidth/2, 2) + pow(o_y - vid_conheight/2, 2) );
+
+	if (edgedistance_min < edgefadedistance) {
+		a = a * bound(edgefadealpha, edgedistance_min/edgefadedistance, 1);
+		vidscale = vidscale * bound(edgefadescale, edgedistance_min/edgefadedistance, 1);
+	} else if (crosshairdistance < crosshairfadedistance) {
+		a = a * bound(crosshairfadealpha, crosshairdistance/crosshairfadedistance, 1);
+		vidscale = vidscale * bound(crosshairfadescale, crosshairdistance/crosshairfadedistance, 1);
+	}
 	drawrotpic(o, rot * 90 * DEG2RAD, spriteimage, SPRITE_SIZE * waypointsprite_scale * vidscale, SPRITE_HOTSPOT * waypointsprite_scale * vidscale, '1 1 1', a, DRAWFLAG_MIPMAP);
 
 	if(self.build_finished)



More information about the nexuiz-commits mailing list