Index: /branches/presentation/src/util/hud.cc
===================================================================
--- /branches/presentation/src/util/hud.cc	(revision 10758)
+++ /branches/presentation/src/util/hud.cc	(revision 10759)
@@ -33,4 +33,7 @@
 #include "world_entities/space_ships/space_ship.h"
 
+#include "tools/camera.h"
+
+
 
 
@@ -49,4 +52,5 @@
 
   //this->setSize2D(
+  this->playmode = Full3D;
   this->weaponManager = NULL;
   this->weaponManagerSecondary = NULL;
@@ -61,4 +65,5 @@
   this->rightHit = NULL;
   this->ifinit = true;
+  this->hidden = false;
   
   this->barSocket = NULL;
@@ -192,5 +197,8 @@
     this->energyWidget->setParent2D(this->leftRect);
     dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (this->energyWidget)->setDisplayedImage("textures/gui/gui_electronics_icon.png");
-    this->energyWidget->show();
+    if (!this->hidden)
+    	this->energyWidget->show();
+    else
+	this->energyWidget->hide();
     /*    this->energyWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
         this->energyWidget->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);*/
@@ -221,5 +229,8 @@
     this->shieldWidget->setParent2D(this->leftRect);
     dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (this->shieldWidget)->setDisplayedImage("textures/gui/gui_shield_icon.png");
-    this->shieldWidget->show();
+    if (!this->hidden)
+    	this->shieldWidget->show();
+    else
+	this->shieldWidget->hide();
     /*    this->shieldWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
         this->shieldWidget->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);*/
@@ -261,5 +272,8 @@
 	    this->healthWidget->setParent2D(this->leftRect);
 	    //dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (this->healthWidget)->setDisplayedImage("textures/gui/gui_health_icon.png");
-	    this->healthWidget->show();
+	    if(!this->hidden)
+		this->healthWidget->show();
+	    else
+		this->healthWidget->hide();
 	    /*    this->healthWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
 	        this->healthWidget->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);*/
@@ -291,5 +305,8 @@
     this->implantWidget->setParent2D(this->leftRect);
     dynamic_cast<OrxGui::GLGuiEnergyWidgetVertical*> (this->implantWidget)->setDisplayedImage("textures/gui/gui_electronics_icon.png");
-    this->implantWidget->show();
+    if (!this->hidden)
+    	this->implantWidget->show();
+    else
+	this->implantWidget->hide();
     /*    this->energyWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
         this->energyWidget->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);*/
@@ -409,5 +426,8 @@
 	else
 		weapon->getEnergyWidget()->setParent2D(this->bottomRect);
-        weapon->getEnergyWidget()->show();
+        if (!this->hidden)
+		weapon->getEnergyWidget()->show();
+	else
+		weapon->getEnergyWidget()->hide();
         weapon->getEnergyWidget()->setBackgroundColor(Color(.8,.2,.11, 0.1));
         weapon->getEnergyWidget()->setFrontColor(Color( .2,.5,.7,.6));
@@ -426,5 +446,8 @@
         //PRINTF(0)("WEAPON %s::%s in Slots\n", weapon->getClassCName(), weapon->getName());
         weapon->getEnergyWidget()->setParent2D(this->rightRect);
-        weapon->getEnergyWidget()->show();
+                if (!this->hidden)
+		weapon->getEnergyWidget()->show();
+	else
+		weapon->getEnergyWidget()->hide();
         weapon->getEnergyWidget()->setBackgroundColor(Color(.8,.2,.11, 0.1));
         weapon->getEnergyWidget()->setFrontColor(Color( .2,.5,.7,.6));
@@ -447,4 +470,5 @@
 void Hud::getHit()
 {
+	printf("Got hit!\n");
 	this->leftHit->show();
 	this->rightHit->show();
@@ -463,12 +487,30 @@
 	}
 	if (this->leftHit->isVisible())
+	{
 		hitBarCount -= dt;
-	if (hitBarCount < 0)
+		printf("Reduce visibilty!\n");
+	}
+	if (hitBarCount <= 0)
 	{
 		hitBarCount = 0;
 		this->leftHit->hide();
 		this->rightHit->hide();
+		printf("Hide again!\n");
 	}
   }
+  //Crosshair* crosshair = dynamic_cast<Crosshair*>(this->weaponManager->getFixedTarget());
+  if ((State::getCamera())->getName() == "GameWorldCamera")
+  {
+	this->hidden = false;
+	if(this->weaponManager)
+		this->weaponManager->showCrosshair();
+  }
+  else
+  {
+	this->hidden = true;
+	if(this->weaponManager)
+		this->weaponManager->hideCrosshair();
+  }
+  this->updateResolution();
 }
 
