Index: /branches/presentation/src/util/hud.cc
===================================================================
--- /branches/presentation/src/util/hud.cc	(revision 10765)
+++ /branches/presentation/src/util/hud.cc	(revision 10766)
@@ -34,4 +34,5 @@
 
 #include "tools/camera.h"
+#include "multi_type.h"
 
 
@@ -155,4 +156,10 @@
 		this->rightHit->setParent2D(this->middleRect);
 		
+		this->healthText = new OrxGui::GLGuiText();
+		this->healthText->setParent2D(this->barSocket);
+		
+		this->shieldText = new OrxGui::GLGuiText();
+		this->shieldText->setParent2D(this->barSocket);
+		
 		
 		this->leftRect->setParent2D(this);
@@ -218,9 +225,18 @@
 		this->shieldWidget->setBackgroundColor(Color(0,0,0,0));
 		this->shieldWidget->setForegroundTexture("textures/gui/gui_element_background_faded.png");
-		this->shieldWidget->setForegroundColor(Color(1,1,0,1));
+		this->shieldWidget->setForegroundColor(Color(1,1,0,0.5));
 		dynamic_cast<OrxGui::GLGuiBar*>(this->shieldWidget)->setChangedValueColor(Color(1,0,0,0.2));
-		this->shieldWidget->setWidgetSize(150,20);
+		this->shieldWidget->setWidgetSize(150,40);
 		this->shieldWidget->setRelDir2D(180);
 		this->shieldWidget->setParent2D(this->barSocket);
+		
+		this->shieldText->setTextSize(50);
+		this->shieldText->setChangedTextColor(Color::white);
+		this->shieldText->setForegroundColor(Color(1,1,0,1));
+		this->shieldText->setBackgroundTexture(Texture());
+		this->shieldText->setBackgroundColor(Color(0,0,0,0));
+		MultiType val(dynamic_cast<OrxGui::GLGuiBar*>(this->shieldWidget)->value());
+		val.setType(MT_INT);
+		this->shieldText->setText(val.getString());
 	}
 	else
@@ -274,4 +290,13 @@
 		this->healthWidget->setRelDir2D(180);
 		this->healthWidget->setParent2D(this->barSocket);
+
+		this->healthText->setTextSize(80);
+		this->healthText->setChangedTextColor(Color::white);
+		this->healthText->setForegroundColor(Color::red);
+		this->healthText->setBackgroundTexture(Texture());
+		this->healthText->setBackgroundColor(Color(0,0,0,0));
+		MultiType val(dynamic_cast<OrxGui::GLGuiBar*>(this->healthWidget)->value());
+		val.setType(MT_INT);
+		this->healthText->setText(val.getString());
 	}
 	else
@@ -494,5 +519,4 @@
 void Hud::getHit()
 {
-	printf("Got hit!\n");
 	this->leftHit->show();
 	this->rightHit->show();
@@ -710,12 +734,28 @@
 		else
 			this->barSocket->hide();
-		
-		this->healthWidget->setRelCoor2D(50,70);
-		this->healthWidget->show();
 		if (this->shieldWidget)
 		{
-			this->shieldWidget->setRelCoor2D(40,110);
-			this->shieldWidget->show();
+			this->shieldWidget->setRelCoor2D(40,overlayWidth/2+10);
+			if (!this->hidden)
+				this->shieldWidget->show();
+			else
+				this->shieldWidget->hide();
+			this->shieldText->setRelCoor2D(overlayWidth/2-30,overlayWidth/2-60);
+			if (!this->hidden)
+				this->shieldText->show();
+			else
+				this->shieldText->hide();
 		}
+		this->healthWidget->setRelCoor2D(40,overlayWidth/2);
+		if (!this->hidden)
+			this->healthWidget->show();
+		else
+			this->healthWidget->hide();
+		this->healthText->setRelCoor2D(overlayWidth/2-50,overlayWidth/2-20);
+		if (!this->hidden)
+			this->healthText->show();
+		else
+			this->healthText->hide();
+
 	}
 	
@@ -742,5 +782,6 @@
     createShipValuesBox();
   */
-
+ if (this->playmode != FirstPerson )
+ {
   std::list<OrxGui::GLGuiEnergyWidgetVertical*>::iterator weaponWidget;
   Vector2D pos = Vector2D(overlayWidth, 0.4*this->resY);
@@ -800,4 +841,23 @@
     //printf("update thing %s::%s\n", (*weaponWidget)->getClassCName(), (*weaponWidget)->getName());
   }
+ }
+ else
+ {
+	std::list<OrxGui::GLGuiEnergyWidgetVertical*>::iterator weaponWidget;
+	Vector2D pos = Vector2D(overlayWidth, 0.4*this->resY);
+	float largestWidgetSizeX = 0;
+
+ 	for (weaponWidget = this->weaponsWidgetsPrim.begin(); weaponWidget != this->weaponsWidgetsPrim.end(); weaponWidget++)
+  	{
+		(*weaponWidget)->setParent2D(this->barSocket);
+		(*weaponWidget)->setRelCoor2D(overlayWidth/2, 0);
+		//(*weaponWidget)->setAbsCoor2D(0,100);
+		if (!this->hidden)
+			(*weaponWidget)->show();
+		else
+			(*weaponWidget)->hide();
+		//printf("update thing %s::%s\n", (*weaponWidget)->getClassCName(), (*weaponWidget)->getName());
+	}
+ }
 
 }
Index: /branches/presentation/src/util/hud.h
===================================================================
--- /branches/presentation/src/util/hud.h	(revision 10765)
+++ /branches/presentation/src/util/hud.h	(revision 10766)
@@ -114,5 +114,6 @@
   OrxGui::GLGuiWidget*      healthWidget;
   OrxGui::GLGuiWidget*      implantWidget;
-  OrxGui::GLGuiText*	    energyText;
+  OrxGui::GLGuiText*	    healthText;
+  OrxGui::GLGuiText*	    shieldText;
 
   OrxGui::GLGuiNotifier*    notifier;
