Index: orxonox/branches/particleEngine/src/defs/debug.h
===================================================================
--- orxonox/branches/particleEngine/src/defs/debug.h	(revision 3938)
+++ orxonox/branches/particleEngine/src/defs/debug.h	(revision 3942)
@@ -63,5 +63,5 @@
 #define DEBUG_MODULE_LOAD               0
 
-#define DEBUG_MODULE_IMPORTER           1
+#define DEBUG_MODULE_IMPORTER           3
 #define DEBUG_MODULE_TRACK_MANAGER      0
 #define DEBUG_MODULE_GARBAGE_COLLECTOR  0
Index: orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.cc
===================================================================
--- orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.cc	(revision 3938)
+++ orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.cc	(revision 3942)
@@ -21,7 +21,7 @@
 #include "particle_engine.h"
 #include "compiler.h"
+#include "material.h"
 
 using namespace std;
-
 
 /**
@@ -43,5 +43,7 @@
    this->setLifeSpan(.1);
    this->setInheritSpeed(0);
-
+   this->glID = NULL;
+   this->setRadius(1.0, 1.0, 0.0);
+   this->setType(PARTICLE_SPRITE, 1);
    ParticleEngine::getInstance()->addSystem(this);
 }
@@ -58,4 +60,38 @@
 }
 
+
+void ParticleSystem::setType(PARTICLE_TYPE particleType, int count)
+{
+  this->particleType = particleType;
+  this->dialectCount = count;
+  if (glID != NULL)
+    delete glID;
+
+  glID = new GLuint[count];
+  for (int i = 0; i< count; i++)
+    glID[i] = 0;
+
+  glID[0] = glGenLists(count);
+  
+  material = new Material("transperencyMap");
+  material->setDiffuseMap("pictures/radialTransparency.jpg");
+  
+  glNewList(glID[0], GL_COMPILE);
+  glBegin(GL_TRIANGLE_STRIP);
+  glTexCoord2f(1, 1);
+  glVertex3f(0.0, 1.0, 1.0);
+  glTexCoord2f(1, 0);
+  glVertex3f(0.0, 1.0, 0.0);
+  glTexCoord2f(0, 1);
+  glVertex3f(0.0, 0.0, 1.0);
+  glTexCoord2f(0, 0);
+  glVertex3f(0.0, 0.0, 0.0);
+  glEnd();
+  glEndList();
+
+  
+
+}
+
 // setting properties
 void ParticleSystem::setMaterial(Material* material)
@@ -63,4 +99,5 @@
   this->material = material;
 }
+
 
 
@@ -90,9 +127,10 @@
 }
 
-void ParticleSystem::setRadius(float startRadius, float endRadius, float randomRadius)
+void ParticleSystem::setRadius(float startRadius, float endRadius, float randomStartRadius, float randomEndRadius)
 {
   this->startRadius = startRadius;
   this->endRadius = endRadius;
-  this->randomRadius = randomRadius;
+  this->randomStartRadius = randomStartRadius;
+  this->randomEndRadius = randomEndRadius;
 }
 
@@ -117,5 +155,6 @@
       
       tickPart->position = tickPart->position + tickPart->velocity;
-      tickPart->radius + tickPart->radiusIt * dt;
+      tickPart->radius += tickPart->radiusIt * dt;
+
       // many more to come
 
@@ -153,4 +192,9 @@
 void ParticleSystem::draw(void)
 {
+  //  material->select();
+
+
+  glMatrixMode(GL_MODELVIEW);
+  
   Particle* drawPart = particles;
   if (likely(drawPart != NULL))
@@ -160,8 +204,12 @@
 	{
 	  // draw in DOT mode
-	  glVertex3f(drawPart->position.x, drawPart->position.y, drawPart->position.z);
+	  glPushMatrix();
+	  glTranslatef(drawPart->position.x, drawPart->position.y, drawPart->position.z);
+	  glScalef(drawPart->radius, drawPart->radius, drawPart->radius);
+	  glCallList(*this->glID);
 	  
-	  
+	  //	  	  glVertex3f(drawPart->position.x, drawPart->position.y, drawPart->position.z);
 	  drawPart = drawPart->next;
+	  glPopMatrix();
 	}
       glEnd();
@@ -193,7 +241,7 @@
       //  particle->rotation = ; //! \todo rotation is once again something to be done.
       particles->mass = this->initialMass + (random()/RAND_MAX -.5)* this->randomInitialMass;
-      particles->radius = this->startRadius + (random()/RAND_MAX-.5)*this->randomRadius;
+      particles->radius = this->startRadius + (random()/RAND_MAX-.5)*this->randomStartRadius;
       
-      particles->radiusIt = (this->endRadius + (random()/RAND_MAX-.5)*this->randomRadius - particles->radius) / particles->timeToLive;
+      particles->radiusIt = (this->endRadius + (random()/RAND_MAX-.5)*this->randomEndRadius - particles->radius) / particles->timeToLive;
 
       ++this->count;
Index: orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.h
===================================================================
--- orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.h	(revision 3938)
+++ orxonox/branches/particleEngine/src/lib/graphics/particles/particle_system.h	(revision 3942)
@@ -18,6 +18,6 @@
 			    PARTICLE_PRIMITIVE};
 
-#define PARTICLE_DEFAULT_MAX_COUNT 200         //!< a default count of particles in the system.
-#define PARTICLE_DEFAULT_TYPE  PARTICLE_SPRITE //!< A default type of the system.
+#define PARTICLE_DEFAULT_MAX_COUNT    200               //!< a default count of particles in the system.
+#define PARTICLE_DEFAULT_TYPE         PARTICLE_SPRITE   //!< A default type of the system.
 
 // FORWARD DEFINITION
@@ -48,8 +48,9 @@
   virtual ~ParticleSystem();
 
+  void setType(PARTICLE_TYPE particleType, int count = 0);
   void setMaterial(Material* material);
   void setInheritSpeed(float value);
   void setLifeSpan(float lifeSpan, float randomLifeSpan = 0.0);
-  void setRadius(float startRadius, float endRadius, float randomRadius = 0.0);
+  void setRadius(float startRadius, float endRadius, float randomStartRadius = 0.0, float randomEndRadius = 0.0);
   void setConserve(float conserve);
   void setMass(float mass, float randomMass);
@@ -64,5 +65,6 @@
   float startRadius;
   float endRadius;
-  float randomRadius;
+  float randomStartRadius;
+  float randomEndRadius;
   float initialMass;
   float randomInitialMass;
@@ -76,4 +78,6 @@
   Particle* particles;       //!< A list of particles of this System.
 
+  GLuint* glID;              //!< A List of different gl-List-ID's
+  GLuint dialectCount;       //!< How many different types of particles are there in the Particle System
 
   void addParticle(Vector position, Vector velocity, unsigned int data = 0);
Index: orxonox/branches/particleEngine/src/story_entities/world.cc
===================================================================
--- orxonox/branches/particleEngine/src/story_entities/world.cc	(revision 3938)
+++ orxonox/branches/particleEngine/src/story_entities/world.cc	(revision 3942)
@@ -379,16 +379,15 @@
 	    ParticleEmitter* testEmitter,* testEmitter2;
 	    ParticleSystem* testSystem;
-	    testEmitter = new ParticleEmitter(Vector(-1,0,0), M_PI_2, 1200.0, 1);
+	    testEmitter = new ParticleEmitter(Vector(-1,0,0), M_PI_2, 1200.0, .5);
 	    testEmitter->setParent(localPlayer);
-	    testEmitter2 = new ParticleEmitter(Vector(-1,0,0), .1, 1200, 1);
-	    testEmitter2->setParent(tn);
+	    testEmitter->setRelCoor(Vector(-3, 0, 0));
 
 	    testSystem = new ParticleSystem(100000);
-	    testSystem->setLifeSpan(3);
+	    testSystem->setLifeSpan(1, .8);
+	    testSystem->setRadius(1.0, 0.0, .5);
 	    testSystem->setConserve(.8);
 	    testSystem->setInheritSpeed(1);
 
 	    ParticleEngine::getInstance()->addConnection(testEmitter, testSystem);
-	    ParticleEngine::getInstance()->addConnection(testEmitter2, testSystem);
 
 	    break;
