From 34c4a6687aaf83a50e266b63ef9ae1b299129f38 Mon Sep 17 00:00:00 2001 From: Akari Date: Mon, 10 Jan 2011 11:17:53 +0200 Subject: [PATCH] added crosshair coloring by health, enable with crosshair_color_by_health 1 --- defaultXonotic.cfg | 3 ++- qcsrc/client/View.qc | 38 ++++++++++++++++++++++++++++++++++++++ qcsrc/client/autocvars.qh | 1 + 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 72f43f6fd..b3adf6596 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -9,6 +9,7 @@ // // e.g. Xonotic 1.5.1 RC1 will be 15101 set g_xonoticversion git "Xonotic version (formatted for humans)" + gameversion 100 // 0.1.0 gameversion_min 0 // git builds see all versions gameversion_max 65535 // git builds see all versions @@ -181,6 +182,7 @@ seta crosshair_fireball "" "crosshair to display when wielding the fireball" seta crosshair_fireball_color "0.2 1.0 0.2" "crosshair color to display when wielding the fireball" seta crosshair_fireball_alpha 1 "crosshair alpha value to display when wielding the fireball" seta crosshair_fireball_size 1 "crosshair size when wielding the fireball" +seta crosshair_color_by_health 0 "if enabled, crosshair color will depend on current health" // ring around crosshair, used for various purposes (such as indicating bullets left in clip, nex charge) seta crosshair_ring_size 2 "bullet counter ring size for Rifle, velocity ring for Nex" @@ -1361,7 +1363,6 @@ seta slowmo 1 seta menu_skin "luminos" set menu_slowmo 1 seta menu_sounds 0 "enables menu sound effects. 1 enables click sounds, 2 also enables hover sounds" -set menu_picmip_bypass 0 "bypass texture quality enforcement based on system resources, not recommended and may cause crashes!" r_textbrightness 0.2 r_textcontrast 0.8 diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index 704e58107..68e275893 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -844,6 +844,44 @@ void CSQC_UpdateView(float w, float h) } if(wcross_wep != "" && autocvar_crosshair_color_per_weapon) wcross_color = stov(cvar_string(strcat("crosshair_", wcross_wep, "_color"))); + else if(autocvar_crosshair_color_by_health) + { + local float x = getstati(STAT_HEALTH); + + //This part was shamelessly stolen from Nexuiz sources + //Do not want to put this into a function because it's used just in one place and is called too often + + if(x > 200) { + wcross_color_x = 0; + wcross_color_y = 1; + wcross_color_z = 0; + } + else if(x > 150) { + wcross_color_x = 0.4 - (x-150)*0.02 * 0.4; //red value between 0.4 -> 0 + wcross_color_y = 0.9 + (x-150)*0.02 * 0.1; // green value between 0.9 -> 1 + wcross_color_z = 0; + } + else if(x > 100) { + wcross_color_x = 1 - (x-100)*0.02 * 0.6; //red value between 1 -> 0.4 + wcross_color_y = 1 - (x-100)*0.02 * 0.1; // green value between 1 -> 0.9 + wcross_color_z = 1 - (x-100)*0.02; // blue value between 1 -> 0 + } + else if(x > 50) { + wcross_color_x = 1; + wcross_color_y = 1; + wcross_color_z = 0.2 + (x-50)*0.02 * 0.8; // blue value between 0.2 -> 1 + } + else if(x > 20) { + wcross_color_x = 1; + wcross_color_y = (x-20)*90/27/100; // green value between 0 -> 1 + wcross_color_z = (x-20)*90/27/100 * 0.2; // blue value between 0 -> 0.2 + } + else { + wcross_color_x = 1; + wcross_color_y = 0; + wcross_color_z = 0; + } + } else wcross_color = stov(autocvar_crosshair_color); diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index 08ad7b902..34c3d78a0 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -280,3 +280,4 @@ float autocvar_vid_conheight; float autocvar_vid_conwidth; float autocvar_vid_pixelheight; float autocvar_viewsize; +float autocvar_crosshair_color_by_health; -- 2.39.2