float pickup_crosshair_time, pickup_crosshair_size;\r
float myhealth, myhealth_prev, myhealth_flash;\r
float contentavgalpha, liquidalpha_prev;\r
+float old_blurradius, old_bluralpha, old_sharpen_intensity;\r
float stomachsplash_alpha, stomachsplash_remove_at_respawn;\r
float volume_modify_1, volume_modify_2, volume_modify_default_1, volume_modify_default_2;\r
float volume_modify_changed_1, volume_modify_changed_2;\r
\r
if(cvar("hud_postprocessing"))\r
{\r
- if(cvar("hud_contents_liquid_blur"))\r
+ if(cvar("hud_contents_liquid_blur") && contentavgalpha)\r
{\r
// when inside the stomach, we use different blur settings than when we're inside other fluids\r
content_blurpostprocess_x = 1;\r
\r
if(cvar("hud_postprocessing"))\r
{\r
- if(cvar("hud_damage_blur"))\r
+ if(cvar("hud_damage_blur") && myhealth_flash_temp)\r
{\r
damage_blurpostprocess_x = 1;\r
damage_blurpostprocess_y = bound(0, myhealth_flash_temp, 1) * cvar("hud_damage_blur");\r
\r
if(cvar("hud_postprocessing"))\r
{\r
+ // all of this should be done in the engine eventually\r
+\r
+ // enable or disable rendering types if they are used or not\r
+ if(cvar("r_glsl_postprocess_uservec1_enable") != (cvar("hud_postprocessing_maxbluralpha") != 0))\r
+ cvar_set("r_glsl_postprocess_uservec1_enable", ftos(cvar("hud_postprocessing_maxbluralpha") != 0));\r
+ if(cvar("r_glsl_postprocess_uservec2_enable") != (cvar("hud_powerup") != 0))\r
+ cvar_set("r_glsl_postprocess_uservec2_enable", ftos(cvar("hud_powerup") != 0));\r
+\r
// lets apply the postprocess effects from the previous two functions if needed\r
if(damage_blurpostprocess_x || content_blurpostprocess_x)\r
{\r
float blurradius = bound(0, damage_blurpostprocess_y + content_blurpostprocess_y, cvar("hud_postprocessing_maxblurradius"));\r
float bluralpha = bound(0, damage_blurpostprocess_z + content_blurpostprocess_z, cvar("hud_postprocessing_maxbluralpha"));\r
- cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(blurradius), " ", ftos(bluralpha), " 0 0"));\r
- cvar_set("r_glsl_postprocess_uservec1_enable", "1");\r
+ if(blurradius != old_blurradius || bluralpha != old_bluralpha) // reduce cvar_set spam as much as possible\r
+ {\r
+ cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(blurradius), " ", ftos(bluralpha), " 0 0"));\r
+ old_blurradius = blurradius;\r
+ old_bluralpha = bluralpha;\r
+ }\r
}\r
- else\r
+ else if(cvar_string("r_glsl_postprocess_uservec1") != "0 0 0 0") // reduce cvar_set spam as much as possible\r
{\r
cvar_set("r_glsl_postprocess_uservec1", "0 0 0 0");\r
- cvar_set("r_glsl_postprocess_uservec1_enable", "0");\r
+ old_blurradius = 0;\r
+ old_bluralpha = 0;\r
}\r
\r
- if(cvar("hud_powerup"))\r
+ float sharpen_intensity;\r
+ if (getstatf(STAT_STRENGTH_FINISHED) - time > 0)\r
+ sharpen_intensity += (getstatf(STAT_STRENGTH_FINISHED) - time);\r
+ if (getstatf(STAT_INVINCIBLE_FINISHED) - time > 0)\r
+ sharpen_intensity += (getstatf(STAT_INVINCIBLE_FINISHED) - time);\r
+\r
+ if(cvar("hud_powerup") && sharpen_intensity > 0)\r
{\r
- float sharpen_intensity;\r
- if (getstatf(STAT_STRENGTH_FINISHED) - time > 0)\r
- sharpen_intensity += (getstatf(STAT_STRENGTH_FINISHED) - time);\r
- if (getstatf(STAT_INVINCIBLE_FINISHED) - time > 0)\r
- sharpen_intensity += (getstatf(STAT_INVINCIBLE_FINISHED) - time);\r
sharpen_intensity = bound(0, sharpen_intensity, 5); // powerup warning time is 5 seconds, so fade the effect from there\r
\r
- if(sharpen_intensity > 0)\r
+ if(sharpen_intensity != old_sharpen_intensity) // reduce cvar_set spam as much as possible\r
{\r
cvar_set("r_glsl_postprocess_uservec2", strcat("0 ", ftos(-sharpen_intensity * cvar("hud_powerup")), " 0 0"));\r
- cvar_set("r_glsl_postprocess_uservec2_enable", "1");\r
- }\r
- else\r
- {\r
- cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0");\r
- cvar_set("r_glsl_postprocess_uservec2_enable", "0");\r
+ old_sharpen_intensity = sharpen_intensity;\r
}\r
}\r
+ else if(cvar_string("r_glsl_postprocess_uservec2") != "0 0 0 0") // reduce cvar_set spam as much as possible\r
+ {\r
+ cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0");\r
+ old_sharpen_intensity = 0;\r
+ }\r
}\r
\r
- if not(cvar("hud_damage") && cvar("hud_postprocessing"))\r
+ if(cvar("hud_postprocessing") && !cvar("hud_postprocessing_maxbluralpha"))\r
+ if(cvar("r_glsl_postprocess_uservec1_enable"))\r
{\r
// don't allow blur to get stuck on if we disable the cvar while damaged\r
cvar_set("r_glsl_postprocess_uservec1", "0 0 0 0");\r
cvar_set("r_glsl_postprocess_uservec1_enable", "0");\r
}\r
- if not(cvar("hud_powerup") && cvar("hud_postprocessing"))\r
+ if(cvar("hud_postprocessing") && !cvar("hud_powerup"))\r
+ if(cvar("r_glsl_postprocess_uservec2_enable"))\r
{\r
// don't allow sharpen to get stuck on if we disable the cvar while powered up\r
cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0");\r
string wcross_name;\r
float wcross_alpha, wcross_scale, wcross_blur, wcross_resolution;\r
\r
- if(swallow_indicator)\r
+ if(swallow_indicator && (cvar("crosshair_swallowindicator_color_red") || cvar("crosshair_swallowindicator_color_green") || cvar("crosshair_swallowindicator_color_blue")))\r
{\r
wcross_color_x = cvar("crosshair_swallowindicator_color_red");\r
wcross_color_y = cvar("crosshair_swallowindicator_color_green");\r
wcross_color_z = cvar("crosshair_swallowindicator_color_blue");\r
}\r
+ else if(cvar("crosshair_color_by_health"))\r
+ {\r
+ local float x = getstati(STAT_HEALTH);\r
+ \r
+ //x = red\r
+ //y = green\r
+ //z = blue\r
+ \r
+ wcross_color_z = 0;\r
+ \r
+ if(x > 200)\r
+ {\r
+ wcross_color_x = 0;\r
+ wcross_color_y = 1;\r
+ }\r
+ else if(x > 150)\r
+ {\r
+ wcross_color_x = 0.4 - (x-150)*0.02 * 0.4;\r
+ wcross_color_y = 0.9 + (x-150)*0.02 * 0.1;\r
+ }\r
+ else if(x > 100)\r
+ {\r
+ wcross_color_x = 1 - (x-100)*0.02 * 0.6;\r
+ wcross_color_y = 1 - (x-100)*0.02 * 0.1;\r
+ wcross_color_z = 1 - (x-100)*0.02;\r
+ }\r
+ else if(x > 50)\r
+ {\r
+ wcross_color_x = 1;\r
+ wcross_color_y = 1;\r
+ wcross_color_z = 0.2 + (x-50)*0.02 * 0.8; \r
+ }\r
+ else if(x > 20)\r
+ {\r
+ wcross_color_x = 1;\r
+ wcross_color_y = (x-20)*90/27/100;\r
+ wcross_color_z = (x-20)*90/27/100 * 0.2;\r
+ }\r
+ else\r
+ {\r
+ wcross_color_x = 1;\r
+ wcross_color_y = 0;\r
+ }\r
+ }\r
else\r
{\r
wcross_color_x = cvar("crosshair_color_red");\r
wcross_alpha = cvar("crosshair_color_alpha");\r
wcross_resolution = cvar("crosshair_size");\r
\r
+ if(!activeweapon)\r
+ if(!swallow_indicator)\r
+ {\r
+ if(cvar("crosshair_unarmed_dim_color"))\r
+ wcross_color *= cvar("crosshair_unarmed_dim_color");\r
+ if(cvar("crosshair_unarmed_dim_alpha"))\r
+ wcross_alpha *= cvar("crosshair_unarmed_dim_alpha");\r
+ }\r
+\r
wcross_name = strcat("gfx/crosshair", wcross_style);\r
\r
if(cvar("crosshair_effect_scalefade"))\r