From 43a388ec533220fcdb84fb3680bcb87a38fd010d Mon Sep 17 00:00:00 2001
From: "Esteban I. Ruiz Moreno" <exio4.com@gmail.com>
Date: Sat, 20 Apr 2013 22:39:31 -0300
Subject: [PATCH] Ability to change the crosshair using textures

---
 src/hud.cpp | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/hud.cpp b/src/hud.cpp
index cf53354b2..375d65878 100644
--- a/src/hud.cpp
+++ b/src/hud.cpp
@@ -297,7 +297,19 @@ void Hud::drawHotbar(v2s32 centerlowerpos, s32 halfheartcount, u16 playeritem) {
 
 
 void Hud::drawCrosshair() {
-	if (player->hud_flags & HUD_FLAG_CROSSHAIR_VISIBLE) {
+	if (!(player->hud_flags & HUD_FLAG_CROSSHAIR_VISIBLE))
+		return;
+	
+	ITextureSource *tsrc = gamedef->getTextureSource();
+	if (tsrc->isKnownSourceImage("crosshair.png")) {
+		video::ITexture *crosshair = tsrc->getTextureRaw("crosshair.png");
+		v2u32 size  = crosshair->getOriginalSize();
+		v2s32 lsize = v2s32(displaycenter.X - (size.X / 2),
+							displaycenter.Y - (size.Y / 2));
+		driver->draw2DImage(crosshair, lsize,
+				core::rect<s32>(0, 0, size.X, size.Y),
+				0, crosshair_argb, true);
+	} else {
 		driver->draw2DLine(displaycenter - v2s32(10, 0),
 				displaycenter + v2s32(10, 0), crosshair_argb);
 		driver->draw2DLine(displaycenter - v2s32(0, 10),
-- 
GitLab