Index: /orxonox/branches/particleEngine/src/lib/graphics/particles/particle_emitter.cc
===================================================================
--- /orxonox/branches/particleEngine/src/lib/graphics/particles/particle_emitter.cc	(revision 3950)
+++ /orxonox/branches/particleEngine/src/lib/graphics/particles/particle_emitter.cc	(revision 3951)
@@ -134,7 +134,7 @@
 	randDir.normalize();
 	randDir = (this->getAbsDir()*Quaternion(angle + randomAngle *((float)random()/RAND_MAX -.5), randDir)).apply(this->direction);
-	randDir = *randDir.getNormalized() + (this->getVelocity() * system->inheritSpeed);
-	
-	system->addParticle(this->getAbsCoor(), randDir* velocity);
+	randDir = *randDir.getNormalized()*velocity + (this->getVelocity() * system->inheritSpeed);
+
+	system->addParticle(this->getAbsCoor(), randDir);
       }
   }
Index: /orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.cc
===================================================================
--- /orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.cc	(revision 3950)
+++ /orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.cc	(revision 3951)
@@ -184,10 +184,8 @@
   while (likely(tickPart != NULL))
     {
-      
       tickPart->position = tickPart->position + tickPart->velocity;
       tickPart->radius += tickPart->radiusIt * dt;
 
       // many more to come
-
 
 
@@ -271,5 +269,5 @@
    \param data some more data given by the emitter
 */
-void ParticleSystem::addParticle(Vector position, Vector velocity, unsigned int data)
+void ParticleSystem::addParticle(const Vector& position, const Vector& velocity, unsigned int data)
 {
   if (this->count <= this->maxCount)
@@ -292,4 +290,5 @@
       particles->position = position;
       particles->velocity = velocity;
+
       //  particle->rotation = ; //! \todo rotation is once again something to be done.
       particles->mass = this->initialMass + (random()/RAND_MAX -.5)* this->randomInitialMass;
Index: /orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.h
===================================================================
--- /orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.h	(revision 3950)
+++ /orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.h	(revision 3951)
@@ -87,5 +87,5 @@
   GLuint dialectCount;       //!< How many different types of particles are there in the Particle System
 
-  void addParticle(Vector position, Vector velocity, unsigned int data = 0);
+  void addParticle(const Vector& position, const Vector& velocity, unsigned int data = 0);
   
 };
Index: /orxonox/branches/particleEngine/src/lib/math/vector.cc
===================================================================
--- /orxonox/branches/particleEngine/src/lib/math/vector.cc	(revision 3950)
+++ /orxonox/branches/particleEngine/src/lib/math/vector.cc	(revision 3951)
@@ -172,5 +172,5 @@
    \brief Outputs the values of the Vector
 */
-void Vector::debug(void)
+void Vector::debug(void) const
 {
   PRINT(0)("Vector Debug information\n");
Index: /orxonox/branches/particleEngine/src/lib/math/vector.h
===================================================================
--- /orxonox/branches/particleEngine/src/lib/math/vector.h	(revision 3950)
+++ /orxonox/branches/particleEngine/src/lib/math/vector.h	(revision 3951)
@@ -53,5 +53,5 @@
   Vector abs();
 
-  void debug();
+  void debug() const;
 };
 
Index: /orxonox/branches/particleEngine/src/story_entities/world.cc
===================================================================
--- /orxonox/branches/particleEngine/src/story_entities/world.cc	(revision 3950)
+++ /orxonox/branches/particleEngine/src/story_entities/world.cc	(revision 3951)
@@ -372,6 +372,7 @@
 	    //localCamera->setParent(TrackNode::getInstance());
 	    tn->addChild(this->localCamera);
+	    localCamera->setMode(PNODE_MOVEMENT);
 	    //	    localCamera->lookAt(tn);
-	    this->localPlayer->setMode(PNODE_ALL);
+	    this->localPlayer->setMode(PNODE_ROTATE_AND_MOVE);
 	    //Vector* cameraOffset = new Vector (0, 5, -10);
 	    trackManager->condition(2, LEFTRIGHT, this->localPlayer);
@@ -380,5 +381,5 @@
 	    ParticleEmitter* testEmitter,* testEmitter2;
 	    ParticleSystem* testSystem;
-	    testEmitter = new ParticleEmitter(Vector(-1,0,0), .4, 60.0, 0);
+	    testEmitter = new ParticleEmitter(Vector(-1,0,0), .4, 600.0, 0);
 	    testEmitter->setParent(localPlayer);
 	    testEmitter->setRelCoor(Vector(-3, 0, 0));
@@ -392,5 +393,5 @@
 	    testSystem->setLifeSpan(1, .2);
 	    testSystem->setRadius(3.0, 0.0, .5);
-	    testSystem->setConserve(.8);
+	    testSystem->setConserve(1);
 	    testSystem->setInheritSpeed(1);
 	    testSystem->setName("system");
