Index: branches/playability/src/world_entities/particles/emitter_node.cc
===================================================================
--- branches/playability/src/world_entities/particles/emitter_node.cc	(revision 10077)
+++ branches/playability/src/world_entities/particles/emitter_node.cc	(revision 10078)
@@ -46,5 +46,5 @@
 {
   this->emitter->setSystem(NULL);
-  delete this->emitter;
+  this->removeNode();
 }
 
@@ -61,7 +61,8 @@
 }
 
-void EmitterNode::start()
+bool EmitterNode::start()
 {
-   this->started  = true;
+  this->started  = true;
+  return this->started;
 }
 
@@ -76,4 +77,5 @@
     this->removeNode();
   }
+  PRINTF(0)("Coordinate Update EmitterNode: (%f,%f,%f) -> (%f,%f,%f)\n",this->getAbsCoor().x,this->getAbsCoor().y,this->getAbsCoor().z,this->velocity.x,this->velocity.y,this->velocity.z);
   this->setAbsCoor(this->getAbsCoor() + (this->velocity * dt));
 }
Index: branches/playability/src/world_entities/particles/emitter_node.h
===================================================================
--- branches/playability/src/world_entities/particles/emitter_node.h	(revision 10077)
+++ branches/playability/src/world_entities/particles/emitter_node.h	(revision 10078)
@@ -28,5 +28,5 @@
   virtual void tick( float time);
 
-  void start();
+  bool start();
   inline void setVelocity(Vector velocity) { this->velocity = velocity;};
 
Index: branches/playability/src/world_entities/projectiles/mbolt.cc
===================================================================
--- branches/playability/src/world_entities/projectiles/mbolt.cc	(revision 10077)
+++ branches/playability/src/world_entities/projectiles/mbolt.cc	(revision 10078)
@@ -45,5 +45,6 @@
 {
   this->registerObject(this, MBolt::_objectList);
-  this->loadModel("models/projectiles/mbolt.obj",0.25);
+  this->loadModel("models/projectiles/mbolt.obj");
+  
   //this->loadModel("models/projectiles/laser.obj");
 
@@ -55,5 +56,5 @@
 
   //this->emitter = new DotEmitter(1000, 0, 0);
-  this->emitter = new BoxEmitter(Vector(8,1,1)*dynamic_cast<StaticModel*>(this->getModel())->getScaleFactor(), 1000, 0, 0);
+  this->emitter = new DotEmitter(200, 0, 0);
   this->emitter->setParent(this);
   this->emitter->setSpread(M_PI,M_PI);
@@ -76,7 +77,6 @@
 /**
  *  standard deconstructor
-
-/**
-*/
+ *
+ */
 MBolt::~MBolt ()
 {
@@ -104,5 +104,5 @@
   if (unlikely(MBolt::trailParticles == NULL))
   {
-    MBolt::trailParticles = new SpriteParticles(3000);
+    MBolt::trailParticles = new SpriteParticles(1000);
     MBolt::trailParticles->setName("BoomerangProjectileTrailParticles");
     MBolt::trailParticles->setMaterialTexture("maps/radial-trans-noise.png");
@@ -134,5 +134,5 @@
 
   this->emitter->setSpread(0);
-  this->emitter->setEmissionRate(80.0);
+  this->emitter->setEmissionRate(10.0);
   this->emitter->setEmissionVelocity(0);
   this->updateNode(0);
@@ -198,5 +198,4 @@
 
   glPushMatrix();
-
   float matrix[4][4];
   glTranslatef (this->getAbsCoor ().x, this->getAbsCoor ().y, this->getAbsCoor ().z);
@@ -205,5 +204,5 @@
   glMultMatrixf((float*)matrix);
 
-  glScalef(3.0, 0.7, 0.7);  // no double rescale
+  glScalef(0.75, 0.7/4, 0.7/4);  // no double rescale
 
   this->mat->select();
Index: branches/playability/src/world_entities/projectiles/swarm_projectile.cc
===================================================================
--- branches/playability/src/world_entities/projectiles/swarm_projectile.cc	(revision 10077)
+++ branches/playability/src/world_entities/projectiles/swarm_projectile.cc	(revision 10078)
@@ -95,9 +95,9 @@
     SwarmProjectile::trailParticles->setName("SwarmProjectileTrailParticles");
     SwarmProjectile::trailParticles->setMaterialTexture("maps/radial-trans-noise.png");
-    SwarmProjectile::trailParticles->setLifeSpan(.5, 0);
-    SwarmProjectile::trailParticles->setRadius(0.0, .5);
-    SwarmProjectile::trailParticles->setRadius(0.2, 1.5);
-    SwarmProjectile::trailParticles->setRadius(.5, 1.0);
-    SwarmProjectile::trailParticles->setRadius(1.0, 0.6);
+    SwarmProjectile::trailParticles->setLifeSpan(.3, 0);
+    SwarmProjectile::trailParticles->setRadius(0.0, .7);
+    SwarmProjectile::trailParticles->setRadius(0.2, 1.3);
+    SwarmProjectile::trailParticles->setRadius(.5, .8);
+    SwarmProjectile::trailParticles->setRadius(1.0, 0.3);
     SwarmProjectile::trailParticles->setColor(0.0, 1,0,0,.7);
     SwarmProjectile::trailParticles->setColor(0.2, .8,.8,0,.5);
@@ -123,6 +123,7 @@
 
   this->updateNode(0);
-  this->emitter->setEmissionRate(160.0);
+  this->emitter->setEmissionRate(50.0);
   this->emitter->setEmissionVelocity(0.0);
+  this->emitter->setInheritSpeed(0);
 
   this->setHealth(10.0* (float)rand()/(float)RAND_MAX);
Index: branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10077)
+++ branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10078)
@@ -377,4 +377,8 @@
   this->secWeaponMan.showCrosshair();
   this->toList( OM_GROUP_01 );
+  /*for(ObjectList<WorldEntity>::const_iterator it = WorldEntity::objectList().begin(); it != WorldEntity::objectList().end(); it++)
+  {
+    (*it)->toList( OM_GROUP_01);
+  }*/
   //dynamic_cast<Element2D*>(this->secWeaponMan.getFixedTarget())->setVisibility( true);
   //this->attachCamera();
@@ -386,4 +390,8 @@
   this->secWeaponMan.hideCrosshair();
   this->toList( OM_GROUP_00);
+  /*for(ObjectList<WorldEntity>::const_iterator it = WorldEntity::objectList().begin(); it != WorldEntity::objectList().end(); it++)
+  {
+    (*it)->toList( OM_GROUP_00);
+  }*/
   //dynamic_cast<Element2D*>(this->secWeaponMan.getFixedTarget())->setVisibility( false);
   //this->detachCamera();
@@ -611,4 +619,8 @@
 
   this->toList( OM_DEAD);
+  /*for(ObjectList<WorldEntity>::const_iterator it = WorldEntity::objectList().begin(); it != WorldEntity::objectList().end(); it++)
+  {
+    (*it)->toList( OM_DEAD);
+  }*/
     PRINTF(0)("spaceship destroy == ship translated \n");
 }
