[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