[nexuiz-commits] r8147 - in trunk/data: . qcsrc/client
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Oct 17 10:41:11 EDT 2009
Author: div0
Date: 2009-10-17 10:41:10 -0400 (Sat, 17 Oct 2009)
New Revision: 8147
Modified:
trunk/data/defaultNexuiz.cfg
trunk/data/qcsrc/client/View.qc
Log:
moar crosshair effect stuff: cvar crosshair_effect_scalefade, and also fade the color
Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg 2009-10-17 13:52:27 UTC (rev 8146)
+++ trunk/data/defaultNexuiz.cfg 2009-10-17 14:41:10 UTC (rev 8147)
@@ -114,6 +114,7 @@
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 -1 "how fast (in seconds) some crosshair effects should take place, 0 = instant, -1 = 2x weapon switch time"
+seta crosshair_effect_scalefade 1 "use scaling and fading for crosshair effects"
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-17 13:52:27 UTC (rev 8146)
+++ trunk/data/qcsrc/client/View.qc 2009-10-17 14:41:10 UTC (rev 8147)
@@ -208,10 +208,14 @@
float zoomscript_caught;
vector wcross_origin;
-float wcross_sizefloat_prev, wcross_alpha_prev, wcross_blur_prev;
-float wcross_sizefloat_goal_prev, wcross_alpha_goal_prev, wcross_blur_goal_prev;
+float wcross_scale_prev, wcross_alpha_prev;
+vector wcross_color_prev;
+float wcross_scale_goal_prev, wcross_alpha_goal_prev;
+vector wcross_color_goal_prev;
float wcross_changedonetime;
+
string wcross_name_goal_prev, wcross_name_goal_prev_prev;
+float wcross_resolution_goal_prev, wcross_resolution_goal_prev_prev;
float wcross_name_changestarttime, wcross_name_changedonetime;
float wcross_name_alpha_goal_prev, wcross_name_alpha_goal_prev_prev;
entity trueaim;
@@ -623,13 +627,13 @@
if (wcross_style != "0") {
vector wcross_color, wcross_size;
string wcross_wep, wcross_name;
- float wcross_alpha, wcross_sizefloat, wcross_blur;
+ float wcross_alpha, wcross_scale, wcross_blur, wcross_resolution;
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");
- wcross_sizefloat = cvar("crosshair_size");
+ wcross_resolution = cvar("crosshair_size");
if (cvar("crosshair_per_weapon")) {
e = get_weaponinfo(activeweapon);
if (e && e.netname != "")
@@ -647,32 +651,35 @@
}
wcross_alpha *= cvar(strcat("crosshair_", wcross_wep, "_color_alpha"));
- wcross_sizefloat *= cvar(strcat("crosshair_", wcross_wep, "_size"));
+ wcross_resolution *= 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
- if(shottype == SHOTTYPE_HITTEAM)
- wcross_sizefloat /= cvar("crosshair_hittest"); // is not queried if hittest is 0
- if(shottype == SHOTTYPE_HITTEAM || (shottype == SHOTTYPE_HITOBSTRUCTION && cvar("crosshair_hittest_blur") && !cvar("chase_active")))
+ if(cvar("crosshair_effect_scalefade"))
{
- wcross_alpha *= 0.75;
- wcross_blur = 1;
+ wcross_scale = wcross_resolution;
+ wcross_resolution = 1;
}
else
- wcross_blur = 0;
+ {
+ wcross_scale = 1;
+ }
+ if(shottype == SHOTTYPE_HITENEMY)
+ wcross_scale *= cvar("crosshair_hittest"); // is not queried if hittest is 0
+ if(shottype == SHOTTYPE_HITTEAM)
+ wcross_scale /= cvar("crosshair_hittest"); // is not queried if hittest is 0
+
f = cvar("crosshair_effect_speed");
if(f < 0)
f *= -2 * g_weaponswitchdelay;
- if(wcross_blur != wcross_blur_goal_prev || wcross_sizefloat != wcross_sizefloat_goal_prev || wcross_alpha != wcross_alpha_goal_prev)
+ if(wcross_scale != wcross_scale_goal_prev || wcross_alpha != wcross_alpha_goal_prev || wcross_color != wcross_color_goal_prev)
{
wcross_changedonetime = time + f;
}
- if(wcross_name != wcross_name_goal_prev)
+ if(wcross_name != wcross_name_goal_prev || wcross_resolution != wcross_resolution_goal_prev)
{
wcross_name_changestarttime = time;
wcross_name_changedonetime = time + f;
@@ -681,33 +688,40 @@
wcross_name_goal_prev_prev = wcross_name_goal_prev;
wcross_name_goal_prev = strzone(wcross_name);
wcross_name_alpha_goal_prev_prev = wcross_name_alpha_goal_prev;
+ wcross_resolution_goal_prev_prev = wcross_resolution_goal_prev;
+ wcross_resolution_goal_prev = wcross_resolution;
}
- wcross_sizefloat_goal_prev = wcross_sizefloat;
+ wcross_scale_goal_prev = wcross_scale;
wcross_alpha_goal_prev = wcross_alpha;
- wcross_blur_goal_prev = wcross_blur;
+ wcross_color_goal_prev = wcross_color;
+ if(shottype == SHOTTYPE_HITTEAM || (shottype == SHOTTYPE_HITOBSTRUCTION && cvar("crosshair_hittest_blur") && !cvar("chase_active")))
+ {
+ wcross_blur = 1;
+ wcross_alpha *= 0.75;
+ }
+ else
+ wcross_blur = 0;
// *_prev is at time-frametime
// * is at wcross_changedonetime+f
// what do we have at time?
if(time < wcross_changedonetime)
{
f = frametime / (wcross_changedonetime - time + frametime);
- wcross_sizefloat = f * wcross_sizefloat + (1 - f) * wcross_sizefloat_prev;
+ wcross_scale = f * wcross_scale + (1 - f) * wcross_scale_prev;
wcross_alpha = f * wcross_alpha + (1 - f) * wcross_alpha_prev;
- //wcross_blur = (frametime / f) * wcross_blur + (1 - frametime / f) * wcross_blur_prev;
+ wcross_color = f * wcross_color + (1 - f) * wcross_color_prev;
}
- wcross_sizefloat_prev = wcross_sizefloat;
+ wcross_scale_prev = wcross_scale;
wcross_alpha_prev = wcross_alpha;
- wcross_blur_prev = wcross_blur;
+ wcross_color_prev = wcross_color;
- wcross_sizefloat *= 1 - cvar("_menu_alpha");
+ wcross_scale *= 1 - cvar("_menu_alpha");
wcross_alpha *= 1 - cvar("_menu_alpha");
- wcross_size = drawgetimagesize(wcross_name);
- wcross_size_x *= wcross_sizefloat;
- wcross_size_y *= wcross_sizefloat;
+ wcross_size = drawgetimagesize(wcross_name) * wcross_scale;
// ring around crosshair representing bullets left in camping rifle clip
if (activeweapon == WEP_CAMPINGRIFLE)
@@ -718,10 +732,10 @@
else
bullets = 0;
-#define CROSSHAIR_DRAW_RING(i,j,dummy1,dummy2) \
- drawpic(wcross_origin - ('0.5 0 0' * (wcross_size_x * ring_scale + i * wcross_blur) + '0 0.5 0' * (wcross_size_y * ring_scale + j * wcross_blur)), strcat("gfx/hud/rifle_ring_", ftos(bullets)), wcross_size * ring_scale, wcross_color, wcross_alpha, DRAWFLAG_NORMAL)
+#define CROSSHAIR_DRAW_RING(i,j,sz,dummy1,dummy2) \
+ drawpic(wcross_origin - ('0.5 0 0' * (sz * wcross_size_x * ring_scale + i * wcross_blur) + '0 0.5 0' * (sz * wcross_size_y * ring_scale + j * wcross_blur)), strcat("gfx/hud/rifle_ring_", ftos(bullets)), sz * wcross_size * ring_scale, wcross_color, wcross_alpha, DRAWFLAG_NORMAL)
-#define CROSSHAIR_DO_BLUR(M,a,b) \
+#define CROSSHAIR_DO_BLUR(M,sz,a,b) \
do \
{ \
if(wcross_blur > 0) \
@@ -729,48 +743,46 @@
wcross_alpha = wcross_alpha * 0.04; \
for(i = -2; i <= 2; ++i) \
for(j = -2; j <= 2; ++j) \
- M(i,j,a,b); \
+ M(i,j,sz,a,b); \
} \
else \
{ \
- M(0,0,a,b); \
+ M(0,0,sz,a,b); \
} \
} \
while(0)
-#define CROSSHAIR_DRAW_SINGLE(i,j,wcross_name,wcross_alpha) \
- drawpic(wcross_origin - ('0.5 0 0' * (wcross_size_x + i * wcross_blur) + '0 0.5 0' * (wcross_size_y + j * wcross_blur)), wcross_name, wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL)
+#define CROSSHAIR_DRAW_SINGLE(i,j,sz,wcross_name,wcross_alpha) \
+ drawpic(wcross_origin - ('0.5 0 0' * (sz * wcross_size_x + i * wcross_blur) + '0 0.5 0' * (sz * wcross_size_y + j * wcross_blur)), wcross_name, sz * wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL)
-#define CROSSHAIR_DRAW(wcross_name,wcross_alpha) \
- CROSSHAIR_DO_BLUR(CROSSHAIR_DRAW_SINGLE,wcross_name,wcross_alpha)
+#define CROSSHAIR_DRAW(sz,wcross_name,wcross_alpha) \
+ CROSSHAIR_DO_BLUR(CROSSHAIR_DRAW_SINGLE,sz,wcross_name,wcross_alpha)
if(bullets)
{
- CROSSHAIR_DO_BLUR(CROSSHAIR_DRAW_RING, 0, 0);
+ CROSSHAIR_DO_BLUR(CROSSHAIR_DRAW_RING, wcross_resolution, 0, 0);
}
if(time < wcross_name_changedonetime && wcross_name != wcross_name_goal_prev_prev && wcross_name_goal_prev_prev)
{
f = (wcross_name_changedonetime - time) / (wcross_name_changedonetime - wcross_name_changestarttime);
- CROSSHAIR_DRAW(wcross_name_goal_prev_prev, wcross_alpha * f * wcross_name_alpha_goal_prev_prev);
+ CROSSHAIR_DRAW(wcross_resolution_goal_prev_prev, wcross_name_goal_prev_prev, wcross_alpha * f * wcross_name_alpha_goal_prev_prev);
f = 1 - f;
}
else
{
f = 1;
}
- CROSSHAIR_DRAW(wcross_name, wcross_alpha * f);
+ CROSSHAIR_DRAW(wcross_resolution, wcross_name, wcross_alpha * f);
wcross_name_alpha_goal_prev = f;
}
}
else
{
- wcross_sizefloat_prev = 0;
+ wcross_scale_prev = 0;
wcross_alpha_prev = 0;
- wcross_blur_prev = 0;
- wcross_sizefloat_goal_prev = 0;
+ wcross_scale_goal_prev = 0;
wcross_alpha_goal_prev = 0;
- wcross_blur_goal_prev = 0;
wcross_changedonetime = 0;
if(wcross_name_goal_prev)
strunzone(wcross_name_goal_prev);
@@ -782,6 +794,8 @@
wcross_name_changedonetime = 0;
wcross_name_alpha_goal_prev = 0;
wcross_name_alpha_goal_prev_prev = 0;
+ wcross_resolution_goal_prev = 0;
+ wcross_resolution_goal_prev_prev = 0;
}
}
More information about the nexuiz-commits
mailing list