X-Git-Url: http://de.git.xonotic.org/?p=voretournament%2Fvoretournament.git;a=blobdiff_plain;f=data%2Fqcsrc%2Fclient%2FView.qc;h=ef62afcbad2f315832e975313f07328a0946f140;hp=4d445a3500c329ea92fe67baeef9a78fb1f5fb19;hb=95fc19f9a9bf797aba3db41680b1501759eecc68;hpb=d7c241c7df7e07fc68ecfab82bf7c4ed17e720ea diff --git a/data/qcsrc/client/View.qc b/data/qcsrc/client/View.qc index 4d445a35..ef62afcb 100644 --- a/data/qcsrc/client/View.qc +++ b/data/qcsrc/client/View.qc @@ -256,6 +256,7 @@ float artwork_fade; float pickup_crosshair_time, pickup_crosshair_size; float myhealth, myhealth_prev, myhealth_flash; float contentavgalpha, liquidalpha_prev; +float old_blurradius, old_bluralpha, old_sharpen_intensity; float stomachsplash_alpha, stomachsplash_remove_at_respawn; float volume_modify_1, volume_modify_2, volume_modify_default_1, volume_modify_default_2; float volume_modify_changed_1, volume_modify_changed_2; @@ -563,7 +564,7 @@ void CSQC_UpdateView(float w, float h) if(cvar("hud_postprocessing")) { - if(cvar("hud_contents_liquid_blur")) + if(cvar("hud_contents_liquid_blur") && contentavgalpha) { // when inside the stomach, we use different blur settings than when we're inside other fluids content_blurpostprocess_x = 1; @@ -649,7 +650,7 @@ void CSQC_UpdateView(float w, float h) if(cvar("hud_postprocessing")) { - if(cvar("hud_damage_blur")) + if(cvar("hud_damage_blur") && myhealth_flash_temp) { damage_blurpostprocess_x = 1; damage_blurpostprocess_y = bound(0, myhealth_flash_temp, 1) * cvar("hud_damage_blur"); @@ -694,49 +695,65 @@ void CSQC_UpdateView(float w, float h) if(cvar("hud_postprocessing")) { + // all of this should be done in the engine eventually + + // enable or disable rendering types if they are used or not + if(cvar("r_glsl_postprocess_uservec1_enable") != (cvar("hud_postprocessing_maxbluralpha") != 0)) + cvar_set("r_glsl_postprocess_uservec1_enable", ftos(cvar("hud_postprocessing_maxbluralpha") != 0)); + if(cvar("r_glsl_postprocess_uservec2_enable") != (cvar("hud_powerup") != 0)) + cvar_set("r_glsl_postprocess_uservec2_enable", ftos(cvar("hud_powerup") != 0)); + // lets apply the postprocess effects from the previous two functions if needed if(damage_blurpostprocess_x || content_blurpostprocess_x) { float blurradius = bound(0, damage_blurpostprocess_y + content_blurpostprocess_y, cvar("hud_postprocessing_maxblurradius")); float bluralpha = bound(0, damage_blurpostprocess_z + content_blurpostprocess_z, cvar("hud_postprocessing_maxbluralpha")); - cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(blurradius), " ", ftos(bluralpha), " 0 0")); - cvar_set("r_glsl_postprocess_uservec1_enable", "1"); + if(blurradius != old_blurradius || bluralpha != old_bluralpha) // reduce cvar_set spam as much as possible + { + cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(blurradius), " ", ftos(bluralpha), " 0 0")); + old_blurradius = blurradius; + old_bluralpha = bluralpha; + } } - else + else if(cvar_string("r_glsl_postprocess_uservec1") != "0 0 0 0") // reduce cvar_set spam as much as possible { cvar_set("r_glsl_postprocess_uservec1", "0 0 0 0"); - cvar_set("r_glsl_postprocess_uservec1_enable", "0"); + old_blurradius = 0; + old_bluralpha = 0; } - if(cvar("hud_powerup")) + float sharpen_intensity; + if (getstatf(STAT_STRENGTH_FINISHED) - time > 0) + sharpen_intensity += (getstatf(STAT_STRENGTH_FINISHED) - time); + if (getstatf(STAT_INVINCIBLE_FINISHED) - time > 0) + sharpen_intensity += (getstatf(STAT_INVINCIBLE_FINISHED) - time); + + if(cvar("hud_powerup") && sharpen_intensity > 0) { - float sharpen_intensity; - if (getstatf(STAT_STRENGTH_FINISHED) - time > 0) - sharpen_intensity += (getstatf(STAT_STRENGTH_FINISHED) - time); - if (getstatf(STAT_INVINCIBLE_FINISHED) - time > 0) - sharpen_intensity += (getstatf(STAT_INVINCIBLE_FINISHED) - time); sharpen_intensity = bound(0, sharpen_intensity, 5); // powerup warning time is 5 seconds, so fade the effect from there - if(sharpen_intensity > 0) + if(sharpen_intensity != old_sharpen_intensity) // reduce cvar_set spam as much as possible { cvar_set("r_glsl_postprocess_uservec2", strcat("0 ", ftos(-sharpen_intensity * cvar("hud_powerup")), " 0 0")); - cvar_set("r_glsl_postprocess_uservec2_enable", "1"); - } - else - { - cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0"); - cvar_set("r_glsl_postprocess_uservec2_enable", "0"); + old_sharpen_intensity = sharpen_intensity; } } + else if(cvar_string("r_glsl_postprocess_uservec2") != "0 0 0 0") // reduce cvar_set spam as much as possible + { + cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0"); + old_sharpen_intensity = 0; + } } - if not(cvar("hud_damage") && cvar("hud_postprocessing")) + if(cvar("hud_postprocessing") && !cvar("hud_postprocessing_maxbluralpha")) + if(cvar("r_glsl_postprocess_uservec1_enable")) { // don't allow blur to get stuck on if we disable the cvar while damaged cvar_set("r_glsl_postprocess_uservec1", "0 0 0 0"); cvar_set("r_glsl_postprocess_uservec1_enable", "0"); } - if not(cvar("hud_powerup") && cvar("hud_postprocessing")) + if(cvar("hud_postprocessing") && !cvar("hud_powerup")) + if(cvar("r_glsl_postprocess_uservec2_enable")) { // don't allow sharpen to get stuck on if we disable the cvar while powered up cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0"); @@ -992,7 +1009,7 @@ void CSQC_UpdateView(float w, float h) string wcross_name; float wcross_alpha, wcross_scale, wcross_blur, wcross_resolution; - if(swallow_indicator) + if(swallow_indicator && (cvar("crosshair_swallowindicator_color_red") || cvar("crosshair_swallowindicator_color_green") || cvar("crosshair_swallowindicator_color_blue"))) { wcross_color_x = cvar("crosshair_swallowindicator_color_red"); wcross_color_y = cvar("crosshair_swallowindicator_color_green"); @@ -1051,6 +1068,15 @@ void CSQC_UpdateView(float w, float h) wcross_alpha = cvar("crosshair_color_alpha"); wcross_resolution = cvar("crosshair_size"); + if(!activeweapon) + if(!swallow_indicator) + { + if(cvar("crosshair_unarmed_dim_color")) + wcross_color *= cvar("crosshair_unarmed_dim_color"); + if(cvar("crosshair_unarmed_dim_alpha")) + wcross_alpha *= cvar("crosshair_unarmed_dim_alpha"); + } + wcross_name = strcat("gfx/crosshair", wcross_style); if(cvar("crosshair_effect_scalefade"))