From 7d1a64155fa7f2efdb58325d58b69628044a7d18 Mon Sep 17 00:00:00 2001 From: div0 Date: Wed, 14 Oct 2009 07:16:56 +0000 Subject: [PATCH] fix crosshair effects git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8126 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/balance.cfg | 2 +- data/balance25.cfg | 2 +- data/balanceHavoc.cfg | 2 +- data/balanceNexrun.cfg | 2 +- data/balanceSamual.cfg | 2 +- data/defaultNexuiz.cfg | 4 +-- data/qcsrc/client/View.qc | 50 ++++++++++++++++++++++------------ data/qcsrc/menu/draw.qc | 6 ++-- data/qcsrc/server/constants.qh | 4 +-- 9 files changed, 45 insertions(+), 29 deletions(-) diff --git a/data/balance.cfg b/data/balance.cfg index 550465abb..faba9cc52 100644 --- a/data/balance.cfg +++ b/data/balance.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 1e423b95c67bac7998289473abe8feb1 +set cvar_check_balance 7f0cddd65617fa39bd3efb7942dceea9 // {{{ weapon replacement // NOTE: this only replaces weapons on the map diff --git a/data/balance25.cfg b/data/balance25.cfg index 2ce97f2f0..5ccb5ab60 100644 --- a/data/balance25.cfg +++ b/data/balance25.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 1e423b95c67bac7998289473abe8feb1 +set cvar_check_balance 7f0cddd65617fa39bd3efb7942dceea9 // {{{ weapon replacement // NOTE: this only replaces weapons on the map diff --git a/data/balanceHavoc.cfg b/data/balanceHavoc.cfg index f843a656c..9a5ebae41 100644 --- a/data/balanceHavoc.cfg +++ b/data/balanceHavoc.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 1e423b95c67bac7998289473abe8feb1 +set cvar_check_balance 7f0cddd65617fa39bd3efb7942dceea9 // {{{ weapon replacement // NOTE: this only replaces weapons on the map diff --git a/data/balanceNexrun.cfg b/data/balanceNexrun.cfg index 609fe851e..6dbc47a63 100644 --- a/data/balanceNexrun.cfg +++ b/data/balanceNexrun.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 1e423b95c67bac7998289473abe8feb1 +set cvar_check_balance 7f0cddd65617fa39bd3efb7942dceea9 // {{{ weapon replacement // NOTE: this only replaces weapons on the map diff --git a/data/balanceSamual.cfg b/data/balanceSamual.cfg index 36a18f622..cd94c2203 100644 --- a/data/balanceSamual.cfg +++ b/data/balanceSamual.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 1e423b95c67bac7998289473abe8feb1 +set cvar_check_balance 7f0cddd65617fa39bd3efb7942dceea9 // {{{ weapon replacement // NOTE: this only replaces weapons on the map diff --git a/data/defaultNexuiz.cfg b/data/defaultNexuiz.cfg index 9ae935cc6..1961b17de 100644 --- a/data/defaultNexuiz.cfg +++ b/data/defaultNexuiz.cfg @@ -26,7 +26,7 @@ if_dedicated alias if_client "" seta g_configversion 0 "Configuration file version (used to upgrade settings) 0: first run, or previous start was <2.4.1 Later, it's overridden by config.cfg, version ranges are defined in config_update.cfg" // default.cfg versioning (update using update-cvarcount.sh, run that every time after adding a new cvar) -set cvar_check_default 37cc3aae4b042acd9cf2b71135034bcf +set cvar_check_default 5d48426c72cdfbf78480870c75601f89 // Nexuiz version (formatted for machines) // used to determine if a client version is compatible @@ -113,7 +113,7 @@ _cl_playerskin 0 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_effect_speed 5 "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" diff --git a/data/qcsrc/client/View.qc b/data/qcsrc/client/View.qc index 21fc41634..5cf7c09d5 100644 --- a/data/qcsrc/client/View.qc +++ b/data/qcsrc/client/View.qc @@ -208,7 +208,7 @@ vector GetCurrentFov(float fov) float zoomscript_caught; vector wcross_origin; -float wcross_sizefloat_prev, wcross_alpha_prev; +float wcross_sizefloat_prev, wcross_alpha_prev, wcross_blur_prev; entity trueaim; entity trueaim_rifle; @@ -618,7 +618,7 @@ void CSQC_UpdateView(float w, float h) if (wcross_style != "0") { vector wcross_color, wcross_size; string wcross_wep, wcross_name; - float wcross_alpha, wcross_sizefloat; + float wcross_alpha, wcross_sizefloat, wcross_blur; wcross_color_x = cvar("crosshair_color_red"); wcross_color_y = cvar("crosshair_color_green"); @@ -641,8 +641,8 @@ void CSQC_UpdateView(float w, float h) wcross_color_z = cvar(strcat("crosshair_", wcross_wep, "_color_blue")); } - wcross_alpha_initial *= cvar(strcat("crosshair_", wcross_wep, "_color_alpha")); - wcross_sizefloat_initial *= cvar(strcat("crosshair_", wcross_wep, "_size")); + wcross_alpha *= cvar(strcat("crosshair_", wcross_wep, "_color_alpha")); + wcross_sizefloat *= cvar(strcat("crosshair_", wcross_wep, "_size")); } } @@ -652,23 +652,42 @@ void CSQC_UpdateView(float w, float h) 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"))) + { + wcross_alpha *= 0.75; + wcross_blur = 1; + } + else + wcross_blur = 0; f = cvar("crosshair_effect_speed"); - if(f <= 0) + if(f > 0) { f *= frametime; - wcross_sizefloat = bound(wcross_sizefloat_old - f, wcross_sizefloat, wcross_sizefloat_old + f); + wcross_sizefloat = bound(wcross_sizefloat_prev - f, wcross_sizefloat, wcross_sizefloat_prev + f); } f = cvar("crosshair_effect_speed") * 1.5; // no idea why taoki wants alpha to fade faster, but here we go - if(f <= 0) + if(f > 0) + { + f *= frametime; + wcross_alpha = bound(wcross_alpha_prev - f, wcross_alpha, wcross_alpha_prev + f); + } + +#if 0 + f = cvar("crosshair_effect_speed"); + if(f > 0) { f *= frametime; - wcross_alpha = bound(wcross_alpha_old - f, wcross_alpha, wcross_alpha_old + f); + wcross_blur = bound(wcross_blur_prev - f, wcross_blur, wcross_blur_prev + f); } + else + wcross_blur = 0; +#endif - wcross_size_prev = wcross_sizefloat; + wcross_sizefloat_prev = wcross_sizefloat; wcross_alpha_prev = wcross_alpha; + wcross_blur_prev = wcross_blur; wcross_sizefloat *= 1 - cvar("_menu_alpha"); wcross_alpha *= 1 - cvar("_menu_alpha"); @@ -686,15 +705,15 @@ void CSQC_UpdateView(float w, float h) else bullets = 0; - if(shottype == SHOTTYPE_HITTEAM || (shottype == SHOTTYPE_HITOBSTRUCTION && cvar("crosshair_hittest_blur") && !cvar("chase_active"))) + if(wcross_blur > 0) { - wcross_alpha = wcross_alpha * 0.04 * 0.75; + wcross_alpha = wcross_alpha * 0.04; for(i = -2; i <= 2; ++i) for(j = -2; j <= 2; ++j) { if (bullets) - 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); + 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); + 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); } } else @@ -709,6 +728,7 @@ void CSQC_UpdateView(float w, float h) { wcross_sizefloat_prev = 0; wcross_alpha_prev = 0; + wcross_blur_prev = 0; } } @@ -815,7 +835,6 @@ void CSQC_spider_HUD() } void CSQC_common_hud(void) { - // Sbar_SortFrags(); done in Sbar_Draw float hud; hud = getstati(STAT_HUD); @@ -831,9 +850,6 @@ void CSQC_common_hud(void) CSQC_spider_HUD(); break; } - - if (getstati(STAT_HEALTH) <= 0) - wcross_sizefloat = wcross_alpha = 0; } diff --git a/data/qcsrc/menu/draw.qc b/data/qcsrc/menu/draw.qc index d0a24749e..72d594f55 100644 --- a/data/qcsrc/menu/draw.qc +++ b/data/qcsrc/menu/draw.qc @@ -278,10 +278,10 @@ void draw_ClearClip() string draw_TextShortenToWidth(string theText, float maxWidth, float ICanHasKallerz) { - if(draw_TextWidth(theText, ICanHasKallerz) <= maxWidth) - return theText; + if(ICanHasKallerz) + return textShortenToWidth(theText, maxWidth, draw_TextWidth_WithColors); else - return strcat(substring(theText, 0, draw_TextLengthUpToWidth(theText, maxWidth - draw_TextWidth("...", ICanHasKallerz), ICanHasKallerz)), "..."); + return textShortenToWidth(theText, maxWidth, draw_TextWidth_WithoutColors); } float draw_TextWidth_WithColors(string s) diff --git a/data/qcsrc/server/constants.qh b/data/qcsrc/server/constants.qh index 731eb2a5e..2c524f0b0 100644 --- a/data/qcsrc/server/constants.qh +++ b/data/qcsrc/server/constants.qh @@ -1,5 +1,5 @@ -string CVAR_CHECK_DEFAULT = "37cc3aae4b042acd9cf2b71135034bcf"; -string CVAR_CHECK_BALANCE = "1e423b95c67bac7998289473abe8feb1"; +string CVAR_CHECK_DEFAULT = "5d48426c72cdfbf78480870c75601f89"; +string CVAR_CHECK_BALANCE = "7f0cddd65617fa39bd3efb7942dceea9"; float FALSE = 0; float TRUE = 1; -- 2.39.2