From: Akari <hetors.email@gmail.com>
Date: Mon, 10 Jan 2011 09:17:53 +0000 (+0200)
Subject: added crosshair coloring by health, enable with crosshair_color_by_health 1
X-Git-Tag: xonotic-v0.5.0~311^2~32^2~2
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=34c4a6687aaf83a50e266b63ef9ae1b299129f38;p=xonotic%2Fxonotic-data.pk3dir.git

added crosshair coloring by health, enable with crosshair_color_by_health 1
---

diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg
index 72f43f6fd4..b3adf65968 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 704e58107f..68e2758930 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 08ad7b9022..34c3d78a03 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;