Index: orxonox/trunk/src/lib/sound/ogg_player.h
===================================================================
--- orxonox/trunk/src/lib/sound/ogg_player.h	(revision 4968)
+++ orxonox/trunk/src/lib/sound/ogg_player.h	(revision 4969)
@@ -19,5 +19,5 @@
 
 
-#define BUFFER_SIZE (4096 * 4)
+#define BUFFER_SIZE (16384 * 4)
 
 
Index: orxonox/trunk/src/story_entities/world.cc
===================================================================
--- orxonox/trunk/src/story_entities/world.cc	(revision 4968)
+++ orxonox/trunk/src/story_entities/world.cc	(revision 4969)
@@ -440,5 +440,5 @@
   // bind camera
   //this->localCamera->bind (localPlayer);
-  this->localPlayer->addChild (this->localCamera);
+ // this->localPlayer->addChild (this->localCamera);
 
 
@@ -963,5 +963,5 @@
 
   SoundEngine::getInstance()->update();
- // music->update();
+  music->update();
 }
 
Index: orxonox/trunk/src/util/fast_factory.h
===================================================================
--- orxonox/trunk/src/util/fast_factory.h	(revision 4968)
+++ orxonox/trunk/src/util/fast_factory.h	(revision 4969)
@@ -22,5 +22,4 @@
 
 #include "base_object.h"
-
 /**
  * Creates a FastFactory to a Createable FastFactory.
Index: orxonox/trunk/src/world_entities/player.cc
===================================================================
--- orxonox/trunk/src/world_entities/player.cc	(revision 4968)
+++ orxonox/trunk/src/world_entities/player.cc	(revision 4969)
@@ -87,8 +87,9 @@
 
   Weapon* turret = new Turret(this->weaponMan);
+  Weapon* turret2 = new Turret(this->weaponMan);
   this->weaponMan->addWeapon(wpLeft, 1, 0);
   this->weaponMan->addWeapon(wpRight,1 ,1);
   this->weaponMan->addWeapon(turret, 2, 2);
-  this->weaponMan->addWeapon(turret, 3, 2);
+  this->weaponMan->addWeapon(turret2, 2, 3);
   this->weaponMan->addWeapon(wpLeft, 3, 0);
   this->weaponMan->addWeapon(wpRight,3 ,1);
@@ -113,8 +114,11 @@
 
   this->weaponMan = new WeaponManager(this);
-  this->weaponMan->setSlotCount(3);
+  this->weaponMan->setSlotCount(4);
   this->weaponMan->setSlotPosition(0, Vector(-2.6, .1, -3.0));
   this->weaponMan->setSlotPosition(1, Vector(-2.6, .1, 3.0));
-  this->weaponMan->setSlotPosition(2, Vector(-1.5, .5, 0));
+  this->weaponMan->setSlotPosition(2, Vector(-1.5, .5, -.5));
+  this->weaponMan->setSlotDirection(2, Quaternion(-M_PI_4*.5, Vector(1,0,0)));
+  this->weaponMan->setSlotPosition(3, Vector(-1.5, .5, .5));
+  this->weaponMan->setSlotDirection(3, Quaternion(M_PI_4*.5, Vector(1,0,0)));
 }
 
Index: orxonox/trunk/src/world_entities/weapons/test_bullet.cc
===================================================================
--- orxonox/trunk/src/world_entities/weapons/test_bullet.cc	(revision 4968)
+++ orxonox/trunk/src/world_entities/weapons/test_bullet.cc	(revision 4969)
@@ -40,4 +40,5 @@
   this->energyMin = 1;
   this->energyMax = 10;
+  this->remove();
 }
 
Index: orxonox/trunk/src/world_entities/weapons/turret.cc
===================================================================
--- orxonox/trunk/src/world_entities/weapons/turret.cc	(revision 4968)
+++ orxonox/trunk/src/world_entities/weapons/turret.cc	(revision 4969)
@@ -42,5 +42,5 @@
   this->setClassID(CL_TURRET, "Turret");
 
-  this->model = (Model*)ResourceManager::getInstance()->load("models/turret1.obj", OBJ, RP_CAMPAIGN);
+  this->loadModel("models/turret1.obj");
 
   Animation3D* animation1 = this->getAnimation(WS_ACTIVATING, this);
@@ -95,14 +95,16 @@
   Vector direction = this->getWeaponManager()->getFixedTarget()->getAbsCoor() - this->getAbsCoor();
   direction.normalize();
-  Quaternion quat = Quaternion(direction, this->getParent()->getAbsDir().apply(Vector(0,1,0))) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
-
-  this->setAbsDir(quat);
+  if (likely (this->getParent() != NULL))
+  {
+    Quaternion quat = Quaternion(direction, this->getParent()->getAbsDir().apply(Vector(0,1,0))) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
+    this->setAbsDir(quat);
+  }
+  else
+  {
+    Quaternion quat = Quaternion(direction, this->getAbsDir().apply(Vector(0,1,0))) * Quaternion ( -M_PI_2, Vector(0,1,0)) ;
+    this->setAbsDir(quat);
+  }
 }
 
-/**
- *  fires the weapon
-
-   this is called from the player.cc, when fire-button is been pushed
-*/
 void Turret::fire()
 {
@@ -126,15 +128,9 @@
 
 
-/**
- *  is called, when the weapon is destroyed
-
-   this is in conjunction with the hit function, so when a weapon is able to get
-   hit, it can also be destoryed.
-*/
 void Turret::destroy ()
 {}
 
 /**
- *  this will draw the weapon
+ * draws the Turret
 */
 void Turret::draw ()
Index: orxonox/trunk/src/world_entities/weapons/weapon_manager.cc
===================================================================
--- orxonox/trunk/src/world_entities/weapons/weapon_manager.cc	(revision 4968)
+++ orxonox/trunk/src/world_entities/weapons/weapon_manager.cc	(revision 4969)
@@ -161,4 +161,11 @@
     this->currentSlotConfig[slot].position.setRelCoor(position);
 }
+
+void WeaponManager::setSlotDirection(int slot, const Quaternion& rotation)
+{
+  if (slot < this->slotCount)
+    this->currentSlotConfig[slot].position.setRelDir(rotation);
+}
+
 
 /**
Index: orxonox/trunk/src/world_entities/weapons/weapon_manager.h
===================================================================
--- orxonox/trunk/src/world_entities/weapons/weapon_manager.h	(revision 4968)
+++ orxonox/trunk/src/world_entities/weapons/weapon_manager.h	(revision 4969)
@@ -57,4 +57,5 @@
     // setting up the WeaponManager with the following functions
     void setSlotPosition(int slot, const Vector& position);
+    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 */
     const Vector& getSlotPosition(int slot) const { return this->currentSlotConfig[slot].position.getRelCoor(); };