Index: branches/playability/src/world_entities/space_ships/space_ship.h
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10077)
+++ branches/playability/src/world_entities/space_ships/space_ship.h	(revision 10078)
@@ -147,4 +147,5 @@
 
     Vector                velocity;           //!< the velocity of the player.
+    Vector                oldPos;
 
 // 2D-traveling
Index: branches/playability/src/world_entities/weapons/swarm_launcher.cc
===================================================================
--- branches/playability/src/world_entities/weapons/swarm_launcher.cc	(revision 10077)
+++ branches/playability/src/world_entities/weapons/swarm_launcher.cc	(revision 10078)
@@ -145,27 +145,19 @@
 {
   Projectile* pj = NULL;
-  int i = 0;
-  std::list<WorldEntity*> eList  = State::getObjectManager()->getEntityList( OM_GROUP_00);
-  list<WorldEntity*>::iterator eIterator;
-  PRINTF(0)("Iterator output: %i\n",eList.size());
-  for( eIterator = eList.begin(); eIterator != eList.end(); eIterator++);
+  for( ObjectList<Playable>::const_iterator eIterator = Playable::objectList().begin(); eIterator !=Playable::objectList().end(); eIterator++)
   {
-    PRINTF(0)("Iterator step: %i with content: %s\n",++i,*eIterator);
-    if( (dynamic_cast<WorldEntity*>(*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 50000.0)
+    if( ((*eIterator)->getOMListNumber() == OM_GROUP_00) && ((*eIterator)->getClassCName() != "Weapon") && ((*eIterator)->getClassCName() != "Projectile") && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 100)
     {
       pj  = this->getProjectile();
       if (pj == NULL)
         return;
-
-	  pj->setVelocity(this->getVelocity()+(this->getAbsDir().apply(Vector(1,0,0))*165.0 + VECTOR_RAND(20))*.5);
+	  pj->setVelocity(this->getVelocity()+(this->getAbsDir().apply(Vector(1,0,0))*165.0 + VECTOR_RAND(20)));
 	
-	  pj->setParent(PNode::getNullParent());
-	  pj->setAbsCoor(this->getEmissionPoint());
-	  pj->setAbsDir(this->getAbsDir());
+	  pj->setParent( PNode::getNullParent());
+	  pj->setAbsCoor( this->getEmissionPoint());
+	  pj->setAbsDir( this->getAbsDir());
 	  pj->setTarget( *eIterator);
 	  pj->activate();
-      this->increaseEnergy( pj->getMinEnergy());
     }
   }
-  this->increaseEnergy( - pj->getMinEnergy());
 }