@@ -518,12 +560,15 @@
 	this->bottomRect->setWidgetSize(float(this->resX), float(overlayWidth));
 	this->bottomRect->setAbsCoor2D(0, this->resY - overlayWidth);
+	//this->bottomRect->show();
 	
 	this->topRect->setParent2D(this);
 	this->topRect->setWidgetSize(float(this->resX), float(overlayWidth));
 	this->topRect->setAbsCoor2D(0, 0);
+	//this->topRect->show();
 	
 	this->middleRect->setParent2D(this);
 	this->middleRect->setWidgetSize(float(this->resY)/2, float(this->resY)/2);
 	this->middleRect->setAbsCoor2D(float(this->resX)/4, float(this->resY)/4/*float(this->resX/2), float(this->resY/2)*/);
+	//this->middleRect->show();
 	
 	/*this->bottomHit->setRelCoor2D(0, this->resY/4);
@@ -535,12 +580,15 @@
 	this->leftHit->setRelCoor2D(0, 0);
 	this->leftHit->setWidgetSize(this->resX/9, this->resX/3);
-	this->leftHit->hide();
+	//this->leftHit->hide();
 	this->rightHit->setRelCoor2D(this->resX/3, 0);
 	this->rightHit->setWidgetSize(this->resX/9, this->resX/3);
-	this->rightHit->hide();
+	//this->rightHit->hide();
 
 	this->barSocket->setWidgetSize(overlayWidth, overlayWidth);
 	this->barSocket->setRelCoor2D(this->resX - overlayWidth, 0);
-	this->barSocket->show();
+	if (!this->hidden)
+		this->barSocket->show();
+	else
+		this->barSocket->hide();
 
 	//this->middleRect->show();
@@ -549,5 +597,5 @@
   }
 
-  if (this->overlayActive)
+  if (this->overlayActive && !this->hidden)
   {
     this->rightRect->show();
@@ -574,5 +622,8 @@
     this->_radar->setWidgetSize(overlayWidth, overlayWidth);
     this->_radar->setRange(300);
-    this->_radar->show();
+    if (!this->hidden)
+    	this->_radar->show();
+    else
+	this->_radar->hide();
     
     int statWidgetsNumber = 0;
@@ -632,5 +683,6 @@
 		this->barSocket->setParent2D(this->bottomRect);
 		this->barSocket->setWidgetSize( float(overlayWidth), float(overlayWidth));
-		this->barSocket->setRelCoor2D(0,this->resX - float(overlayWidth));
+		this->barSocket->setRelCoor2D(this->resX - float(overlayWidth),0);
+		this->barSocket->show();
 		
 		this->healthWidget->setRelCoor2D(10,-20);
@@ -681,5 +733,8 @@
     (*weaponWidget)->setAbsCoor2D(pos.x + this->rightRect->getAbsCoor2D().x, pos.y);
     //(*weaponWidget)->setAbsCoor2D(0,100);
-    (*weaponWidget)->show();
+    if (!this->hidden)
+    	(*weaponWidget)->show();
+    else
+	(*weaponWidget)->hide();
     //printf("update thing %s::%s\n", (*weaponWidget)->getClassCName(), (*weaponWidget)->getName());
   }
@@ -708,5 +763,8 @@
     //PRINTF(0)("secweaponwidget y-size: %f/n", (*weaponWidget)->getSizeY2D());
     (*weaponWidget)->setAbsCoor2D(pos.x, pos.y);//+this->rightRect->getAbsCoor2D().x, pos.y);
-    (*weaponWidget)->show();
+    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 10758)
+++ /branches/presentation/src/util/hud.h	(revision 10759)
@@ -121,4 +121,5 @@
 
   bool 			ifinit;
+  bool			hidden;
 
   OrxGui::GLGuiWidget*     rightRect;
Index: /branches/presentation/src/world_entities/weapons/crosshair.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/crosshair.cc	(revision 10758)
+++ /branches/presentation/src/world_entities/weapons/crosshair.cc	(revision 10759)
@@ -23,4 +23,6 @@
 #include "state.h"
 #include "material.h"
+
+#include "tools/camera.h"
 
 
Index: /branches/presentation/src/world_entities/weapons/weapon_manager.cc
===================================================================
--- /branches/presentation/src/world_entities/weapons/weapon_manager.cc	(revision 10758)
+++ /branches/presentation/src/world_entities/weapons/weapon_manager.cc	(revision 10759)
@@ -124,10 +124,12 @@
 void WeaponManager::showCrosshair()
 {
-  this->crosshair->setVisibility( true);
+  if (this->crosshair)
+  	this->crosshair->setVisibility( true);
 }
 
 void WeaponManager::hideCrosshair()
 {
-  this->crosshair->setVisibility( false);
+  if (this->crosshair)
+  	this->crosshair->setVisibility( false);
 }
 
