Index: orxonox/branches/particleEngine/src/lib/graphics/particles/particle_emitter.cc
===================================================================
--- orxonox/branches/particleEngine/src/lib/graphics/particles/particle_emitter.cc	(revision 4172)
+++ orxonox/branches/particleEngine/src/lib/graphics/particles/particle_emitter.cc	(revision 4173)
@@ -140,5 +140,4 @@
 	    // this should spread the Particles evenly. if the Emitter is moved around quickly
 	    Vector equalSpread = this->getVelocity() * random()/RAND_MAX * dt;
-	    equalSpread.debug();
 
 	    system->addParticle(this->getAbsCoor() - equalSpread, velocityV);
Index: orxonox/branches/particleEngine/src/lib/graphics/particles/particle_engine.cc
===================================================================
--- orxonox/branches/particleEngine/src/lib/graphics/particles/particle_engine.cc	(revision 4172)
+++ orxonox/branches/particleEngine/src/lib/graphics/particles/particle_engine.cc	(revision 4173)
@@ -251,6 +251,7 @@
 /**
    \brief draws all the systems and their Particles.
-*/
-void ParticleEngine::draw(void)
+   \param dt the time passed in seconds (since the last Frame)
+*/
+void ParticleEngine::draw(float dt)
 {
   tIterator<ParticleSystem>* tmpIt = systemList->getIterator();
@@ -258,5 +259,5 @@
   while(tmpSys)
     {
-      tmpSys->draw();
+      tmpSys->draw(dt);
       tmpSys = tmpIt->nextElement();
     }
Index: orxonox/branches/particleEngine/src/lib/graphics/particles/particle_engine.h
===================================================================
--- orxonox/branches/particleEngine/src/lib/graphics/particles/particle_engine.h	(revision 4172)
+++ orxonox/branches/particleEngine/src/lib/graphics/particles/particle_engine.h	(revision 4173)
@@ -30,5 +30,5 @@
 
   void tick(float dt);
-  void draw(void);
+  void draw(float dt);
 
   void addSystem(ParticleSystem* system);
Index: orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.cc
===================================================================
--- orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.cc	(revision 4172)
+++ orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.cc	(revision 4173)
@@ -38,13 +38,12 @@
    this->maxCount = maxCount;
    this->count = 0;
-   this->particleType = type;
    this->particles = NULL;
    this->deadList = NULL;
-   this->setConserve(.8);
-   this->setLifeSpan(.1);
+   this->setConserve(1);
+   this->setLifeSpan(1);
    this->setInheritSpeed(0);
    this->glID = NULL;
    this->setRadius(1.0, 1.0, 0.0);
-   this->setType(PARTICLE_SPRITE, 1);
+   this->setType(type, 1);
    ParticleEngine::getInstance()->addSystem(this);
 }
@@ -54,5 +53,5 @@
    \brief standard deconstructor
 */
-ParticleSystem::~ParticleSystem() 
+ParticleSystem::~ParticleSystem()
 {
   // delete what has to be deleted here
@@ -240,19 +239,19 @@
 /**
    \brief draws all the Particles of this System
-*/
-void ParticleSystem::draw(void)
-{
+   \param the time passed in seconds (since the last draw)
+*/
+void ParticleSystem::draw(float dt)
+{
+  glPushAttrib(GL_ENABLE_BIT);
   //  material->select();
-
-
-  glMatrixMode(GL_MODELVIEW);
-  //  glDisable(GL_LIGHTING);
-  material->select(); 
-  glDisable(GL_DEPTH_TEST);
- Particle* drawPart = particles;
-  if (likely(drawPart != NULL))
+  Particle* drawPart = particles;
+
+  switch (this->particleType)
     {
-      //draw in DOT mode
-      //      glBegin(GL_POINTS);
+    case PARTICLE_SPRITE:
+      glMatrixMode(GL_MODELVIEW);
+      //  glDisable(GL_LIGHTING);
+      material->select(); 
+      glDisable(GL_DEPTH_TEST);
       while (likely(drawPart != NULL))
 	{
@@ -267,7 +266,38 @@
 	}
       //      glEnd();
+      
+      //  glEnable(GL_LIGHTING);
+      
+      glEnable(GL_DEPTH_TEST);
+      break;
+    default:
+
+    case PARTICLE_SPARK:
+      glEnable(GL_LINE_SMOOTH);
+      glBegin(GL_LINES);
+      while (likely(drawPart != NULL))
+	{
+	  glVertex3f(drawPart->position.x, drawPart->position.y, drawPart->position.z);
+	  glVertex3f(drawPart->position.x - drawPart->velocity.x,
+		     drawPart->position.y - drawPart->velocity.y,
+		     drawPart->position.z - drawPart->velocity.z);
+	  drawPart = drawPart->next;
+	}
+      glEnd();
+      break;
+      
+    case PARTICLE_DOT:
+      glBegin(GL_POINTS);
+      while (likely(drawPart != NULL))
+	{
+	  glLineWidth(drawPart->radius);
+
+	  glVertex3f(drawPart->position.x, drawPart->position.y, drawPart->position.z);
+	  drawPart = drawPart->next;
+	}
+      glEnd();
+      break;
     }
-  //  glEnable(GL_LIGHTING);
-  glEnable(GL_DEPTH_TEST);
+  glPopAttrib();
 }
 
Index: orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.h
===================================================================
--- orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.h	(revision 4172)
+++ orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.h	(revision 4173)
@@ -70,5 +70,5 @@
 
   void tick(float dt);
-  void draw(void);
+  void draw(float dt);
 
   void debug(void);
Index: orxonox/branches/particleEngine/src/story_entities/world.cc
===================================================================
--- orxonox/branches/particleEngine/src/story_entities/world.cc	(revision 4172)
+++ orxonox/branches/particleEngine/src/story_entities/world.cc	(revision 4173)
@@ -493,8 +493,9 @@
 
 
-  ParticleSystem* system = new ParticleSystem(1000);
-  system->setLifeSpan(1);
+  ParticleSystem* system = new ParticleSystem(1000, PARTICLE_SPARK);
+  system->setLifeSpan(.5);
   system->setRadius(2, 0, 2, 0);
-  ParticleEmitter* emitter = new ParticleEmitter(Vector(-1, 0, 0), 0, 1000, 0);
+
+  ParticleEmitter* emitter = new ParticleEmitter(Vector(-1, 0, 0), M_PI_4, 1000, .05);
   emitter->setParent(this->localPlayer);
   
@@ -962,5 +963,5 @@
 
   TextEngine::getInstance()->draw();
-  particleEngine->draw();
+  particleEngine->draw((float)dt/1000.0); //!< \todo should be dts like in the Trunk;
 
   lightMan->draw(); // must be at the end of the drawing procedure, otherwise Light cannot be handled as PNodes //
