Index: /trunk/src/world_entities/environments/water.cc
===================================================================
--- /trunk/src/world_entities/environments/water.cc	(revision 6802)
+++ /trunk/src/world_entities/environments/water.cc	(revision 6803)
@@ -185,5 +185,5 @@
     if (State::getSkyBox())
     {
-      glBindTexture(GL_TEXTURE_2D, State::getSkyBox()->getTexture(SKY_TOP));
+      glBindTexture(GL_TEXTURE_2D, State::getSkyBox()->getTexture(SKY_RIGHT));
       glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 
@@ -199,5 +199,8 @@
     //Shader::deactivateShader();
 
-    SkyBox::disableCubeMap();
+    //SkyBox::disableCubeMap();
+    glDisable(GL_TEXTURE_GEN_S);
+    glDisable(GL_TEXTURE_GEN_T);
+
     glPopMatrix();
   }
Index: /trunk/src/world_entities/space_ships/hover.cc
===================================================================
--- /trunk/src/world_entities/space_ships/hover.cc	(revision 6802)
+++ /trunk/src/world_entities/space_ships/hover.cc	(revision 6803)
@@ -34,12 +34,4 @@
 
 CREATE_FACTORY(Hover, CL_HOVER);
-
-/**
- *  creates the controlable Hover
- */
-Hover::Hover()
-{
-  this->init();
-}
 
 /**
@@ -91,7 +83,5 @@
   this->addWeapon(wpLeft, 1, 0);
   this->addWeapon(wpRight,1 ,1);
-  this->addWeapon(cannon, 0, 6);
-
-  //this->addWeapon(turret, 3, 0);
+  this->addWeapon(cannon, 0, 2);
 
   this->getWeaponManager()->changeWeaponConfig(1);
@@ -134,5 +124,6 @@
 
   // rotors
-  this->wingNodeLeft.addNodeFlags(PNODE_PROHIBIT_DELETE_WITH_PARENT);
+  this->wingNodeLeft.addNodeFlags(PNODE_PROHIBIT_DELETE_WITH_PARENT );
+  this->wingNodeLeft.addNodeFlags(PNODE_PROHIBIT_CHILD_DELETE);
   this->wingNodeLeft.setParent(this);
   this->wingNodeLeft.setRelCoor(-1.5, -.3, -1.0);
@@ -142,4 +133,5 @@
 
   this->wingNodeRight.addNodeFlags(PNODE_PROHIBIT_DELETE_WITH_PARENT);
+  this->wingNodeRight.addNodeFlags(PNODE_PROHIBIT_CHILD_DELETE);
   this->wingNodeRight.setParent(this);
   this->wingNodeRight.setRelCoor(-1.5, -0.3, 1.0);
@@ -148,4 +140,6 @@
   this->rotorNodeRight.setRelCoor(0, 1.0, 2.3);
 
+  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
+
   this->loadModel("models/ships/hoverglider_wing.obj", 1.0f, 3);
   this->loadModel("models/ships/hoverglider_rotor.obj", 1.0f, 4);
@@ -155,8 +149,4 @@
   this->velocity = Vector(0.0,0.0,0.0);
   this->velocityDir = Vector(1.0,0.0,0.0);
-//   GLGuiButton* button = new GLGuiPushButton();
-//   button->show();
-//   button->setLabel("orxonox");
-//   button->setBindNode(this);
 
   //add events to the eventlist
@@ -175,38 +165,25 @@
   registerEvent(EV_MOUSE_MOTION);
 
-  this->getWeaponManager()->setSlotCount(7);
-
-  this->getWeaponManager()->setSlotPosition(0, Vector(-2.6, .1, -3.0));
+
+  // WEAPON_MANAGER configuration
+  this->getWeaponManager()->setSlotCount(5);
+
+  this->getWeaponManager()->setSlotPosition(0, Vector(-0.28, 1.186, -2.750), &this->wingNodeLeft);
   this->getWeaponManager()->setSlotCapability(0, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
 
-  this->getWeaponManager()->setSlotPosition(1, Vector(-2.6, .1, 3.0));
+  this->getWeaponManager()->setSlotPosition(1, Vector(-0.28, 1.186, 2.750), &this->wingNodeRight);
   this->getWeaponManager()->setSlotCapability(1, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
 
-  this->getWeaponManager()->setSlotPosition(2, Vector(-1.5, .5, -.5));
-  this->getWeaponManager()->setSlotDirection(2, Quaternion(-M_PI_4*.5, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(3, Vector(-1.5, .5, .5));
-  this->getWeaponManager()->setSlotDirection(3, Quaternion(M_PI_4*.5, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(4, Vector(-1.5, -.5, .5));
-  this->getWeaponManager()->setSlotDirection(4, Quaternion(-M_PI_4*.5+M_PI, Vector(1,0,0)));
-
-  this->getWeaponManager()->setSlotPosition(5, Vector(-1.5, -.5, -.5));
-  this->getWeaponManager()->setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0)));
-//
-   this->getWeaponManager()->setSlotPosition(6, Vector(-1, 0.0, 0));
-   this->getWeaponManager()->setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
-   //
-//   this->getWeaponManager()->setSlotPosition(8, Vector(-2.5, -0.3, -2.0));
-//   this->getWeaponManager()->setSlotDirection(8, Quaternion(-M_PI, Vector(1,0,0)));
-//
-//   this->getWeaponManager()->setSlotPosition(9, Vector(-2.5, -0.3, 2.0));
-//   this->getWeaponManager()->setSlotDirection(9, Quaternion(+M_PI, Vector(1,0,0)));:
+  this->getWeaponManager()->setSlotPosition(2, Vector(-1.63, .809, -.003));
+  this->getWeaponManager()->setSlotCapability(2, WTYPE_HEAVY);
+
+  /// TODO: THESE ARE TOO MUCH
+  this->getWeaponManager()->setSlotPosition(3, Vector(-1.63, .678, -.652));
+  this->getWeaponManager()->setSlotDirection(3, Quaternion(-24/180 * M_PI, Vector(1,0,0)));
+
+  this->getWeaponManager()->setSlotPosition(4, Vector(-1.63, .678, .652));
+  this->getWeaponManager()->setSlotDirection(4, Quaternion(24/180 * M_PI, Vector(1,0,0)));
 
   this->getWeaponManager()->getFixedTarget()->setParent(&(this->cameraNode));
-  this->getWeaponManager()->getFixedTarget()->setRelCoor(0,0,0);
-
-  dynamic_cast<Element2D*>(this->getWeaponManager()->getFixedTarget())->setVisibility( false);
-
 }
 
@@ -222,5 +199,5 @@
 void  Hover::attachCamera()
 {
-  State::getCamera()->setParentSoft(this->getWeaponManager()->getFixedTarget());
+  State::getCamera()->setParentSoft(&this->cameraNode);
   State::getCameraTarget()->setParentSoft(this->getWeaponManager()->getFixedTarget());
 
@@ -285,8 +262,4 @@
   }
 
-  // rotorrotation
-//   this->topRotor.shiftDir(Quaternion(time*10, Vector(0,1,0)));
-//   this->tailRotor.shiftDir(Quaternion(time*10, Vector(0,1,0)));
-
   // spaceship controlled movement
   this->calculateVelocity(time);
@@ -296,27 +269,5 @@
   // this is the air friction (necessary for a smooth control)
   if(velocity.len() != 0) velocity -= velocity*0.1;
-
-  //travelSpeed = velocity.len();
-
-  //physics: Gravity
-  /*this->shiftCoor(Vector(0,-1,0));
-
-  this->shiftCoor(getAbsDirY()*rotorspeed);
-  */
-
-  /*
-  //hoover effect
-  cycle += time;
-  this->shiftCoor(Vector(0,1,0)*cos(this->cycle*2.0)*0.02);
-  */
-
-  //readjust
- // if (this->getAbsDirZ().y > 0.1) this->shiftDir(Quaternion(time*0.3, Vector(1,0,0)));
-  //else if (this->getAbsDirZ().y < -0.1) this->shiftDir(Quaternion(-time*0.3, Vector(1,0,0)));
-
-  //SDL_WarpMouse(GraphicsEngine::getInstance()->getResolutionX()/2, GraphicsEngine::getInstance()->getResolutionY()/2);
-
   this->shiftCoor (move);
