From 578ece8dd03de64e1a28595b6fd32804dd589f39 Mon Sep 17 00:00:00 2001
From: "Esteban I. Ruiz Moreno" <exio4.com@gmail.com>
Date: Wed, 26 Dec 2012 18:35:48 -0300
Subject: [PATCH] Add selectionbox_color, crosshair_color, and crosshair_alpha
 options

---
 minetest.conf.example   |  6 ++++++
 src/defaultsettings.cpp |  3 +++
 src/game.cpp            | 17 ++++++++++++++---
 3 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/minetest.conf.example b/minetest.conf.example
index e80991936..34a2acebc 100644
--- a/minetest.conf.example
+++ b/minetest.conf.example
@@ -124,6 +124,12 @@
 #console_color = (0,0,0)
 # In-game chat console background alpha (opaqueness, between 0 and 255)
 #console_alpha = 200
+# Selection box border color (R,G,B)
+#selectionbox_color = (0,0,0)
+# Crosshair color (R,G,B)
+#crosshair_color = (255,255,255)
+# Cross alpha (opaqueness, between 0 and 255)
+#crosshair_alpha = 255
 # Sound settings
 #enable_sound = true
 #sound_volume = 0.7
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 7cb781276..f9c942590 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -108,6 +108,9 @@ void set_default_settings(Settings *settings)
 	settings->setDefault("opaque_water", "false");
 	settings->setDefault("console_color", "(0,0,0)");
 	settings->setDefault("console_alpha", "200");
+	settings->setDefault("selectionbox_color", "(0,0,0)");
+	settings->setDefault("crosshair_color", "(255,255,255)");
+	settings->setDefault("crosshair_alpha", "255");
 	settings->setDefault("enable_sound", "true");
 	settings->setDefault("sound_volume", "0.8");
 	settings->setDefault("desynchronize_mapblock_texture_animation", "true");
diff --git a/src/game.cpp b/src/game.cpp
index dbb71369f..541127f5d 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -2920,6 +2920,11 @@ void the_game(
 
 		if(show_hud)
 		{
+			v3f selectionbox_color = g_settings->getV3F("selectionbox_color");
+			u32 selectionbox_color_r = rangelim(myround(selectionbox_color.X), 0, 255);
+			u32 selectionbox_color_g = rangelim(myround(selectionbox_color.Y), 0, 255);
+			u32 selectionbox_color_b = rangelim(myround(selectionbox_color.Z), 0, 255);
+
 			for(std::vector<aabb3f>::const_iterator
 					i = hilightboxes.begin();
  					i != hilightboxes.end(); i++)
@@ -2929,7 +2934,7 @@ void the_game(
 						<<" max="
 						<<"("<<i->MaxEdge.X<<","<<i->MaxEdge.Y<<","<<i->MaxEdge.Z<<")"
 						<<std::endl;*/
-				driver->draw3DBox(*i, video::SColor(255,0,0,0));
+				driver->draw3DBox(*i, video::SColor(255,selectionbox_color_r,selectionbox_color_g,selectionbox_color_b));
 			}
 		}
 
@@ -2962,12 +2967,18 @@ void the_game(
 		*/
 		if(show_hud)
 		{
+			v3f crosshair_color = g_settings->getV3F("crosshair_color");
+			u32 crosshair_color_r = rangelim(myround(crosshair_color.X), 0, 255);
+			u32 crosshair_color_g = rangelim(myround(crosshair_color.Y), 0, 255);
+			u32 crosshair_color_b = rangelim(myround(crosshair_color.Z), 0, 255);
+			u32 crosshair_alpha = rangelim(g_settings->getS32("crosshair_alpha"), 0, 255);
+
 			driver->draw2DLine(displaycenter - core::vector2d<s32>(10,0),
 					displaycenter + core::vector2d<s32>(10,0),
-					video::SColor(255,255,255,255));
+					video::SColor(crosshair_alpha,crosshair_color_r,crosshair_color_g,crosshair_color_b));
 			driver->draw2DLine(displaycenter - core::vector2d<s32>(0,10),
 					displaycenter + core::vector2d<s32>(0,10),
-					video::SColor(255,255,255,255));
+					video::SColor(crosshair_alpha,crosshair_color_r,crosshair_color_g,crosshair_color_b));
 		}
 
 		} // timer
-- 
GitLab