[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