From 0fb9567f1394646a71d42aa9bd7e6da8343c9784 Mon Sep 17 00:00:00 2001
From: kwolekr <kwolekr@minetest.net>
Date: Thu, 25 Apr 2013 20:56:12 -0400
Subject: [PATCH] Minor hud.cpp cleanup

---
 src/hud.cpp | 15 ++++++++-------
 src/hud.h   |  4 ++--
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/hud.cpp b/src/hud.cpp
index 375d65878..65c78ca50 100644
--- a/src/hud.cpp
+++ b/src/hud.cpp
@@ -45,6 +45,8 @@ Hud::Hud(video::IVideoDriver *driver, gui::IGUIEnvironment* guienv,
 	hotbar_imagesize = 48;
 	hotbar_itemcount = 8;
 	
+	tsrc = gamedef->getTextureSource();
+	
 	v3f crosshair_color = g_settings->getV3F("crosshair_color");
 	u32 cross_r = rangelim(myround(crosshair_color.X), 0, 255);
 	u32 cross_g = rangelim(myround(crosshair_color.Y), 0, 255);
@@ -57,6 +59,8 @@ Hud::Hud(video::IVideoDriver *driver, gui::IGUIEnvironment* guienv,
 	u32 sbox_g = rangelim(myround(selectionbox_color.Y), 0, 255);
 	u32 sbox_b = rangelim(myround(selectionbox_color.Z), 0, 255);
 	selectionbox_argb = video::SColor(255, sbox_r, sbox_g, sbox_b);
+	
+	use_crosshair_image = tsrc->isKnownSourceImage("crosshair.png");
 }
 
 
@@ -175,8 +179,7 @@ void Hud::drawLuaElements() {
 		v2s32 pos(e->pos.X * screensize.X, e->pos.Y * screensize.Y);
 		switch (e->type) {
 			case HUD_ELEM_IMAGE: {
-				video::ITexture *texture =
-					gamedef->getTextureSource()->getTextureRaw(e->text);
+				video::ITexture *texture = tsrc->getTextureRaw(e->text);
 				if (!texture)
 					continue;
 
@@ -226,8 +229,7 @@ void Hud::drawStatbar(v2s32 pos, u16 corner, u16 drawdir, std::string texture, s
 	const video::SColor color(255, 255, 255, 255);
 	const video::SColor colors[] = {color, color, color, color};
 	
-	video::ITexture *stat_texture =
-		gamedef->getTextureSource()->getTextureRaw(texture);
+	video::ITexture *stat_texture = tsrc->getTextureRaw(texture);
 	if (!stat_texture)
 		return;
 		
@@ -299,9 +301,8 @@ void Hud::drawHotbar(v2s32 centerlowerpos, s32 halfheartcount, u16 playeritem) {
 void Hud::drawCrosshair() {
 	if (!(player->hud_flags & HUD_FLAG_CROSSHAIR_VISIBLE))
 		return;
-	
-	ITextureSource *tsrc = gamedef->getTextureSource();
-	if (tsrc->isKnownSourceImage("crosshair.png")) {
+		
+	if (use_crosshair_image) {
 		video::ITexture *crosshair = tsrc->getTextureRaw("crosshair.png");
 		v2u32 size  = crosshair->getOriginalSize();
 		v2s32 lsize = v2s32(displaycenter.X - (size.X / 2),
diff --git a/src/hud.h b/src/hud.h
index 405e91176..00e44dd80 100644
--- a/src/hud.h
+++ b/src/hud.h
@@ -82,8 +82,6 @@ inline u32 hud_get_free_id(Player *player) {
 
 #ifndef SERVER
 
-#include <deque>
-
 #include <IGUIFont.h>
 
 #include "gamedef.h"
@@ -99,6 +97,7 @@ class Hud {
 	IGameDef *gamedef;
 	LocalPlayer *player;
 	Inventory *inventory;
+	ITextureSource *tsrc;
 
 	v2u32 screensize;
 	v2s32 displaycenter;
@@ -107,6 +106,7 @@ class Hud {
 	
 	video::SColor crosshair_argb;
 	video::SColor selectionbox_argb;
+	bool use_crosshair_image;
 	
 	Hud(video::IVideoDriver *driver, gui::IGUIEnvironment* guienv,
 		gui::IGUIFont *font, u32 text_height, IGameDef *gamedef,
-- 
GitLab