X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2FView.qc;h=ea10300ed9773940658a2bef5f7b0913eea06c12;hb=37ff2a84b803701be464173fb557c80b2cf60f46;hp=ade5155c46ff2e7c26e50070c05e31b269982085;hpb=bb4571959d522baddbf445b968aba15bb4ad6f34;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index ade5155c4..ea10300ed 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -817,7 +817,7 @@ void CSQC_UpdateView(float w, float h) } } - if(autocvar_hud_damage && !autocvar_chase_active) + if(autocvar_hud_damage) { splash_size_x = max(vid_conwidth, vid_conheight); splash_size_y = max(vid_conwidth, vid_conheight); @@ -865,24 +865,31 @@ void CSQC_UpdateView(float w, float h) myhealth_prev = myhealth; - if(autocvar_cl_gentle_damage || autocvar_cl_gentle) + // IDEA: change damage color/picture based on player model for robot/alien species? + // pro: matches model better + // contra: it's not red because blood is red, but because red is an alarming color, so red should stay + // maybe different reddish pics? + if(autocvar_chase_active >= 0) // not while the event chase camera is active { - if(autocvar_cl_gentle_damage == 2) + if(autocvar_cl_gentle_damage || autocvar_cl_gentle) { - if(myhealth_flash < pain_threshold) // only randomize when the flash is gone + if(autocvar_cl_gentle_damage == 2) { - myhealth_gentlergb = eX * random() + eY * random() + eZ * random(); + if(myhealth_flash < pain_threshold) // only randomize when the flash is gone + { + myhealth_gentlergb = eX * random() + eY * random() + eZ * random(); + } } + else + myhealth_gentlergb = stov(autocvar_hud_damage_gentle_color); + + drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, myhealth_gentlergb, autocvar_hud_damage_gentle_alpha_multiplier * bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage, DRAWFLAG_NORMAL); } else - myhealth_gentlergb = stov(autocvar_hud_damage_gentle_color); - - drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, myhealth_gentlergb, autocvar_hud_damage_gentle_alpha_multiplier * bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage, DRAWFLAG_NORMAL); + drawpic(splash_pos, "gfx/blood", splash_size, stov(autocvar_hud_damage_color), bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage, DRAWFLAG_NORMAL); } - else - drawpic(splash_pos, "gfx/blood", splash_size, stov(autocvar_hud_damage_color), bound(0, myhealth_flash_temp, 1) * autocvar_hud_damage, DRAWFLAG_NORMAL); - if(autocvar_hud_postprocessing) + if(autocvar_hud_postprocessing) // we still need to set this anyway even when chase_active is set, this way it doesn't get stuck on. { if(autocvar_hud_damage_blur && myhealth_flash_temp) { @@ -1065,7 +1072,7 @@ void CSQC_UpdateView(float w, float h) wcross_color = stov(cvar_string(strcat("crosshair_", wcross_wep, "_color"))); else if(autocvar_crosshair_color_by_health) { - local float x = getstati(STAT_HEALTH); + float x = getstati(STAT_HEALTH); //x = red //y = green @@ -1512,8 +1519,8 @@ void CSQC_Demo_Camera() if(autocvar_camera_look_player) { - local vector dir; - local float n; + vector dir; + float n; dir = normalize(view_origin - current_position); n = mouse_angles_z;