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

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Oct 13 14:41:37 EDT 2009


Author: fruitiex
Date: 2009-10-13 14:41:37 -0400 (Tue, 13 Oct 2009)
New Revision: 8119

Modified:
   trunk/data/defaultNexuiz.cfg
   trunk/data/qcsrc/client/View.qc
Log:
smooth crosshair effects by Taoki


Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2009-10-13 12:02:14 UTC (rev 8118)
+++ trunk/data/defaultNexuiz.cfg	2009-10-13 18:41:37 UTC (rev 8119)
@@ -113,6 +113,7 @@
 crosshair 1
 seta crosshair_per_weapon 0	"when 1, each gun will display a different crosshair"
 seta crosshair_color_override 0	"when 1, crosshair_color_* overrides the per-weapon color"
+seta crosshair_effect_speed 0.05 "how fast some crosshair effects should take place, 0 = instant"
 seta crosshair_hittest 1 "do a crosshair hit evaluation; also, the crosshair is scaled by the given number when aiming at an enemy, and blurred when aiming at a team mate"
 seta crosshair_hittest_blur 1 "blur the crosshair if the shot is obstructed"
 seta crosshair_hittest_showimpact 0 "move the crosshair to the actual impact location if obstructed"

Modified: trunk/data/qcsrc/client/View.qc
===================================================================
--- trunk/data/qcsrc/client/View.qc	2009-10-13 12:02:14 UTC (rev 8118)
+++ trunk/data/qcsrc/client/View.qc	2009-10-13 18:41:37 UTC (rev 8119)
@@ -208,6 +208,7 @@
 float zoomscript_caught;
 
 vector wcross_origin;
+float wcross_sizefloat, wcross_alpha;
 entity trueaim;
 entity trueaim_rifle;
 
@@ -617,13 +618,13 @@
             if (wcross_style != "0") {
                 vector wcross_color, wcross_size;
                 string wcross_wep, wcross_name;
-                float wcross_alpha, wcross_sizefloat;
+                float wcross_alpha_initial, wcross_alpha_old, wcross_sizefloat_initial;
 
                 wcross_color_x = cvar("crosshair_color_red");
                 wcross_color_y = cvar("crosshair_color_green");
                 wcross_color_z = cvar("crosshair_color_blue");
-                wcross_alpha = cvar("crosshair_color_alpha") * (1-cvar("_menu_alpha"));
-                wcross_sizefloat = cvar("crosshair_size") * (1-cvar("_menu_alpha"));
+                wcross_alpha_initial = cvar("crosshair_color_alpha") * (1-cvar("_menu_alpha"));
+                wcross_sizefloat_initial = cvar("crosshair_size") * (1-cvar("_menu_alpha"));
                 if (cvar("crosshair_per_weapon")) {
                     e = get_weaponinfo(activeweapon);
                     if (e && e.netname != "")
@@ -640,18 +641,27 @@
                             wcross_color_z = cvar(strcat("crosshair_", wcross_wep, "_color_blue"));
                         }
 
-                        wcross_alpha *= cvar(strcat("crosshair_", wcross_wep, "_color_alpha"));
-                        wcross_sizefloat *= cvar(strcat("crosshair_", wcross_wep, "_size"));
+                        wcross_alpha_initial *= cvar(strcat("crosshair_", wcross_wep, "_color_alpha"));
+                        wcross_sizefloat_initial *= cvar(strcat("crosshair_", wcross_wep, "_size"));
                     }
                 }
 
                 wcross_name = strcat("gfx/crosshair", wcross_style);
 
 				if(shottype == SHOTTYPE_HITENEMY)
-					wcross_sizefloat *= cvar("crosshair_hittest"); // is not queried if hittest is 0
+					wcross_sizefloat_initial *= cvar("crosshair_hittest"); // is not queried if hittest is 0
 				if(shottype == SHOTTYPE_HITTEAM)
-					wcross_sizefloat /= cvar("crosshair_hittest"); // is not queried if hittest is 0
+					wcross_sizefloat_initial /= cvar("crosshair_hittest"); // is not queried if hittest is 0
 
+				if(cvar("crosshair_effect_speed") <= 0 || 1-cvar("_menu_alpha") != 1)
+					wcross_sizefloat = wcross_sizefloat_initial;
+				else if(wcross_sizefloat < (wcross_sizefloat_initial - cvar("crosshair_effect_speed")))
+					wcross_sizefloat += cvar("crosshair_effect_speed");
+				else if(wcross_sizefloat > (wcross_sizefloat_initial + cvar("crosshair_effect_speed")))
+					wcross_sizefloat -= cvar("crosshair_effect_speed");
+				else
+					wcross_sizefloat = wcross_sizefloat_initial;
+
                 wcross_size = drawgetimagesize(wcross_name);
                 wcross_size_x *= wcross_sizefloat;
                 wcross_size_y *= wcross_sizefloat;
@@ -667,7 +677,8 @@
 				
                 if(shottype == SHOTTYPE_HITTEAM || (shottype == SHOTTYPE_HITOBSTRUCTION && cvar("crosshair_hittest_blur") && !cvar("chase_active")))
                 {
-                    wcross_alpha *= 0.04 * 0.75;
+					wcross_alpha_old = wcross_alpha;
+                    wcross_alpha = wcross_alpha_initial * 0.04 * 0.75;
                     for(i = -2; i <= 2; ++i)
                         for(j = -2; j <= 2; ++j)
 						{
@@ -675,9 +686,18 @@
 								drawpic(wcross_origin - '0.5 0 0' * (wcross_size_x * ring_scale + i) - '0 0.5 0' * (wcross_size_y * ring_scale + j), strcat("gfx/hud/rifle_ring_", ftos(bullets)), wcross_size * ring_scale, wcross_color, wcross_alpha, DRAWFLAG_NORMAL);
                             drawpic(wcross_origin - '0.5 0 0' * (wcross_size_x + i) - '0 0.5 0' * (wcross_size_y + j), wcross_name, wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL);
 						}
+					wcross_alpha = wcross_alpha_old;
                 }
                 else
                 {
+					if(cvar("crosshair_effect_speed") <= 0 || 1-cvar("_menu_alpha") != 1)
+						wcross_alpha = wcross_alpha_initial;
+					else if(wcross_alpha < (wcross_alpha_initial - cvar("crosshair_effect_speed") * 1.5))
+						wcross_alpha += cvar("crosshair_effect_speed") * 1.5;
+					else if(wcross_alpha > (wcross_alpha_initial + cvar("crosshair_effect_speed") * 1.5))
+						wcross_alpha -= cvar("crosshair_effect_speed") * 1.5;
+					else
+						wcross_alpha = wcross_alpha_initial;
 					if (bullets)
 						drawpic(wcross_origin - '0.5 0 0' * (wcross_size_x * ring_scale) - '0 0.5 0' * (wcross_size_y * ring_scale), strcat("gfx/hud/rifle_ring_", ftos(bullets)), wcross_size * ring_scale, wcross_color, wcross_alpha, DRAWFLAG_NORMAL);
                     drawpic(wcross_origin - '0.5 0 0' * (wcross_size_x) - '0 0.5 0' * ( wcross_size_y), wcross_name, wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL);
@@ -805,6 +825,9 @@
             CSQC_spider_HUD();
             break;
     }
+
+	if (getstati(STAT_HEALTH) <= 0)
+		wcross_sizefloat = wcross_alpha = 0;
 }
 
 



More information about the nexuiz-commits mailing list