-  //this->shiftDir(Quaternion(-M_PI/4*tailrotorspeed, Vector(0,1,0)));
 
   this->getWeaponManager()->tick(time);
Index: /trunk/src/world_entities/space_ships/hover.h
===================================================================
--- /trunk/src/world_entities/space_ships/hover.h	(revision 6802)
+++ /trunk/src/world_entities/space_ships/hover.h	(revision 6803)
@@ -14,10 +14,8 @@
   public:
 
-    Hover();
     Hover(const char* fileName);
-    Hover(const TiXmlElement* root);
+    Hover(const TiXmlElement* root = NULL);
     virtual ~Hover();
 
-    void init();
     virtual void loadParams(const TiXmlElement* root);
 
@@ -34,4 +32,7 @@
 
     virtual void process(const Event &event);
+
+  private:
+    void init();
 
   private:
Index: /trunk/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /trunk/src/world_entities/space_ships/space_ship.cc	(revision 6802)
+++ /trunk/src/world_entities/space_ships/space_ship.cc	(revision 6803)
@@ -132,6 +132,4 @@
 
   this->getWeaponManager()->changeWeaponConfig(1);
-
-  EventHandler::getInstance()->grabEvents(true);
 
   bUp = bDown = bLeft = bRight = bAscend = bDescend = bRollL = bRollR = false;
@@ -143,5 +141,5 @@
   controlVelocityX = 25;
   controlVelocityY = 150;
-  shipInertia = 1.5             ;
+  shipInertia = 1.5;
 //  cycle = 0.0;
 
Index: /trunk/src/world_entities/weapons/cannon.cc
===================================================================
--- /trunk/src/world_entities/weapons/cannon.cc	(revision 6802)
+++ /trunk/src/world_entities/weapons/cannon.cc	(revision 6803)
@@ -74,5 +74,5 @@
 //  this->model = (Model*)ResourceManager::getInstance()->load("models/guns/test_gun.obj", OBJ, RP_CAMPAIGN);
 
-  this->loadModel("models/guns/plasmadriver_#.obj");
+  this->loadModel("models/guns/plasmadriver_#.obj", 2.0);
 
   this->setStateDuration(WS_SHOOTING, 2.0);
@@ -88,5 +88,5 @@
   this->setActionSound(WA_ACTIVATE, "sound/voices/cannon.wav");
 
-  this->setCapability(WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
+  this->setCapability(WTYPE_ALLDIRS | WTYPE_DIRECTIONAL | WTYPE_HEAVY);
   this->setProjectileType(CL_BOMB);
   this->prepareProjectiles(5);
Index: /trunk/src/world_entities/weapons/weapon.h
===================================================================
--- /trunk/src/world_entities/weapons/weapon.h	(revision 6802)
+++ /trunk/src/world_entities/weapons/weapon.h	(revision 6803)
@@ -60,4 +60,6 @@
   WTYPE_DIRECTIONAL   = 0x00000001,           //!< Weapon is directional/Slot is able to carry directional weapons
   WTYPE_TURRET        = 0x00000002,           //!< Weapon is a turret/slot is able to carry turrets
+  WTYPE_LIGHT         = 0x00000004,           //!< For light Armament.
+  WTYPE_HEAVY         = 0x00000008,           //!< The heavy Armament (Cannons).
   WTYPE_ALLKINDS      = 0x0000000f,           //!< Weapon is all types/Slot is able to carry all kinds of weapons
 
Index: /trunk/src/world_entities/weapons/weapon_manager.cc
===================================================================
--- /trunk/src/world_entities/weapons/weapon_manager.cc	(revision 6802)
+++ /trunk/src/world_entities/weapons/weapon_manager.cc	(revision 6803)
@@ -185,8 +185,13 @@
  * @param position the position of the given slot
  */
-void WeaponManager::setSlotPosition(int slot, const Vector& position)
+void WeaponManager::setSlotPosition(int slot, const Vector& position, PNode* parent)
 {
   if (slot < this->slotCount)
+  {
     this->currentSlotConfig[slot].position.setRelCoor(position);
+
+    if (parent != NULL)
+      this->currentSlotConfig[slot].position.setParent(parent);
+  }
 }
 
Index: /trunk/src/world_entities/weapons/weapon_manager.h
===================================================================
--- /trunk/src/world_entities/weapons/weapon_manager.h	(revision 6802)
+++ /trunk/src/world_entities/weapons/weapon_manager.h	(revision 6803)
@@ -62,5 +62,5 @@
     unsigned int getSlotCount() const { return this->slotCount; };
     // setting up the WeaponManager with the following functions
-    void setSlotPosition(int slot, const Vector& position);
+    void setSlotPosition(int slot, const Vector& position, PNode* parent = NULL);
     void setSlotDirection(int slot, const Quaternion& rotation);
     /** @param slot the slot to get the relative position from @returns the relative position of the Carrier to the Slot */
